From 66f83b24bdf88169f7e470231f5eb14627156a9c Mon Sep 17 00:00:00 2001 From: Aleksandr Gumroian Date: Wed, 4 Dec 2024 14:02:35 +0100 Subject: [PATCH 01/18] Add optional close button to ModalHeader component --- src/bootstrap/Modal.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/bootstrap/Modal.js b/src/bootstrap/Modal.js index a1e65c0..efdf6a8 100644 --- a/src/bootstrap/Modal.js +++ b/src/bootstrap/Modal.js @@ -88,18 +88,21 @@ export function Modal({ shown, setShown, scrollable, size, children }) { ModalHeader.propTypes = { setShown: PropTypes.func.isRequired, title: PropTypes.string.isRequired, + showCloseButton: PropTypes.bool, }; -export function ModalHeader({ setShown, title }) { +export function ModalHeader({ setShown, title, showCloseButton = true }) { return (

{title}

-
); } From 4b2e47f8f906faeed5ce9bdea03b0d8622dfd1e4 Mon Sep 17 00:00:00 2001 From: Aleksandr Gumroian Date: Wed, 4 Dec 2024 14:02:52 +0100 Subject: [PATCH 02/18] Refactor pagination condition in RichTable component --- src/common/RichTable/RichTable.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/common/RichTable/RichTable.js b/src/common/RichTable/RichTable.js index 98e42eb..9eac79f 100644 --- a/src/common/RichTable/RichTable.js +++ b/src/common/RichTable/RichTable.js @@ -64,13 +64,15 @@ function RichTable({ }, }); + const paginationIsNeeded = tableData.length > pageSize && withPagination; + return (
- {withPagination && ( + {paginationIsNeeded && ( Date: Mon, 9 Dec 2024 16:50:29 +0100 Subject: [PATCH 03/18] Add encryption selection to WiFiGuestForm --- src/common/WiFiSettings/WiFiGuestForm.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/common/WiFiSettings/WiFiGuestForm.js b/src/common/WiFiSettings/WiFiGuestForm.js index 49d34de..05483e9 100644 --- a/src/common/WiFiSettings/WiFiGuestForm.js +++ b/src/common/WiFiSettings/WiFiGuestForm.js @@ -9,9 +9,10 @@ import React from "react"; import PropTypes from "prop-types"; -import { HELP_TEXTS } from "./constants"; +import { HELP_TEXTS, ENCRYPTIONMODES } from "./constants"; import WiFiQRCode from "./WiFiQRCode"; import PasswordInput from "../../bootstrap/PasswordInput"; +import Select from "../../bootstrap/Select"; import Switch from "../../bootstrap/Switch"; import TextInput from "../../bootstrap/TextInput"; @@ -21,6 +22,7 @@ WifiGuestForm.propTypes = { SSID: PropTypes.string.isRequired, password: PropTypes.string.isRequired, enabled: PropTypes.bool.isRequired, + encryption: PropTypes.string.isRequired, }), formErrors: PropTypes.shape({ SSID: PropTypes.string, @@ -89,6 +91,20 @@ export default function WifiGuestForm({ }))} {...props} /> + ++ ++ ++ ++ ++
++ ++ The WPA3 standard is the new most secure encryption method that is suggested to be used with any device that supports it. The older devices without WPA3 support require older WPA2. If you experience issues with connecting older devices, try to enable WPA2. ++ ++
+

From fb1f79c6c1f2019a7541d460388b0f0b04a0e3aa Mon Sep 17 00:00:00 2001 From: Ettore Atalan Date: Tue, 22 Oct 2024 01:25:53 +0000 Subject: [PATCH 05/18] Translated using Weblate (German) Currently translated at 100.0% (71 of 71 strings) Translation: Turris/Foris JS Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/de/ --- translations/de/LC_MESSAGES/forisjs.po | 144 ++++++++++++------------- 1 file changed, 67 insertions(+), 77 deletions(-) diff --git a/translations/de/LC_MESSAGES/forisjs.po b/translations/de/LC_MESSAGES/forisjs.po index 118e373..4f18b68 100644 --- a/translations/de/LC_MESSAGES/forisjs.po +++ b/translations/de/LC_MESSAGES/forisjs.po @@ -11,8 +11,8 @@ msgstr "" "PO-Revision-Date: 2024-01-04 21:08+0000\n" "Last-Translator: Erik Pfannenstein \n" "Language: de\n" -"Language-Team: German \n" +"Language-Team: German \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -35,16 +35,16 @@ msgstr "Keine Antwort erhalten." msgid "An unknown API error occurred." msgstr "Ein unbekannter API-Fehler ist aufgetreten." -#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101 +#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101 #: src/common/WiFiSettings/WiFiQRCode.js:89 msgid "Close" -msgstr "" +msgstr "Schließen" -#: src/bootstrap/CopyInput.js:56 +#: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57 msgid "Copied!" msgstr "Kopiert!" -#: src/bootstrap/CopyInput.js:56 +#: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57 msgid "Copy" msgstr "Kopieren" @@ -58,6 +58,7 @@ msgid "Action failed." msgstr "" #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125 +#: src/common/RebootButton.js:71 msgid "Cancel" msgstr "Abbrechen" @@ -121,8 +122,7 @@ msgstr "" #: src/common/WiFiSettings/ResetWiFiSettings.js:39 msgid "An error occurred during resetting Wi-Fi settings." msgstr "" -"Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen " -"aufgetreten." +"Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen aufgetreten." #: src/common/WiFiSettings/ResetWiFiSettings.js:42 msgid "Wi-Fi settings are set to defaults." @@ -135,13 +135,13 @@ msgstr "WLAN-Einstellungen zurücksetzen" #: src/common/WiFiSettings/ResetWiFiSettings.js:58 msgid "" -"If a number of wireless cards doesn't match, you may try to reset the Wi-" -"Fi settings. Note that this will remove the current Wi-Fi configuration " -"and restore the default values." +"If a number of wireless cards doesn't match, you may try to reset the Wi-Fi " +"settings. Note that this will remove the current Wi-Fi configuration and " +"restore the default values." msgstr "" -"Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die" -" WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle" -" WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird." +"Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die " +"WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle " +"WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird." #: src/common/WiFiSettings/WiFiForm.js:97 msgid "Wi-Fi ${deviceID + 1}" @@ -177,8 +177,8 @@ msgid "" "In case you have trouble connecting to WiFi Access Point, try disabling " "Management Frame Protection." msgstr "" -"Falls Sie beim Verbinden mit dem WiFi-Access-Point Probleme haben, " -"schalten Sie testweise die Management Frame Protection ab." +"Falls Sie beim Verbinden mit dem WiFi-Access-Point Probleme haben, schalten " +"Sie testweise die Management Frame Protection ab." #: src/common/WiFiSettings/WiFiForm.js:262 msgid "auto" @@ -194,9 +194,8 @@ msgstr "Gast-WLAN aktivieren" #: src/common/WiFiSettings/WiFiQRCode.js:43 #: src/common/WiFiSettings/WiFiQRCode.js:44 -#, fuzzy msgid "Show QR code" -msgstr "WLAN QR-Code" +msgstr "QR-Code anzeigen" #: src/common/WiFiSettings/WiFiQRCode.js:70 msgid "Wi-Fi QR Code" @@ -297,7 +296,8 @@ msgstr "" #: src/common/WiFiSettings/constants.js:34 msgid "WPA2/3 pre-shared key, that is required to connect to the network." -msgstr "WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist." +msgstr "" +"WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist." #: src/common/WiFiSettings/constants.js:37 msgid "If set, network is not visible when scanning for available networks." @@ -307,55 +307,54 @@ msgstr "" #: src/common/WiFiSettings/constants.js:40 msgid "" -"The 2.4 GHz band is more widely supported by clients, but tends to have " -"more interference. The 5 GHz band is a newer standard and may not be " -"supported by all your devices. It usually has less interference, but the " -"signal does not carry so well indoors." +"The 2.4 GHz band is more widely supported by clients, but tends to have more " +"interference. The 5 GHz band is a newer standard and may not be supported by " +"all your devices. It usually has less interference, but the signal does not " +"carry so well indoors." msgstr "" -"Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell" -" stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer " -"Standard, der möglicherweise nicht von allen Ihren Geräten unterstützt " -"wird. Es hat in der Regel weniger Interferenzen, aber das Signal trägt " -"nicht so gut in Innenräumen." +"Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell " +"stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer Standard, " +"der möglicherweise nicht von allen Ihren Geräten unterstützt wird. Es hat in " +"der Regel weniger Interferenzen, aber das Signal trägt nicht so gut in " +"Innenräumen." #: src/common/WiFiSettings/constants.js:43 msgid "" -"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 " -"MHz wide channels can yield higher throughput but can cause more " -"interference in the network. If you don't know what to choose, use the " -"default option with 20 MHz wide channel." +"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 MHz " +"wide channels can yield higher throughput but can cause more interference in " +"the network. If you don't know what to choose, use the default option with " +"20 MHz wide channel." msgstr "" -"Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. " -"40 MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch" -" zu mehr Interferenzen im Netzwerk führen. Wenn Sie nicht wissen, was Sie" -" wählen sollen, verwenden Sie die Voreinstellung mit 20 MHz Kanalbreite." +"Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. 40 " +"MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch zu " +"mehr Interferenzen im Netzwerk führen. Wenn Sie nicht wissen, was Sie wählen " +"sollen, verwenden Sie die Voreinstellung mit 20 MHz Kanalbreite." #: src/common/WiFiSettings/constants.js:46 msgid "" "Enables Wi-Fi for guests, which is separated from LAN network. Devices " "connected to this network are allowed to access the internet, but aren't " "allowed to access other devices and the configuration interface of the " -"router. Parameters of the guest network can be set in the Guest network " -"tab." +"router. Parameters of the guest network can be set in the Guest network tab." msgstr "" -"Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. " -"Geräte, die mit diesem Netzwerk verbunden sind, dürfen auf das Internet " -"zugreifen, nicht jedoch auf andere Geräte oder die " -"Konfigurationsschnittstelle des Routers. Die Parameter des Gastnetzwerks " -"können auf der Gastnetzwerk-Registerkarte eingestellt werden." +"Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. Geräte, " +"die mit diesem Netzwerk verbunden sind, dürfen auf das Internet zugreifen, " +"nicht jedoch auf andere Geräte oder die Konfigurationsschnittstelle des " +"Routers. Die Parameter des Gastnetzwerks können auf der Gastnetzwerk-" +"Registerkarte eingestellt werden." #: src/common/WiFiSettings/constants.js:49 msgid "" -"The WPA3 standard is the new most secure encryption method that is " -"suggested to be used with any device that supports it. The older devices " -"without WPA3 support require older WPA2. If you experience issues with " -"connecting older devices, try to enable WPA2." +"The WPA3 standard is the new most secure encryption method that is suggested " +"to be used with any device that supports it. The older devices without WPA3 " +"support require older WPA2. If you experience issues with connecting older " +"devices, try to enable WPA2." msgstr "" "Der WPA3-Standard ist die neue Verschlüsselungsmethode mit der besten " "Sicherheit. Er empfiehlt sich für jedes Gerät, das ihn unterstützt, aber " -"ältere Geräte, bei denen das noch nicht der Fall ist, müssen auf das " -"ältere WPA2 ausweichen. Falls Sie Probleme dabei haben, ältere Geräte mit" -" dem WLAN zu verbinden, schalten Sie versuchsweise WPA2 ein." +"ältere Geräte, bei denen das noch nicht der Fall ist, müssen auf das ältere " +"WPA2 ausweichen. Falls Sie Probleme dabei haben, ältere Geräte mit dem WLAN " +"zu verbinden, schalten Sie versuchsweise WPA2 ein." #: src/form/components/ForisForm.js:121 msgid "Settings saved successfully" @@ -415,34 +414,25 @@ msgstr "Dies ist keine gültige MAC-Adresse." msgid "Doesn't contain a list of emails separated by commas." msgstr "Enthält keine Liste von E-Mails, die durch Kommas getrennt sind." -#~ msgid "An unknown error occurred. Check the console for more info." -#~ msgstr "" +#: src/common/RebootButton.js:27 +msgid "Reboot request failed." +msgstr "Neustart-Einleitung fehlgeschlagen." -#~ msgid "Reboot confirmation" -#~ msgstr "" +#: src/common/RebootButton.js:51 +msgid "Reboot" +msgstr "Systemneustart" + +#: src/common/RebootButton.js:66 +msgid "Warning!" +msgstr "Warnung!" + +#: src/common/RebootButton.js:68 +msgid "Are you sure you want to restart the router?" +msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?" + +#: src/common/RebootButton.js:73 +msgid "Confirm reboot" +msgstr "Neustart bestätigen" #~ msgid "Enable" #~ msgstr "Aktivieren" - -#~ msgid "" -#~ "\n" -#~ "If a number of wireless cards " -#~ "doesn't match, you may try to " -#~ "reset the Wi-Fi settings. Note " -#~ "that this will remove the\n" -#~ "current Wi-Fi configuration and restore the default values.\n" -#~ " " -#~ msgstr "" - -#~ msgid "Reboot request failed." -#~ msgstr "Neustart-Einleitung fehlgeschlagen." - -#~ msgid "Reboot" -#~ msgstr "Systemneustart" - -#~ msgid "Warning!" -#~ msgstr "Warnung!" - -#~ msgid "Are you sure you want to restart the router?" -#~ msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?" - From 53c7bb1a10a9de455118dd8fee3199f0c33d2a25 Mon Sep 17 00:00:00 2001 From: Pavel Borecki Date: Thu, 14 Nov 2024 13:25:12 +0000 Subject: [PATCH 06/18] Translated using Weblate (Czech) Currently translated at 100.0% (82 of 82 strings) Translation: Turris/Foris JS Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/cs/ --- translations/cs/LC_MESSAGES/forisjs.po | 62 +++++++++++++------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/translations/cs/LC_MESSAGES/forisjs.po b/translations/cs/LC_MESSAGES/forisjs.po index deb4e79..ad5ed54 100644 --- a/translations/cs/LC_MESSAGES/forisjs.po +++ b/translations/cs/LC_MESSAGES/forisjs.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-11-13 14:06+0100\n" -"PO-Revision-Date: 2024-09-25 10:15+0000\n" -"Last-Translator: Lukas Jelinek \n" +"PO-Revision-Date: 2024-11-15 06:01+0000\n" +"Last-Translator: Pavel Borecki \n" +"Language-Team: Czech \n" "Language: cs\n" -"Language-Team: Czech \n" -"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Generator: Weblate 5.9-dev\n" "Generated-By: Babel 2.16.0\n" #: src/api/utils.js:61 @@ -49,74 +50,72 @@ msgid "Copy" msgstr "Kopírovat" #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60 -#, fuzzy msgid "Action successful." -msgstr "Nastavení úspěšně uložena" +msgstr "Akce úspěšná." #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65 msgid "Action failed." -msgstr "" +msgstr "Akce se nezdařila." #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125 msgid "Cancel" msgstr "Zrušit" #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128 -#, fuzzy msgid "Confirm" -msgstr "Potvrdit restart" +msgstr "Potvrdit" #: src/common/RichTable/RichTableHeader.js:29 msgid "Sort ascending" -msgstr "" +msgstr "Seřadit vzestupně" #: src/common/RichTable/RichTableHeader.js:30 msgid "Sort descending" -msgstr "" +msgstr "Seřadit sestupně" #: src/common/RichTable/RichTableHeader.js:31 msgid "Clear sort" -msgstr "" +msgstr "Vyčistit řazení" #: src/common/RichTable/RichTablePagination.js:65 msgid "Pagination navigation bar" -msgstr "" +msgstr "Navigační pruh stránkování" #: src/common/RichTable/RichTablePagination.js:71 msgid "First page" -msgstr "" +msgstr "První stránka" #: src/common/RichTable/RichTablePagination.js:77 msgid "Previous page" -msgstr "" +msgstr "Předchozí stránka" #: src/common/RichTable/RichTablePagination.js:83 msgid "Next page" -msgstr "" +msgstr "Následující stránka" #: src/common/RichTable/RichTablePagination.js:89 msgid "Last page" -msgstr "" +msgstr "Poslední stránka" #: src/common/RichTable/RichTablePagination.js:95 msgid "Page" -msgstr "" +msgstr "Stránka" #: src/common/RichTable/RichTablePagination.js:98 msgid "of" -msgstr "" +msgstr "z" #: src/common/RichTable/RichTablePagination.js:106 msgid "Rows per page:" -msgstr "" +msgstr "Řádků na stránku:" #: src/common/RichTable/RichTablePagination.js:109 msgid "Select rows per page" -msgstr "" +msgstr "Vyberte řádky na stránku" #: src/common/RichTable/RichTablePagination.js:121 msgid "All" -msgstr "" +msgstr "Vše" #: src/common/WiFiSettings/ResetWiFiSettings.js:39 msgid "An error occurred during resetting Wi-Fi settings." @@ -137,9 +136,9 @@ msgid "" "Fi settings. Note that this will remove the current Wi-Fi configuration " "and restore the default values." msgstr "" -"Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit " -"nastavení Wi-Fi. Je třeba upozornit, že se tím odstraní aktuální " -"konfigurace Wi-Fi a obnoví se výchozí hodnoty." +"Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit nastavení " +"Wi-Fi. Je třeba upozornit, že se tím odstraní stávající nastavení Wi-Fi a " +"obnoví se výchozí hodnoty." #: src/common/WiFiSettings/WiFiForm.js:97 msgid "Wi-Fi ${deviceID + 1}" @@ -175,7 +174,7 @@ msgid "" "In case you have trouble connecting to WiFi Access Point, try disabling " "Management Frame Protection." msgstr "" -"Máte-li problémy při připojování k přístupovému bodu Wi-Fi, zkuste " +"Pokud máte problémy při připojování k přístupovému bodu Wi-Fi, zkuste " "vypnout Management Frame Protection." #: src/common/WiFiSettings/WiFiForm.js:262 @@ -226,7 +225,7 @@ msgstr "Je třeba, aby heslo obsahovalo alespoň 8 znaků" #: src/common/WiFiSettings/WiFiSettings.js:91 #: src/common/WiFiSettings/WiFiSettings.js:110 msgid "Password must not contain more than 63 symbols" -msgstr "Heslo nesmí obsahovat více než 63 znaků" +msgstr "Heslo nemůže obsahovat více než 63 znaků" #: src/common/WiFiSettings/constants.js:9 msgid "Disabled" @@ -363,11 +362,11 @@ msgstr "" #: src/form/components/SubmitButton.js:32 msgid "Updating" -msgstr "Aktualizuji" +msgstr "Aktualizuje se" #: src/form/components/SubmitButton.js:35 msgid "Load settings" -msgstr "Načítám nastavení" +msgstr "Načíst nastavení" #: src/form/components/SubmitButton.js:38 msgid "Save" @@ -399,7 +398,7 @@ msgstr "Toto není platné doménové jméno." #: src/utils/validations.js:18 msgid "This is not a valid DUID." -msgstr "Tohle není platné DUID." +msgstr "Toto není platné DUID." #: src/utils/validations.js:19 msgid "This is not a valid MAC address." @@ -446,4 +445,3 @@ msgstr "Neobsahuje seznam e-mailů oddělených čárkou." #~ msgid "Are you sure you want to restart the router?" #~ msgstr "Opravdu chcete router restartovat?" - From e8e81b36dc33e30b7c40dd0c9d88fb886cdc1e47 Mon Sep 17 00:00:00 2001 From: Moha684 Date: Tue, 3 Dec 2024 09:37:17 +0000 Subject: [PATCH 07/18] Translated using Weblate (French) Currently translated at 68.2% (56 of 82 strings) Translation: Turris/Foris JS Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/fr/ --- translations/fr/LC_MESSAGES/forisjs.po | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/translations/fr/LC_MESSAGES/forisjs.po b/translations/fr/LC_MESSAGES/forisjs.po index eaeca53..e9b5c84 100644 --- a/translations/fr/LC_MESSAGES/forisjs.po +++ b/translations/fr/LC_MESSAGES/forisjs.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-11-13 14:06+0100\n" -"PO-Revision-Date: 2024-07-27 01:09+0000\n" +"PO-Revision-Date: 2024-12-04 10:00+0000\n" "Last-Translator: Moha684 \n" +"Language-Team: French \n" "Language: fr\n" -"Language-Team: French \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.9-dev\n" "Generated-By: Babel 2.16.0\n" #: src/api/utils.js:61 @@ -38,7 +39,7 @@ msgstr "Une erreur d’API inconnue s’est produite." #: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101 #: src/common/WiFiSettings/WiFiQRCode.js:89 msgid "Close" -msgstr "" +msgstr "Fermer" #: src/bootstrap/CopyInput.js:56 msgid "Copied!" @@ -49,13 +50,12 @@ msgid "Copy" msgstr "Copier" #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60 -#, fuzzy msgid "Action successful." -msgstr "Paramètres enregistrés avec succès" +msgstr "Paramètres enregistrés avec succès." #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65 msgid "Action failed." -msgstr "" +msgstr "L'enregistrement des paramètres a échoué." #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125 msgid "Cancel" @@ -116,7 +116,7 @@ msgstr "" #: src/common/RichTable/RichTablePagination.js:121 msgid "All" -msgstr "" +msgstr "Tout" #: src/common/WiFiSettings/ResetWiFiSettings.js:39 msgid "An error occurred during resetting Wi-Fi settings." @@ -473,4 +473,3 @@ msgstr "" #~ msgid "Are you sure you want to restart the router?" #~ msgstr "Voulez-vous vraiment redémarrer le routeur ?" - From f1132c6b2254701901e268b8469fc025d9d25126 Mon Sep 17 00:00:00 2001 From: Aleksandr Gumroian Date: Thu, 12 Dec 2024 18:44:21 +0300 Subject: [PATCH 08/18] Enhance NumberInput component with keyboard & touch accessibility --- src/bootstrap/NumberInput.js | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/bootstrap/NumberInput.js b/src/bootstrap/NumberInput.js index 1a825a5..beaa22d 100644 --- a/src/bootstrap/NumberInput.js +++ b/src/bootstrap/NumberInput.js @@ -50,6 +50,20 @@ function NumberInput({ onChange, inlineText, value, ...props }) { -1 ); + function handleKeyDown(event, enableFunction) { + if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + enableFunction(true); + } + } + + function handleKeyUp(event, enableFunction) { + if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + enableFunction(false); + } + } + return ( {inlineText && ( @@ -60,7 +74,15 @@ function NumberInput({ onChange, inlineText, value, ...props }) { className="btn btn-outline-secondary" onMouseDown={() => enableIncrease(true)} onMouseUp={() => enableIncrease(false)} - aria-label="Increase" + onMouseLeave={() => enableIncrease(false)} + onTouchStart={() => enableIncrease(true)} + onTouchEnd={() => enableIncrease(false)} + onTouchCancel={() => enableIncrease(false)} + onKeyDown={(event) => handleKeyDown(event, enableIncrease)} + onKeyUp={(event) => handleKeyUp(event, enableIncrease)} + onBlur={() => enableIncrease(false)} + title={_("Increase value. Hint: Hold to increase faster.")} + aria-label={_("Increase value. Hint: Hold to increase faster.")} > @@ -69,7 +91,15 @@ function NumberInput({ onChange, inlineText, value, ...props }) { className="btn btn-outline-secondary" onMouseDown={() => enableDecrease(true)} onMouseUp={() => enableDecrease(false)} - aria-label="Decrease" + onMouseLeave={() => enableDecrease(false)} + onTouchStart={() => enableDecrease(true)} + onTouchEnd={() => enableDecrease(false)} + onTouchCancel={() => enableDecrease(false)} + onKeyDown={(event) => handleKeyDown(event, enableDecrease)} + onKeyUp={(event) => handleKeyUp(event, enableDecrease)} + onBlur={() => enableDecrease(false)} + title={_("Decrease value. Hint: Hold to decrease faster.")} + aria-label={_("Decrease value. Hint: Hold to decrease faster.")} > From c23616811a068a44d03266356312ad7fdd4990bd Mon Sep 17 00:00:00 2001 From: Aleksandr Gumroian Date: Thu, 12 Dec 2024 18:47:33 +0300 Subject: [PATCH 09/18] Fix tests --- .../__tests__/__snapshots__/NumberInput.test.js.snap | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bootstrap/__tests__/__snapshots__/NumberInput.test.js.snap b/src/bootstrap/__tests__/__snapshots__/NumberInput.test.js.snap index 306ab26..874e03f 100644 --- a/src/bootstrap/__tests__/__snapshots__/NumberInput.test.js.snap +++ b/src/bootstrap/__tests__/__snapshots__/NumberInput.test.js.snap @@ -20,8 +20,9 @@ exports[` Render number input 1`] = ` value="1" />