@eifi1/ui-kit 0.17.0 → 0.19.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.
- package/README.md +83 -4
- package/dist/chart.d.ts +13 -1
- package/dist/components/account-chips.d.ts +153 -0
- package/dist/components/account-chips.js +135 -0
- package/dist/components/account-chips.js.map +1 -0
- package/dist/components/account-settings-labels.d.ts +10 -2
- package/dist/components/account-settings-labels.js +3 -0
- package/dist/components/account-settings-labels.js.map +1 -1
- package/dist/components/amount-input.d.ts +13 -1
- package/dist/components/button-group.d.ts +13 -1
- package/dist/components/calculator.d.ts +13 -1
- package/dist/components/chip.d.ts +25 -1
- package/dist/components/chip.js +143 -6
- package/dist/components/chip.js.map +1 -1
- package/dist/components/confirm-dialog.d.ts +42 -1
- package/dist/components/confirm-dialog.js +36 -5
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/copy-button.d.ts +13 -1
- package/dist/components/danger-confirm.d.ts +55 -4
- package/dist/components/danger-confirm.js +67 -30
- package/dist/components/danger-confirm.js.map +1 -1
- package/dist/components/data-table-cells.d.ts +1 -1
- package/dist/components/data-table-filter-popover.d.ts +1 -1
- package/dist/components/data-table-filters.d.ts +1 -1
- package/dist/components/data-table.d.ts +1 -1
- package/dist/components/data-table.js +2 -0
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/facing-pair.d.ts +13 -1
- package/dist/components/file-button.d.ts +13 -1
- package/dist/components/file-dropzone.d.ts +13 -1
- package/dist/components/floating-panel.d.ts +4 -1
- package/dist/components/floating-panel.js +15 -1
- package/dist/components/floating-panel.js.map +1 -1
- package/dist/components/form-actions.d.ts +13 -1
- package/dist/components/form-actions.js +3 -0
- package/dist/components/form-actions.js.map +1 -1
- package/dist/components/legal.d.ts +84 -0
- package/dist/components/legal.js +55 -0
- package/dist/components/legal.js.map +1 -0
- package/dist/components/money-field.d.ts +13 -1
- package/dist/components/number-field.d.ts +14 -2
- package/dist/components/number-field.js +23 -22
- package/dist/components/number-field.js.map +1 -1
- package/dist/components/number-input.d.ts +13 -1
- package/dist/components/numpad-sheet.d.ts +13 -1
- package/dist/components/passkeys-setting.d.ts +27 -1
- package/dist/components/passkeys-setting.js +31 -5
- package/dist/components/passkeys-setting.js.map +1 -1
- package/dist/components/progress-bar.d.ts +15 -1
- package/dist/components/progress-bar.js +8 -1
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/reauth-dialog.d.ts +90 -0
- package/dist/components/reauth-dialog.js +158 -0
- package/dist/components/reauth-dialog.js.map +1 -0
- package/dist/components/series-chart.d.ts +13 -1
- package/dist/components/server-wake.d.ts +60 -0
- package/dist/components/server-wake.js +79 -0
- package/dist/components/server-wake.js.map +1 -0
- package/dist/components/settings-fields.d.ts +13 -1
- package/dist/components/share-card.d.ts +64 -0
- package/dist/components/share-card.js +350 -0
- package/dist/components/share-card.js.map +1 -0
- package/dist/components/status-dot.d.ts +2 -0
- package/dist/components/text-link.d.ts +13 -1
- package/dist/components/time-input.d.ts +13 -1
- package/dist/components/toast.d.ts +10 -1
- package/dist/components/toast.js +42 -2
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js +5 -2
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/translation-review-editor.d.ts +56 -0
- package/dist/components/translation-review-editor.js +159 -0
- package/dist/components/translation-review-editor.js.map +1 -0
- package/dist/components/translation-review-labels.d.ts +92 -0
- package/dist/components/translation-review-labels.js +67 -0
- package/dist/components/translation-review-labels.js.map +1 -0
- package/dist/components/translation-review-parts.d.ts +97 -0
- package/dist/components/translation-review-parts.js +163 -0
- package/dist/components/translation-review-parts.js.map +1 -0
- package/dist/components/translation-review.d.ts +94 -0
- package/dist/components/translation-review.js +344 -0
- package/dist/components/translation-review.js.map +1 -0
- package/dist/components/ui.d.ts +13 -1
- package/dist/components/ui.js +43 -28
- package/dist/components/ui.js.map +1 -1
- package/dist/components/use-table-state.d.ts +1 -1
- package/dist/components/user-avatar.d.ts +2 -0
- package/dist/components/write-lock.d.ts +68 -0
- package/dist/components/write-lock.js +33 -0
- package/dist/components/write-lock.js.map +1 -0
- package/dist/{data-table-CpkWUJBY.d.ts → data-table-3mi2R3so.d.ts} +19 -1
- package/dist/data-table.d.ts +1 -1
- package/dist/hooks/use-file-drop.d.ts +13 -1
- package/dist/hooks/use-overlay-history.js +16 -0
- package/dist/hooks/use-overlay-history.js.map +1 -1
- package/dist/i18n/defaults.d.ts +13 -1
- package/dist/i18n/defaults.js +15 -1
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/german.d.ts +81 -0
- package/dist/i18n/{locales/de.js → german.js} +110 -9
- package/dist/i18n/german.js.map +1 -0
- package/dist/i18n/kit-labels.d.ts +13 -1
- package/dist/i18n/kit-labels.js +5 -0
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/languages.d.ts +243 -0
- package/dist/i18n/languages.js +70 -0
- package/dist/i18n/languages.js.map +1 -0
- package/dist/i18n/locales/de-CH.d.ts +26 -8
- package/dist/i18n/locales/de-CH.js +7 -3
- package/dist/i18n/locales/de-CH.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +13 -1
- package/dist/i18n/locales/en.js +8 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +13 -1
- package/dist/i18n/locales/es.js +127 -27
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +13 -1
- package/dist/i18n/locales/fr.js +101 -1
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts +13 -1
- package/dist/i18n/locales/hu.js +105 -1
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +13 -1
- package/dist/i18n/locales/it.js +134 -34
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +13 -1
- package/dist/i18n/locales/zh.js +101 -1
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/review.d.ts +102 -0
- package/dist/i18n/review.js +158 -0
- package/dist/i18n/review.js.map +1 -0
- package/dist/i18n/swiss.d.ts +3 -3
- package/dist/i18n/swiss.js.map +1 -1
- package/dist/index.d.ts +17 -4
- package/dist/index.js +97 -1
- package/dist/index.js.map +1 -1
- package/dist/{kit-labels-C4uB_zmg.d.ts → kit-labels-D1J2_jyD.d.ts} +236 -9
- package/dist/lib/floating-stack.d.ts +31 -0
- package/dist/lib/floating-stack.js +42 -0
- package/dist/lib/floating-stack.js.map +1 -0
- package/dist/lib/server-wake.d.ts +146 -0
- package/dist/lib/server-wake.js +122 -0
- package/dist/lib/server-wake.js.map +1 -0
- package/dist/lib/translation-review.d.ts +232 -0
- package/dist/lib/translation-review.js +194 -0
- package/dist/lib/translation-review.js.map +1 -0
- package/dist/rhf/fields.d.ts +13 -1
- package/dist/rhf/form.d.ts +13 -1
- package/dist/rhf.d.ts +13 -1
- package/dist/search/global-search.d.ts +3 -1
- package/dist/search/global-search.js.map +1 -1
- package/dist/shell/app-shell.d.ts +13 -1
- package/dist/shell/top-bar-brand.d.ts +13 -1
- package/dist/shell/topbar-action-menu.d.ts +2 -0
- package/dist/shell.d.ts +13 -1
- package/dist/wizard/stepper-nav.d.ts +13 -1
- package/dist/wizard.d.ts +13 -1
- package/package.json +1 -1
- package/src/components/account-chips.tsx +302 -0
- package/src/components/account-settings-labels.ts +16 -2
- package/src/components/chip.tsx +239 -6
- package/src/components/confirm-dialog.tsx +82 -7
- package/src/components/danger-confirm.tsx +118 -33
- package/src/components/data-table.tsx +20 -0
- package/src/components/floating-panel.tsx +19 -1
- package/src/components/form-actions.tsx +22 -3
- package/src/components/legal.tsx +159 -0
- package/src/components/number-field.tsx +32 -26
- package/src/components/passkeys-setting.tsx +68 -7
- package/src/components/progress-bar.tsx +21 -1
- package/src/components/reauth-dialog.tsx +273 -0
- package/src/components/server-wake.tsx +156 -0
- package/src/components/share-card.tsx +615 -0
- package/src/components/toast.tsx +72 -2
- package/src/components/toggle-group.tsx +5 -2
- package/src/components/translation-review-editor.tsx +261 -0
- package/src/components/translation-review-labels.ts +152 -0
- package/src/components/translation-review-parts.tsx +269 -0
- package/src/components/translation-review.tsx +502 -0
- package/src/components/ui.tsx +89 -32
- package/src/components/write-lock.tsx +96 -0
- package/src/hooks/use-overlay-history.ts +51 -0
- package/src/i18n/defaults.ts +14 -0
- package/src/i18n/{locales/de.ts → german.ts} +120 -13
- package/src/i18n/kit-labels.tsx +29 -2
- package/src/i18n/languages.ts +285 -0
- package/src/i18n/locales/de-CH.ts +17 -8
- package/src/i18n/locales/en.ts +8 -0
- package/src/i18n/locales/es.ts +128 -26
- package/src/i18n/locales/fr.ts +103 -0
- package/src/i18n/locales/hu.ts +107 -0
- package/src/i18n/locales/it.ts +135 -33
- package/src/i18n/locales/zh.ts +102 -0
- package/src/i18n/review.ts +193 -0
- package/src/i18n/swiss.ts +3 -3
- package/src/index.ts +86 -1
- package/src/lib/floating-stack.ts +66 -0
- package/src/lib/server-wake.ts +291 -0
- package/src/lib/translation-review.ts +465 -0
- package/src/search/global-search.tsx +3 -1
- package/dist/i18n/locales/de-CH-informal.d.ts +0 -61
- package/dist/i18n/locales/de-CH-informal.js +0 -8
- package/dist/i18n/locales/de-CH-informal.js.map +0 -1
- package/dist/i18n/locales/de-informal.d.ts +0 -82
- package/dist/i18n/locales/de-informal.js +0 -37
- package/dist/i18n/locales/de-informal.js.map +0 -1
- package/dist/i18n/locales/de.d.ts +0 -66
- package/dist/i18n/locales/de.js.map +0 -1
- package/src/i18n/locales/de-CH-informal.ts +0 -10
- package/src/i18n/locales/de-informal.ts +0 -61
package/src/i18n/locales/it.ts
CHANGED
|
@@ -19,12 +19,12 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
19
19
|
feedbackAttachment: {
|
|
20
20
|
attachmentAdd: "Allega immagine",
|
|
21
21
|
attachmentCapture: "Cattura schermata",
|
|
22
|
-
attachmentPaste: "…oppure
|
|
22
|
+
attachmentPaste: "…oppure incolli uno screenshot dagli appunti.",
|
|
23
23
|
attachmentRemove: "Rimuovi allegato",
|
|
24
24
|
attachmentList: "Allegati",
|
|
25
25
|
attachmentScreenshot: "Screenshot",
|
|
26
26
|
attachmentRemoveFile: (name) => `Rimuovi ${name}`,
|
|
27
|
-
attachmentLimit: (max) => `Massimo ${n(max)} ${max === 1 ? "allegato" : "allegati"}:
|
|
27
|
+
attachmentLimit: (max) => `Massimo ${n(max)} ${max === 1 ? "allegato" : "allegati"}: ne rimuova uno per aggiungerne un altro.`,
|
|
28
28
|
},
|
|
29
29
|
feedbackDialog: {
|
|
30
30
|
title: "Invia feedback",
|
|
@@ -41,13 +41,13 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
41
41
|
thread: "Commenti",
|
|
42
42
|
empty: "Ancora nessun commento",
|
|
43
43
|
loading: "Caricamento dei commenti…",
|
|
44
|
-
you: "
|
|
44
|
+
you: "Lei",
|
|
45
45
|
staff: "Team",
|
|
46
46
|
attachments: "Allegati",
|
|
47
47
|
},
|
|
48
48
|
feedbackComposer: {
|
|
49
|
-
field: "
|
|
50
|
-
placeholder: "
|
|
49
|
+
field: "Scriva un commento",
|
|
50
|
+
placeholder: "Scriva un commento…",
|
|
51
51
|
send: "Invia",
|
|
52
52
|
sendHint: (modifier) => `${modifier} + Invio per inviare`,
|
|
53
53
|
sendHintEnter: "Invio per inviare, Maiusc + Invio per andare a capo",
|
|
@@ -76,22 +76,23 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
76
76
|
disabledText: "Non attiva",
|
|
77
77
|
enable: "Configura l’autenticazione a due fattori",
|
|
78
78
|
scanHint:
|
|
79
|
-
"
|
|
79
|
+
"Scansioni questo codice con la Sua app di autenticazione, poi inserisca il codice che mostra.",
|
|
80
80
|
codeLabel: "Codice di verifica",
|
|
81
81
|
verify: "Verifica e attiva",
|
|
82
82
|
disableSection: "Disattiva l’autenticazione a due fattori",
|
|
83
83
|
password: "Password attuale",
|
|
84
84
|
disable: "Disattiva",
|
|
85
|
-
qrAlt: "Codice QR per la
|
|
86
|
-
secretHint: "Non
|
|
85
|
+
qrAlt: "Codice QR per la Sua app di autenticazione",
|
|
86
|
+
secretHint: "Non riesce a scansionarlo? Inserisca invece questa chiave nell’app:",
|
|
87
87
|
copySecret: "Copia chiave",
|
|
88
88
|
},
|
|
89
89
|
passkeys: {
|
|
90
90
|
title: "Passkey",
|
|
91
|
-
description: "
|
|
91
|
+
description: "Acceda con impronta, volto o PIN del dispositivo invece che con una password.",
|
|
92
|
+
descriptionAlongside: "Acceda con impronta, volto o PIN del dispositivo. La Sua password continua a funzionare.",
|
|
92
93
|
empty: "Ancora nessuna passkey",
|
|
93
94
|
loading: "Caricamento delle passkey…",
|
|
94
|
-
list: "Le
|
|
95
|
+
list: "Le Sue passkey",
|
|
95
96
|
nameLabel: "Nome (facoltativo)",
|
|
96
97
|
namePlaceholder: "ad es. Portatile, Telefono",
|
|
97
98
|
add: "Aggiungi passkey",
|
|
@@ -117,12 +118,12 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
117
118
|
addRow: "Aggiungi riga",
|
|
118
119
|
removeRow: (row) => `Rimuovi riga ${row}`,
|
|
119
120
|
clear: "Svuota tabella",
|
|
120
|
-
pasteHint: "
|
|
121
|
+
pasteHint: "Incolli un blocco da un foglio di calcolo in qualsiasi cella",
|
|
121
122
|
cell: (column, row) => `${column}, riga ${row}`,
|
|
122
123
|
rowNumber: "Riga",
|
|
123
124
|
rowActions: "Azioni riga",
|
|
124
125
|
keyboardHint:
|
|
125
|
-
"I tasti freccia spostano tra le celle.
|
|
126
|
+
"I tasti freccia spostano tra le celle. Digiti per sostituire una cella, F2 per modificarla, Esc per annullare la modifica. Invio scende e aggiunge una riga alla fine.",
|
|
126
127
|
lineError: (line) => `Impossibile leggere la riga ${line}`,
|
|
127
128
|
points: (count) => (count === 1 ? "1 punto" : `${count} punti`),
|
|
128
129
|
problems: (count) =>
|
|
@@ -148,7 +149,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
148
149
|
dataTable: {
|
|
149
150
|
columns: "Colonne",
|
|
150
151
|
selectAllRows: "Seleziona tutte le righe",
|
|
151
|
-
sortHint: "
|
|
152
|
+
sortHint: "Faccia clic per ordinare · Maiusc+clic per aggiungere un ordinamento",
|
|
152
153
|
filter: "Filtra",
|
|
153
154
|
close: "Chiudi",
|
|
154
155
|
selectRow: "Seleziona riga",
|
|
@@ -207,13 +208,13 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
207
208
|
nextMonth: "Mese successivo",
|
|
208
209
|
// Already formatted in the provider's locale ("lunedì 14 settembre 2026").
|
|
209
210
|
day: (date) => date,
|
|
210
|
-
chooseStart: "
|
|
211
|
-
chooseEnd: "
|
|
211
|
+
chooseStart: "Scelga una data di inizio",
|
|
212
|
+
chooseEnd: "Scelga una data di fine",
|
|
212
213
|
// "Data" is feminine and the formatted day cannot agree with a participle, so the
|
|
213
214
|
// date follows a label instead of being the subject.
|
|
214
|
-
startSelected: (date) => `Data di inizio: ${date}.
|
|
215
|
+
startSelected: (date) => `Data di inizio: ${date}. Scelga una data di fine.`,
|
|
215
216
|
rangeSelected: (from, to) =>
|
|
216
|
-
`Periodo selezionato: da ${from} a ${to}.
|
|
217
|
+
`Periodo selezionato: da ${from} a ${to}. Scelga una data di inizio per ricominciare.`,
|
|
217
218
|
},
|
|
218
219
|
monthPicker: {
|
|
219
220
|
previousYear: "Anno precedente",
|
|
@@ -255,7 +256,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
255
256
|
selectedCount: (count) => `${n(count)} ${plural(count, "selezionato", "selezionati")}`,
|
|
256
257
|
loadError: "Impossibile caricare i risultati",
|
|
257
258
|
resultCount: (count) => `${n(count)} ${plural(count, "risultato", "risultati")}`,
|
|
258
|
-
minChars: (count) => `
|
|
259
|
+
minChars: (count) => `Digiti almeno ${n(count)} ${plural(count, "carattere", "caratteri")}`,
|
|
259
260
|
},
|
|
260
261
|
multiSelect: {
|
|
261
262
|
search: "Cerca",
|
|
@@ -320,7 +321,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
320
321
|
cancel: "Annulla",
|
|
321
322
|
prompt: "Questa operazione non può essere annullata.",
|
|
322
323
|
password: "Password",
|
|
323
|
-
phrase: (phrase) => `
|
|
324
|
+
phrase: (phrase) => `Digiti «${phrase}» per confermare`,
|
|
324
325
|
},
|
|
325
326
|
tabs: {
|
|
326
327
|
add: "Aggiungi scheda",
|
|
@@ -359,8 +360,8 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
359
360
|
filePicker: {
|
|
360
361
|
dropzone: "Caricamento file",
|
|
361
362
|
browse: "Sfoglia",
|
|
362
|
-
empty: "
|
|
363
|
-
emptyMultiple: "
|
|
363
|
+
empty: "Trascini qui un file",
|
|
364
|
+
emptyMultiple: "Trascini qui i file",
|
|
364
365
|
hint: (accept) => (accept ? `Accettati: ${accept}` : "Qualsiasi tipo di file"),
|
|
365
366
|
busy: "Caricamento…",
|
|
366
367
|
rejectedPick: (count) =>
|
|
@@ -397,7 +398,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
397
398
|
cancelDismissLabel: "Continua a modificare",
|
|
398
399
|
reviewTitle: "Riepilogo",
|
|
399
400
|
edit: "Modifica",
|
|
400
|
-
missingRequired: "
|
|
401
|
+
missingRequired: "Compili tutti i campi obbligatori.",
|
|
401
402
|
genericError: "Si è verificato un errore",
|
|
402
403
|
},
|
|
403
404
|
tour: {
|
|
@@ -405,7 +406,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
405
406
|
back: "Indietro",
|
|
406
407
|
skip: "Salta",
|
|
407
408
|
done: "Fine",
|
|
408
|
-
awaitClickHint: "
|
|
409
|
+
awaitClickHint: "Faccia clic sull’elemento evidenziato per continuare",
|
|
409
410
|
step: (current, total) => `${n(current)} / ${n(total)}`,
|
|
410
411
|
},
|
|
411
412
|
commandPalette: {
|
|
@@ -416,13 +417,13 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
416
417
|
empty: "Nessun risultato",
|
|
417
418
|
loading: "Ricerca in corso…",
|
|
418
419
|
dialog: "Ricerca",
|
|
419
|
-
error: "Ricerca non riuscita.
|
|
420
|
+
error: "Ricerca non riuscita. Riprovi.",
|
|
420
421
|
},
|
|
421
422
|
globalSearch: {
|
|
422
423
|
trigger: "Cerca",
|
|
423
424
|
placeholder: "Cerca o vai a…",
|
|
424
425
|
shortcut: (keys) => `Cerca (${keys})`,
|
|
425
|
-
suggestions: "
|
|
426
|
+
suggestions: "Provi",
|
|
426
427
|
results: "Risultati",
|
|
427
428
|
},
|
|
428
429
|
sparkline: {
|
|
@@ -444,8 +445,8 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
444
445
|
},
|
|
445
446
|
signaturePad: {
|
|
446
447
|
label: "Firma",
|
|
447
|
-
instructions: "
|
|
448
|
-
typedFallbackHint: "Se non
|
|
448
|
+
instructions: "Firmi nel riquadro con il mouse, il dito o una penna.",
|
|
449
|
+
typedFallbackHint: "Se non può disegnare, scriva invece il Suo nome.",
|
|
449
450
|
empty: "Ancora nessun tratto",
|
|
450
451
|
signed: "Firma tracciata",
|
|
451
452
|
undo: "Annulla l’ultimo tratto",
|
|
@@ -483,7 +484,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
483
484
|
seriesChart: {
|
|
484
485
|
resetZoom: "Reimposta zoom",
|
|
485
486
|
zoomHint:
|
|
486
|
-
"
|
|
487
|
+
"Trascini per ingrandire: una selezione più o meno quadrata ingrandisce entrambi gli assi, una lunga e sottile solo il proprio. Faccia doppio clic per ripristinare.",
|
|
487
488
|
empty: "Nessun dato",
|
|
488
489
|
legend: "Serie",
|
|
489
490
|
points: "Valori del grafico",
|
|
@@ -498,6 +499,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
498
499
|
confirmDialog: {
|
|
499
500
|
confirm: "Conferma",
|
|
500
501
|
cancel: "Annulla",
|
|
502
|
+
typed: (text) => `Digiti «${text}» per confermare`,
|
|
501
503
|
},
|
|
502
504
|
floatingPanel: {
|
|
503
505
|
close: "Chiudi",
|
|
@@ -534,7 +536,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
534
536
|
lineItems: {
|
|
535
537
|
add: "Aggiungi riga",
|
|
536
538
|
remove: (row) => `Rimuovi riga ${row}`,
|
|
537
|
-
confirmRemove: (row) => `Rimuovere la riga ${row}?
|
|
539
|
+
confirmRemove: (row) => `Rimuovere la riga ${row}? Prema di nuovo per confermare`,
|
|
538
540
|
row: (row) => `Riga ${row}`,
|
|
539
541
|
cell: (column, row) => `${column}, riga ${row}`,
|
|
540
542
|
totals: "Totale",
|
|
@@ -549,14 +551,14 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
549
551
|
},
|
|
550
552
|
errorBoundary: {
|
|
551
553
|
title: "Si è verificato un errore",
|
|
552
|
-
message: "Impossibile mostrare questa parte della pagina.
|
|
554
|
+
message: "Impossibile mostrare questa parte della pagina. Riprovi o ricarichi la pagina.",
|
|
553
555
|
retry: "Riprova",
|
|
554
556
|
details: "Dettagli dell’errore",
|
|
555
557
|
reload: "Ricarica",
|
|
556
558
|
updateTitle: "È disponibile una nuova versione",
|
|
557
|
-
updateMessage: "Una parte dell’app è cambiata da quando questa pagina è stata caricata.
|
|
558
|
-
offlineTitle: "
|
|
559
|
-
offlineMessage: "Impossibile caricare questa pagina senza connessione.
|
|
559
|
+
updateMessage: "Una parte dell’app è cambiata da quando questa pagina è stata caricata. Ricarichi per ottenere la nuova versione.",
|
|
560
|
+
offlineTitle: "Nessuna connessione",
|
|
561
|
+
offlineMessage: "Impossibile caricare questa pagina senza connessione. Si riconnetta, poi ricarichi la pagina.",
|
|
560
562
|
copyReport: "Copia il rapporto di errore",
|
|
561
563
|
reported: "L’errore è stato segnalato automaticamente.",
|
|
562
564
|
reportedAs: (reference) => `Segnalato con riferimento ${reference}`,
|
|
@@ -583,6 +585,106 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
583
585
|
noPreview: "Nessuna anteprima disponibile per questo file",
|
|
584
586
|
openInNewTab: "Apri in una nuova scheda",
|
|
585
587
|
},
|
|
588
|
+
writeLock: {
|
|
589
|
+
reason: "Può visualizzarlo, ma non modificarlo.",
|
|
590
|
+
},
|
|
591
|
+
accountState: {
|
|
592
|
+
// Agreeing with "account" (masculine): the chip is the state of an account.
|
|
593
|
+
active: "Attivo",
|
|
594
|
+
inactive: "Non attivo",
|
|
595
|
+
invited: "Invitato",
|
|
596
|
+
registered: "Registrato",
|
|
597
|
+
unverified: "Non verificato",
|
|
598
|
+
passwordChange: "Deve cambiare la password",
|
|
599
|
+
},
|
|
600
|
+
shareCard: {
|
|
601
|
+
dialogTitle: "Condividi",
|
|
602
|
+
close: "Chiudi",
|
|
603
|
+
email: "Indirizzo email",
|
|
604
|
+
emailOptional: "Indirizzo email (facoltativo)",
|
|
605
|
+
// example.com is reserved for examples (RFC 2606); a localised domain is real.
|
|
606
|
+
emailPlaceholder: "nome@example.com",
|
|
607
|
+
invalidEmail: "Inserisca un indirizzo email completo.",
|
|
608
|
+
role: "Ruolo",
|
|
609
|
+
roleOf: (name) => `Ruolo di ${name}`,
|
|
610
|
+
add: "Condividi",
|
|
611
|
+
whoHasAccess: "Chi ha accesso",
|
|
612
|
+
nobodyYet: "Nessun altro ha ancora accesso.",
|
|
613
|
+
pending: "In attesa",
|
|
614
|
+
openInvite: "Link di invito aperto",
|
|
615
|
+
copyLink: "Copia link",
|
|
616
|
+
team: "Team",
|
|
617
|
+
teamHint: (name) => `Tutti i membri di ${name} avranno accesso.`,
|
|
618
|
+
remove: "Rimuovi accesso",
|
|
619
|
+
removeConfirm: (name) => `Rimuovere l’accesso di ${name}?`,
|
|
620
|
+
revokePending: "Ritira invito",
|
|
621
|
+
revokePendingConfirm: (name) => `Ritirare l’invito per ${name}?`,
|
|
622
|
+
failed: "Non ha funzionato. Riprovi.",
|
|
623
|
+
loading: "Caricamento…",
|
|
624
|
+
},
|
|
625
|
+
reauthDialog: {
|
|
626
|
+
title: "Confermi la Sua identità",
|
|
627
|
+
description: "Inserisca la password attuale per continuare.",
|
|
628
|
+
password: "Password attuale",
|
|
629
|
+
submit: "Continua",
|
|
630
|
+
cancel: "Annulla",
|
|
631
|
+
},
|
|
632
|
+
serverWake: {
|
|
633
|
+
slow: "Caricamento in corso: ci vuole più del solito.",
|
|
634
|
+
waking: (appName) =>
|
|
635
|
+
`Il server va in sospensione quando nessuno usa ${appName ?? "l’app"}, quindi la prima richiesta dopo una pausa deve riavviarlo. Può volerci un momento: non si perde nulla, la pagina si completa da sola.`,
|
|
636
|
+
},
|
|
637
|
+
legal: {
|
|
638
|
+
navLabel: "Note legali",
|
|
639
|
+
},
|
|
640
|
+
translationReview: {
|
|
641
|
+
statusMissing: "Mancante",
|
|
642
|
+
statusUnreviewed: "Non rivisto",
|
|
643
|
+
statusChanged: "Modificato dopo la revisione",
|
|
644
|
+
statusNeedsChange: "Da modificare",
|
|
645
|
+
statusApproved: "Approvato",
|
|
646
|
+
statusFilter: "Stato",
|
|
647
|
+
all: "Tutti",
|
|
648
|
+
filterCount: (label, count) => `${label} · ${n(count)}`,
|
|
649
|
+
source: "Testi",
|
|
650
|
+
allSources: "Tutti i testi",
|
|
651
|
+
namespace: "Area",
|
|
652
|
+
allNamespaces: "Tutte le aree",
|
|
653
|
+
search: "Cerca nelle chiavi e nei testi",
|
|
654
|
+
placeholdersOnly: (count) => `Solo problemi di segnaposto (${n(count)})`,
|
|
655
|
+
placeholderChip: "Segnaposto",
|
|
656
|
+
key: "Chiave",
|
|
657
|
+
statusColumn: "Stato",
|
|
658
|
+
empty: "Nessun testo corrisponde a questi filtri.",
|
|
659
|
+
missingText: "Mancante in questa lingua",
|
|
660
|
+
progress: (approved, total) => `${n(approved)} di ${n(total)} ${plural(approved, "approvato", "approvati")}`,
|
|
661
|
+
localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,
|
|
662
|
+
locales: "Lingue",
|
|
663
|
+
approve: "Approva",
|
|
664
|
+
flag: "Da modificare",
|
|
665
|
+
suggest: "Proponi una traduzione",
|
|
666
|
+
reset: "Segna come non rivisto",
|
|
667
|
+
cancel: "Annulla",
|
|
668
|
+
approveSelected: "Approva i selezionati",
|
|
669
|
+
resetSelected: "Segna i selezionati come non rivisti",
|
|
670
|
+
selectShown: "Seleziona tutti quelli mostrati",
|
|
671
|
+
changedSince: "Questo testo è stato modificato dopo la revisione. Lo rilegga, per favore.",
|
|
672
|
+
reviewedWording: "Formulazione al momento della revisione",
|
|
673
|
+
reviewedReference: "Riferimento al momento della revisione",
|
|
674
|
+
placeholderMismatch: (reference, text) =>
|
|
675
|
+
`I segnaposto differiscono dal riferimento — riferimento: ${reference}; questo testo: ${text}. L’app vi inserisce dei valori, quindi devono restare esattamente come sono.`,
|
|
676
|
+
lastApproved: (name, date) => `Approvato da ${name} il ${date}`,
|
|
677
|
+
lastFlagged: (name, date) => `Segnato da modificare da ${name} il ${date}`,
|
|
678
|
+
erasedReviewer: "un account eliminato",
|
|
679
|
+
suggestion: "Formulazione migliore",
|
|
680
|
+
translation: "Traduzione",
|
|
681
|
+
note: "Nota (facoltativa)",
|
|
682
|
+
notePlaceholder: "Cosa non va, o di cosa tenere conto",
|
|
683
|
+
readOnly: "Può leggere questa lingua, ma non rivederla.",
|
|
684
|
+
scope: (areas) => `La Sua revisione è limitata a: ${areas}.`,
|
|
685
|
+
exportCorrections: (count) => `Esporta le correzioni (${n(count)})`,
|
|
686
|
+
failed: "Non ha funzionato. Riprovi.",
|
|
687
|
+
},
|
|
586
688
|
};
|
|
587
689
|
}
|
|
588
690
|
|
package/src/i18n/locales/zh.ts
CHANGED
|
@@ -87,6 +87,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
87
87
|
passkeys: {
|
|
88
88
|
title: "通行密钥",
|
|
89
89
|
description: "使用指纹、面容或设备 PIN 登录,无需密码。",
|
|
90
|
+
descriptionAlongside: "使用指纹、面容或设备 PIN 登录,密码仍可照常使用。",
|
|
90
91
|
empty: "暂无通行密钥",
|
|
91
92
|
loading: "正在加载通行密钥…",
|
|
92
93
|
list: "已注册的通行密钥",
|
|
@@ -485,6 +486,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
485
486
|
confirmDialog: {
|
|
486
487
|
confirm: "确认",
|
|
487
488
|
cancel: "取消",
|
|
489
|
+
typed: (text) => `输入“${text}”以确认`,
|
|
488
490
|
},
|
|
489
491
|
floatingPanel: {
|
|
490
492
|
close: "关闭",
|
|
@@ -570,6 +572,106 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
570
572
|
noPreview: "此文件无法预览",
|
|
571
573
|
openInNewTab: "在新标签页中打开",
|
|
572
574
|
},
|
|
575
|
+
writeLock: {
|
|
576
|
+
reason: "仅可查看,无法修改。",
|
|
577
|
+
},
|
|
578
|
+
accountState: {
|
|
579
|
+
active: "已启用",
|
|
580
|
+
inactive: "已停用",
|
|
581
|
+
invited: "已邀请",
|
|
582
|
+
registered: "已注册",
|
|
583
|
+
unverified: "未验证",
|
|
584
|
+
passwordChange: "需修改密码",
|
|
585
|
+
},
|
|
586
|
+
shareCard: {
|
|
587
|
+
dialogTitle: "共享",
|
|
588
|
+
close: "关闭",
|
|
589
|
+
email: "电子邮箱地址",
|
|
590
|
+
emailOptional: "电子邮箱地址(可选)",
|
|
591
|
+
emailPlaceholder: "name@example.com",
|
|
592
|
+
invalidEmail: "请输入完整的电子邮箱地址。",
|
|
593
|
+
role: "角色",
|
|
594
|
+
roleOf: (name) => `${name} 的角色`,
|
|
595
|
+
add: "共享",
|
|
596
|
+
whoHasAccess: "有权访问的人",
|
|
597
|
+
nobodyYet: "目前还没有其他人有权访问。",
|
|
598
|
+
pending: "待接受",
|
|
599
|
+
openInvite: "公开邀请链接",
|
|
600
|
+
copyLink: "复制链接",
|
|
601
|
+
team: "团队",
|
|
602
|
+
teamHint: (name) => `${name} 的所有成员都将获得访问权限。`,
|
|
603
|
+
remove: "移除访问权限",
|
|
604
|
+
removeConfirm: (name) => `移除 ${name} 的访问权限?`,
|
|
605
|
+
revokePending: "撤回邀请",
|
|
606
|
+
revokePendingConfirm: (name) => `撤回对 ${name} 的邀请?`,
|
|
607
|
+
failed: "操作未成功,请重试。",
|
|
608
|
+
loading: "加载中…",
|
|
609
|
+
},
|
|
610
|
+
reauthDialog: {
|
|
611
|
+
title: "验证身份",
|
|
612
|
+
description: "请输入当前密码以继续。",
|
|
613
|
+
password: "当前密码",
|
|
614
|
+
submit: "继续",
|
|
615
|
+
cancel: "取消",
|
|
616
|
+
},
|
|
617
|
+
serverWake: {
|
|
618
|
+
slow: "仍在加载,比平时耗时更长。",
|
|
619
|
+
// A Latin product name gets a space either side, as everywhere in this catalogue.
|
|
620
|
+
waking: (appName) =>
|
|
621
|
+
`无人使用${appName ? ` ${appName} ` : "本应用"}时,服务器会进入休眠,因此暂停后的第一个请求需要重新启动它。这可能需要一点时间——不会丢失任何内容,页面会自动加载完成。`,
|
|
622
|
+
},
|
|
623
|
+
legal: {
|
|
624
|
+
navLabel: "法律信息",
|
|
625
|
+
},
|
|
626
|
+
translationReview: {
|
|
627
|
+
statusMissing: "缺失",
|
|
628
|
+
statusUnreviewed: "未审校",
|
|
629
|
+
statusChanged: "审校后已更改",
|
|
630
|
+
statusNeedsChange: "需要修改",
|
|
631
|
+
statusApproved: "已通过",
|
|
632
|
+
statusFilter: "状态",
|
|
633
|
+
all: "全部",
|
|
634
|
+
filterCount: (label, count) => `${label} · ${n(count)}`,
|
|
635
|
+
source: "文本",
|
|
636
|
+
allSources: "全部文本",
|
|
637
|
+
namespace: "区域",
|
|
638
|
+
allNamespaces: "全部区域",
|
|
639
|
+
search: "搜索键名和文本",
|
|
640
|
+
placeholdersOnly: (count) => `仅显示占位符问题(${n(count)})`,
|
|
641
|
+
placeholderChip: "占位符",
|
|
642
|
+
key: "键名",
|
|
643
|
+
statusColumn: "状态",
|
|
644
|
+
empty: "没有符合这些筛选条件的文本。",
|
|
645
|
+
missingText: "此语言中缺失",
|
|
646
|
+
progress: (approved, total) => `已通过 ${n(approved)} / ${n(total)}`,
|
|
647
|
+
localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,
|
|
648
|
+
locales: "语言",
|
|
649
|
+
approve: "通过",
|
|
650
|
+
flag: "需要修改",
|
|
651
|
+
suggest: "建议译文",
|
|
652
|
+
reset: "标记为未审校",
|
|
653
|
+
cancel: "取消",
|
|
654
|
+
approveSelected: "通过所选项",
|
|
655
|
+
resetSelected: "将所选项标记为未审校",
|
|
656
|
+
selectShown: "选择所有显示项",
|
|
657
|
+
changedSince: "此文本在审校后已更改,请重新阅读。",
|
|
658
|
+
reviewedWording: "审校时的措辞",
|
|
659
|
+
reviewedReference: "审校时的参考文本",
|
|
660
|
+
placeholderMismatch: (reference, text) =>
|
|
661
|
+
`占位符与参考文本不一致——参考文本:${reference};此文本:${text}。应用会在这些位置填入内容,因此必须保持原样。`,
|
|
662
|
+
// A Latin name gets a space either side, as everywhere in this catalogue.
|
|
663
|
+
lastApproved: (name, date) => `${name} 于 ${date} 通过`,
|
|
664
|
+
lastFlagged: (name, date) => `${name} 于 ${date} 标记为需要修改`,
|
|
665
|
+
erasedReviewer: "已删除的账户",
|
|
666
|
+
suggestion: "更好的措辞",
|
|
667
|
+
translation: "译文",
|
|
668
|
+
note: "备注(可选)",
|
|
669
|
+
notePlaceholder: "哪里有问题,或需要注意什么",
|
|
670
|
+
readOnly: "此语言仅可查看,无法审校。",
|
|
671
|
+
scope: (areas) => `审校范围仅限于:${areas}。`,
|
|
672
|
+
exportCorrections: (count) => `导出更正(${n(count)})`,
|
|
673
|
+
failed: "操作未成功,请重试。",
|
|
674
|
+
},
|
|
573
675
|
};
|
|
574
676
|
}
|
|
575
677
|
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { UiKitLabels } from "./kit-labels";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The kit's words as a flat `key → text` list, for an app's translation review.
|
|
5
|
+
*
|
|
6
|
+
* keksdose reviews its own locale bundles on its /translations page — one verdict per
|
|
7
|
+
* locale and key, stored with the text the reviewer saw, so a later change re-opens it.
|
|
8
|
+
* The kit's words appear on the same screens but live in TypeScript, not in the app's
|
|
9
|
+
* bundles, and 94 of them are functions (`(count) => "3 results"`), which a bundle
|
|
10
|
+
* flattener skips. This turns a label tree into rows that page can join on.
|
|
11
|
+
*
|
|
12
|
+
* - A string label is one row under its dot path: `common.close`. An array of words
|
|
13
|
+
* (weekday names) is one row per entry: `miniCalendar.weekdays.0`.
|
|
14
|
+
* - A function label is called with fixed samples. Text arguments are i18next-style
|
|
15
|
+
* placeholders (`{{name}}`), so a translation that drops one is caught by the same
|
|
16
|
+
* placeholder check the app runs on its own strings. Counts are real numbers, twice
|
|
17
|
+
* where the wording may depend on them — 1 and 3 — so a reviewer sees singular and
|
|
18
|
+
* plural. The key names the sample: `combobox.resultCount(1)`,
|
|
19
|
+
* `shareCard.removeConfirm(name)`, `serverWake.waking()`.
|
|
20
|
+
*
|
|
21
|
+
* Keys depend only on the samples, never on the locale, so the rows of `de-CH` and of the
|
|
22
|
+
* English reference line up key by key. Pass exactly the tree the app hands
|
|
23
|
+
* `UiKitProvider` — its overrides included — and review what users see:
|
|
24
|
+
*
|
|
25
|
+
* kitLabelStrings(UI_KIT_LABELS_DE_CH) // the rows for de-CH
|
|
26
|
+
* kitLabelStrings(DEFAULT_UI_KIT_LABELS) // the English reference
|
|
27
|
+
*
|
|
28
|
+
* A label that throws on its sample becomes a row starting with "⚠", so one broken
|
|
29
|
+
* override shows up on the page instead of taking the page down.
|
|
30
|
+
*/
|
|
31
|
+
export function kitLabelStrings(labels: UiKitLabels): Record<string, string> {
|
|
32
|
+
const out: Record<string, string> = {};
|
|
33
|
+
const walk = (node: unknown, path: string) => {
|
|
34
|
+
if (typeof node === "string") {
|
|
35
|
+
out[path] = node;
|
|
36
|
+
} else if (typeof node === "function") {
|
|
37
|
+
for (const args of KIT_LABEL_SAMPLES[path] ?? [[]]) {
|
|
38
|
+
out[`${path}(${args.map(sampleName).filter((a) => a !== "").join(", ")})`] = render(
|
|
39
|
+
node as (...args: unknown[]) => unknown,
|
|
40
|
+
args,
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
} else if (node !== null && typeof node === "object") {
|
|
44
|
+
for (const [key, value] of Object.entries(node)) walk(value, path ? `${path}.${key}` : key);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
walk(labels, "");
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function render(label: (...args: unknown[]) => unknown, args: readonly unknown[]): string {
|
|
52
|
+
try {
|
|
53
|
+
return String(label(...args));
|
|
54
|
+
} catch (error) {
|
|
55
|
+
return `⚠ ${error instanceof Error ? error.message : String(error)}`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** How a sample argument is written in the key: a placeholder by its name, a number as
|
|
60
|
+
* itself, an empty string as `""`, a missing optional argument not at all. */
|
|
61
|
+
function sampleName(arg: unknown): string {
|
|
62
|
+
if (arg === undefined) return "";
|
|
63
|
+
if (typeof arg === "string") return /^\{\{(\w+)\}\}$/.exec(arg)?.[1] ?? JSON.stringify(arg);
|
|
64
|
+
return String(arg);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const one = [[1], [3]] as const;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The sample arguments of every function label in {@link UiKitLabels}, by dot path.
|
|
71
|
+
* `src/i18n/__tests__/review.test.ts` fails when a function label has no entry here, so
|
|
72
|
+
* a new one cannot ship un-reviewable.
|
|
73
|
+
*/
|
|
74
|
+
export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unknown[])[]>> = {
|
|
75
|
+
"common.fieldValue": [["{{field}}", "{{value}}"]],
|
|
76
|
+
"dataTable.filterResults": [
|
|
77
|
+
[1, 1],
|
|
78
|
+
[3, 12],
|
|
79
|
+
],
|
|
80
|
+
"dataTable.sortedAscending": [["{{column}}"]],
|
|
81
|
+
"dataTable.sortedDescending": [["{{column}}"]],
|
|
82
|
+
"dataTable.sortCleared": [["{{column}}"]],
|
|
83
|
+
"dataTable.pageChanged": [[2, 5]],
|
|
84
|
+
"dataTable.pageRange": [[1, 25, 1240]],
|
|
85
|
+
"dataTable.rowCount": [[1], [1240]],
|
|
86
|
+
"dataTable.columnsCount": [[3, 8]],
|
|
87
|
+
"miniCalendar.day": [["{{date}}"]],
|
|
88
|
+
"miniCalendar.startSelected": [["{{date}}"]],
|
|
89
|
+
"miniCalendar.rangeSelected": [["{{from}}", "{{to}}"]],
|
|
90
|
+
"calendarHeatmap.day": [["{{date}}", "{{value}}"]],
|
|
91
|
+
"calendarHeatmap.truncated": one,
|
|
92
|
+
"monthPicker.month": [["{{monthYear}}"]],
|
|
93
|
+
"combobox.create": [["{{query}}"]],
|
|
94
|
+
"combobox.selectedCount": one,
|
|
95
|
+
"combobox.resultCount": one,
|
|
96
|
+
"combobox.minChars": one,
|
|
97
|
+
"multiSelect.selectedCount": one,
|
|
98
|
+
"chipInput.added": [["{{value}}"]],
|
|
99
|
+
"chipInput.removed": [["{{value}}"]],
|
|
100
|
+
"chipInput.atLimit": one,
|
|
101
|
+
"chipInput.duplicate": [["{{value}}"]],
|
|
102
|
+
"tabs.remove": [["{{tab}}"]],
|
|
103
|
+
"appShell.toggleGroup": [["{{group}}"]],
|
|
104
|
+
"topBar.role": [["{{role}}"]],
|
|
105
|
+
"file.size": [[2_500_000]],
|
|
106
|
+
"wizard.step": [[2, 4]],
|
|
107
|
+
"tour.step": [[2, 4]],
|
|
108
|
+
"globalSearch.shortcut": [["{{keys}}"]],
|
|
109
|
+
"pieChart.slice": [["{{label}}", "{{value}}", "{{percent}}"]],
|
|
110
|
+
"sparkline.rising": [["{{first}}", "{{last}}"]],
|
|
111
|
+
"sparkline.falling": [["{{first}}", "{{last}}"]],
|
|
112
|
+
"sparkline.flat": [["{{value}}"]],
|
|
113
|
+
"sparkline.single": [["{{value}}"]],
|
|
114
|
+
"sparkline.named": [["{{name}}", "{{summary}}"]],
|
|
115
|
+
"statTile.increase": [["{{amount}}"]],
|
|
116
|
+
"statTile.decrease": [["{{amount}}"]],
|
|
117
|
+
"statTile.better": [["{{change}}"]],
|
|
118
|
+
"statTile.worse": [["{{change}}"]],
|
|
119
|
+
"signaturePad.viewTyped": [["{{name}}"]],
|
|
120
|
+
"passwordStrength.announcement": [["{{level}}"]],
|
|
121
|
+
"passwordStrength.ruleLength": [[12]],
|
|
122
|
+
"passwordStrength.optional": [["{{rule}}"]],
|
|
123
|
+
"passwordStrength.tooLong": [[72]],
|
|
124
|
+
"dangerConfirm.phrase": [["{{phrase}}"]],
|
|
125
|
+
"iconPicker.resultCount": one,
|
|
126
|
+
"filePicker.rejectedType": [["{{name}}"]],
|
|
127
|
+
"filePicker.rejectedTypeOnly": [["{{accept}}", "{{name}}"]],
|
|
128
|
+
"filePicker.rejectedSize": [["{{name}}", "{{maxSize}}"]],
|
|
129
|
+
"filePicker.rejectedCount": [
|
|
130
|
+
["{{name}}", 1],
|
|
131
|
+
["{{name}}", 3],
|
|
132
|
+
],
|
|
133
|
+
"filePicker.rejectedInvalid": [["{{name}}"]],
|
|
134
|
+
"filePicker.rejectedMany": one,
|
|
135
|
+
"filePicker.rejectedPick": one,
|
|
136
|
+
"filePicker.selected": [
|
|
137
|
+
[1, "{{firstName}}"],
|
|
138
|
+
[3, "{{firstName}}"],
|
|
139
|
+
],
|
|
140
|
+
"filePicker.remove": [["{{name}}"]],
|
|
141
|
+
"filePicker.removed": [["{{name}}"]],
|
|
142
|
+
"filePicker.hint": [["{{accept}}"], [""]],
|
|
143
|
+
"measuredGrid.removeRow": [[3]],
|
|
144
|
+
"measuredGrid.cell": [["{{column}}", 3]],
|
|
145
|
+
"measuredGrid.lineError": [[3]],
|
|
146
|
+
"measuredGrid.points": one,
|
|
147
|
+
"measuredGrid.problems": one,
|
|
148
|
+
"feedbackAttachment.attachmentRemoveFile": [["{{name}}"]],
|
|
149
|
+
"feedbackAttachment.attachmentLimit": one,
|
|
150
|
+
"feedbackComposer.sendHint": [["{{modifier}}"]],
|
|
151
|
+
"accountSettings.passkeys.renameItem": [["{{name}}"]],
|
|
152
|
+
"accountSettings.passkeys.renameField": [["{{name}}"]],
|
|
153
|
+
"accountSettings.passkeys.deleteItem": [["{{name}}"]],
|
|
154
|
+
"accountSettings.passkeys.deleteConfirm": [["{{name}}"]],
|
|
155
|
+
"accountSettings.passkeys.created": [["{{date}}"]],
|
|
156
|
+
"accountSettings.passkeys.lastUsed": [["{{date}}"]],
|
|
157
|
+
"confirmDialog.typed": [["{{text}}"]],
|
|
158
|
+
"floatingPanel.badge": one,
|
|
159
|
+
"bulkActionBar.selected": one,
|
|
160
|
+
"lineItems.remove": [[3]],
|
|
161
|
+
"lineItems.confirmRemove": [[3]],
|
|
162
|
+
"lineItems.row": [[3]],
|
|
163
|
+
"lineItems.cell": [["{{column}}", 3]],
|
|
164
|
+
"progressBar.overLimit": [["{{amount}}"]],
|
|
165
|
+
"signedAmount.positive": [["{{amount}}"]],
|
|
166
|
+
"signedAmount.negative": [["{{amount}}"]],
|
|
167
|
+
"errorBoundary.reportedAs": [["{{reference}}"]],
|
|
168
|
+
"authedImage.failedImage": [["{{alt}}"]],
|
|
169
|
+
"imageGrid.item": [[2, 5]],
|
|
170
|
+
"imageGrid.actions": [["{{name}}"]],
|
|
171
|
+
"lightbox.counter": [[2, 5]],
|
|
172
|
+
"lightbox.position": [[2, 5]],
|
|
173
|
+
"shareCard.roleOf": [["{{name}}"]],
|
|
174
|
+
"shareCard.teamHint": [["{{name}}"]],
|
|
175
|
+
"shareCard.removeConfirm": [["{{name}}"]],
|
|
176
|
+
"shareCard.revokePendingConfirm": [["{{name}}"]],
|
|
177
|
+
"serverWake.waking": [["{{appName}}"], [undefined]],
|
|
178
|
+
"translationReview.filterCount": [
|
|
179
|
+
["{{status}}", 1],
|
|
180
|
+
["{{status}}", 3],
|
|
181
|
+
],
|
|
182
|
+
"translationReview.placeholdersOnly": one,
|
|
183
|
+
"translationReview.progress": [
|
|
184
|
+
[1, 1],
|
|
185
|
+
[3, 12],
|
|
186
|
+
],
|
|
187
|
+
"translationReview.localeProgress": [[3, 12]],
|
|
188
|
+
"translationReview.placeholderMismatch": [["{{reference}}", "{{text}}"]],
|
|
189
|
+
"translationReview.lastApproved": [["{{name}}", "{{date}}"]],
|
|
190
|
+
"translationReview.lastFlagged": [["{{name}}", "{{date}}"]],
|
|
191
|
+
"translationReview.scope": [["{{areas}}"]],
|
|
192
|
+
"translationReview.exportCorrections": [[0], [1], [3]],
|
|
193
|
+
};
|
package/src/i18n/swiss.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Swiss Standard German respelling,
|
|
3
|
-
*
|
|
4
|
-
* becomes a public `@eifi1/ui-kit/i18n/<code>` subpath.
|
|
2
|
+
* Swiss Standard German respelling, applied to the internal German source (`german.ts`)
|
|
3
|
+
* to make the `de-CH` catalogue. Internal: it lives outside `src/i18n/locales/` because
|
|
4
|
+
* every file there becomes a public `@eifi1/ui-kit/i18n/<code>` subpath.
|
|
5
5
|
*
|
|
6
6
|
* "ss" for every "ß" (Schliessen, Grösse) is the one systematic difference in UI text.
|
|
7
7
|
* Function labels are wrapped: their RESULT is respelled, so an argument the app passes
|