@eifi1/ui-kit 0.28.1 → 0.30.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 +44 -4
- package/dist/account/account-parts.d.ts +21 -0
- package/dist/account/account-parts.js +40 -0
- package/dist/account/account-parts.js.map +1 -0
- package/dist/account/data-export-setting.d.ts +73 -0
- package/dist/account/data-export-setting.js +113 -0
- package/dist/account/data-export-setting.js.map +1 -0
- package/dist/account/delete-account-setting.d.ts +91 -0
- package/dist/account/delete-account-setting.js +199 -0
- package/dist/account/delete-account-setting.js.map +1 -0
- package/dist/account/email-change-setting.d.ts +136 -0
- package/dist/account/email-change-setting.js +277 -0
- package/dist/account/email-change-setting.js.map +1 -0
- package/dist/account/sessions-setting.d.ts +110 -0
- package/dist/account/sessions-setting.js +146 -0
- package/dist/account/sessions-setting.js.map +1 -0
- package/dist/admin/admin-action-confirm.d.ts +91 -0
- package/dist/admin/admin-action-confirm.js +276 -0
- package/dist/admin/admin-action-confirm.js.map +1 -0
- package/dist/admin/admin-action-log.d.ts +105 -0
- package/dist/admin/admin-action-log.js +153 -0
- package/dist/admin/admin-action-log.js.map +1 -0
- package/dist/admin/admin-parts.d.ts +40 -0
- package/dist/admin/admin-parts.js +45 -0
- package/dist/admin/admin-parts.js.map +1 -0
- package/dist/admin/invitations-panel.d.ts +91 -0
- package/dist/admin/invitations-panel.js +289 -0
- package/dist/admin/invitations-panel.js.map +1 -0
- package/dist/admin/reviewer-scope-editor.d.ts +91 -0
- package/dist/admin/reviewer-scope-editor.js +134 -0
- package/dist/admin/reviewer-scope-editor.js.map +1 -0
- package/dist/admin/role-select.d.ts +91 -0
- package/dist/admin/role-select.js +128 -0
- package/dist/admin/role-select.js.map +1 -0
- package/dist/admin/transfer-ownership-dialog.d.ts +91 -0
- package/dist/admin/transfer-ownership-dialog.js +83 -0
- package/dist/admin/transfer-ownership-dialog.js.map +1 -0
- package/dist/admin/user-roster.d.ts +91 -0
- package/dist/admin/user-roster.js +285 -0
- package/dist/admin/user-roster.js.map +1 -0
- package/dist/auth/accept-invitation.d.ts +90 -0
- package/dist/auth/accept-invitation.js +117 -0
- package/dist/auth/accept-invitation.js.map +1 -0
- package/dist/auth/auth-errors.d.ts +139 -0
- package/dist/auth/auth-errors.js +92 -0
- package/dist/auth/auth-errors.js.map +1 -0
- package/dist/auth/complete-name-dialog.d.ts +71 -0
- package/dist/auth/complete-name-dialog.js +168 -0
- package/dist/auth/complete-name-dialog.js.map +1 -0
- package/dist/auth/email-tag.d.ts +60 -0
- package/dist/auth/email-tag.js +23 -0
- package/dist/auth/email-tag.js.map +1 -0
- package/dist/auth/forgot-password-form.d.ts +86 -0
- package/dist/auth/forgot-password-form.js +123 -0
- package/dist/auth/forgot-password-form.js.map +1 -0
- package/dist/auth/form-rules.d.ts +27 -0
- package/dist/auth/form-rules.js +23 -0
- package/dist/auth/form-rules.js.map +1 -0
- package/dist/auth/new-password-fields.d.ts +38 -0
- package/dist/auth/new-password-fields.js +54 -0
- package/dist/auth/new-password-fields.js.map +1 -0
- package/dist/auth/not-found-page.d.ts +57 -0
- package/dist/auth/not-found-page.js +40 -0
- package/dist/auth/not-found-page.js.map +1 -0
- package/dist/auth/register-form.d.ts +91 -0
- package/dist/auth/register-form.js +270 -0
- package/dist/auth/register-form.js.map +1 -0
- package/dist/auth/reset-password-form.d.ts +131 -0
- package/dist/auth/reset-password-form.js +167 -0
- package/dist/auth/reset-password-form.js.map +1 -0
- package/dist/auth/sign-in-form.d.ts +295 -0
- package/dist/auth/sign-in-form.js +426 -0
- package/dist/auth/sign-in-form.js.map +1 -0
- package/dist/auth/status-parts.d.ts +78 -0
- package/dist/auth/status-parts.js +83 -0
- package/dist/auth/status-parts.js.map +1 -0
- package/dist/auth/verify-email.d.ts +126 -0
- package/dist/auth/verify-email.js +243 -0
- package/dist/auth/verify-email.js.map +1 -0
- package/dist/chart.d.ts +25 -5
- package/dist/components/account-chips.d.ts +47 -7
- package/dist/components/account-chips.js +19 -3
- package/dist/components/account-chips.js.map +1 -1
- package/dist/components/account-settings-labels.d.ts +12 -1
- package/dist/components/account-settings-labels.js +4 -1
- package/dist/components/account-settings-labels.js.map +1 -1
- package/dist/components/account-settings.d.ts +61 -6
- package/dist/components/account-settings.js +115 -15
- package/dist/components/account-settings.js.map +1 -1
- package/dist/components/amount-input.d.ts +26 -5
- package/dist/components/button-group.d.ts +26 -5
- package/dist/components/calculator.d.ts +26 -5
- package/dist/components/confirm-dialog.d.ts +26 -5
- package/dist/components/copy-button.d.ts +23 -2
- package/dist/components/danger-confirm.d.ts +26 -5
- package/dist/components/facing-pair.d.ts +26 -5
- package/dist/components/file-button.d.ts +26 -5
- package/dist/components/file-dropzone.d.ts +26 -5
- package/dist/components/form-actions.d.ts +26 -5
- package/dist/components/iban-input.d.ts +26 -5
- package/dist/components/language-select.d.ts +26 -12
- package/dist/components/legal-page.d.ts +26 -5
- package/dist/components/legal.d.ts +26 -5
- package/dist/components/money-field.d.ts +26 -5
- package/dist/components/number-field.d.ts +26 -5
- package/dist/components/number-input.d.ts +26 -5
- package/dist/components/numpad-sheet.d.ts +26 -5
- package/dist/components/phone-input.d.ts +26 -5
- package/dist/components/series-chart.d.ts +26 -5
- package/dist/components/settings-fields.d.ts +25 -7
- package/dist/components/share-card.d.ts +25 -4
- package/dist/components/text-link.d.ts +26 -5
- package/dist/components/time-input.d.ts +26 -5
- package/dist/components/ui.d.ts +23 -2
- package/dist/components/user-avatar.d.ts +16 -2
- package/dist/components/user-avatar.js +7 -3
- package/dist/components/user-avatar.js.map +1 -1
- package/dist/{kit-labels-Du0uHBq4.d.ts → delete-account-setting-CGVMckMw.d.ts} +6654 -5302
- package/dist/feedback/feedback-attachment.d.ts +26 -5
- package/dist/feedback/feedback-context.d.ts +26 -5
- package/dist/feedback/feedback-crash.d.ts +26 -5
- package/dist/feedback/feedback-dialog.d.ts +26 -5
- package/dist/feedback/feedback-inbox.d.ts +26 -5
- package/dist/feedback/feedback-labels.d.ts +26 -5
- package/dist/feedback/feedback-menu.d.ts +26 -5
- package/dist/feedback/feedback-record.d.ts +26 -5
- package/dist/feedback/feedback-row-detail.d.ts +26 -5
- package/dist/feedback/feedback-status-undo.d.ts +26 -5
- package/dist/feedback/feedback-submit.d.ts +26 -5
- package/dist/feedback/feedback-swipe.d.ts +26 -5
- package/dist/feedback/feedback-table.d.ts +23 -2
- package/dist/feedback/feedback-thread.d.ts +26 -5
- package/dist/feedback.d.ts +26 -5
- package/dist/hooks/use-anchored-panel.d.ts +6 -2
- package/dist/hooks/use-anchored-panel.js +2 -1
- package/dist/hooks/use-anchored-panel.js.map +1 -1
- package/dist/hooks/use-file-drop.d.ts +26 -5
- package/dist/i18n/defaults.d.ts +26 -5
- package/dist/i18n/defaults.js +40 -0
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/german.d.ts +26 -5
- package/dist/i18n/german.js +343 -2
- package/dist/i18n/german.js.map +1 -1
- package/dist/i18n/kit-labels.d.ts +23 -2
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/languages.d.ts +21 -204
- package/dist/i18n/locales/de-CH.d.ts +26 -5
- package/dist/i18n/locales/en.d.ts +26 -5
- package/dist/i18n/locales/es.d.ts +26 -5
- package/dist/i18n/locales/es.js +337 -3
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +26 -5
- package/dist/i18n/locales/fr.js +344 -2
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts +26 -5
- package/dist/i18n/locales/hu.js +337 -3
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +26 -5
- package/dist/i18n/locales/it.js +342 -2
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +26 -5
- package/dist/i18n/locales/zh.js +333 -2
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/review.d.ts +26 -5
- package/dist/i18n/review.js +45 -1
- package/dist/i18n/review.js.map +1 -1
- package/dist/index.d.ts +19 -3
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/person-name.d.ts +69 -0
- package/dist/lib/person-name.js +65 -0
- package/dist/lib/person-name.js.map +1 -0
- package/dist/rhf/fields.d.ts +26 -5
- package/dist/rhf/form.d.ts +26 -5
- package/dist/rhf.d.ts +26 -5
- package/dist/shell/app-shell.d.ts +26 -5
- package/dist/shell/company-switcher.d.ts +59 -0
- package/dist/shell/company-switcher.js +85 -0
- package/dist/shell/company-switcher.js.map +1 -0
- package/dist/shell/top-bar-brand.d.ts +26 -5
- package/dist/shell/topbar-action-menu.d.ts +1 -0
- package/dist/shell.d.ts +20 -5
- package/dist/wizard/stepper-nav.d.ts +26 -5
- package/dist/wizard.d.ts +26 -5
- package/package.json +1 -1
- package/src/account/account-parts.ts +67 -0
- package/src/account/data-export-setting.tsx +218 -0
- package/src/account/delete-account-setting.tsx +362 -0
- package/src/account/email-change-setting.tsx +457 -0
- package/src/account/sessions-setting.tsx +283 -0
- package/src/admin/admin-action-confirm.tsx +495 -0
- package/src/admin/admin-action-log.tsx +297 -0
- package/src/admin/admin-parts.ts +82 -0
- package/src/admin/invitations-panel.tsx +516 -0
- package/src/admin/reviewer-scope-editor.tsx +234 -0
- package/src/admin/role-select.tsx +286 -0
- package/src/admin/transfer-ownership-dialog.tsx +172 -0
- package/src/admin/user-roster.tsx +573 -0
- package/src/auth/accept-invitation.tsx +227 -0
- package/src/auth/auth-errors.ts +262 -0
- package/src/auth/complete-name-dialog.tsx +253 -0
- package/src/auth/email-tag.ts +75 -0
- package/src/auth/forgot-password-form.tsx +229 -0
- package/src/auth/form-rules.ts +40 -0
- package/src/auth/new-password-fields.tsx +85 -0
- package/src/auth/not-found-page.tsx +98 -0
- package/src/auth/register-form.tsx +477 -0
- package/src/auth/reset-password-form.tsx +351 -0
- package/src/auth/sign-in-form.tsx +859 -0
- package/src/auth/status-parts.tsx +138 -0
- package/src/auth/verify-email.tsx +409 -0
- package/src/components/account-chips.tsx +64 -7
- package/src/components/account-settings-labels.ts +15 -1
- package/src/components/account-settings.tsx +199 -23
- package/src/components/user-avatar.tsx +22 -4
- package/src/hooks/use-anchored-panel.ts +14 -3
- package/src/i18n/defaults.ts +40 -0
- package/src/i18n/german.ts +379 -0
- package/src/i18n/kit-labels.tsx +60 -0
- package/src/i18n/locales/es.ts +371 -1
- package/src/i18n/locales/fr.ts +379 -0
- package/src/i18n/locales/hu.ts +366 -1
- package/src/i18n/locales/it.ts +373 -0
- package/src/i18n/locales/zh.ts +343 -0
- package/src/i18n/review.ts +44 -0
- package/src/index.ts +146 -0
- package/src/lib/person-name.ts +157 -0
- package/src/shell/company-switcher.tsx +140 -0
package/src/i18n/locales/it.ts
CHANGED
|
@@ -14,6 +14,15 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
14
14
|
const num = new Intl.NumberFormat(numberLocale);
|
|
15
15
|
const n = (value: number) => num.format(value);
|
|
16
16
|
const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);
|
|
17
|
+
// 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
|
|
18
|
+
// src/auth/auth-errors.ts: no wait → "un momento", under a minute → seconds, else
|
|
19
|
+
// minutes rounded up. kastlan's reviewed "auth.throttled" is the sentence without one.
|
|
20
|
+
const wait = (seconds: number) =>
|
|
21
|
+
seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`;
|
|
22
|
+
const rateLimited = (seconds?: number) =>
|
|
23
|
+
!seconds || seconds <= 0
|
|
24
|
+
? "Troppi tentativi. Attenda un momento e riprovi."
|
|
25
|
+
: `Troppi tentativi. Riprovi tra ${wait(seconds)}.`;
|
|
17
26
|
|
|
18
27
|
return {
|
|
19
28
|
feedbackAttachment: {
|
|
@@ -154,6 +163,9 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
154
163
|
memberSince: "Membro dal",
|
|
155
164
|
displayName: "Nome visualizzato",
|
|
156
165
|
save: "Salva",
|
|
166
|
+
firstName: "Nome",
|
|
167
|
+
lastName: "Cognome",
|
|
168
|
+
nameRequired: "Inserisca sia il nome sia il cognome.",
|
|
157
169
|
},
|
|
158
170
|
password: {
|
|
159
171
|
title: "Cambia password",
|
|
@@ -703,6 +715,8 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
703
715
|
registered: "Registrato",
|
|
704
716
|
unverified: "Non verificato",
|
|
705
717
|
passwordChange: "Deve cambiare la password",
|
|
718
|
+
deletion: "Eliminazione richiesta",
|
|
719
|
+
deletionOn: (date) => `Eliminazione il ${date}`,
|
|
706
720
|
},
|
|
707
721
|
shareCard: {
|
|
708
722
|
dialogTitle: "Condividi",
|
|
@@ -838,6 +852,365 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
|
|
|
838
852
|
},
|
|
839
853
|
},
|
|
840
854
|
},
|
|
855
|
+
// 0.29.0 — docs/auth-harmonization.md: keksdose's reviewed Italian (auth.*,
|
|
856
|
+
// verify_email, error.not_found_*, budget_share.join_*), kastlan's for the names and
|
|
857
|
+
// the 2FA prompt; written fresh where neither app had the sentence. Formal, "Lei" and
|
|
858
|
+
// "Suo" capitalised; headings addressed formally ("Scelga", not keksdose's "Scegli").
|
|
859
|
+
signIn: {
|
|
860
|
+
email: "Email",
|
|
861
|
+
password: "Password",
|
|
862
|
+
submit: "Accedi",
|
|
863
|
+
passkey: "Accedi con una passkey",
|
|
864
|
+
forgotPassword: "Password dimenticata?",
|
|
865
|
+
noAccount: "Non ha ancora un account?",
|
|
866
|
+
register: "Crea account",
|
|
867
|
+
invalidCredentials: "L’indirizzo email o la password non sono corretti.",
|
|
868
|
+
failed: "Accesso non riuscito. Riprovi.",
|
|
869
|
+
passkeyFailed: "Accesso con passkey non riuscito.",
|
|
870
|
+
deactivatedHint: "Account disattivato? Scriva a {contact}.",
|
|
871
|
+
// "Account creato con…" rather than "Si è registrato con…", which needs a gender.
|
|
872
|
+
tagHint: (taggedAddress) => `Account creato con ${taggedAddress}? Usi quell’indirizzo.`,
|
|
873
|
+
twoFactorTitle: "Autenticazione a due fattori",
|
|
874
|
+
twoFactorIntro: "Inserisca il codice mostrato dalla Sua app di autenticazione.",
|
|
875
|
+
code: "Codice 2FA",
|
|
876
|
+
verify: "Verifica",
|
|
877
|
+
codeInvalid: "Codice 2FA non valido.",
|
|
878
|
+
setPasswordTitle: "Scelga una nuova password",
|
|
879
|
+
setPasswordIntro:
|
|
880
|
+
"Per questo account è stata richiesta una nuova password. Ne scelga una e accederà subito.",
|
|
881
|
+
newPassword: "Nuova password",
|
|
882
|
+
confirmPassword: "Ripeti la nuova password",
|
|
883
|
+
passwordMismatch: "Le password non coincidono.",
|
|
884
|
+
setPasswordSubmit: "Imposta la password e accedi",
|
|
885
|
+
setPasswordFailed: "Impossibile impostare la password.",
|
|
886
|
+
expired: "Questo accesso è scaduto. Acceda di nuovo.",
|
|
887
|
+
backToSignIn: "Torna all’accesso",
|
|
888
|
+
// kastlan's backup-code words ("codice di riserva" — not keksdose's "codice di
|
|
889
|
+
// recupero", which is the key of its end-to-end encryption).
|
|
890
|
+
useRecoveryCode: "Usa un codice di riserva",
|
|
891
|
+
useAuthenticatorCode: "Usa la Sua app di autenticazione",
|
|
892
|
+
recoveryCode: "Codice di riserva",
|
|
893
|
+
recoveryIntro:
|
|
894
|
+
"Inserisca uno dei codici di riserva che ha salvato quando ha attivato l’autenticazione a due fattori.",
|
|
895
|
+
recoveryCodeHint: (length) => `${n(length)} lettere e cifre. Trattini e spazi non contano.`,
|
|
896
|
+
recoveryCodeInvalid: "Questo codice di riserva non è valido o è già stato usato.",
|
|
897
|
+
rateLimited,
|
|
898
|
+
},
|
|
899
|
+
register: {
|
|
900
|
+
firstName: "Nome",
|
|
901
|
+
lastName: "Cognome",
|
|
902
|
+
email: "Email",
|
|
903
|
+
emailTagUse: (address) => `Usa ${address}`,
|
|
904
|
+
emailTagHint:
|
|
905
|
+
"Molti provider recapitano nome+tag@… nella stessa casella, così la posta di questa app è filtrabile e riconoscibile. Verifichi che il Suo lo faccia prima di farci affidamento: accederebbe con l’indirizzo con il tag.",
|
|
906
|
+
invitedEmailHint: "L’indirizzo a cui è stato inviato il Suo invito.",
|
|
907
|
+
invitedTagNote: "L’indirizzo con il tag riceve una propria email di conferma.",
|
|
908
|
+
password: "Password",
|
|
909
|
+
confirmPassword: "Ripeti la password",
|
|
910
|
+
passwordMismatch: "Le password non coincidono.",
|
|
911
|
+
language: "Lingua",
|
|
912
|
+
submit: "Crea account",
|
|
913
|
+
haveAccount: "Ha già un account?",
|
|
914
|
+
signIn: "Accedi",
|
|
915
|
+
emailTaken: "Esiste già un account con questo indirizzo email.",
|
|
916
|
+
registrationClosed:
|
|
917
|
+
"I nuovi account si creano solo su invito. Chieda al gestore di invitare il Suo indirizzo email.",
|
|
918
|
+
invitationInvalid: "Questo link di invito non è valido.",
|
|
919
|
+
invitationExpired: "Questo invito è scaduto. Ne chieda uno nuovo.",
|
|
920
|
+
failed: "Registrazione non riuscita. Riprovi.",
|
|
921
|
+
rateLimited,
|
|
922
|
+
},
|
|
923
|
+
completeName: {
|
|
924
|
+
title: "Completi il Suo nome",
|
|
925
|
+
description:
|
|
926
|
+
"Nome e cognome ora vengono richiesti separatamente. Controlli quanto è già compilato e aggiunga ciò che manca.",
|
|
927
|
+
firstName: "Nome",
|
|
928
|
+
lastName: "Cognome",
|
|
929
|
+
save: "Salva",
|
|
930
|
+
later: "Più tardi",
|
|
931
|
+
failed: "Impossibile salvare il Suo nome. Riprovi.",
|
|
932
|
+
},
|
|
933
|
+
forgotPassword: {
|
|
934
|
+
title: "Password dimenticata",
|
|
935
|
+
intro:
|
|
936
|
+
"Inserisca l’indirizzo email del Suo account. Le invieremo un link per scegliere una nuova password.",
|
|
937
|
+
email: "Email",
|
|
938
|
+
submit: "Invia il link",
|
|
939
|
+
sent: (email) => `Se esiste un account per ${email}, il link è in arrivo.`,
|
|
940
|
+
sentHint: "Il link è valido per un’ora e funziona una sola volta. Controlli anche la cartella spam.",
|
|
941
|
+
backToSignIn: "Torna all’accesso",
|
|
942
|
+
error: "Richiesta non riuscita. Riprovi più tardi.",
|
|
943
|
+
rateLimited,
|
|
944
|
+
},
|
|
945
|
+
resetPassword: {
|
|
946
|
+
title: "Scelga una nuova password",
|
|
947
|
+
checking: "Verifica del link…",
|
|
948
|
+
intro: (email) => `Sta impostando una nuova password per ${email}.`,
|
|
949
|
+
newPassword: "Nuova password",
|
|
950
|
+
confirmPassword: "Ripeti la nuova password",
|
|
951
|
+
mismatch: "Le password non coincidono.",
|
|
952
|
+
submit: "Salva password",
|
|
953
|
+
failed: "Impossibile cambiare la password.",
|
|
954
|
+
noToken: "Questo link è incompleto.",
|
|
955
|
+
invalid: "Questo link non è valido o è scaduto.",
|
|
956
|
+
invalidHint:
|
|
957
|
+
"I link sono validi per un’ora e funzionano una sola volta. Ne richieda semplicemente uno nuovo.",
|
|
958
|
+
requestNew: "Richiedi un nuovo link",
|
|
959
|
+
success: "La Sua password è stata cambiata. Ora può accedere con quella.",
|
|
960
|
+
sessionsEnded: "I dispositivi connessi sono stati disconnessi: lì dovrà accedere di nuovo.",
|
|
961
|
+
signIn: "Vai all’accesso",
|
|
962
|
+
rateLimited,
|
|
963
|
+
},
|
|
964
|
+
verifyEmail: {
|
|
965
|
+
title: "Confermi il Suo indirizzo email",
|
|
966
|
+
verifying: "Conferma in corso…",
|
|
967
|
+
verified: "Il Suo indirizzo email è confermato.",
|
|
968
|
+
continue: "Continua",
|
|
969
|
+
invalid: "Questo link di conferma non è valido",
|
|
970
|
+
expired: "Questo link di conferma è scaduto",
|
|
971
|
+
noToken: "A questo link manca il token di conferma.",
|
|
972
|
+
invalidHint: "Il link potrebbe essere scaduto o già stato usato.",
|
|
973
|
+
requestInApp: "Può richiederne uno nuovo dall’app.",
|
|
974
|
+
requestHere: "Può richiederne uno nuovo qui.",
|
|
975
|
+
resend: "Invia di nuovo",
|
|
976
|
+
resendIn: (seconds) => `Invia di nuovo tra ${n(seconds)} s`,
|
|
977
|
+
resent: "Email di conferma inviata",
|
|
978
|
+
resendError: "Impossibile inviare l’email di conferma",
|
|
979
|
+
banner: "Confermi il Suo indirizzo email.",
|
|
980
|
+
dismiss: "Non ora",
|
|
981
|
+
},
|
|
982
|
+
notFound: {
|
|
983
|
+
title: "Pagina non trovata",
|
|
984
|
+
body: "Questo indirizzo non esiste (più). Forse è un errore di battitura, oppure la pagina è stata spostata.",
|
|
985
|
+
home: "Vai alla pagina iniziale",
|
|
986
|
+
app: "Torna all’app",
|
|
987
|
+
},
|
|
988
|
+
acceptInvitation: {
|
|
989
|
+
title: "Accetta l’invito",
|
|
990
|
+
accepting: "Adesione in corso…",
|
|
991
|
+
accepted: "Invito accettato.",
|
|
992
|
+
// "Ora fa parte di…" rather than "Si è unito/a a…", which needs a gender.
|
|
993
|
+
joined: (name) => `Ora fa parte di ${name}.`,
|
|
994
|
+
continue: "Continua",
|
|
995
|
+
invalid: "Impossibile unirsi con questo link",
|
|
996
|
+
expired: "Questo invito è scaduto",
|
|
997
|
+
noToken: "A questo link manca il token di invito.",
|
|
998
|
+
askAgain: "Chieda a chi ha inviato l’invito di mandarne uno nuovo.",
|
|
999
|
+
signInFirst: "Acceda per accettare questo invito",
|
|
1000
|
+
signInHint: "Usi l’account a cui è stato inviato l’invito.",
|
|
1001
|
+
signIn: "Accedi",
|
|
1002
|
+
register: "Crea account",
|
|
1003
|
+
},
|
|
1004
|
+
companySwitcher: {
|
|
1005
|
+
switchCompany: "Cambia azienda",
|
|
1006
|
+
heading: "Aziende",
|
|
1007
|
+
current: (name) => `Azienda: ${name}`,
|
|
1008
|
+
currentMark: "(attuale)",
|
|
1009
|
+
switching: "Cambio azienda in corso…",
|
|
1010
|
+
},
|
|
1011
|
+
// 0.30.0 — docs/user-admin-harmonization.md: keksdose's reviewed Italian for the admin
|
|
1012
|
+
// words (admin.users.*), Kurvenschmiede's for transfer, invitations and sessions,
|
|
1013
|
+
// kastlan's for the company, the throttle and "Esci ovunque"; written fresh where no
|
|
1014
|
+
// app had the sentence. "Lei", and phrased so that no sentence about the reader needs
|
|
1015
|
+
// a gender ("disconnesso/a").
|
|
1016
|
+
emailChange: {
|
|
1017
|
+
title: "Indirizzo email",
|
|
1018
|
+
current: "Indirizzo attuale",
|
|
1019
|
+
newEmail: "Nuovo indirizzo email",
|
|
1020
|
+
password: "Password attuale",
|
|
1021
|
+
passwordHint: "Accede con il Suo indirizzo, quindi per cambiarlo serve la password.",
|
|
1022
|
+
emailTagUse: (address) => `Usa ${address}`,
|
|
1023
|
+
emailTagHint:
|
|
1024
|
+
"Molti provider recapitano nome+tag@… nella stessa casella, così la posta di questa app è filtrabile e riconoscibile. Verifichi che il Suo lo faccia prima di farci affidamento: accederebbe con l’indirizzo con il tag.",
|
|
1025
|
+
submit: "Cambia indirizzo email",
|
|
1026
|
+
sameAsCurrent: "Questo è già il Suo indirizzo.",
|
|
1027
|
+
emailTaken: "Esiste già un account con questo indirizzo email.",
|
|
1028
|
+
wrongPassword: "La password non è corretta.",
|
|
1029
|
+
pending: (newEmail) => `Confermi il link che abbiamo inviato a ${newEmail}.`,
|
|
1030
|
+
pendingHint: (currentEmail) =>
|
|
1031
|
+
`Fino ad allora continua ad accedere con ${currentEmail}. Controlli anche la cartella spam.`,
|
|
1032
|
+
resend: "Invia di nuovo il link",
|
|
1033
|
+
resent: "Abbiamo inviato di nuovo il link.",
|
|
1034
|
+
cancel: "Annulla la modifica",
|
|
1035
|
+
confirmed: (email) => `Il Suo indirizzo email ora è ${email}.`,
|
|
1036
|
+
passkeyNote:
|
|
1037
|
+
"Le Sue passkey continuano a funzionare. Il Suo dispositivo potrebbe ancora mostrarle con il vecchio indirizzo.",
|
|
1038
|
+
rateLimited,
|
|
1039
|
+
failed: "Non ha funzionato. Riprovi.",
|
|
1040
|
+
},
|
|
1041
|
+
sessions: {
|
|
1042
|
+
title: "Sessioni",
|
|
1043
|
+
description:
|
|
1044
|
+
"Ha effettuato l’accesso su un dispositivo che non usa più o di cui non si fida? Esca ovunque.",
|
|
1045
|
+
signOutEverywhere: "Esci ovunque…",
|
|
1046
|
+
signOutEverywherePrompt:
|
|
1047
|
+
"Tutte le sessioni terminano, compresa questa: anche questo dispositivo verrà disconnesso e dovrà accedere di nuovo da qui.",
|
|
1048
|
+
confirmSignOutEverywhere: "Esci ovunque",
|
|
1049
|
+
list: "Dove ha effettuato l’accesso",
|
|
1050
|
+
loading: "Caricamento delle sessioni…",
|
|
1051
|
+
empty: "Nessuna sessione da mostrare.",
|
|
1052
|
+
current: "Questo dispositivo",
|
|
1053
|
+
unknownDevice: "Dispositivo sconosciuto",
|
|
1054
|
+
// A colon: `when` is either "3 ore fa" or a date.
|
|
1055
|
+
lastActive: (when) => `Ultima attività: ${when}`,
|
|
1056
|
+
ip: (address) => `IP ${address}`,
|
|
1057
|
+
revoke: "Disconnetti",
|
|
1058
|
+
// Starts with `revoke`, the button's visible text, for voice control.
|
|
1059
|
+
revokeItem: (device) => `Disconnetti ${device}`,
|
|
1060
|
+
failed: "Non ha funzionato. Riprovi.",
|
|
1061
|
+
},
|
|
1062
|
+
deleteAccount: {
|
|
1063
|
+
title: "Elimina account",
|
|
1064
|
+
afterDays: (days) =>
|
|
1065
|
+
`Il Suo account viene disattivato subito ed eliminato definitivamente ${n(days)} ${plural(days, "giorno", "giorni")} dopo.`,
|
|
1066
|
+
operator: "Il Suo account viene disattivato subito, poi il gestore lo eliminerà definitivamente.",
|
|
1067
|
+
arm: "Elimina account…",
|
|
1068
|
+
prompt: "Tutte le Sue sessioni terminano, su ogni dispositivo, e il Suo account non potrà più essere usato.",
|
|
1069
|
+
handOver: (count) =>
|
|
1070
|
+
count === 1
|
|
1071
|
+
? "1 elemento visibile ad altri passerà a un amministratore."
|
|
1072
|
+
: `${n(count)} elementi visibili ad altri passeranno a un amministratore.`,
|
|
1073
|
+
confirm: "Elimina il mio account",
|
|
1074
|
+
done: "Il Suo account è disattivato. Disconnessione in corso.",
|
|
1075
|
+
wrongPassword: "La password non è corretta.",
|
|
1076
|
+
confirmationMismatch: "Questo non è l’indirizzo del Suo account.",
|
|
1077
|
+
lastAdmin: "Il Suo è l’ultimo account amministratore. Renda prima amministratore qualcun altro.",
|
|
1078
|
+
lastAdminOf: (companies) =>
|
|
1079
|
+
`Il Suo è l’ultimo account amministratore di ${companies}. Lì renda prima amministratore qualcun altro.`,
|
|
1080
|
+
// keksdose's "famiglia".
|
|
1081
|
+
householdHasMembers:
|
|
1082
|
+
"La Sua famiglia ha altri membri, quindi l’account non può essere eliminato qui. Scriva al gestore.",
|
|
1083
|
+
rateLimited,
|
|
1084
|
+
failed: "Impossibile eliminare il Suo account. Riprovi.",
|
|
1085
|
+
},
|
|
1086
|
+
dataExport: {
|
|
1087
|
+
title: "Esporta i Suoi dati",
|
|
1088
|
+
description: "Scarichi una copia dei dati del Suo account come file JSON.",
|
|
1089
|
+
download: "Scarica i miei dati",
|
|
1090
|
+
started: "Il download è iniziato.",
|
|
1091
|
+
saveAgain: "Non è partito? Salva il file",
|
|
1092
|
+
rateLimited: (seconds) =>
|
|
1093
|
+
seconds && seconds > 0
|
|
1094
|
+
? `Ha appena esportato i Suoi dati. Riprovi tra ${wait(seconds)}.`
|
|
1095
|
+
: "Ha appena esportato i Suoi dati. Riprovi tra un minuto.",
|
|
1096
|
+
failed: "Esportazione non riuscita. Riprovi.",
|
|
1097
|
+
},
|
|
1098
|
+
userRoster: {
|
|
1099
|
+
name: "Nome",
|
|
1100
|
+
email: "Email",
|
|
1101
|
+
role: "Ruolo",
|
|
1102
|
+
state: "Stato",
|
|
1103
|
+
created: "Creato il",
|
|
1104
|
+
lastLogin: "Ultimo accesso",
|
|
1105
|
+
never: "Mai",
|
|
1106
|
+
actions: "Azioni",
|
|
1107
|
+
actionsFor: (name) => `Azioni per ${name}`,
|
|
1108
|
+
},
|
|
1109
|
+
roleSelect: {
|
|
1110
|
+
label: "Ruolo",
|
|
1111
|
+
rolesLegend: "Ruoli",
|
|
1112
|
+
roleOf: (name) => `Ruolo di ${name}`,
|
|
1113
|
+
lockedLastAdmin: "L’ultimo account amministratore attivo mantiene questo ruolo.",
|
|
1114
|
+
lockedSelf: "Non può cambiare il Suo ruolo.",
|
|
1115
|
+
notForLastAdmin: "non per l’ultimo amministratore",
|
|
1116
|
+
notForSelf: "non per il Suo account",
|
|
1117
|
+
unavailable: (role, reason) => `${role} (${reason})`,
|
|
1118
|
+
},
|
|
1119
|
+
reviewerScope: {
|
|
1120
|
+
languages: "Lingue",
|
|
1121
|
+
hint: "Spunti le lingue che questa persona rivede.",
|
|
1122
|
+
none: "Nessuna lingua: salvando si toglie il ruolo di revisore.",
|
|
1123
|
+
areas: "Limita a",
|
|
1124
|
+
legalOnly: "Solo le pagine legali",
|
|
1125
|
+
legalOnlyHint:
|
|
1126
|
+
"Impressum, informativa sulla privacy e condizioni d’uso: per un giurista più che per un madrelingua.",
|
|
1127
|
+
failed: "Impossibile salvare il ruolo di revisore. Riprovi.",
|
|
1128
|
+
},
|
|
1129
|
+
adminAction: {
|
|
1130
|
+
confirm: "Conferma",
|
|
1131
|
+
cancel: "Annulla",
|
|
1132
|
+
close: "Chiudi",
|
|
1133
|
+
lastAdmin:
|
|
1134
|
+
"Questo è l’ultimo account amministratore attivo. Renda prima amministratore qualcun altro.",
|
|
1135
|
+
self: "Non può farlo sul Suo account.",
|
|
1136
|
+
confirmationMismatch:
|
|
1137
|
+
"L’indirizzo non corrisponde a questo account. Controlli su quale account si trova.",
|
|
1138
|
+
otherCompanies:
|
|
1139
|
+
"Questo account appartiene anche ad altre aziende, quindi solo il gestore della piattaforma può farlo. Può invece rimuoverlo da questa azienda.",
|
|
1140
|
+
removeFromCompany: "Rimuovi dall’azienda",
|
|
1141
|
+
failed: "Non ha funzionato. Riprovi.",
|
|
1142
|
+
},
|
|
1143
|
+
adminActionLog: {
|
|
1144
|
+
title: "Azioni di amministrazione",
|
|
1145
|
+
empty: "Ancora nessuna azione di amministrazione.",
|
|
1146
|
+
loading: "Caricamento…",
|
|
1147
|
+
by: (actor) => `da ${actor}`,
|
|
1148
|
+
bySelf: "dall’utente stesso",
|
|
1149
|
+
automatic: "automaticamente",
|
|
1150
|
+
erased: "un account cancellato",
|
|
1151
|
+
filteredTo: (target) => `Solo ${target}`,
|
|
1152
|
+
showAll: "Mostra tutte le azioni",
|
|
1153
|
+
filterBy: (target) => `Mostra solo le azioni su ${target}`,
|
|
1154
|
+
// Agreeing with "account" (masculine), like `accountState`.
|
|
1155
|
+
actions: {
|
|
1156
|
+
deactivate: "Disattivato",
|
|
1157
|
+
reactivate: "Riattivato",
|
|
1158
|
+
role: "Ruolo cambiato",
|
|
1159
|
+
membership_remove: "Rimosso dall’azienda",
|
|
1160
|
+
password_change_require: "Nuova password richiesta",
|
|
1161
|
+
password_change_withdraw: "Richiesta di nuova password ritirata",
|
|
1162
|
+
mail_verification: "Email di conferma inviata",
|
|
1163
|
+
mail_reset: "Email di reimpostazione password inviata",
|
|
1164
|
+
reviewer: "Ambito di revisione cambiato",
|
|
1165
|
+
invite: "Invitato",
|
|
1166
|
+
invite_resend: "Invito inviato di nuovo",
|
|
1167
|
+
invite_revoke: "Invito ritirato",
|
|
1168
|
+
transfer: "Lavoro passato ad altri",
|
|
1169
|
+
deletion_request: "Eliminazione richiesta",
|
|
1170
|
+
deletion_cancel: "Eliminazione annullata",
|
|
1171
|
+
erase: "Account cancellato",
|
|
1172
|
+
},
|
|
1173
|
+
},
|
|
1174
|
+
transferOwnership: {
|
|
1175
|
+
title: (name) => `Passa il lavoro di ${name}`,
|
|
1176
|
+
body: "Tutto ciò che possiede questo account passa all’account scelto, in un solo passo.",
|
|
1177
|
+
recipient: "Passalo a",
|
|
1178
|
+
choose: "Scelga un account…",
|
|
1179
|
+
chooseFirst: "Scelga chi riceve il lavoro",
|
|
1180
|
+
confirm: "Passa il lavoro",
|
|
1181
|
+
customer: "cliente",
|
|
1182
|
+
deactivated: "disattivato",
|
|
1183
|
+
self: "lo stesso account",
|
|
1184
|
+
unavailable: (account, reason) => `${account} (${reason})`,
|
|
1185
|
+
noCandidates: "Nessun altro account può riceverlo.",
|
|
1186
|
+
},
|
|
1187
|
+
invitations: {
|
|
1188
|
+
email: "Indirizzo email",
|
|
1189
|
+
invalidEmail: "Inserisca un indirizzo email completo.",
|
|
1190
|
+
role: "Ruolo",
|
|
1191
|
+
scope: "Ambito",
|
|
1192
|
+
scopeNone: "Nessuno",
|
|
1193
|
+
language: "Lingua dell’invito",
|
|
1194
|
+
note: "Nota",
|
|
1195
|
+
invite: "Invita",
|
|
1196
|
+
listTitle: "Inviti",
|
|
1197
|
+
empty: "Non è ancora stato invitato nessuno.",
|
|
1198
|
+
loading: "Caricamento…",
|
|
1199
|
+
// Agreeing with "invito" (masculine).
|
|
1200
|
+
status: { open: "Aperto", accepted: "Accettato", expired: "Scaduto", revoked: "Ritirato" },
|
|
1201
|
+
sent: (date) => `Inviato il ${date}`,
|
|
1202
|
+
// kastlan's "Valido fino al".
|
|
1203
|
+
expires: (date) => `Valido fino al ${date}`,
|
|
1204
|
+
invitedBy: (name) => `da ${name}`,
|
|
1205
|
+
resend: (email) => `Invia a ${email} un nuovo link`,
|
|
1206
|
+
copyLink: "Copia link di invito",
|
|
1207
|
+
revoke: (email) => `Ritira l’invito per ${email}`,
|
|
1208
|
+
consoleHint:
|
|
1209
|
+
"Questo server non invia email: vengono scritte nel log del server. Copi qui ogni link di invito e lo inoltri Lei stesso: viene mostrato una sola volta.",
|
|
1210
|
+
linkReady: (email) => `Il link di invito per ${email}, mostrato solo questa volta:`,
|
|
1211
|
+
notSent: (email) => `${email} è invitato, ma non è stato possibile inviare l’email. La reinvii.`,
|
|
1212
|
+
failed: "Non ha funzionato. Riprovi.",
|
|
1213
|
+
},
|
|
841
1214
|
characterCount: {
|
|
842
1215
|
count: (used, max) => `${n(used)} di ${n(max)} ${plural(max, "carattere", "caratteri")}`,
|
|
843
1216
|
remaining: (left) =>
|