foris 6.5.0 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -88,18 +88,21 @@ export function Modal({ shown, setShown, scrollable, size, children }) {
88
88
  ModalHeader.propTypes = {
89
89
  setShown: PropTypes.func.isRequired,
90
90
  title: PropTypes.string.isRequired,
91
+ showCloseButton: PropTypes.bool,
91
92
  };
92
93
 
93
- export function ModalHeader({ setShown, title }) {
94
+ export function ModalHeader({ setShown, title, showCloseButton = true }) {
94
95
  return (
95
96
  <div className="modal-header">
96
97
  <h1 className="modal-title fs-5">{title}</h1>
97
- <button
98
- type="button"
99
- className="btn-close"
100
- onClick={() => setShown(false)}
101
- aria-label={_("Close")}
102
- />
98
+ {showCloseButton && (
99
+ <button
100
+ type="button"
101
+ className="btn-close"
102
+ onClick={() => setShown(false)}
103
+ aria-label={_("Close")}
104
+ />
105
+ )}
103
106
  </div>
104
107
  );
105
108
  }
@@ -50,6 +50,20 @@ function NumberInput({ onChange, inlineText, value, ...props }) {
50
50
  -1
51
51
  );
52
52
 
53
+ function handleKeyDown(event, enableFunction) {
54
+ if (event.key === "Enter" || event.key === " ") {
55
+ event.preventDefault();
56
+ enableFunction(true);
57
+ }
58
+ }
59
+
60
+ function handleKeyUp(event, enableFunction) {
61
+ if (event.key === "Enter" || event.key === " ") {
62
+ event.preventDefault();
63
+ enableFunction(false);
64
+ }
65
+ }
66
+
53
67
  return (
54
68
  <Input type="number" onChange={onChange} value={value} {...props}>
55
69
  {inlineText && (
@@ -60,7 +74,15 @@ function NumberInput({ onChange, inlineText, value, ...props }) {
60
74
  className="btn btn-outline-secondary"
61
75
  onMouseDown={() => enableIncrease(true)}
62
76
  onMouseUp={() => enableIncrease(false)}
63
- aria-label="Increase"
77
+ onMouseLeave={() => enableIncrease(false)}
78
+ onTouchStart={() => enableIncrease(true)}
79
+ onTouchEnd={() => enableIncrease(false)}
80
+ onTouchCancel={() => enableIncrease(false)}
81
+ onKeyDown={(event) => handleKeyDown(event, enableIncrease)}
82
+ onKeyUp={(event) => handleKeyUp(event, enableIncrease)}
83
+ onBlur={() => enableIncrease(false)}
84
+ title={_("Increase value. Hint: Hold to increase faster.")}
85
+ aria-label={_("Increase value. Hint: Hold to increase faster.")}
64
86
  >
65
87
  <FontAwesomeIcon icon={faPlus} />
66
88
  </button>
@@ -69,7 +91,15 @@ function NumberInput({ onChange, inlineText, value, ...props }) {
69
91
  className="btn btn-outline-secondary"
70
92
  onMouseDown={() => enableDecrease(true)}
71
93
  onMouseUp={() => enableDecrease(false)}
72
- aria-label="Decrease"
94
+ onMouseLeave={() => enableDecrease(false)}
95
+ onTouchStart={() => enableDecrease(true)}
96
+ onTouchEnd={() => enableDecrease(false)}
97
+ onTouchCancel={() => enableDecrease(false)}
98
+ onKeyDown={(event) => handleKeyDown(event, enableDecrease)}
99
+ onKeyUp={(event) => handleKeyUp(event, enableDecrease)}
100
+ onBlur={() => enableDecrease(false)}
101
+ title={_("Decrease value. Hint: Hold to decrease faster.")}
102
+ aria-label={_("Decrease value. Hint: Hold to decrease faster.")}
73
103
  >
74
104
  <FontAwesomeIcon icon={faMinus} />
75
105
  </button>
@@ -64,13 +64,15 @@ function RichTable({
64
64
  },
65
65
  });
66
66
 
67
+ const paginationIsNeeded = tableData.length > pageSize && withPagination;
68
+
67
69
  return (
68
70
  <div className="table-responsive">
69
71
  <table className="table table-hover text-nowrap">
70
72
  <RichTableHeader table={table} flexRender={flexRender} />
71
73
  <RichTableBody table={table} flexRender={flexRender} />
72
74
  </table>
73
- {withPagination && (
75
+ {paginationIsNeeded && (
74
76
  <RichTablePagination
75
77
  table={table}
76
78
  tablePageSize={pageSize}
@@ -9,7 +9,7 @@ import React from "react";
9
9
 
10
10
  import PropTypes from "prop-types";
11
11
 
12
- import { HELP_TEXTS, HTMODES, HWMODES, ENCRYPTIONMODES } from "./constants";
12
+ import { HELP_TEXTS, HTMODES, BANDS, ENCRYPTIONMODES } from "./constants";
13
13
  import WifiGuestForm from "./WiFiGuestForm";
14
14
  import WiFiQRCode from "./WiFiQRCode";
15
15
  import PasswordInput from "../../bootstrap/PasswordInput";
@@ -60,7 +60,7 @@ DeviceForm.propTypes = {
60
60
  SSID: PropTypes.string.isRequired,
61
61
  password: PropTypes.string.isRequired,
62
62
  hidden: PropTypes.bool.isRequired,
63
- hwmode: PropTypes.string.isRequired,
63
+ band: PropTypes.string.isRequired,
64
64
  htmode: PropTypes.string.isRequired,
65
65
  channel: PropTypes.string.isRequired,
66
66
  guest_wifi: PropTypes.object.isRequired,
@@ -155,26 +155,26 @@ function DeviceForm({
155
155
  />
156
156
 
157
157
  <RadioSet
158
- name={`hwmode-${deviceID}`}
159
- label="GHz"
160
- choices={getHwmodeChoices(formData)}
161
- value={formData.hwmode}
162
- helpText={HELP_TEXTS.hwmode}
158
+ name={`band-${deviceID}`}
159
+ label={_("Band")}
160
+ choices={getBandChoices(formData)}
161
+ value={formData.band}
162
+ helpText={HELP_TEXTS.band}
163
163
  inline
164
164
  onChange={setFormValue((value) => {
165
- // Get the last item in an array of available HT modes
166
- const [best2] = bnds[0].available_htmodes.slice(-1);
167
- const [best5] = bnds[1].available_htmodes.slice(-1);
165
+ // Find the selected band
166
+ const selectedBand = bnds.find(
167
+ (band) => band.band === value
168
+ );
169
+ // Get the last item in the available HT modes for the selected band
170
+ const bestHtmode =
171
+ selectedBand.available_htmodes.slice(-1)[0];
168
172
  return {
169
173
  devices: {
170
174
  [deviceIndex]: {
171
- hwmode: { $set: value },
175
+ band: { $set: value },
172
176
  channel: { $set: "0" },
173
- htmode: {
174
- $set:
175
- // Set HT mode depending on checked frequency
176
- value === "11a" ? best5 : best2,
177
- },
177
+ htmode: { $set: bestHtmode },
178
178
  },
179
179
  },
180
180
  };
@@ -263,7 +263,7 @@ function getChannelChoices(device) {
263
263
  };
264
264
 
265
265
  device.available_bands.forEach((availableBand) => {
266
- if (availableBand.hwmode !== device.hwmode) return;
266
+ if (availableBand.band !== device.band) return;
267
267
 
268
268
  availableBand.available_channels.forEach((availableChannel) => {
269
269
  channelChoices[availableChannel.number.toString()] = `
@@ -282,7 +282,7 @@ function getHtmodeChoices(device) {
282
282
  const htmodeChoices = {};
283
283
 
284
284
  device.available_bands.forEach((availableBand) => {
285
- if (availableBand.hwmode !== device.hwmode) return;
285
+ if (availableBand.band !== device.band) return;
286
286
 
287
287
  availableBand.available_htmodes.forEach((availableHtmod) => {
288
288
  htmodeChoices[availableHtmod] = HTMODES[availableHtmod];
@@ -291,10 +291,10 @@ function getHtmodeChoices(device) {
291
291
  return htmodeChoices;
292
292
  }
293
293
 
294
- function getHwmodeChoices(device) {
294
+ function getBandChoices(device) {
295
295
  return device.available_bands.map((availableBand) => ({
296
- label: HWMODES[availableBand.hwmode],
297
- value: availableBand.hwmode,
296
+ label: `${BANDS[availableBand.band]} GHz`,
297
+ value: availableBand.band,
298
298
  }));
299
299
  }
300
300
 
@@ -9,9 +9,10 @@ import React from "react";
9
9
 
10
10
  import PropTypes from "prop-types";
11
11
 
12
- import { HELP_TEXTS } from "./constants";
12
+ import { HELP_TEXTS, ENCRYPTIONMODES } from "./constants";
13
13
  import WiFiQRCode from "./WiFiQRCode";
14
14
  import PasswordInput from "../../bootstrap/PasswordInput";
15
+ import Select from "../../bootstrap/Select";
15
16
  import Switch from "../../bootstrap/Switch";
16
17
  import TextInput from "../../bootstrap/TextInput";
17
18
 
@@ -21,6 +22,7 @@ WifiGuestForm.propTypes = {
21
22
  SSID: PropTypes.string.isRequired,
22
23
  password: PropTypes.string.isRequired,
23
24
  enabled: PropTypes.bool.isRequired,
25
+ encryption: PropTypes.string.isRequired,
24
26
  }),
25
27
  formErrors: PropTypes.shape({
26
28
  SSID: PropTypes.string,
@@ -89,6 +91,20 @@ export default function WifiGuestForm({
89
91
  }))}
90
92
  {...props}
91
93
  />
94
+ <Select
95
+ label={_("Encryption")}
96
+ choices={ENCRYPTIONMODES}
97
+ helpText={HELP_TEXTS.wpa3}
98
+ value={formData.encryption}
99
+ onChange={setFormValue((value) => ({
100
+ devices: {
101
+ [formData.id]: {
102
+ guest_wifi: { encryption: { $set: value } },
103
+ },
104
+ },
105
+ }))}
106
+ {...props}
107
+ />
92
108
  </>
93
109
  ) : null}
94
110
  </>
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
2
+ * Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
3
3
  *
4
4
  * This is free software, licensed under the GNU General Public License v3.
5
5
  * See /LICENSE for more information.
@@ -12,15 +12,18 @@ export const HTMODES = {
12
12
  VHT20: _("802.11ac - 20 MHz wide channel"),
13
13
  VHT40: _("802.11ac - 40 MHz wide channel"),
14
14
  VHT80: _("802.11ac - 80 MHz wide channel"),
15
+ VHT80_80: _("802.11ac - 80+80 MHz wide channel"),
15
16
  VHT160: _("802.11ac - 160 MHz wide channel"),
16
17
  HE20: _("802.11ax - 20 MHz wide channel"),
17
18
  HE40: _("802.11ax - 40 MHz wide channel"),
18
19
  HE80: _("802.11ax - 80 MHz wide channel"),
20
+ HE80_80: _("802.11ax - 80+80 MHz wide channel"),
19
21
  HE160: _("802.11ax - 160 MHz wide channel"),
20
22
  };
21
- export const HWMODES = {
22
- "11g": "2.4",
23
- "11a": "5",
23
+ export const BANDS = {
24
+ "2g": "2.4",
25
+ "5g": "5",
26
+ "6g": "6",
24
27
  };
25
28
  export const ENCRYPTIONMODES = {
26
29
  WPA3: _("WPA3 only"),
@@ -37,7 +40,7 @@ export const HELP_TEXTS = {
37
40
  hidden: _(
38
41
  "If set, network is not visible when scanning for available networks."
39
42
  ),
40
- hwmode: _(
43
+ band: _(
41
44
  "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."
42
45
  ),
43
46
  htmode: _(
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foris",
3
- "version": "6.5.0",
3
+ "version": "6.6.0",
4
4
  "description": "Foris JS library is a set of components and utils for reForis application and plugins.",
5
5
  "author": "CZ.NIC, z.s.p.o.",
6
6
  "repository": {
@@ -8,15 +8,16 @@ msgstr ""
8
8
  "Project-Id-Version: PROJECT VERSION\n"
9
9
  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
10
  "POT-Creation-Date: 2024-11-13 14:06+0100\n"
11
- "PO-Revision-Date: 2024-09-25 10:15+0000\n"
12
- "Last-Translator: Lukas Jelinek <lukas.jelinek@nic.cz>\n"
11
+ "PO-Revision-Date: 2024-11-15 06:01+0000\n"
12
+ "Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
13
+ "Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-js/cs/"
14
+ ">\n"
13
15
  "Language: cs\n"
14
- "Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-"
15
- "js/cs/>\n"
16
- "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
17
16
  "MIME-Version: 1.0\n"
18
17
  "Content-Type: text/plain; charset=utf-8\n"
19
18
  "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
20
+ "X-Generator: Weblate 5.9-dev\n"
20
21
  "Generated-By: Babel 2.16.0\n"
21
22
 
22
23
  #: src/api/utils.js:61
@@ -49,74 +50,72 @@ msgid "Copy"
49
50
  msgstr "Kopírovat"
50
51
 
51
52
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
52
- #, fuzzy
53
53
  msgid "Action successful."
54
- msgstr "Nastavení úspěšně uložena"
54
+ msgstr "Akce úspěšná."
55
55
 
56
56
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
57
57
  msgid "Action failed."
58
- msgstr ""
58
+ msgstr "Akce se nezdařila."
59
59
 
60
60
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
61
61
  msgid "Cancel"
62
62
  msgstr "Zrušit"
63
63
 
64
64
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
65
- #, fuzzy
66
65
  msgid "Confirm"
67
- msgstr "Potvrdit restart"
66
+ msgstr "Potvrdit"
68
67
 
69
68
  #: src/common/RichTable/RichTableHeader.js:29
70
69
  msgid "Sort ascending"
71
- msgstr ""
70
+ msgstr "Seřadit vzestupně"
72
71
 
73
72
  #: src/common/RichTable/RichTableHeader.js:30
74
73
  msgid "Sort descending"
75
- msgstr ""
74
+ msgstr "Seřadit sestupně"
76
75
 
77
76
  #: src/common/RichTable/RichTableHeader.js:31
78
77
  msgid "Clear sort"
79
- msgstr ""
78
+ msgstr "Vyčistit řazení"
80
79
 
81
80
  #: src/common/RichTable/RichTablePagination.js:65
82
81
  msgid "Pagination navigation bar"
83
- msgstr ""
82
+ msgstr "Navigační pruh stránkování"
84
83
 
85
84
  #: src/common/RichTable/RichTablePagination.js:71
86
85
  msgid "First page"
87
- msgstr ""
86
+ msgstr "První stránka"
88
87
 
89
88
  #: src/common/RichTable/RichTablePagination.js:77
90
89
  msgid "Previous page"
91
- msgstr ""
90
+ msgstr "Předchozí stránka"
92
91
 
93
92
  #: src/common/RichTable/RichTablePagination.js:83
94
93
  msgid "Next page"
95
- msgstr ""
94
+ msgstr "Následující stránka"
96
95
 
97
96
  #: src/common/RichTable/RichTablePagination.js:89
98
97
  msgid "Last page"
99
- msgstr ""
98
+ msgstr "Poslední stránka"
100
99
 
101
100
  #: src/common/RichTable/RichTablePagination.js:95
102
101
  msgid "Page"
103
- msgstr ""
102
+ msgstr "Stránka"
104
103
 
105
104
  #: src/common/RichTable/RichTablePagination.js:98
106
105
  msgid "of"
107
- msgstr ""
106
+ msgstr "z"
108
107
 
109
108
  #: src/common/RichTable/RichTablePagination.js:106
110
109
  msgid "Rows per page:"
111
- msgstr ""
110
+ msgstr "Řádků na stránku:"
112
111
 
113
112
  #: src/common/RichTable/RichTablePagination.js:109
114
113
  msgid "Select rows per page"
115
- msgstr ""
114
+ msgstr "Vyberte řádky na stránku"
116
115
 
117
116
  #: src/common/RichTable/RichTablePagination.js:121
118
117
  msgid "All"
119
- msgstr ""
118
+ msgstr "Vše"
120
119
 
121
120
  #: src/common/WiFiSettings/ResetWiFiSettings.js:39
122
121
  msgid "An error occurred during resetting Wi-Fi settings."
@@ -137,9 +136,9 @@ msgid ""
137
136
  "Fi settings. Note that this will remove the current Wi-Fi configuration "
138
137
  "and restore the default values."
139
138
  msgstr ""
140
- "Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit "
141
- "nastavení Wi-Fi. Je třeba upozornit, že se tím odstraní aktuální "
142
- "konfigurace Wi-Fi a obnoví se výchozí hodnoty."
139
+ "Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit nastavení "
140
+ "Wi-Fi. Je třeba upozornit, že se tím odstraní stávající nastavení Wi-Fi a "
141
+ "obnoví se výchozí hodnoty."
143
142
 
144
143
  #: src/common/WiFiSettings/WiFiForm.js:97
145
144
  msgid "Wi-Fi ${deviceID + 1}"
@@ -175,7 +174,7 @@ msgid ""
175
174
  "In case you have trouble connecting to WiFi Access Point, try disabling "
176
175
  "Management Frame Protection."
177
176
  msgstr ""
178
- "Máte-li problémy při připojování k přístupovému bodu Wi-Fi, zkuste "
177
+ "Pokud máte problémy při připojování k přístupovému bodu Wi-Fi, zkuste "
179
178
  "vypnout Management Frame Protection."
180
179
 
181
180
  #: src/common/WiFiSettings/WiFiForm.js:262
@@ -226,7 +225,7 @@ msgstr "Je třeba, aby heslo obsahovalo alespoň 8 znaků"
226
225
  #: src/common/WiFiSettings/WiFiSettings.js:91
227
226
  #: src/common/WiFiSettings/WiFiSettings.js:110
228
227
  msgid "Password must not contain more than 63 symbols"
229
- msgstr "Heslo nesmí obsahovat více než 63 znaků"
228
+ msgstr "Heslo nemůže obsahovat více než 63 znaků"
230
229
 
231
230
  #: src/common/WiFiSettings/constants.js:9
232
231
  msgid "Disabled"
@@ -363,11 +362,11 @@ msgstr ""
363
362
 
364
363
  #: src/form/components/SubmitButton.js:32
365
364
  msgid "Updating"
366
- msgstr "Aktualizuji"
365
+ msgstr "Aktualizuje se"
367
366
 
368
367
  #: src/form/components/SubmitButton.js:35
369
368
  msgid "Load settings"
370
- msgstr "Načítám nastavení"
369
+ msgstr "Načíst nastavení"
371
370
 
372
371
  #: src/form/components/SubmitButton.js:38
373
372
  msgid "Save"
@@ -399,7 +398,7 @@ msgstr "Toto není platné doménové jméno."
399
398
 
400
399
  #: src/utils/validations.js:18
401
400
  msgid "This is not a valid DUID."
402
- msgstr "Tohle není platné DUID."
401
+ msgstr "Toto není platné DUID."
403
402
 
404
403
  #: src/utils/validations.js:19
405
404
  msgid "This is not a valid MAC address."
@@ -446,4 +445,3 @@ msgstr "Neobsahuje seznam e-mailů oddělených čárkou."
446
445
 
447
446
  #~ msgid "Are you sure you want to restart the router?"
448
447
  #~ msgstr "Opravdu chcete router restartovat?"
449
-
@@ -11,8 +11,8 @@ msgstr ""
11
11
  "PO-Revision-Date: 2024-01-04 21:08+0000\n"
12
12
  "Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n"
13
13
  "Language: de\n"
14
- "Language-Team: German <https://hosted.weblate.org/projects/turris/foris-"
15
- "js/de/>\n"
14
+ "Language-Team: German <https://hosted.weblate.org/projects/turris/foris-js/"
15
+ "de/>\n"
16
16
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
17
  "MIME-Version: 1.0\n"
18
18
  "Content-Type: text/plain; charset=utf-8\n"
@@ -35,16 +35,16 @@ msgstr "Keine Antwort erhalten."
35
35
  msgid "An unknown API error occurred."
36
36
  msgstr "Ein unbekannter API-Fehler ist aufgetreten."
37
37
 
38
- #: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
38
+ #: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
39
39
  #: src/common/WiFiSettings/WiFiQRCode.js:89
40
40
  msgid "Close"
41
- msgstr ""
41
+ msgstr "Schließen"
42
42
 
43
- #: src/bootstrap/CopyInput.js:56
43
+ #: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57
44
44
  msgid "Copied!"
45
45
  msgstr "Kopiert!"
46
46
 
47
- #: src/bootstrap/CopyInput.js:56
47
+ #: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57
48
48
  msgid "Copy"
49
49
  msgstr "Kopieren"
50
50
 
@@ -58,6 +58,7 @@ msgid "Action failed."
58
58
  msgstr ""
59
59
 
60
60
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
61
+ #: src/common/RebootButton.js:71
61
62
  msgid "Cancel"
62
63
  msgstr "Abbrechen"
63
64
 
@@ -121,8 +122,7 @@ msgstr ""
121
122
  #: src/common/WiFiSettings/ResetWiFiSettings.js:39
122
123
  msgid "An error occurred during resetting Wi-Fi settings."
123
124
  msgstr ""
124
- "Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen "
125
- "aufgetreten."
125
+ "Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen aufgetreten."
126
126
 
127
127
  #: src/common/WiFiSettings/ResetWiFiSettings.js:42
128
128
  msgid "Wi-Fi settings are set to defaults."
@@ -135,13 +135,13 @@ msgstr "WLAN-Einstellungen zurücksetzen"
135
135
 
136
136
  #: src/common/WiFiSettings/ResetWiFiSettings.js:58
137
137
  msgid ""
138
- "If a number of wireless cards doesn't match, you may try to reset the Wi-"
139
- "Fi settings. Note that this will remove the current Wi-Fi configuration "
140
- "and restore the default values."
138
+ "If a number of wireless cards doesn't match, you may try to reset the Wi-Fi "
139
+ "settings. Note that this will remove the current Wi-Fi configuration and "
140
+ "restore the default values."
141
141
  msgstr ""
142
- "Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die"
143
- " WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle"
144
- " WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird."
142
+ "Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die "
143
+ "WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle "
144
+ "WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird."
145
145
 
146
146
  #: src/common/WiFiSettings/WiFiForm.js:97
147
147
  msgid "Wi-Fi ${deviceID + 1}"
@@ -177,8 +177,8 @@ msgid ""
177
177
  "In case you have trouble connecting to WiFi Access Point, try disabling "
178
178
  "Management Frame Protection."
179
179
  msgstr ""
180
- "Falls Sie beim Verbinden mit dem WiFi-Access-Point Probleme haben, "
181
- "schalten Sie testweise die Management Frame Protection ab."
180
+ "Falls Sie beim Verbinden mit dem WiFi-Access-Point Probleme haben, schalten "
181
+ "Sie testweise die Management Frame Protection ab."
182
182
 
183
183
  #: src/common/WiFiSettings/WiFiForm.js:262
184
184
  msgid "auto"
@@ -194,9 +194,8 @@ msgstr "Gast-WLAN aktivieren"
194
194
 
195
195
  #: src/common/WiFiSettings/WiFiQRCode.js:43
196
196
  #: src/common/WiFiSettings/WiFiQRCode.js:44
197
- #, fuzzy
198
197
  msgid "Show QR code"
199
- msgstr "WLAN QR-Code"
198
+ msgstr "QR-Code anzeigen"
200
199
 
201
200
  #: src/common/WiFiSettings/WiFiQRCode.js:70
202
201
  msgid "Wi-Fi QR Code"
@@ -297,7 +296,8 @@ msgstr ""
297
296
 
298
297
  #: src/common/WiFiSettings/constants.js:34
299
298
  msgid "WPA2/3 pre-shared key, that is required to connect to the network."
300
- msgstr "WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist."
299
+ msgstr ""
300
+ "WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist."
301
301
 
302
302
  #: src/common/WiFiSettings/constants.js:37
303
303
  msgid "If set, network is not visible when scanning for available networks."
@@ -307,55 +307,54 @@ msgstr ""
307
307
 
308
308
  #: src/common/WiFiSettings/constants.js:40
309
309
  msgid ""
310
- "The 2.4 GHz band is more widely supported by clients, but tends to have "
311
- "more interference. The 5 GHz band is a newer standard and may not be "
312
- "supported by all your devices. It usually has less interference, but the "
313
- "signal does not carry so well indoors."
310
+ "The 2.4 GHz band is more widely supported by clients, but tends to have more "
311
+ "interference. The 5 GHz band is a newer standard and may not be supported by "
312
+ "all your devices. It usually has less interference, but the signal does not "
313
+ "carry so well indoors."
314
314
  msgstr ""
315
- "Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell"
316
- " stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer "
317
- "Standard, der möglicherweise nicht von allen Ihren Geräten unterstützt "
318
- "wird. Es hat in der Regel weniger Interferenzen, aber das Signal trägt "
319
- "nicht so gut in Innenräumen."
315
+ "Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell "
316
+ "stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer Standard, "
317
+ "der möglicherweise nicht von allen Ihren Geräten unterstützt wird. Es hat in "
318
+ "der Regel weniger Interferenzen, aber das Signal trägt nicht so gut in "
319
+ "Innenräumen."
320
320
 
321
321
  #: src/common/WiFiSettings/constants.js:43
322
322
  msgid ""
323
- "Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
324
- "MHz wide channels can yield higher throughput but can cause more "
325
- "interference in the network. If you don't know what to choose, use the "
326
- "default option with 20 MHz wide channel."
323
+ "Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 MHz "
324
+ "wide channels can yield higher throughput but can cause more interference in "
325
+ "the network. If you don't know what to choose, use the default option with "
326
+ "20 MHz wide channel."
327
327
  msgstr ""
328
- "Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. "
329
- "40 MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch"
330
- " zu mehr Interferenzen im Netzwerk führen. Wenn Sie nicht wissen, was Sie"
331
- " wählen sollen, verwenden Sie die Voreinstellung mit 20 MHz Kanalbreite."
328
+ "Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. 40 "
329
+ "MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch zu "
330
+ "mehr Interferenzen im Netzwerk führen. Wenn Sie nicht wissen, was Sie wählen "
331
+ "sollen, verwenden Sie die Voreinstellung mit 20 MHz Kanalbreite."
332
332
 
333
333
  #: src/common/WiFiSettings/constants.js:46
334
334
  msgid ""
335
335
  "Enables Wi-Fi for guests, which is separated from LAN network. Devices "
336
336
  "connected to this network are allowed to access the internet, but aren't "
337
337
  "allowed to access other devices and the configuration interface of the "
338
- "router. Parameters of the guest network can be set in the Guest network "
339
- "tab."
338
+ "router. Parameters of the guest network can be set in the Guest network tab."
340
339
  msgstr ""
341
- "Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. "
342
- "Geräte, die mit diesem Netzwerk verbunden sind, dürfen auf das Internet "
343
- "zugreifen, nicht jedoch auf andere Geräte oder die "
344
- "Konfigurationsschnittstelle des Routers. Die Parameter des Gastnetzwerks "
345
- "können auf der Gastnetzwerk-Registerkarte eingestellt werden."
340
+ "Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. Geräte, "
341
+ "die mit diesem Netzwerk verbunden sind, dürfen auf das Internet zugreifen, "
342
+ "nicht jedoch auf andere Geräte oder die Konfigurationsschnittstelle des "
343
+ "Routers. Die Parameter des Gastnetzwerks können auf der Gastnetzwerk-"
344
+ "Registerkarte eingestellt werden."
346
345
 
347
346
  #: src/common/WiFiSettings/constants.js:49
348
347
  msgid ""
349
- "The WPA3 standard is the new most secure encryption method that is "
350
- "suggested to be used with any device that supports it. The older devices "
351
- "without WPA3 support require older WPA2. If you experience issues with "
352
- "connecting older devices, try to enable WPA2."
348
+ "The WPA3 standard is the new most secure encryption method that is suggested "
349
+ "to be used with any device that supports it. The older devices without WPA3 "
350
+ "support require older WPA2. If you experience issues with connecting older "
351
+ "devices, try to enable WPA2."
353
352
  msgstr ""
354
353
  "Der WPA3-Standard ist die neue Verschlüsselungsmethode mit der besten "
355
354
  "Sicherheit. Er empfiehlt sich für jedes Gerät, das ihn unterstützt, aber "
356
- "ältere Geräte, bei denen das noch nicht der Fall ist, müssen auf das "
357
- "ältere WPA2 ausweichen. Falls Sie Probleme dabei haben, ältere Geräte mit"
358
- " dem WLAN zu verbinden, schalten Sie versuchsweise WPA2 ein."
355
+ "ältere Geräte, bei denen das noch nicht der Fall ist, müssen auf das ältere "
356
+ "WPA2 ausweichen. Falls Sie Probleme dabei haben, ältere Geräte mit dem WLAN "
357
+ "zu verbinden, schalten Sie versuchsweise WPA2 ein."
359
358
 
360
359
  #: src/form/components/ForisForm.js:121
361
360
  msgid "Settings saved successfully"
@@ -415,34 +414,25 @@ msgstr "Dies ist keine gültige MAC-Adresse."
415
414
  msgid "Doesn't contain a list of emails separated by commas."
416
415
  msgstr "Enthält keine Liste von E-Mails, die durch Kommas getrennt sind."
417
416
 
418
- #~ msgid "An unknown error occurred. Check the console for more info."
419
- #~ msgstr ""
420
-
421
- #~ msgid "Reboot confirmation"
422
- #~ msgstr ""
423
-
424
- #~ msgid "Enable"
425
- #~ msgstr "Aktivieren"
426
-
427
- #~ msgid ""
428
- #~ "\n"
429
- #~ "If a number of wireless cards "
430
- #~ "doesn't match, you may try to "
431
- #~ "reset the Wi-Fi settings. Note "
432
- #~ "that this will remove the\n"
433
- #~ "current Wi-Fi configuration and restore the default values.\n"
434
- #~ " "
435
- #~ msgstr ""
417
+ #: src/common/RebootButton.js:27
418
+ msgid "Reboot request failed."
419
+ msgstr "Neustart-Einleitung fehlgeschlagen."
436
420
 
437
- #~ msgid "Reboot request failed."
438
- #~ msgstr "Neustart-Einleitung fehlgeschlagen."
421
+ #: src/common/RebootButton.js:51
422
+ msgid "Reboot"
423
+ msgstr "Systemneustart"
439
424
 
440
- #~ msgid "Reboot"
441
- #~ msgstr "Systemneustart"
425
+ #: src/common/RebootButton.js:66
426
+ msgid "Warning!"
427
+ msgstr "Warnung!"
442
428
 
443
- #~ msgid "Warning!"
444
- #~ msgstr "Warnung!"
429
+ #: src/common/RebootButton.js:68
430
+ msgid "Are you sure you want to restart the router?"
431
+ msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
445
432
 
446
- #~ msgid "Are you sure you want to restart the router?"
447
- #~ msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
433
+ #: src/common/RebootButton.js:73
434
+ msgid "Confirm reboot"
435
+ msgstr "Neustart bestätigen"
448
436
 
437
+ #~ msgid "Enable"
438
+ #~ msgstr "Aktivieren"
@@ -8,15 +8,16 @@ msgstr ""
8
8
  "Project-Id-Version: PROJECT VERSION\n"
9
9
  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
10
  "POT-Creation-Date: 2024-11-13 14:06+0100\n"
11
- "PO-Revision-Date: 2021-02-09 16:50+0000\n"
12
- "Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
11
+ "PO-Revision-Date: 2025-01-18 11:00+0000\n"
12
+ "Last-Translator: Thanasis <thanasakis11mail@gmail.com>\n"
13
+ "Language-Team: Greek <https://hosted.weblate.org/projects/turris/foris-js/el/"
14
+ ">\n"
13
15
  "Language: el\n"
14
- "Language-Team: Greek <https://hosted.weblate.org/projects/turris/foris-"
15
- "js/el/>\n"
16
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
16
  "MIME-Version: 1.0\n"
18
17
  "Content-Type: text/plain; charset=utf-8\n"
19
18
  "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
20
+ "X-Generator: Weblate 5.10-dev\n"
20
21
  "Generated-By: Babel 2.16.0\n"
21
22
 
22
23
  #: src/api/utils.js:61
@@ -38,7 +39,7 @@ msgstr ""
38
39
  #: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
39
40
  #: src/common/WiFiSettings/WiFiQRCode.js:89
40
41
  msgid "Close"
41
- msgstr ""
42
+ msgstr "Κλείσιμο"
42
43
 
43
44
  #: src/bootstrap/CopyInput.js:56
44
45
  msgid "Copied!"
@@ -179,7 +180,7 @@ msgstr ""
179
180
 
180
181
  #: src/common/WiFiSettings/WiFiForm.js:303
181
182
  msgid "Custom"
182
- msgstr ""
183
+ msgstr "Προσαρμοσμένο"
183
184
 
184
185
  #: src/common/WiFiSettings/WiFiGuestForm.js:43
185
186
  msgid "Enable Guest Wi-Fi"
@@ -225,7 +226,7 @@ msgstr ""
225
226
 
226
227
  #: src/common/WiFiSettings/constants.js:9
227
228
  msgid "Disabled"
228
- msgstr ""
229
+ msgstr "Απενεργοποιημένο"
229
230
 
230
231
  #: src/common/WiFiSettings/constants.js:10
231
232
  msgid "802.11n - 20 MHz wide channel"
@@ -483,4 +484,3 @@ msgstr ""
483
484
 
484
485
  #~ msgid "Are you sure you want to restart the router?"
485
486
  #~ msgstr "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του δρομολογητή;"
486
-
@@ -8,15 +8,16 @@ msgstr ""
8
8
  "Project-Id-Version: PROJECT VERSION\n"
9
9
  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
10
  "POT-Creation-Date: 2024-11-13 14:06+0100\n"
11
- "PO-Revision-Date: 2024-07-27 01:09+0000\n"
12
- "Last-Translator: Moha684 <nahil82466@gmail.com>\n"
11
+ "PO-Revision-Date: 2024-12-14 10:00+0000\n"
12
+ "Last-Translator: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>\n"
13
+ "Language-Team: French <https://hosted.weblate.org/projects/turris/foris-js/"
14
+ "fr/>\n"
13
15
  "Language: fr\n"
14
- "Language-Team: French <https://hosted.weblate.org/projects/turris/foris-"
15
- "js/fr/>\n"
16
- "Plural-Forms: nplurals=2; plural=n > 1;\n"
17
16
  "MIME-Version: 1.0\n"
18
17
  "Content-Type: text/plain; charset=utf-8\n"
19
18
  "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=2; plural=n > 1;\n"
20
+ "X-Generator: Weblate 5.9-rc\n"
20
21
  "Generated-By: Babel 2.16.0\n"
21
22
 
22
23
  #: src/api/utils.js:61
@@ -38,7 +39,7 @@ msgstr "Une erreur d’API inconnue s’est produite."
38
39
  #: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
39
40
  #: src/common/WiFiSettings/WiFiQRCode.js:89
40
41
  msgid "Close"
41
- msgstr ""
42
+ msgstr "Fermer"
42
43
 
43
44
  #: src/bootstrap/CopyInput.js:56
44
45
  msgid "Copied!"
@@ -49,13 +50,12 @@ msgid "Copy"
49
50
  msgstr "Copier"
50
51
 
51
52
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
52
- #, fuzzy
53
53
  msgid "Action successful."
54
- msgstr "Paramètres enregistrés avec succès"
54
+ msgstr "Paramètres enregistrés avec succès."
55
55
 
56
56
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
57
57
  msgid "Action failed."
58
- msgstr ""
58
+ msgstr "L'enregistrement des paramètres a échoué."
59
59
 
60
60
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
61
61
  msgid "Cancel"
@@ -84,39 +84,39 @@ msgstr ""
84
84
 
85
85
  #: src/common/RichTable/RichTablePagination.js:71
86
86
  msgid "First page"
87
- msgstr ""
87
+ msgstr "Première page"
88
88
 
89
89
  #: src/common/RichTable/RichTablePagination.js:77
90
90
  msgid "Previous page"
91
- msgstr ""
91
+ msgstr "Page précédente"
92
92
 
93
93
  #: src/common/RichTable/RichTablePagination.js:83
94
94
  msgid "Next page"
95
- msgstr ""
95
+ msgstr "Page suivante"
96
96
 
97
97
  #: src/common/RichTable/RichTablePagination.js:89
98
98
  msgid "Last page"
99
- msgstr ""
99
+ msgstr "Dernière page"
100
100
 
101
101
  #: src/common/RichTable/RichTablePagination.js:95
102
102
  msgid "Page"
103
- msgstr ""
103
+ msgstr "Page"
104
104
 
105
105
  #: src/common/RichTable/RichTablePagination.js:98
106
106
  msgid "of"
107
- msgstr ""
107
+ msgstr "de"
108
108
 
109
109
  #: src/common/RichTable/RichTablePagination.js:106
110
110
  msgid "Rows per page:"
111
- msgstr ""
111
+ msgstr "Lignes par page :"
112
112
 
113
113
  #: src/common/RichTable/RichTablePagination.js:109
114
114
  msgid "Select rows per page"
115
- msgstr ""
115
+ msgstr "Sélectionnez les lignes par page"
116
116
 
117
117
  #: src/common/RichTable/RichTablePagination.js:121
118
118
  msgid "All"
119
- msgstr ""
119
+ msgstr "Tout"
120
120
 
121
121
  #: src/common/WiFiSettings/ResetWiFiSettings.js:39
122
122
  msgid "An error occurred during resetting Wi-Fi settings."
@@ -473,4 +473,3 @@ msgstr ""
473
473
 
474
474
  #~ msgid "Are you sure you want to restart the router?"
475
475
  #~ msgstr "Voulez-vous vraiment redémarrer le routeur ?"
476
-
@@ -8,15 +8,16 @@ msgstr ""
8
8
  "Project-Id-Version: PROJECT VERSION\n"
9
9
  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
10
  "POT-Creation-Date: 2024-11-13 14:06+0100\n"
11
- "PO-Revision-Date: 2024-09-09 18:09+0000\n"
11
+ "PO-Revision-Date: 2024-12-14 10:00+0000\n"
12
12
  "Last-Translator: Atec <dr.atec@gmail.com>\n"
13
+ "Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-js/"
14
+ "sk/>\n"
13
15
  "Language: sk\n"
14
- "Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-"
15
- "js/sk/>\n"
16
- "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
17
16
  "MIME-Version: 1.0\n"
18
17
  "Content-Type: text/plain; charset=utf-8\n"
19
18
  "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
20
+ "X-Generator: Weblate 5.9-rc\n"
20
21
  "Generated-By: Babel 2.16.0\n"
21
22
 
22
23
  #: src/api/utils.js:61
@@ -49,74 +50,72 @@ msgid "Copy"
49
50
  msgstr "Kopírovať"
50
51
 
51
52
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
52
- #, fuzzy
53
53
  msgid "Action successful."
54
- msgstr "Nastavenia boli úspešne uložené"
54
+ msgstr "Akcia úspešná."
55
55
 
56
56
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
57
57
  msgid "Action failed."
58
- msgstr ""
58
+ msgstr "Akcia neúspešná."
59
59
 
60
60
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
61
61
  msgid "Cancel"
62
62
  msgstr "Zrušiť"
63
63
 
64
64
  #: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
65
- #, fuzzy
66
65
  msgid "Confirm"
67
- msgstr "Potvrdiť reštart"
66
+ msgstr "Potvrdiť"
68
67
 
69
68
  #: src/common/RichTable/RichTableHeader.js:29
70
69
  msgid "Sort ascending"
71
- msgstr ""
70
+ msgstr "Zoradiť vzostupne"
72
71
 
73
72
  #: src/common/RichTable/RichTableHeader.js:30
74
73
  msgid "Sort descending"
75
- msgstr ""
74
+ msgstr "Zoradiť zostupne"
76
75
 
77
76
  #: src/common/RichTable/RichTableHeader.js:31
78
77
  msgid "Clear sort"
79
- msgstr ""
78
+ msgstr "Vymazať zoradenie"
80
79
 
81
80
  #: src/common/RichTable/RichTablePagination.js:65
82
81
  msgid "Pagination navigation bar"
83
- msgstr ""
82
+ msgstr "Navigačný pás stránkovania"
84
83
 
85
84
  #: src/common/RichTable/RichTablePagination.js:71
86
85
  msgid "First page"
87
- msgstr ""
86
+ msgstr "Prvá strana"
88
87
 
89
88
  #: src/common/RichTable/RichTablePagination.js:77
90
89
  msgid "Previous page"
91
- msgstr ""
90
+ msgstr "Predchádzajúca strana"
92
91
 
93
92
  #: src/common/RichTable/RichTablePagination.js:83
94
93
  msgid "Next page"
95
- msgstr ""
94
+ msgstr "Nasledujúca strana"
96
95
 
97
96
  #: src/common/RichTable/RichTablePagination.js:89
98
97
  msgid "Last page"
99
- msgstr ""
98
+ msgstr "Posledná strana"
100
99
 
101
100
  #: src/common/RichTable/RichTablePagination.js:95
102
101
  msgid "Page"
103
- msgstr ""
102
+ msgstr "Strana"
104
103
 
105
104
  #: src/common/RichTable/RichTablePagination.js:98
106
105
  msgid "of"
107
- msgstr ""
106
+ msgstr "z"
108
107
 
109
108
  #: src/common/RichTable/RichTablePagination.js:106
110
109
  msgid "Rows per page:"
111
- msgstr ""
110
+ msgstr "Počet riadkov na stranu:"
112
111
 
113
112
  #: src/common/RichTable/RichTablePagination.js:109
114
113
  msgid "Select rows per page"
115
- msgstr ""
114
+ msgstr "Vyberte počet riadkov na stranu"
116
115
 
117
116
  #: src/common/RichTable/RichTablePagination.js:121
118
117
  msgid "All"
119
- msgstr ""
118
+ msgstr "Všetky"
120
119
 
121
120
  #: src/common/WiFiSettings/ResetWiFiSettings.js:39
122
121
  msgid "An error occurred during resetting Wi-Fi settings."
@@ -447,4 +446,3 @@ msgstr "Neobsahuje zoznam e-mailov oddelených čiarkami."
447
446
 
448
447
  #~ msgid "Are you sure you want to restart the router?"
449
448
  #~ msgstr "Naozaj sa má router reštartovať?"
450
-
@@ -38,6 +38,8 @@ export const ForisURLs = {
38
38
  overview: "/overview",
39
39
  notifications: "/overview#notifications",
40
40
  notificationsSettings: "/administration/notifications-settings",
41
+ wifiSettings: "/network-settings/wifi",
42
+ lanSettings: "/network-settings/lan",
41
43
 
42
44
  approveUpdates: "/package-management/updates",
43
45
  languages: "/package-management/languages",
package/foris-6.5.0.tgz DELETED
Binary file