From 4f086c557d63964c54a018e0708df13ffe286f79 Mon Sep 17 00:00:00 2001 From: Quentin Gliech Date: Tue, 2 Jun 2026 17:41:28 +0200 Subject: [PATCH 1/3] Fix a few plurals in the English translations Those were introduced in https://github.com/element-hq/matrix-authentication-service/pull/5644 --- frontend/locales/en.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/locales/en.json b/frontend/locales/en.json index 2bfbe6863..163acb2d3 100644 --- a/frontend/locales/en.json +++ b/frontend/locales/en.json @@ -290,11 +290,11 @@ "email": "Email" }, "user_sessions_overview": { - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Where you're signed in", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -302,12 +302,12 @@ "inactive_90_days": "All your sessions have been active in the last 90 days." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" From 070f0bff412e055c787f115edf926bb440a3c5e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 11:30:45 +0000 Subject: [PATCH 2/3] Translations updates --- frontend/.storybook/locales.ts | 78 +++++++++++++++++----------------- frontend/locales/cs.json | 8 ++-- frontend/locales/da.json | 8 ++-- frontend/locales/de.json | 34 +++++++-------- frontend/locales/et.json | 30 ++++++------- frontend/locales/fr.json | 28 ++++++------ frontend/locales/hu.json | 8 ++-- frontend/locales/nb-NO.json | 8 ++-- frontend/locales/nl.json | 8 ++-- frontend/locales/pt-BR.json | 8 ++-- frontend/locales/pt.json | 8 ++-- frontend/locales/ru.json | 8 ++-- frontend/locales/sk.json | 8 ++-- frontend/locales/sv.json | 8 ++-- frontend/locales/uk.json | 40 +++++++++-------- frontend/locales/uz.json | 40 ++++++++--------- frontend/locales/zh-Hans.json | 48 +++++++++------------ translations/de.json | 25 ++++++++--- translations/et.json | 18 ++++++-- translations/fr.json | 23 ++++++++-- translations/uk.json | 7 ++- translations/uz.json | 5 +++ translations/zh-Hans.json | 39 +++++++++++------ 23 files changed, 280 insertions(+), 215 deletions(-) diff --git a/frontend/.storybook/locales.ts b/frontend/.storybook/locales.ts index ffcc627ed..22171da65 100644 --- a/frontend/.storybook/locales.ts +++ b/frontend/.storybook/locales.ts @@ -27,7 +27,7 @@ export type LocalazyMetadata = { }; const localazyMetadata: LocalazyMetadata = { - projectUrl: "https://localazy.com/p/matrix-authentication-service", + projectUrl: "https://localazy.com/p/matrix-authentication-service!v1.18", baseLocale: "en", languages: [ { @@ -208,25 +208,25 @@ const localazyMetadata: LocalazyMetadata = { file: "frontend.json", path: "", cdnFiles: { - "cs": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/cs/frontend.json", - "da": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/da/frontend.json", - "de": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/de/frontend.json", - "en": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/en/frontend.json", - "et": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/et/frontend.json", - "fi": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fi/frontend.json", - "fr": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fr/frontend.json", - "hu": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/hu/frontend.json", - "nb_NO": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/nb-NO/frontend.json", - "nl": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/nl/frontend.json", - "pl": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pl/frontend.json", - "pt": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pt/frontend.json", - "pt_BR": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pt-BR/frontend.json", - "ru": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/ru/frontend.json", - "sk": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/sk/frontend.json", - "sv": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/sv/frontend.json", - "uk": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/uk/frontend.json", - "uz": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/uz/frontend.json", - "zh#Hans": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/zh-Hans/frontend.json" + "cs": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/cs/frontend.json", + "da": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/da/frontend.json", + "de": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/de/frontend.json", + "en": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/en/frontend.json", + "et": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/et/frontend.json", + "fi": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fi/frontend.json", + "fr": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/fr/frontend.json", + "hu": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/hu/frontend.json", + "nb_NO": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/nb-NO/frontend.json", + "nl": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/nl/frontend.json", + "pl": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pl/frontend.json", + "pt": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pt/frontend.json", + "pt_BR": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/pt-BR/frontend.json", + "ru": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/ru/frontend.json", + "sk": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/sk/frontend.json", + "sv": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/sv/frontend.json", + "uk": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/uk/frontend.json", + "uz": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/uz/frontend.json", + "zh#Hans": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/7c203a8ac8bd48c3c4609a8effcd0fbac430f9b2/zh-Hans/frontend.json" } }, { @@ -234,25 +234,25 @@ const localazyMetadata: LocalazyMetadata = { file: "file.json", path: "", cdnFiles: { - "cs": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/cs/file.json", - "da": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/da/file.json", - "de": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/de/file.json", - "en": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/en/file.json", - "et": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/et/file.json", - "fi": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fi/file.json", - "fr": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fr/file.json", - "hu": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/hu/file.json", - "nb_NO": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/nb-NO/file.json", - "nl": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/nl/file.json", - "pl": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pl/file.json", - "pt": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pt/file.json", - "pt_BR": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pt-BR/file.json", - "ru": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/ru/file.json", - "sk": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/sk/file.json", - "sv": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/sv/file.json", - "uk": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/uk/file.json", - "uz": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/uz/file.json", - "zh#Hans": "https://delivery.localazy.com/_a7686032324574572744739e0707/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/zh-Hans/file.json" + "cs": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/cs/file.json", + "da": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/da/file.json", + "de": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/de/file.json", + "en": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/en/file.json", + "et": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/et/file.json", + "fi": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fi/file.json", + "fr": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/fr/file.json", + "hu": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/hu/file.json", + "nb_NO": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/nb-NO/file.json", + "nl": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/nl/file.json", + "pl": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pl/file.json", + "pt": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pt/file.json", + "pt_BR": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/pt-BR/file.json", + "ru": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/ru/file.json", + "sk": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/sk/file.json", + "sv": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/sv/file.json", + "uk": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/uk/file.json", + "uz": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/uz/file.json", + "zh#Hans": "https://delivery.localazy.com/_a65091076132125116636e4a73b0/_e0/5b69b0350dccfd47c245a5d41c1b9fdf6912cc6e/zh-Hans/file.json" } } ] diff --git a/frontend/locales/cs.json b/frontend/locales/cs.json index 295f65c08..6eb78575d 100644 --- a/frontend/locales/cs.json +++ b/frontend/locales/cs.json @@ -362,11 +362,11 @@ "active_sessions:one": "{{count}} aktivní relace", "active_sessions:few": "{{count}} aktivní relace", "active_sessions:other": "{{count}} aktivních relací", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Kde jste přihlášeni", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -374,12 +374,12 @@ "inactive_90_days": "Všechny vaše relace byly aktivní v posledních 90 dnech." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/da.json b/frontend/locales/da.json index da0b8f1f0..d8170ad76 100644 --- a/frontend/locales/da.json +++ b/frontend/locales/da.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} aktiv session", "active_sessions:other": "{{count}} aktive sessioner", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Hvor du er logget ind", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "Alle dine sessioner har været aktive i de sidste 90 dage." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/de.json b/frontend/locales/de.json index 9057b1592..dd4bea376 100644 --- a/frontend/locales/de.json +++ b/frontend/locales/de.json @@ -125,8 +125,8 @@ "heading": "Die E-Mail-Adresse {{email}} wird bereits verwendet." }, "end_session_button": { - "confirmation_modal_body_text": "Make sure you always have access to another verified device or your recovery key to avoid losing your encrypted chat history.", - "confirmation_modal_title": "Möchtest du diese Sitzung wirklich beenden?", + "confirmation_modal_body_text": "Stelle sicher, dass du immer Zugriff auf ein anderes verifiziertes Gerät oder deinen Wiederherstellungsschlüssel hast, um zu vermeiden, dass dein verschlüsselter Chatverlauf verloren geht.", + "confirmation_modal_title": "Möchten Sie dieses Gerät wirklich entfernen?", "text": "Gerät entfernen" }, "error": { @@ -146,7 +146,7 @@ "inactive_90_days": "Seit über 90 Tagen inaktiv" }, "nav": { - "device_limit_error": "Device limit reached", + "device_limit_error": "Gerätelimit erreicht", "devices": "Geräte", "plan": "Abo", "profile": "Profil", @@ -359,27 +359,27 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} aktive Sitzung", "active_sessions:other": "{{count}} aktive Sitzungen", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", + "approaching_session_limit_warning_description:one": "Du hast {{num_sessions}} von {{count}} Geräteplätzen belegt. Sobald du das Limit erreicht hast, musst du ein vorhandenes Gerät entfernen, um ein weiteres hinzuzufügen.", + "approaching_session_limit_warning_description:other": "Du hast {{num_sessions}} von {{count}} Geräteplätzen belegt. Sobald du das Limit erreicht hast, musst du ein vorhandenes Gerät entfernen, um ein weiteres hinzuzufügen.", + "approaching_session_limit_warning_header": "Achtung, du hast fast das Limit für angemeldete Geräte erreicht", "heading": "Wo du angemeldet bist", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_header": "You've hit the device limit", + "hit_session_limit_warning_description:one": "Du hast {{num_sessions}} von {{count}} Geräteplätzen belegt. Wenn du dich erneut anmelden möchtest, musst du ein bereits angemeldetes Gerät entfernen.", + "hit_session_limit_warning_description:other": "Du hast {{num_sessions}} von {{count}} Geräteplätzen belegt. Wenn du dich erneut anmelden möchtest, musst du ein bereits angemeldetes Gerät entfernen.", + "hit_session_limit_warning_header": "Du hast das Limit für angemeldete Geräte erreicht", "no_active_sessions": { "default": "Du bist bei keiner Anwendung angemeldet.", "inactive_90_days": "Alle deine Sitzungen waren in den letzten 90 Tagen aktiv." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "unfiltered_session_total:one": "{{count}} total", - "unfiltered_session_total:other": "{{count}} total" + "header:one": "{{count}} Geräte entsprechen Ihren Suchkriterien ({{unfiltered_session_total}})", + "header:other": "{{count}} Geräte entsprechen Ihren Suchkriterien ({{unfiltered_session_total}})", + "unfiltered_session_total:one": "{{count}} insgesamt", + "unfiltered_session_total:other": "{{count}} insgesamt" }, - "num_sessions_header:one": "{{count}} devices", - "num_sessions_header:other": "{{count}} devices", - "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", - "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" + "num_sessions_header:one": "{{count}} Gerät", + "num_sessions_header:other": "{{count}} Geräte", + "session_limit_info:one": "Du hast {{count}} von {{limit}} Geräten belegt", + "session_limit_info:other": "Du hast {{count}} von {{limit}} Geräten belegt" }, "verify_email": { "code_expired_alert": { diff --git a/frontend/locales/et.json b/frontend/locales/et.json index 9d6c23505..b2472578f 100644 --- a/frontend/locales/et.json +++ b/frontend/locales/et.json @@ -146,7 +146,7 @@ "inactive_90_days": "Pole kasutusel olnud üle 90 päeva" }, "nav": { - "device_limit_error": "Device limit reached", + "device_limit_error": "Seadmete arvu ülempiir on käes", "devices": "Seadmed", "plan": "Teenusepakett", "profile": "Profiil", @@ -359,27 +359,27 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} aktiivne sessioon", "active_sessions:other": "{{count}} aktiivset sessiooni", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", + "approaching_session_limit_warning_description:one": "Olete kasutanud {{num_sessions}} / {{count}} lubatud seadmest. Kui oled oma piirarvuni jõudnud, pead uue lisamiseks olemasoleva seadme eemaldama.", + "approaching_session_limit_warning_description:other": "Olete kasutanud {{num_sessions}} / {{count}} lubatud seadmetest. Kui oled oma piirarvuni jõudnud, pead uue lisamiseks olemasoleva seadme eemaldama.", + "approaching_session_limit_warning_header": "Tähelepanu, sinu seadmete arvu ülempiir on lähedal", "heading": "Kus sa oled sisse logitud", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_header": "You've hit the device limit", + "hit_session_limit_warning_description:one": "Oled kasutanud {{count}} / {{num_sessions}} lubatud seadmest. Kui soovid uuesti sisse logida, pead eemaldama ühe olemasoleva seadme.", + "hit_session_limit_warning_description:other": "Oled kasutanud {{count}} / {{num_sessions}} lubatud seadmetest. Kui soovid uuesti sisse logida, pead eemaldama ühe olemasoleva seadme.", + "hit_session_limit_warning_header": "Oled jõudnud seadmete arvu piiranguni", "no_active_sessions": { "default": "Sa pole mitte üheski rakenduses sisse loginud.", "inactive_90_days": "Kõik sinu sessioonid on olnud aktiivsed viimase 90 päeva jooksul." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "unfiltered_session_total:one": "{{count}} total", - "unfiltered_session_total:other": "{{count}} total" + "header:one": "{{count}} seade vastab sinu filtrile ({{unfiltered_session_total}})", + "header:other": "{{count}} seadet vastavad sinu filtrile ({{unfiltered_session_total}})", + "unfiltered_session_total:one": "Kokku {{count}} ", + "unfiltered_session_total:other": "Kokku {{count}} " }, - "num_sessions_header:one": "{{count}} devices", - "num_sessions_header:other": "{{count}} devices", - "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", - "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" + "num_sessions_header:one": "{{count}} seade", + "num_sessions_header:other": "{{count}} seadet", + "session_limit_info:one": "Oled kasutanud {{count}}/{{limit}} lubatud seadmetest", + "session_limit_info:other": "Oled kasutanud {{count}}/{{limit}} lubatud seadmetest" }, "verify_email": { "code_expired_alert": { diff --git a/frontend/locales/fr.json b/frontend/locales/fr.json index a6d3e8cc5..9d1474236 100644 --- a/frontend/locales/fr.json +++ b/frontend/locales/fr.json @@ -125,7 +125,7 @@ "heading": "L’adresse e-mail {{email}} est déjà utilisée." }, "end_session_button": { - "confirmation_modal_body_text": "Make sure you always have access to another verified device or your recovery key to avoid losing your encrypted chat history.", + "confirmation_modal_body_text": "Assurez-vous de toujours avoir accès à un autre appareil vérifié ou à votre clé de récupération afin d'éviter de perdre l'historique de vos discussions chiffrées.", "confirmation_modal_title": "Êtes-vous sûr de vouloir terminer cette session ?", "text": "Supprimer l’appareil" }, @@ -146,7 +146,7 @@ "inactive_90_days": "Inactif depuis plus de 90 jours" }, "nav": { - "device_limit_error": "Device limit reached", + "device_limit_error": "Limite d'appareils atteinte", "devices": "Appareil", "plan": "Forfait", "profile": "Profil", @@ -359,27 +359,27 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} session active", "active_sessions:other": "{{count}} sessions actives", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", + "approaching_session_limit_warning_description:one": "Vous avez utilisé {{num_sessions}} sur {{count}} emplacement disponible pour vos appareils. Une fois cette limite atteinte, vous devrez supprimer un appareil existant pour pouvoir en ajouter un autre.", + "approaching_session_limit_warning_description:other": "Vous avez utilisé {{num_sessions}} sur {{count}} emplacements disponibles pour vos appareils. Une fois cette limite atteinte, vous devrez supprimer un appareil existant pour pouvoir en ajouter un autre.", + "approaching_session_limit_warning_header": "Attention, vous approchez de la limite du nombre d'appareils autorisés", "heading": "Où vous êtes connecté", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_header": "You've hit the device limit", + "hit_session_limit_warning_description:one": "Vous avez utilisé {{num_sessions}} sur {{count}} emplacement disponible pour vos appareils. Si vous essayez de vous reconnecter, vous devrez supprimer un appareil déjà enregistré.", + "hit_session_limit_warning_description:other": "Vous avez utilisé {{num_sessions}} sur {{count}} emplacements disponibles pour vos appareils. Si vous essayez de vous reconnecter, vous devrez supprimer un appareil déjà enregistré.", + "hit_session_limit_warning_header": "Vous avez atteint la limite du nombre d'appareils", "no_active_sessions": { "default": "Vous n'êtes connecté à aucune application.", "inactive_90_days": "Toutes vos sessions ont été actives au cours des 90 derniers jours." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} appareil correspond à votre filtre ({{unfiltered_session_total}})", + "header:other": "{{count}} appareils correspondent à votre filtre ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", - "num_sessions_header:other": "{{count}} devices", - "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", - "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" + "num_sessions_header:one": "{{count}} appareil", + "num_sessions_header:other": "{{count}} appareils", + "session_limit_info:one": "Vous avez utilisé {{count}}/{{limit}} emplacement pour vos appareils", + "session_limit_info:other": "Vous avez utilisé {{count}}/{{limit}} emplacements pour vos appareils" }, "verify_email": { "code_expired_alert": { diff --git a/frontend/locales/hu.json b/frontend/locales/hu.json index cf3a39a14..54945e150 100644 --- a/frontend/locales/hu.json +++ b/frontend/locales/hu.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} aktív munkamenet", "active_sessions:other": "{{count}} aktív munkamenet", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Hol jelentkezett be", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "Az összes munkamenete aktív volt az elmúlt 90 napban." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/nb-NO.json b/frontend/locales/nb-NO.json index 8a9f76ace..94c6e5a07 100644 --- a/frontend/locales/nb-NO.json +++ b/frontend/locales/nb-NO.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} aktiv sesjon", "active_sessions:other": "{{count}} aktive sesjoner", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Hvor du er logget inn", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "Alle sesjonene dine har vært aktive de siste 90 dagene." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index 993d4189e..df71a9bfc 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} actieve sessie", "active_sessions:other": "{{count}} actieve sessies", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Where you're signed in", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "All your sessions have been active in the last 90 days." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/pt-BR.json b/frontend/locales/pt-BR.json index 24a231272..309c6974c 100644 --- a/frontend/locales/pt-BR.json +++ b/frontend/locales/pt-BR.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} active session", "active_sessions:other": "{{count}} active sessions", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Where you're signed in", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "All your sessions have been active in the last 90 days." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/pt.json b/frontend/locales/pt.json index 79fb85757..8727b87ca 100644 --- a/frontend/locales/pt.json +++ b/frontend/locales/pt.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} sessão ativa", "active_sessions:other": "{{count}} sessões ativas", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Onde tem sessão iniciada", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "Todas as suas sessões estiveram ativas nos últimos 90 dias." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/ru.json b/frontend/locales/ru.json index 94f301689..f9f39f1da 100644 --- a/frontend/locales/ru.json +++ b/frontend/locales/ru.json @@ -362,11 +362,11 @@ "active_sessions:one": "{{count}} активная сессия", "active_sessions:few": "{{count}} активных сессий", "active_sessions:many": "{{count}} активных сессий", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Где выполнен вход", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -374,12 +374,12 @@ "inactive_90_days": "Все ваши сессии активные в течение последних 90 дней." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/sk.json b/frontend/locales/sk.json index 8b7318588..6c311a4b8 100644 --- a/frontend/locales/sk.json +++ b/frontend/locales/sk.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} active session", "active_sessions:other": "{{count}} active sessions", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Where you're signed in", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "All your sessions have been active in the last 90 days." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/sv.json b/frontend/locales/sv.json index 6f46588fd..33b7efaa4 100644 --- a/frontend/locales/sv.json +++ b/frontend/locales/sv.json @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}}aktiv session", "active_sessions:other": "{{count}}aktiva sessioner", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Var du är inloggad", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "Alla dina sessioner har varit aktiva under de senaste 90 dagarna." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/uk.json b/frontend/locales/uk.json index 3031ed7f5..b9e4a5a04 100644 --- a/frontend/locales/uk.json +++ b/frontend/locales/uk.json @@ -126,8 +126,8 @@ "heading": "Адреса електронної пошти{{email}} вже використовується." }, "end_session_button": { - "confirmation_modal_body_text": "Make sure you always have access to another verified device or your recovery key to avoid losing your encrypted chat history.", - "confirmation_modal_title": "Ви впевнені, що хочете завершити цей сеанс?", + "confirmation_modal_body_text": "Переконайтеся, що у вас завжди є доступ до іншого підтвердженого пристрою або до ключа відновлення, щоб уникнути втрати зашифрованої історії чатів.", + "confirmation_modal_title": "Ви впевнені, що хочете видалити цей пристрій?", "text": "Вилучити пристрій" }, "error": { @@ -147,7 +147,7 @@ "inactive_90_days": "Неактивний понад 90 днів" }, "nav": { - "device_limit_error": "Device limit reached", + "device_limit_error": "Досягнуто обмеження кількості пристроїв", "devices": "Пристрої", "plan": "План", "profile": "Профіль", @@ -362,27 +362,33 @@ "active_sessions:one": "{{count}} активний сеанс", "active_sessions:few": "{{count}} активні сеанси", "active_sessions:many": "{{count}} активних сеансів", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", + "approaching_session_limit_warning_description:one": "Ви використали {{num_sessions}} із {{count}} слот пристрою. Коли ви досягнете ліміту, щоб додати новий пристрій, вам доведеться видалити один із наявних.", + "approaching_session_limit_warning_description:few": "Ви використали {{num_sessions}} із {{count}} слоти пристроїв. Коли ви досягнете ліміту, щоб додати новий пристрій, вам доведеться видалити один із наявних.", + "approaching_session_limit_warning_description:many": "Ви використали {{num_sessions}} із {{count}} слотів пристроїв. Коли ви досягнете ліміту, щоб додати новий пристрій, вам доведеться видалити один із наявних.", + "approaching_session_limit_warning_header": "Увага, ви майже вичерпали ліміт пристроїв", "heading": "Де ви ввійшли", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_header": "You've hit the device limit", + "hit_session_limit_warning_description:one": "Ви використали {{num_sessions}} із {{count}} слот пристрою. Щоб увійти знову, вам потрібно видалити один із наявних пристроїв.", + "hit_session_limit_warning_description:few": "Ви використали {{num_sessions}} із {{count}} слоти пристроїв. Щоб увійти знову, вам потрібно видалити один із наявних пристроїв.", + "hit_session_limit_warning_description:many": "Ви використали {{num_sessions}} із {{count}} слотів пристроїв. Щоб увійти знову, вам потрібно видалити один із наявних пристроїв.", + "hit_session_limit_warning_header": "Ви досягли ліміту кількості пристроїв", "no_active_sessions": { "default": "Ви не ввійшли в жоден застосунок.", "inactive_90_days": "Усі ваші сеанси були активними протягом останніх 90 днів." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "unfiltered_session_total:one": "{{count}} total", - "unfiltered_session_total:other": "{{count}} total" + "header:one": "За вашими критеріями пошуку знайдено {{count}} пристрій ({{unfiltered_session_total}})", + "header:few": "За вашими критеріями пошуку знайдено {{count}} пристрої ({{unfiltered_session_total}})", + "header:many": "За вашими критеріями пошуку знайдено {{count}} пристроїв ({{unfiltered_session_total}})", + "unfiltered_session_total:one": "Всього {{count}}", + "unfiltered_session_total:few": "Всього {{count}}", + "unfiltered_session_total:many": "Всього {{count}}" }, - "num_sessions_header:one": "{{count}} devices", - "num_sessions_header:other": "{{count}} devices", - "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", - "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" + "num_sessions_header:one": "{{count}} пристрій", + "num_sessions_header:few": "{{count}} пристрої", + "num_sessions_header:many": "{{count}} пристроїв", + "session_limit_info:one": "Ви використали {{count}}/{{limit}} слот пристрою", + "session_limit_info:few": "Ви використали {{count}}/{{limit}} слоти пристроїв", + "session_limit_info:many": "Ви використали {{count}}/{{limit}} слотів пристроїв" }, "verify_email": { "code_expired_alert": { diff --git a/frontend/locales/uz.json b/frontend/locales/uz.json index 029f7a6bb..46ff7c953 100644 --- a/frontend/locales/uz.json +++ b/frontend/locales/uz.json @@ -59,7 +59,7 @@ }, "password": { "change": "Parolni o‘zgartirish", - "change_disabled": "Password changes are disabled by the administrator.", + "change_disabled": "Parolni o‘zgartirish administrator tomonidan taqiqlangan.", "label": "Parol" }, "sign_out": { @@ -126,7 +126,7 @@ }, "end_session_button": { "confirmation_modal_body_text": "Make sure you always have access to another verified device or your recovery key to avoid losing your encrypted chat history.", - "confirmation_modal_title": "Haqiqatan ham bu seansni tugatmoqchimisiz?", + "confirmation_modal_title": "Haqiqatan ham bu qurilmani olib tashlamoqchimisiz?", "text": "Qurilmani olib tashlash" }, "error": { @@ -176,26 +176,26 @@ "description": { "account_locked": "Your account is locked and can not be recovered at this time. If this is not expected, please contact your server administrator.", "expired_recovery_ticket": "The recovery link has expired. Please start the account recovery process again from the start.", - "invalid_new_password": "The new password you chose is invalid; it may not meet the configured security policy.", - "no_current_password": "You don't have a current password.", + "invalid_new_password": "Siz tanlagan yangi parol yaroqsiz; u sozlangan xavfsizlik siyosatiga mos kelmasligi mumkin.", + "no_current_password": "Sizda joriy parol yo‘q.", "no_such_recovery_ticket": "The recovery link is invalid. If you copied the link from the recovery e-mail, please check the full link was copied.", - "password_changes_disabled": "Password changes are disabled.", + "password_changes_disabled": "Parolni o‘zgartirish faolsizlantirildi.", "recovery_ticket_already_used": "The recovery link has already been used. It cannot be used again.", - "unspecified": "This might be a temporary problem, so please try again later. If the problem persists, please contact your server administrator.", - "wrong_password": "The password you supplied as your current password is incorrect. Please try again." + "unspecified": "Bu vaqtinchalik muammo bo‘lishi mumkin, keyinroq qayta urining. Agar muammo bartaraf etilmasa, server administratoriga murojaat qiling.", + "wrong_password": "Joriy parol sifatida kiritgan parolingiz noto‘g‘ri. Iltimos, qayta urinib ko‘ring." }, - "title": "Failed to update password" + "title": "Parolni yangilab bo‘lmadi." }, "new_password_again_label": "Enter new password again", "new_password_label": "Yangi parol", - "passwords_match": "Passwords match!", - "passwords_no_match": "Passwords don't match", - "subtitle": "Choose a new password for your account.", + "passwords_match": "Parollar mos keldi!", + "passwords_no_match": "Parollar mos kelmadi", + "subtitle": "Hisobingiz uchun yangi parol tanlang.", "success": { - "description": "Your password has been updated successfully.", - "title": "Password updated" + "description": "Parolingiz muvaffaqiyatli yangilandi.", + "title": "Parol yangilandi" }, - "title": "Change your password" + "title": "Parolingizni o‘zgartiring" }, "password_reset": { "consumed": { @@ -207,7 +207,7 @@ "subtitle": "Request a new email that will be sent to: {{email}}", "title": "The link to reset your password has expired" }, - "subtitle": "Choose a new password for your account.", + "subtitle": "Hisobingiz uchun yangi parol tanlang.", "title": "Reset your password" }, "password_strength": { @@ -271,7 +271,7 @@ "positive_1": "Your account details, contacts, preferences, and chat list will be kept" }, "failure": { - "description": "This might be a temporary problem, so please try again later. If the problem persists, please contact your server administrator.", + "description": "Bu vaqtinchalik muammo bo‘lishi mumkin, keyinroq qayta urining. Agar muammo bartaraf etilmasa, server administratoriga murojaat qiling.", "heading": "Failed to allow digital identity reset", "title": "Kripto identifikatsiyasiga ruxsat berilmadi" }, @@ -359,11 +359,11 @@ "user_sessions_overview": { "active_sessions:one": "{{count}} ta faol seans", "active_sessions:other": "{{count}} ta faol seans", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", + "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", "heading": "Qayerda tizimga kirgansiz", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", + "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slot. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", "hit_session_limit_warning_header": "You've hit the device limit", "no_active_sessions": { @@ -371,12 +371,12 @@ "inactive_90_days": "All your sessions have been active in the last 90 days." }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", + "header:one": "{{count}} device matches your filter ({{unfiltered_session_total}})", "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", "unfiltered_session_total:one": "{{count}} total", "unfiltered_session_total:other": "{{count}} total" }, - "num_sessions_header:one": "{{count}} devices", + "num_sessions_header:one": "{{count}} device", "num_sessions_header:other": "{{count}} devices", "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" diff --git a/frontend/locales/zh-Hans.json b/frontend/locales/zh-Hans.json index d7ed3dfb7..9c5586fdd 100644 --- a/frontend/locales/zh-Hans.json +++ b/frontend/locales/zh-Hans.json @@ -43,7 +43,7 @@ "alert_description": "此账户将被永久删除,你将无法再访问任何消息。", "alert_title": "你将丢失所有数据", "button": "删除账户", - "dialog_description": "确认你想删除账户:\n\n\n你将无法重新激活账户\n你将无法再登录\n包括你在内,没有人能重复使用此用户名(MXID)\n你将离开所有房间与私聊\n你将被从身份服务器中移除,遂没有人能通过你的邮件地址或电话号码找到你\n\n收到过你曾经的消息的人员仍然能看到你的历史消息。是否向未来加入房间的人员隐藏你发送的消息?", + "dialog_description": "确认你想删除账户:\n\n\n你将无法重新激活账户\n你将无法再登录\n包括你在内,没有人能重复使用此用户名(MXID)\n你将离开所有你所在的房间与私聊\n你将被从身份服务器中移除,遂没有人能通过你的邮件地址或电话号码找到你\n\n收到过你曾经的消息的人员仍然能看到你的历史消息。是否向未来加入房间的人员隐藏你发送的消息?", "dialog_title": "删除此账户?", "erase_checkbox_label": "是,对新加入者隐藏我的所有消息", "incorrect_password": "密码不正确,请重试", @@ -52,7 +52,7 @@ "password_label": "输入密码以继续" }, "edit_profile": { - "display_name_help": "这是其他人在您登录的地方将看到的信息。", + "display_name_help": "无论你在哪里登录,其他人都会看到此内容。", "display_name_label": "显示名称", "title": "编辑个人资料", "username_label": "用户名" @@ -124,7 +124,7 @@ "heading": "此邮件地址 {{email}} 已被使用。" }, "end_session_button": { - "confirmation_modal_body_text": "Make sure you always have access to another verified device or your recovery key to avoid losing your encrypted chat history.", + "confirmation_modal_body_text": "确保你始终可以访问另一台已验证的设备或恢复密钥以避免丢失加密聊天历史。", "confirmation_modal_title": "你确定要结束这个会话吗?", "text": "移除设备" }, @@ -145,7 +145,7 @@ "inactive_90_days": "已停用90天以上" }, "nav": { - "device_limit_error": "Device limit reached", + "device_limit_error": "已达到设备数量上限", "devices": "设备", "plan": "配额", "profile": "个人资料", @@ -181,7 +181,7 @@ "password_changes_disabled": "密码更改已禁用。", "recovery_ticket_already_used": "恢复链接已被使用。无法再次使用。", "unspecified": "这可能是暂时的问题,请稍后再试。如果问题仍然存在,请联系服务器管理员。", - "wrong_password": "您提供的当前密码不正确。请再试一次。" + "wrong_password": "你当前提供的密码不正确。请重试。" }, "title": "更新密码失败" }, @@ -258,10 +258,10 @@ "button": "重置身份", "cancelled": { "description_1": "你可以关闭此窗口并返回到 App 以继续。", - "description_2": "若你在任何地方都已注销并且忘记恢复代码,你仍然需要重置身份。", - "heading": "身份重置流程已被取消。" + "description_2": "如果你既没有其它已验证的设备,也没有恢复密钥,则需要重置数字身份才能继续使用 app。", + "heading": "数字身份重置流程已被取消。" }, - "description": "如果你没有在其它地方登录,并且忘记或丢失了恢复密钥,则需要重置加密身份才能继续使用 app。", + "description": "如果你既没有其它已验证的设备,也没有恢复密钥,则需要重置数字身份才能继续使用 app。", "effect_list": { "negative_1": "你将丢失现有消息历史", "negative_2": "你将需要再次验证所有现有设备与联系人", @@ -271,18 +271,18 @@ }, "failure": { "description": "这可能是暂时的问题,请稍后再试。如果问题仍然存在,请联系服务器管理员。", - "heading": "加密身份重置授权失败。", + "heading": "数字身份重置授权失败。", "title": "无法允许加密身份" }, "finish_reset": "完成重置", - "heading": "如果你无法通过其它方式确认请重置身份", + "heading": "如果你无法通过其它方式确认请重置数字身份", "start_reset": "开始重置", "success": { - "description": "身份重置已获批准,有效时间为 {{minutes}} 分钟。您可以关闭此窗口并返回应用继续操作。", - "heading": "已成功重置身份。返回到 App 以完成此流程。", + "description": "已批准重置数字身份,有效时间为 {{minutes}} 分钟。你可以关闭此窗口并返回 app 继续操作。", + "heading": "已成功重置数字身份。返回到 App 以完成此流程。", "title": "临时允许重置加密身份" }, - "warning": "仅当你无法访问其它已登录的设备并且丢失了恢复密钥时才重置身份。" + "warning": "仅当你无法访问其它已登录的设备并且丢失了恢复密钥时才重置数字身份。" }, "selectable_session": { "label": "选择会话" @@ -356,27 +356,21 @@ }, "user_sessions_overview": { "active_sessions:other": "{{count}} 个活跃会话", - "approaching_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. Once you reach your limit, you'll need to remove an existing device to add another.", - "approaching_session_limit_warning_header": "Heads up, you're close to your device limit", + "approaching_session_limit_warning_description:other": "你已使用 {{count}} 个设备槽位中的 {{num_sessions}} 个。达到上限后需要移除 1 个现有设备才能添加另一个。", + "approaching_session_limit_warning_header": "注意,您即将达到设备数量上限", "heading": "你已登录的位置", - "hit_session_limit_warning_description:one": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_description:other": "You've used {{num_sessions}} of {{count}} device slots. When you try to sign-in again, you'll need to remove an existing device.", - "hit_session_limit_warning_header": "You've hit the device limit", + "hit_session_limit_warning_description:other": "你已使用 {{count}} 个设备槽位中的 {{num_sessions}} 个。当再次尝试登录时,需要移除 1 个已存在的设备。", + "hit_session_limit_warning_header": "你已达到设备数量上限", "no_active_sessions": { "default": "你尚未登录任何 app。", "inactive_90_days": "你的所有会话在过去 90 天内均处于活跃状态。" }, "num_sessions_filtered_header": { - "header:one": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "header:other": "{{count}} devices match your filter ({{unfiltered_session_total}})", - "unfiltered_session_total:one": "{{count}} total", - "unfiltered_session_total:other": "{{count}} total" + "header:other": "{{count}} 个设备符合筛选条件({{unfiltered_session_total}})", + "unfiltered_session_total:other": "共 {{count}} 个" }, - "num_sessions_header:one": "{{count}} devices", - "num_sessions_header:other": "{{count}} devices", - "session_limit_info:one": "You've used {{count}}/{{limit}} device slots", - "session_limit_info:other": "You've used {{count}}/{{limit}} device slots" + "num_sessions_header:other": "{{count}} 个设备", + "session_limit_info:other": "你已使用 {{limit}} 个设备槽位中的 {{count}} 个" }, "verify_email": { "code_expired_alert": { diff --git a/translations/de.json b/translations/de.json index c397fab9f..5e756f279 100644 --- a/translations/de.json +++ b/translations/de.json @@ -87,23 +87,33 @@ "access_requested": "Zugriff beantragt", "device_code": "Code", "generic_device": "Gerät", - "ip_address": "IP-Adresse" + "ip_address": "IP-Adresse", + "security_code": "Sicherheitscode" }, "device_code_link": { - "description": "Ein Gerät verknüpfen", - "headline": "Gib den Code ein, der auf deinem Gerät angezeigt wird." + "description": "Eingeben Sie den Sicherheitscode ein, der auf Ihrem anderen Gerät angezeigt wird", + "headline": "Gib den Code ein, der auf deinem Gerät angezeigt wird.", + "verification_code": "Bestätigungscode" }, "device_consent": { "another_device_access": "Ein anderes Gerät möchte auf dein Konto zugreifen.", + "confirm_device": "Ja, ich bestätige, dass dies mein Gerät ist und ich mich anmelden möchte.", "denied": { "description": "Du hast den Zugriff auf %(client_name)s abgelehnt. Du kannst dieses Fenster jetzt schließen.", "heading": "Zugriff verweigert" }, + "description": "Ein anderes Gerät möchte %(client_name)s (%(client_uri)s) mit deinem %(server_name)s Konto verknüpfen. Bitte stelle sicher, dass du dieses Gerät erkennst.", + "grant_access": "Zugriff gewähren", "granted": { "description": "Du hast %(client_name)s Zugriff gegeben. Du kannst dieses Fenster jetzt schließen.", "heading": "Zugriff gewährt" }, - "this_will_setup": "Ein anderes Gerät möchte %(client_name)s (%(client_uri)s) mit deinem %(server_name)s Konto einrichten. Stelle sicher, dass du dieses Gerät kennst." + "this_will_setup": "Ein anderes Gerät möchte %(client_name)s (%(client_uri)s) mit deinem %(server_name)s Konto einrichten. Stelle sicher, dass du dieses Gerät kennst.", + "title": "Zugriff auf dein Konto gewähren?", + "warning": { + "description": "Bist du sicher, dass dies dein Gerät ist? Administratoren oder der IT-Support würden dich niemals bitten, dies zu akzeptieren.", + "title": "Hiermit wirst du einem Remote-Gerät Zugriff auf dein Konto zu gewähren" + } }, "device_display_name": { "client_on_device": "%(client_name)s auf %(device_name)s", @@ -181,7 +191,12 @@ "policy_violation": { "description": "Dies kann am Client liegen, der die Anfrage erstellt hat, am aktuell angemeldeten Benutzer oder an der Anfrage selbst.", "heading": "Die Autorisierungsanfrage wurde durch eine Richtlinie dieses Dienstes abgelehnt", - "logged_as": "Eingeloggt als %(username)s" + "logged_as": "Eingeloggt als %(username)s", + "too_many_sessions": { + "description": "Dein Konto ist bereits auf der maximalen Anzahl von Geräten angemeldet. Um fortzufahren, entferne %(num_devices_to_remove)s deiner eingeloggten Geräten und melde dich erneut an.", + "heading": "Gerätelimit erreicht", + "manage_devices": "Geräte verwalten" + } }, "recovery": { "consumed": { diff --git a/translations/et.json b/translations/et.json index 8aaf90f5e..3892983ca 100644 --- a/translations/et.json +++ b/translations/et.json @@ -87,23 +87,33 @@ "access_requested": "Ligipääsupäring", "device_code": "Kood", "generic_device": "Seade", - "ip_address": "IP-aadress" + "ip_address": "IP-aadress", + "security_code": "Turvakood" }, "device_code_link": { - "description": "Seo seade", - "headline": "Sisesta sinu seadmes kuvatud kood" + "description": "Sisesta oma teises seadmes kuvatav turvakood", + "headline": "Seo uus seade oma kasutajakontoga", + "verification_code": "Kinnituskood" }, "device_consent": { "another_device_access": "Üks seade soovib ligipääsu sinu kasutajakontole.", + "confirm_device": "Kinnitan, et see on minu seade ja ma tahan sellega sisse logida.", "denied": { "description": "Sa keelasid seadmele %(client_name)s ligipääsu. Sa võid nüüd selle akna sulgeda.", "heading": "Ligipääs on keelatud" }, + "description": "Teine seade soovib siduda seadme %(client_name)s (%(client_uri)s) sinu %(server_name)s kasutajakontoga. Veendu, et see seade on sulle teada.", + "grant_access": "Luba juurdepääs", "granted": { "description": "Sa lubasid seadmele %(client_name)s ligipääsu. Sa võid nüüd selle akna sulgeda.", "heading": "Ligipääs on lubatud" }, - "this_will_setup": "Üks teine seade tahab seadistada %(client_name)s (%(client_uri)s) klienti kasutama sinu %(server_name)s kontot. Palun kontrolli, et see on õige ja sinule vajalik seade." + "this_will_setup": "Üks teine seade tahab seadistada %(client_name)s (%(client_uri)s) klienti kasutama sinu %(server_name)s kontot. Palun kontrolli, et see on õige ja sinule vajalik seade.", + "title": "Kas lubad juurdepääsu oma kasutajakontole?", + "warning": { + "description": "Kas olete kindel, et see on sinu seade? Peakasutajad või IT-tugi ei paluks sul seda kunagi heaks kiita.", + "title": "Sa oled andmas kaugseadmele juurdepääsu oma kasutajakontole" + } }, "device_display_name": { "client_on_device": "%(client_name)s seadmes %(device_name)s", diff --git a/translations/fr.json b/translations/fr.json index e084bb929..8083c02d9 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -87,23 +87,33 @@ "access_requested": "Accès demandé", "device_code": "Code", "generic_device": "Appareil", - "ip_address": "Adresse IP" + "ip_address": "Adresse IP", + "security_code": "Code de sécurité" }, "device_code_link": { "description": "Associer un appareil", - "headline": "Entrez le code affiché sur votre appareil" + "headline": "Entrez le code affiché sur votre appareil", + "verification_code": "Code de vérification" }, "device_consent": { "another_device_access": "Un autre appareil souhaite accéder à votre compte.", + "confirm_device": "Oui, je confirme que cet appareil m'appartient et je souhaite me connecter.", "denied": { "description": "Vous avez refusé l'accès à %(client_name)s. Vous pouvez fermer cette fenêtre.", "heading": "Accès refusé" }, + "description": "Un autre appareil souhaite associer %(client_name)s (%(client_uri)s) avec votre compte %(server_name)s. Assurez-vous de reconnaître cet appareil.", + "grant_access": "Accorder l'accès", "granted": { "description": "Vous avez accordé l'accès à %(client_name)s. Vous pouvez fermer cette fenêtre.", "heading": "Accès accordé" }, - "this_will_setup": "Un autre appareil souhaite connecter %(client_name)s (%(client_uri)s) avec votre compte %(server_name)s. Assurez-vous de reconnaître cet appareil." + "this_will_setup": "Un autre appareil souhaite connecter %(client_name)s (%(client_uri)s) avec votre compte %(server_name)s. Assurez-vous de reconnaître cet appareil.", + "title": "Autoriser l'accès à votre compte ?", + "warning": { + "description": "Êtes-vous sûr qu'il s'agit bien de votre appareil ? Les administrateurs du service ou le support informatique ne vous demanderaient jamais de confirmer cela.", + "title": "Vous êtes sur le point d'autoriser un appareil distant à accéder à votre compte" + } }, "device_display_name": { "client_on_device": "%(client_name)s sur %(device_name)s", @@ -181,7 +191,12 @@ "policy_violation": { "description": "Cela peut être dû à l'application auteur de la demande, à l'utilisateur actuellement connecté ou à la demande elle-même.", "heading": "La demande d'autorisation a été refusée, conformément à la politique appliquée par ce service.", - "logged_as": "Connecté en tant que %(username)s" + "logged_as": "Connecté en tant que %(username)s", + "too_many_sessions": { + "description": "Vous avez déjà connecté votre compte au nombre maximum d'appareils. Pour continuer, supprimez %(num_devices_to_remove)s de vos appareils existants et reconnectez-vous.", + "heading": "Limite d'appareils atteinte", + "manage_devices": "Gérer les appareils" + } }, "recovery": { "consumed": { diff --git a/translations/uk.json b/translations/uk.json index 703ed83aa..01af38f4e 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -181,7 +181,12 @@ "policy_violation": { "description": "Це може бути пов'язано з клієнтом, який створив запит, користувачем, який зараз ввійшов у систему, або самим запитом.", "heading": "Запит на авторизацію відхилений політикою, застосованою цим сервісом", - "logged_as": "Зареєстровано як %(username)s " + "logged_as": "Зареєстровано як %(username)s ", + "too_many_sessions": { + "description": "Ви увійшли на максимальній кількості пристроїв під цим обліковим записом. Щоб продовжити, видаліть %(num_devices_to_remove)s пристроїв і спробуйте увійти знову.", + "heading": "Досягнуто обмеження кількості пристроїв", + "manage_devices": "Керування пристроями" + } }, "recovery": { "consumed": { diff --git a/translations/uz.json b/translations/uz.json index 205cd5ed4..8a73e24b2 100644 --- a/translations/uz.json +++ b/translations/uz.json @@ -41,6 +41,9 @@ "heading": "Email manzilini qo‘shish" }, "back_to_homepage": "Bosh sahifaga qaytish", + "captcha": { + "noscript": "Bu shakl CAPTCHA bilan himoyalangan va uni yuborish uchun JavaScript yoqilishi kerak. Brauzeringizda JavaScript’ni yoqing va bu sahifani qayta yuklang." + }, "change_password": { "change": "Parolni o‘zgartirish", "confirm": "Parolni tasdiqlash", @@ -89,6 +92,7 @@ } }, "errors": { + "captcha": "CAPTCHA tekshiruvi amalga oshmadi, qayta urining", "denied_policy": "Siyosat tomonidan rad etilgan: %(policy)s", "field_required": "Ushbu qator toʻldirilishi shart", "invalid_credentials": "Hisob ma’lumotlari yaroqsiz", @@ -128,6 +132,7 @@ "resend_email": "Elektron pochtani qayta yuborish" }, "finish": { + "description": "Hisobingiz uchun yangi parol tanlang.", "new": "Yangi parol" }, "progress": { diff --git a/translations/zh-Hans.json b/translations/zh-Hans.json index 1dd0dcdfc..99e0501c0 100644 --- a/translations/zh-Hans.json +++ b/translations/zh-Hans.json @@ -73,13 +73,13 @@ "headline": "选择显示名称" }, "consent": { - "client_wants_access": "%(client_name)s 位于 %(redirect_uri)s,请求访问您的账户。", + "client_wants_access": "位于 %(redirect_uri)s 上的 %(client_name)s 想要访问你的账户。", "continue_to": "继续前往 %(client_name)s?", "heading": "允许访问你的账户?", "make_sure_you_trust": "请确保你信任 %(client_name)s 。", "scope_list_preface": "一旦继续你将允许 %(client_name)s:", "this_will_allow": "这将允许 %(client_name)s :", - "this_will_setup": "这将使用你在 %(server_name)s 上的账户配置 %(client_name)s(%(client_uri)s)。", + "this_will_setup": "这将使用你位于 %(server_name)s 上的账户设置 %(client_name)s(%(client_uri)s)。", "use_another_account": "使用另一账户", "you_may_be_sharing": "你可能正在与本网站或 app 分享敏感信息。" }, @@ -87,23 +87,33 @@ "access_requested": "已请求访问权限", "device_code": "代码", "generic_device": "设备", - "ip_address": "IP 地址" + "ip_address": "IP 地址", + "security_code": "安全代码" }, "device_code_link": { - "description": "链接设备", - "headline": "输入设备上显示的代码" + "description": "关联设备", + "headline": "关联新设备到账户", + "verification_code": "验证码" }, "device_consent": { "another_device_access": "另一个设备想要访问你的账户。", + "confirm_device": "是,已确认这是我的设备并且想登录。", "denied": { - "description": "你已拒绝%(client_name)s 的访问。你可以关闭此窗口。", + "description": "你已拒绝 %(client_name)s 的访问。你可以关闭此窗口。", "heading": "访问被拒绝" }, + "description": "另一设备想要关联你位于 %(server_name)s 上的账户: %(client_name)s(%(client_uri)s),请确保你认识该设备。", + "grant_access": "授予访问权", "granted": { - "description": "您已授予 %(client_name)s 访问权限。您可以关闭此窗口。", + "description": "你已授予 %(client_name)s 访问权限。可以关闭此窗口。", "heading": "已授予访问权限" }, - "this_will_setup": "另一设备尝试使用你在上的账户 %(server_name)s 配置 %(client_name)s(%(client_uri)s)。请确保你认识该设备。" + "this_will_setup": "另一设备尝试使用你在上的账户 %(server_name)s 配置 %(client_name)s(%(client_uri)s)。请确保你认识该设备。", + "title": "允许其访问你的账户?", + "warning": { + "description": "是否确定这是你的设备?管理员或 IT 支持人员绝不会要求你同意。", + "title": "你即将向远端设备授予账户的访问权" + } }, "device_display_name": { "client_on_device": "运行在 %(device_name)s 的 %(client_name)s", @@ -121,7 +131,7 @@ "copy_link": "复制以下链接并粘贴到浏览器中以创建新密码:", "create_new_password": "创建新密码", "fallback": "此按钮对你无效?", - "headline": "您已请求重置您在 %(server_name)s 的密码。", + "headline": "你已请求重置位于 %(server_name)s 上的账户密码。", "subject": "重置账户密码 (%(mxid)s)", "you_can_ignore": "如果你没有请求过重置密码可以忽略此邮件。当前密码仍然有效。" }, @@ -151,7 +161,7 @@ "username_too_short": "用户名太短" }, "legacy_consent": { - "this_will_setup": "这将设置你位于 %(server_name)s 上的账户:%(client_name)s。" + "this_will_setup": "这将使用你位于 %(server_name)s 上的账户设置 %(client_name)s。" }, "login": { "call_to_register": "还没有账户?", @@ -160,7 +170,7 @@ "forgot_password": "忘记密码?", "headline": "登录", "link": { - "description": "正在链接您的%(provider)s账户", + "description": "正在关联你位于 %(provider)s 上的账户", "headline": "登录以链接" }, "no_login_methods": "没有可用的登录途径。", @@ -181,7 +191,12 @@ "policy_violation": { "description": "这可能是由于创建请求的客户端、当前登录的用户或请求本身造成的。", "heading": "授权请求被该服务执行的策略拒绝", - "logged_as": "登录为 %(username)s" + "logged_as": "登录为 %(username)s", + "too_many_sessions": { + "description": "你的账户已登录到设备的数量上限。若要继续,请从现有设备中移除 %(num_devices_to_remove)s 个,然后重新登录。", + "heading": "设备数量已达上限", + "manage_devices": "管理设备" + } }, "recovery": { "consumed": { From 7b6c5aff9e44e4f16782eed3ede383e9e48259fc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 11:44:51 +0000 Subject: [PATCH 3/3] 1.18.0 --- Cargo.lock | 56 +++++++++++++++++++++++++------------------------- Cargo.toml | 60 +++++++++++++++++++++++++++--------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fb226b8fe..3d8e662f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3092,7 +3092,7 @@ dependencies = [ [[package]] name = "mas-axum-utils" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "axum", @@ -3126,7 +3126,7 @@ dependencies = [ [[package]] name = "mas-cli" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "axum", @@ -3201,7 +3201,7 @@ dependencies = [ [[package]] name = "mas-config" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "camino", @@ -3232,7 +3232,7 @@ dependencies = [ [[package]] name = "mas-context" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "console", "opentelemetry", @@ -3248,7 +3248,7 @@ dependencies = [ [[package]] name = "mas-data-model" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "base64ct", "chrono", @@ -3270,7 +3270,7 @@ dependencies = [ [[package]] name = "mas-email" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "async-trait", "lettre", @@ -3281,7 +3281,7 @@ dependencies = [ [[package]] name = "mas-handlers" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "aide", "anyhow", @@ -3364,7 +3364,7 @@ dependencies = [ [[package]] name = "mas-http" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "futures-util", "headers", @@ -3385,7 +3385,7 @@ dependencies = [ [[package]] name = "mas-i18n" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "camino", "icu_calendar", @@ -3407,7 +3407,7 @@ dependencies = [ [[package]] name = "mas-i18n-scan" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "camino", "clap", @@ -3421,7 +3421,7 @@ dependencies = [ [[package]] name = "mas-iana" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "schemars 0.9.0", "serde", @@ -3429,7 +3429,7 @@ dependencies = [ [[package]] name = "mas-iana-codegen" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "async-trait", @@ -3446,7 +3446,7 @@ dependencies = [ [[package]] name = "mas-jose" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "base64ct", "chrono", @@ -3476,7 +3476,7 @@ dependencies = [ [[package]] name = "mas-keystore" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "aead", "base64ct", @@ -3504,7 +3504,7 @@ dependencies = [ [[package]] name = "mas-listener" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "bytes", @@ -3528,7 +3528,7 @@ dependencies = [ [[package]] name = "mas-matrix" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "async-trait", @@ -3538,7 +3538,7 @@ dependencies = [ [[package]] name = "mas-matrix-synapse" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "async-trait", @@ -3555,7 +3555,7 @@ dependencies = [ [[package]] name = "mas-oidc-client" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "assert_matches", "async-trait", @@ -3591,7 +3591,7 @@ dependencies = [ [[package]] name = "mas-policy" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "arc-swap", @@ -3608,7 +3608,7 @@ dependencies = [ [[package]] name = "mas-router" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "axum", "serde", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "mas-spa" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "camino", "serde", @@ -3628,7 +3628,7 @@ dependencies = [ [[package]] name = "mas-storage" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "async-trait", "chrono", @@ -3650,7 +3650,7 @@ dependencies = [ [[package]] name = "mas-storage-pg" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "async-trait", "chrono", @@ -3680,7 +3680,7 @@ dependencies = [ [[package]] name = "mas-tasks" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "async-trait", @@ -3712,7 +3712,7 @@ dependencies = [ [[package]] name = "mas-templates" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "arc-swap", @@ -3744,7 +3744,7 @@ dependencies = [ [[package]] name = "mas-tower" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "http", "opentelemetry", @@ -3997,7 +3997,7 @@ dependencies = [ [[package]] name = "oauth2-types" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "assert_matches", "base64ct", @@ -6102,7 +6102,7 @@ dependencies = [ [[package]] name = "syn2mas" -version = "1.18.0-rc.0" +version = "1.18.0" dependencies = [ "anyhow", "arc-swap", diff --git a/Cargo.toml b/Cargo.toml index 2b9959fd8..795a7c02c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = ["crates/*"] resolver = "2" # Updated in the CI with a `sed` command -package.version = "1.18.0-rc.0" +package.version = "1.18.0" package.license = "AGPL-3.0-only OR LicenseRef-Element-Commercial" package.authors = ["Element Backend Team"] package.edition = "2024" @@ -42,35 +42,35 @@ broken_intra_doc_links = "deny" [workspace.dependencies] # Workspace crates -mas-axum-utils = { path = "./crates/axum-utils/", version = "=1.18.0-rc.0" } -mas-cli = { path = "./crates/cli/", version = "=1.18.0-rc.0" } -mas-config = { path = "./crates/config/", version = "=1.18.0-rc.0" } -mas-context = { path = "./crates/context/", version = "=1.18.0-rc.0" } -mas-data-model = { path = "./crates/data-model/", version = "=1.18.0-rc.0" } -mas-email = { path = "./crates/email/", version = "=1.18.0-rc.0" } -mas-graphql = { path = "./crates/graphql/", version = "=1.18.0-rc.0" } -mas-handlers = { path = "./crates/handlers/", version = "=1.18.0-rc.0" } -mas-http = { path = "./crates/http/", version = "=1.18.0-rc.0" } -mas-i18n = { path = "./crates/i18n/", version = "=1.18.0-rc.0" } -mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=1.18.0-rc.0" } -mas-iana = { path = "./crates/iana/", version = "=1.18.0-rc.0" } -mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=1.18.0-rc.0" } -mas-jose = { path = "./crates/jose/", version = "=1.18.0-rc.0" } -mas-keystore = { path = "./crates/keystore/", version = "=1.18.0-rc.0" } -mas-listener = { path = "./crates/listener/", version = "=1.18.0-rc.0" } -mas-matrix = { path = "./crates/matrix/", version = "=1.18.0-rc.0" } -mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=1.18.0-rc.0" } -mas-oidc-client = { path = "./crates/oidc-client/", version = "=1.18.0-rc.0" } -mas-policy = { path = "./crates/policy/", version = "=1.18.0-rc.0" } -mas-router = { path = "./crates/router/", version = "=1.18.0-rc.0" } -mas-spa = { path = "./crates/spa/", version = "=1.18.0-rc.0" } -mas-storage = { path = "./crates/storage/", version = "=1.18.0-rc.0" } -mas-storage-pg = { path = "./crates/storage-pg/", version = "=1.18.0-rc.0" } -mas-tasks = { path = "./crates/tasks/", version = "=1.18.0-rc.0" } -mas-templates = { path = "./crates/templates/", version = "=1.18.0-rc.0" } -mas-tower = { path = "./crates/tower/", version = "=1.18.0-rc.0" } -oauth2-types = { path = "./crates/oauth2-types/", version = "=1.18.0-rc.0" } -syn2mas = { path = "./crates/syn2mas", version = "=1.18.0-rc.0" } +mas-axum-utils = { path = "./crates/axum-utils/", version = "=1.18.0" } +mas-cli = { path = "./crates/cli/", version = "=1.18.0" } +mas-config = { path = "./crates/config/", version = "=1.18.0" } +mas-context = { path = "./crates/context/", version = "=1.18.0" } +mas-data-model = { path = "./crates/data-model/", version = "=1.18.0" } +mas-email = { path = "./crates/email/", version = "=1.18.0" } +mas-graphql = { path = "./crates/graphql/", version = "=1.18.0" } +mas-handlers = { path = "./crates/handlers/", version = "=1.18.0" } +mas-http = { path = "./crates/http/", version = "=1.18.0" } +mas-i18n = { path = "./crates/i18n/", version = "=1.18.0" } +mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=1.18.0" } +mas-iana = { path = "./crates/iana/", version = "=1.18.0" } +mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=1.18.0" } +mas-jose = { path = "./crates/jose/", version = "=1.18.0" } +mas-keystore = { path = "./crates/keystore/", version = "=1.18.0" } +mas-listener = { path = "./crates/listener/", version = "=1.18.0" } +mas-matrix = { path = "./crates/matrix/", version = "=1.18.0" } +mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=1.18.0" } +mas-oidc-client = { path = "./crates/oidc-client/", version = "=1.18.0" } +mas-policy = { path = "./crates/policy/", version = "=1.18.0" } +mas-router = { path = "./crates/router/", version = "=1.18.0" } +mas-spa = { path = "./crates/spa/", version = "=1.18.0" } +mas-storage = { path = "./crates/storage/", version = "=1.18.0" } +mas-storage-pg = { path = "./crates/storage-pg/", version = "=1.18.0" } +mas-tasks = { path = "./crates/tasks/", version = "=1.18.0" } +mas-templates = { path = "./crates/templates/", version = "=1.18.0" } +mas-tower = { path = "./crates/tower/", version = "=1.18.0" } +oauth2-types = { path = "./crates/oauth2-types/", version = "=1.18.0" } +syn2mas = { path = "./crates/syn2mas", version = "=1.18.0" } # OpenAPI schema generation and validation [workspace.dependencies.aide]