diff --git a/.changeset/great-bats-attack.md b/.changeset/great-bats-attack.md new file mode 100644 index 00000000000..140380743cf --- /dev/null +++ b/.changeset/great-bats-attack.md @@ -0,0 +1,12 @@ +--- +'@clerk/tanstack-react-start': minor +'@clerk/localizations': minor +'@clerk/react-router': minor +'@clerk/clerk-js': minor +'@clerk/nextjs': minor +'@clerk/shared': minor +'@clerk/react': minor +'@clerk/ui': minor +--- + +Introducing `setup_mfa` session task diff --git a/integration/presets/envs.ts b/integration/presets/envs.ts index 0bc33692a17..413cff07792 100644 --- a/integration/presets/envs.ts +++ b/integration/presets/envs.ts @@ -158,6 +158,13 @@ const withSessionTasksResetPassword = base .setEnvVariable('private', 'CLERK_SECRET_KEY', instanceKeys.get('with-session-tasks-reset-password').sk) .setEnvVariable('public', 'CLERK_PUBLISHABLE_KEY', instanceKeys.get('with-session-tasks-reset-password').pk); +const withSessionTasksSetupMfa = base + .clone() + .setId('withSessionTasksSetupMfa') + .setEnvVariable('private', 'CLERK_SECRET_KEY', instanceKeys.get('with-session-tasks-setup-mfa').sk) + .setEnvVariable('public', 'CLERK_PUBLISHABLE_KEY', instanceKeys.get('with-session-tasks-setup-mfa').pk) + .setEnvVariable('private', 'CLERK_ENCRYPTION_KEY', constants.E2E_CLERK_ENCRYPTION_KEY || 'a-key'); + const withBillingJwtV2 = base .clone() .setId('withBillingJwtV2') @@ -216,6 +223,7 @@ export const envs = { withSessionTasks, withSessionTasksResetPassword, withSharedUIVariant, + withSessionTasksSetupMfa, withSignInOrUpEmailLinksFlow, withSignInOrUpFlow, withSignInOrUpwithRestrictedModeFlow, diff --git a/integration/presets/longRunningApps.ts b/integration/presets/longRunningApps.ts index acc6d1df360..f66716d0b84 100644 --- a/integration/presets/longRunningApps.ts +++ b/integration/presets/longRunningApps.ts @@ -31,6 +31,7 @@ export const createLongRunningApps = () => { { id: 'next.appRouter.withSignInOrUpEmailLinksFlow', config: next.appRouter, env: envs.withSignInOrUpEmailLinksFlow }, { id: 'next.appRouter.withSessionTasks', config: next.appRouter, env: envs.withSessionTasks }, { id: 'next.appRouter.withSessionTasksResetPassword', config: next.appRouter, env: envs.withSessionTasksResetPassword }, + { id: 'next.appRouter.withSessionTasksSetupMfa', config: next.appRouter, env: envs.withSessionTasksSetupMfa }, { id: 'next.appRouter.withLegalConsent', config: next.appRouter, env: envs.withLegalConsent }, { id: 'next.appRouter.withNeedsClientTrust', config: next.appRouter, env: envs.withNeedsClientTrust }, { id: 'next.appRouter.withSharedUIVariant', config: next.appRouter, env: envs.withSharedUIVariant }, diff --git a/integration/tests/session-tasks-setup-mfa.test.ts b/integration/tests/session-tasks-setup-mfa.test.ts new file mode 100644 index 00000000000..55a5a26a2ea --- /dev/null +++ b/integration/tests/session-tasks-setup-mfa.test.ts @@ -0,0 +1,206 @@ +import { expect, test } from '@playwright/test'; + +import { appConfigs } from '../presets'; +import { createTestUtils, testAgainstRunningApps } from '../testUtils'; +import { stringPhoneNumber } from '../testUtils/phoneUtils'; +import { fakerPhoneNumber } from '../testUtils/usersService'; + +testAgainstRunningApps({ withEnv: [appConfigs.envs.withSessionTasksSetupMfa] })( + 'session tasks setup-mfa flow @nextjs', + ({ app }) => { + test.describe.configure({ mode: 'serial' }); + + test.afterAll(async () => { + await app.teardown(); + }); + + test.afterEach(async ({ page, context }) => { + const u = createTestUtils({ app, page, context }); + await u.page.signOut(); + await u.page.context().clearCookies(); + }); + + test('setup MFA with new phone number - happy path', async ({ page, context }) => { + const u = createTestUtils({ app, page, context }); + const user = u.services.users.createFakeUser({ + fictionalEmail: true, + withPassword: true, + }); + await u.services.users.createBapiUser(user); + + await u.po.signIn.goTo(); + await u.po.signIn.waitForMounted(); + await u.po.signIn.signInWithEmailAndInstantPassword({ email: user.email, password: user.password }); + await u.po.expect.toBeSignedIn(); + + await u.page.goToRelative('/page-protected'); + + await u.page.getByText(/set up two-step verification/i).waitFor({ state: 'visible' }); + + await u.page.getByRole('button', { name: /sms code/i }).click(); + + const testPhoneNumber = fakerPhoneNumber(); + await u.po.signIn.getPhoneNumberInput().fill(testPhoneNumber); + await u.page.getByRole('button', { name: /continue/i }).click(); + + await u.po.signIn.enterTestOtpCode(); + + await u.page.getByText(/save these backup codes/i).waitFor({ state: 'visible', timeout: 10000 }); + + await u.po.signIn.continue(); + + await u.page.waitForAppUrl('/page-protected'); + await u.po.expect.toBeSignedIn(); + + await user.deleteIfExists(); + }); + + test('setup MFA with existing phone number - happy path', async ({ page, context }) => { + const u = createTestUtils({ app, page, context }); + const user = u.services.users.createFakeUser({ + fictionalEmail: true, + withPhoneNumber: true, + withPassword: true, + }); + await u.services.users.createBapiUser(user); + + await u.po.signIn.goTo(); + await u.po.signIn.waitForMounted(); + await u.po.signIn.signInWithEmailAndInstantPassword({ email: user.email, password: user.password }); + await u.po.expect.toBeSignedIn(); + + await u.page.goToRelative('/page-protected'); + + await u.page.getByText(/set up two-step verification/i).waitFor({ state: 'visible' }); + + await u.page.getByRole('button', { name: /sms code/i }).click(); + + const formattedPhoneNumber = stringPhoneNumber(user.phoneNumber); + await u.page + .getByRole('button', { + name: formattedPhoneNumber, + }) + .click(); + + await u.page.getByText(/save these backup codes/i).waitFor({ state: 'visible', timeout: 10000 }); + + await u.po.signIn.continue(); + + await u.page.waitForAppUrl('/page-protected'); + await u.po.expect.toBeSignedIn(); + + await user.deleteIfExists(); + }); + + test('setup MFA with invalid phone number - error handling', async ({ page, context }) => { + const u = createTestUtils({ app, page, context }); + const user = u.services.users.createFakeUser({ + fictionalEmail: true, + withPassword: true, + }); + await u.services.users.createBapiUser(user); + + await u.po.signIn.goTo(); + await u.po.signIn.waitForMounted(); + await u.po.signIn.signInWithEmailAndInstantPassword({ email: user.email, password: user.password }); + await u.po.expect.toBeSignedIn(); + + await u.page.goToRelative('/page-protected'); + + await u.page.getByText(/set up two-step verification/i).waitFor({ state: 'visible' }); + + await u.page.getByRole('button', { name: /sms code/i }).click(); + + const invalidPhoneNumber = '123091293193091311'; + await u.po.signIn.getPhoneNumberInput().fill(invalidPhoneNumber); + await u.po.signIn.continue(); + // we need to improve this error message + await expect(u.page.getByTestId('form-feedback-error')).toBeVisible(); + + const validPhoneNumber = fakerPhoneNumber(); + await u.po.signIn.getPhoneNumberInput().fill(validPhoneNumber); + await u.po.signIn.continue(); + + await u.po.signIn.enterTestOtpCode(); + + await u.page.getByText(/save these backup codes/i).waitFor({ state: 'visible', timeout: 10000 }); + + await u.po.signIn.continue(); + + await u.page.waitForAppUrl('/page-protected'); + await u.po.expect.toBeSignedIn(); + + await user.deleteIfExists(); + }); + + test('setup MFA with invalid verification code - error handling', async ({ page, context }) => { + const u = createTestUtils({ app, page, context }); + const user = u.services.users.createFakeUser({ + fictionalEmail: true, + withPassword: true, + }); + await u.services.users.createBapiUser(user); + + await u.po.signIn.goTo(); + await u.po.signIn.waitForMounted(); + await u.po.signIn.signInWithEmailAndInstantPassword({ email: user.email, password: user.password }); + await u.po.expect.toBeSignedIn(); + + await u.page.goToRelative('/page-protected'); + + await u.page.getByText(/set up two-step verification/i).waitFor({ state: 'visible' }); + + await u.page.getByRole('button', { name: /sms code/i }).click(); + + const testPhoneNumber = fakerPhoneNumber(); + await u.po.signIn.getPhoneNumberInput().fill(testPhoneNumber); + await u.po.signIn.continue(); + + await u.po.signIn.enterOtpCode('111111', { + awaitRequests: false, + }); + + await expect(u.page.getByTestId('form-feedback-error')).toBeVisible(); + + await user.deleteIfExists(); + }); + + test('can navigate back during MFA setup', async ({ page, context }) => { + const u = createTestUtils({ app, page, context }); + const user = u.services.users.createFakeUser({ + fictionalEmail: true, + withPhoneNumber: true, + withPassword: true, + }); + await u.services.users.createBapiUser(user); + + await u.po.signIn.goTo(); + await u.po.signIn.waitForMounted(); + await u.po.signIn.signInWithEmailAndInstantPassword({ email: user.email, password: user.password }); + await u.po.expect.toBeSignedIn(); + + await u.page.goToRelative('/page-protected'); + + await u.page.getByText(/set up two-step verification/i).waitFor({ state: 'visible' }); + + await u.page.getByRole('button', { name: /sms code/i }).click(); + + const formattedPhoneNumber = stringPhoneNumber(user.phoneNumber); + await u.page + .getByRole('button', { + name: formattedPhoneNumber, + }) + .waitFor({ state: 'visible' }); + + await u.page + .getByRole('button', { name: /cancel/i }) + .first() + .click(); + + await u.page.getByText(/set up two-step verification/i).waitFor({ state: 'visible' }); + await u.page.getByRole('button', { name: /sms code/i }).waitFor({ state: 'visible' }); + + await user.deleteIfExists(); + }); + }, +); diff --git a/packages/clerk-js/sandbox/app.ts b/packages/clerk-js/sandbox/app.ts index a169abdfd86..df4725f4c37 100644 --- a/packages/clerk-js/sandbox/app.ts +++ b/packages/clerk-js/sandbox/app.ts @@ -34,6 +34,7 @@ const AVAILABLE_COMPONENTS = [ 'oauthConsent', 'taskChooseOrganization', 'taskResetPassword', + 'taskSetupMFA', ] as const; type AvailableComponent = (typeof AVAILABLE_COMPONENTS)[number]; @@ -137,6 +138,7 @@ const componentControls: Record = { oauthConsent: buildComponentControls('oauthConsent'), taskChooseOrganization: buildComponentControls('taskChooseOrganization'), taskResetPassword: buildComponentControls('taskResetPassword'), + taskSetupMFA: buildComponentControls('taskSetupMFA'), }; declare global { @@ -419,6 +421,14 @@ void (async () => { }, ); }, + '/task-setup-mfa': () => { + Clerk.mountTaskSetupMfa( + app, + componentControls.taskSetupMFA.getProps() ?? { + redirectUrlComplete: '/user-profile', + }, + ); + }, '/open-sign-in': () => { mountOpenSignInButton(app, componentControls.signIn.getProps() ?? {}); }, diff --git a/packages/clerk-js/sandbox/template.html b/packages/clerk-js/sandbox/template.html index 4983019bdf9..d8ff8041392 100644 --- a/packages/clerk-js/sandbox/template.html +++ b/packages/clerk-js/sandbox/template.html @@ -169,6 +169,14 @@ TaskChooseOrganization +
  • + + TaskSetupMFA + +
  • ui.ensureMounted()).then(controls => controls.unmountComponent({ node })); }; + public mountTaskSetupMfa = (node: HTMLDivElement, props?: TaskSetupMFAProps) => { + this.assertComponentsReady(this.#clerkUi); + + const component = 'TaskSetupMFA'; + void this.#clerkUi + .then(ui => ui.ensureMounted()) + .then(controls => + controls.mountComponent({ + name: component, + appearanceKey: 'taskSetupMfa', + node, + props, + }), + ); + + this.telemetry?.record(eventPrebuiltComponentMounted('TaskSetupMfa', props)); + }; + + public unmountTaskSetupMfa = (node: HTMLDivElement) => { + void this.#clerkUi?.then(ui => ui.ensureMounted()).then(controls => controls.unmountComponent({ node })); + }; + /** * `setActive` can be used to set the active session and/or organization. */ diff --git a/packages/localizations/package.json b/packages/localizations/package.json index 217e7af2d4d..a7736c117a2 100644 --- a/packages/localizations/package.json +++ b/packages/localizations/package.json @@ -59,7 +59,7 @@ "dev": "tsup --watch", "format": "node ../../scripts/format-package.mjs", "format:check": "node ../../scripts/format-package.mjs --check", - "generate": "tsc src/utils/generate.ts && node src/utils/generate.js && prettier --write src/*.ts", + "generate": "tsc -p tsconfig.generate.json && node --experimental-vm-modules src/utils/generate.js && rimraf tmp && prettier --write src/*.ts", "lint": "eslint src", "lint:attw": "attw --pack . --profile node16" }, diff --git a/packages/localizations/src/ar-SA.ts b/packages/localizations/src/ar-SA.ts index 7b236645588..17f046dc27f 100644 --- a/packages/localizations/src/ar-SA.ts +++ b/packages/localizations/src/ar-SA.ts @@ -364,6 +364,12 @@ export const arSA: LocalizationResource = { tableHeader__role: 'دور', tableHeader__user: 'مستخدم', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'نحن نقوم بتحديث الأدوار المتاحة. بمجرد الانتهاء، ستتمكن من تحديث الأدوار مرة أخرى.', + title: 'الأدوار مقفلة مؤقتًا', + }, + }, detailsTitle__emptyRow: 'لا يوجد أعضاء للعرض', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const arSA: LocalizationResource = { headerTitle__members: 'الأعضاء', headerTitle__requests: 'الطلبات', }, - alerts: { - roleSetMigrationInProgress: { - title: 'الأدوار مقفلة مؤقتًا', - subtitle: 'نحن نقوم بتحديث الأدوار المتاحة. بمجرد الانتهاء، ستتمكن من تحديث الأدوار مرة أخرى.', - }, - }, }, navbar: { apiKeys: undefined, @@ -855,6 +855,10 @@ export const arSA: LocalizationResource = { socialButtonsBlockButton: 'للمتابعة مع {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'توجد منظمة بالفعل لاسم الشركة المكتشف ({{organizationName}}) و {{organizationDomain}}. انضم عن طريق الدعوة.', + }, chooseOrganization: { action__createOrganization: 'إنشاء منظمة جديدة', action__invitationAccept: 'انضم', @@ -875,17 +879,13 @@ export const arSA: LocalizationResource = { title: 'إعداد منظمتك', }, organizationCreationDisabled: { - title: 'يجب أن تنتمي إلى منظمة', subtitle: 'تواصل مع مسؤول منظمتك للحصول على دعوة.', + title: 'يجب أن تنتمي إلى منظمة', }, signOut: { actionLink: 'تسجيل الخروج', actionText: 'تم تسجيل الدخول كـ {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'توجد منظمة بالفعل لاسم الشركة المكتشف ({{organizationName}}) و {{organizationDomain}}. انضم عن طريق الدعوة.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -896,6 +896,69 @@ export const arSA: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'حجم الملف يتجاوز الحد الأقصى البالغ 10 ميغابايت. يرجى اختيار ملف أصغر.', @@ -923,11 +986,12 @@ export const arSA: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'كلمة المرور أو عنوان البريد الإلكتروني غير صحيح. حاول مرة أخرى أو استخدم طريقة أخرى.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'كلمة المرور ليست قوية', + form_password_or_identifier_incorrect: + 'كلمة المرور أو عنوان البريد الإلكتروني غير صحيح. حاول مرة أخرى أو استخدم طريقة أخرى.', form_password_pwned: 'لا يمكن أستعمال كلمة السر هذه لانها غير أمنة, الرجاء اختيار كلمة مرور أخرى', form_password_pwned__sign_in: 'لا يمكن أستعمال كلمة السر هذه لانها غير أمنة, الرجاء اختيار كلمة مرور أخرى', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/be-BY.ts b/packages/localizations/src/be-BY.ts index eeda34ac12d..e14a70814d0 100644 --- a/packages/localizations/src/be-BY.ts +++ b/packages/localizations/src/be-BY.ts @@ -365,6 +365,12 @@ export const beBY: LocalizationResource = { tableHeader__role: 'Роля', tableHeader__user: 'Карыстальнік', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Мы абнаўляем даступныя ролі. Калі гэта будзе зроблена, вы зможаце абнавіць ролі зноў.', + title: 'Ролі часова заблакіраваны', + }, + }, detailsTitle__emptyRow: 'Нет участников для отображения', invitationsTab: { autoInvitations: { @@ -396,12 +402,6 @@ export const beBY: LocalizationResource = { headerTitle__members: 'Удзельнікі', headerTitle__requests: 'Заявкі', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Ролі часова заблакіраваны', - subtitle: 'Мы абнаўляем даступныя ролі. Калі гэта будзе зроблена, вы зможаце абнавіць ролі зноў.', - }, - }, }, navbar: { apiKeys: undefined, @@ -863,6 +863,10 @@ export const beBY: LocalizationResource = { socialButtonsBlockButton: 'Працягнуць з дапамогай {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Арганізацыя ўжо існуе для выяўленай назвы кампаніі ({{organizationName}}) і {{organizationDomain}}. Далучайцеся па запрашэнні.', + }, chooseOrganization: { action__createOrganization: 'Стварыць новую арганізацыю', action__invitationAccept: 'Далучыцца', @@ -883,17 +887,13 @@ export const beBY: LocalizationResource = { title: 'Наладзьце вашу арганізацыю', }, organizationCreationDisabled: { - title: 'Вы павінны належаць да арганізацыі', subtitle: 'Звярніцеся да адміністратара вашай арганізацыі для атрымання запрашэння.', + title: 'Вы павінны належаць да арганізацыі', }, signOut: { actionLink: 'Выйсці', actionText: 'Увайшлі як {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Арганізацыя ўжо існуе для выяўленай назвы кампаніі ({{organizationName}}) і {{organizationDomain}}. Далучайцеся па запрашэнні.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -904,6 +904,69 @@ export const beBY: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Вы ўжо з’яўляецеся членам гэтай арганізацыі.', avatar_file_size_exceeded: 'Памер файла перавышае максімальны ліміт 10 МБ. Калі ласка, абярыце меншы файл.', @@ -933,11 +996,12 @@ export const beBY: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Невядомы або недапушчальны значэнне.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Невірны пароль.', - form_password_or_identifier_incorrect: - 'Пароль або адрас электроннай пошты няправільны. Паспрабуйце яшчэ раз або выкарыстоўвайце іншы метад.', form_password_length_too_short: 'Пароль занадта кароткі.', form_password_not_strong_enough: 'Ваш пароль недастаткова надзейны.', + form_password_or_identifier_incorrect: + 'Пароль або адрас электроннай пошты няправільны. Паспрабуйце яшчэ раз або выкарыстоўвайце іншы метад.', form_password_pwned: 'Гэты пароль быў узламаны і не можа быць выкарыстаны, паспрабуйце іншы пароль.', form_password_pwned__sign_in: 'Гэты пароль быў узламаны, калі ласка, абярыце іншы.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/bg-BG.ts b/packages/localizations/src/bg-BG.ts index 7688d81eb0e..f919fc61190 100644 --- a/packages/localizations/src/bg-BG.ts +++ b/packages/localizations/src/bg-BG.ts @@ -365,6 +365,12 @@ export const bgBG: LocalizationResource = { tableHeader__role: 'Роля', tableHeader__user: 'Потребител', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Актуализираме наличните роли. Когато това приключи, ще можете отново да актуализирате ролите.', + title: 'Ролите са временно заключени', + }, + }, detailsTitle__emptyRow: 'Няма членове за показване', invitationsTab: { autoInvitations: { @@ -396,12 +402,6 @@ export const bgBG: LocalizationResource = { headerTitle__members: 'Членове', headerTitle__requests: 'Заявки', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Ролите са временно заключени', - subtitle: 'Актуализираме наличните роли. Когато това приключи, ще можете отново да актуализирате ролите.', - }, - }, }, navbar: { apiKeys: undefined, @@ -859,6 +859,10 @@ export const bgBG: LocalizationResource = { socialButtonsBlockButton: 'Продължи с {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Организация вече съществува за откритото име на компанията ({{organizationName}}) и {{organizationDomain}}. Присъединете се чрез покана.', + }, chooseOrganization: { action__createOrganization: 'Създай нова организация', action__invitationAccept: 'Присъедини се', @@ -879,17 +883,13 @@ export const bgBG: LocalizationResource = { title: 'Настройте вашата организация', }, organizationCreationDisabled: { - title: 'Трябва да принадлежите към организация', subtitle: 'Свържете се с администратора на вашата организация за покана.', + title: 'Трябва да принадлежите към организация', }, signOut: { actionLink: 'Изход', actionText: 'Влязъл като {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Организация вече съществува за откритото име на компанията ({{organizationName}}) и {{organizationDomain}}. Присъединете се чрез покана.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -900,6 +900,69 @@ export const bgBG: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Вие вече сте член на тази организация.', avatar_file_size_exceeded: 'Размерът на файла надвишава максималния лимит от 10 MB. Моля, изберете по-малък файл.', @@ -926,12 +989,13 @@ export const bgBG: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Невалидна парола. Моля, опитайте отново.', - form_password_or_identifier_incorrect: - 'Паролата или имейл адресът са невалидни. Моля, опитайте отново или използвайте друг метод.', form_password_length_too_short: 'Паролата е твърде кратка. Моля, въведете поне 8 символа.', form_password_not_strong_enough: 'Паролата трябва да съдържа поне една главна буква, една цифра и един специален символ.', + form_password_or_identifier_incorrect: + 'Паролата или имейл адресът са невалидни. Моля, опитайте отново или използвайте друг метод.', form_password_pwned: 'Тази парола е компрометирана в изтекли данни. Моля, изберете друга.', form_password_pwned__sign_in: undefined, form_password_size_in_bytes_exceeded: 'Паролата ви е твърде дълга. Моля, съкратете я.', diff --git a/packages/localizations/src/bn-IN.ts b/packages/localizations/src/bn-IN.ts index 048968c279c..222cd55744b 100644 --- a/packages/localizations/src/bn-IN.ts +++ b/packages/localizations/src/bn-IN.ts @@ -366,6 +366,12 @@ export const bnIN: LocalizationResource = { tableHeader__role: 'ভূমিকা', tableHeader__user: 'ব্যবহারকারী', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'আমরা উপলব্ধ ভূমিকাগুলি আপডেট করছি। এটি সম্পন্ন হলে, আপনি আবার ভূমিকা আপডেট করতে পারবেন।', + title: 'ভূমিকাগুলি সাময়িকভাবে লক করা আছে', + }, + }, detailsTitle__emptyRow: 'প্রদর্শন করার জন্য কোনো সদস্য নেই', invitationsTab: { autoInvitations: { @@ -397,12 +403,6 @@ export const bnIN: LocalizationResource = { headerTitle__members: 'সদস্য', headerTitle__requests: 'অনুরোধ', }, - alerts: { - roleSetMigrationInProgress: { - title: 'ভূমিকাগুলি সাময়িকভাবে লক করা আছে', - subtitle: 'আমরা উপলব্ধ ভূমিকাগুলি আপডেট করছি। এটি সম্পন্ন হলে, আপনি আবার ভূমিকা আপডেট করতে পারবেন।', - }, - }, }, navbar: { apiKeys: undefined, @@ -863,6 +863,10 @@ export const bnIN: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}} দিয়ে চালিয়ে যান', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'শনাক্ত করা কোম্পানির নাম ({{organizationName}}) এবং {{organizationDomain}}-এর জন্য একটি সংস্থা ইতিমধ্যেই বিদ্যমান। আমন্ত্রণের মাধ্যমে যোগ দিন।', + }, chooseOrganization: { action__createOrganization: 'নতুন সংগঠন তৈরি করুন', action__invitationAccept: 'যোগ দিন', @@ -883,17 +887,13 @@ export const bnIN: LocalizationResource = { title: 'আপনার সংগঠন সেটআপ করুন', }, organizationCreationDisabled: { - title: 'আপনাকে অবশ্যই একটি সংগঠনের অন্তর্ভুক্ত হতে হবে', subtitle: 'আমন্ত্রণের জন্য আপনার সংগঠনের প্রশাসকের সাথে যোগাযোগ করুন।', + title: 'আপনাকে অবশ্যই একটি সংগঠনের অন্তর্ভুক্ত হতে হবে', }, signOut: { actionLink: 'সাইন আউট', actionText: '{{identifier}} হিসাবে সাইন ইন করা হয়েছে', }, - alerts: { - organizationAlreadyExists: - 'শনাক্ত করা কোম্পানির নাম ({{organizationName}}) এবং {{organizationDomain}}-এর জন্য একটি সংস্থা ইতিমধ্যেই বিদ্যমান। আমন্ত্রণের মাধ্যমে যোগ দিন।', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -904,6 +904,69 @@ export const bnIN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ইতিমধ্যে সংগঠনের একজন সদস্য।', avatar_file_size_exceeded: 'ফাইলের আকার সর্বোচ্চ ১০ এমবি সীমা অতিক্রম করেছে। দয়া করে একটি ছোট ফাইল নির্বাচন করুন।', @@ -932,11 +995,12 @@ export const bnIN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'লেখা মানটি অবৈধ। দয়া করে এটি সংশোধন করুন।', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'আপনি যে পাসওয়ার্ড লিখেছেন তা ভুল। দয়া করে আবার চেষ্টা করুন।', - form_password_or_identifier_incorrect: - 'পাসওয়ার্ড বা ইমেইল ঠিকানা ভুল। আবার চেষ্টা করুন বা অন্য পদ্ধতি ব্যবহার করুন।', form_password_length_too_short: 'আপনার পাসওয়ার্ড খুব ছোট। এটি কমপক্ষে ৮ অক্ষর দীর্ঘ হতে হবে।', form_password_not_strong_enough: 'আপনার পাসওয়ার্ড যথেষ্ট শক্তিশালী নয়।', + form_password_or_identifier_incorrect: + 'পাসওয়ার্ড বা ইমেইল ঠিকানা ভুল। আবার চেষ্টা করুন বা অন্য পদ্ধতি ব্যবহার করুন।', form_password_pwned: 'এই পাসওয়ার্ডটি একটি ডেটা লঙ্ঘনের অংশ হিসাবে পাওয়া গেছে এবং ব্যবহার করা যাবে না, দয়া করে অন্য একটি পাসওয়ার্ড ব্যবহার করুন।', form_password_pwned__sign_in: diff --git a/packages/localizations/src/ca-ES.ts b/packages/localizations/src/ca-ES.ts index 8b1c69e0ef4..6b44c0c764e 100644 --- a/packages/localizations/src/ca-ES.ts +++ b/packages/localizations/src/ca-ES.ts @@ -365,6 +365,12 @@ export const caES: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Usuari', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Estem actualitzant els rols disponibles. Un cop fet, podreu tornar a actualitzar els rols.', + title: 'Els rols estan temporalment bloquejats', + }, + }, detailsTitle__emptyRow: 'No hi ha membres per mostrar', invitationsTab: { autoInvitations: { @@ -396,12 +402,6 @@ export const caES: LocalizationResource = { headerTitle__members: 'Membres', headerTitle__requests: 'Sol·licituds', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Els rols estan temporalment bloquejats', - subtitle: 'Estem actualitzant els rols disponibles. Un cop fet, podreu tornar a actualitzar els rols.', - }, - }, }, navbar: { apiKeys: undefined, @@ -858,6 +858,10 @@ export const caES: LocalizationResource = { socialButtonsBlockButton: 'Continua amb {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + "Ja existeix una organització per al nom d'empresa detectat ({{organizationName}}) i {{organizationDomain}}. Uneix-te per invitació.", + }, chooseOrganization: { action__createOrganization: 'Crear nova organització', action__invitationAccept: 'Unir-se', @@ -878,17 +882,13 @@ export const caES: LocalizationResource = { title: 'Configureu la vostra organització', }, organizationCreationDisabled: { - title: 'Heu de pertànyer a una organització', subtitle: "Contacteu amb l'administrador de la vostra organització per obtenir una invitació.", + title: 'Heu de pertànyer a una organització', }, signOut: { actionLink: 'Tancar sessió', actionText: 'Sessió iniciada com a {{identifier}}', }, - alerts: { - organizationAlreadyExists: - "Ja existeix una organització per al nom d'empresa detectat ({{organizationName}}) i {{organizationDomain}}. Uneix-te per invitació.", - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -899,6 +899,69 @@ export const caES: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: @@ -927,11 +990,12 @@ export const caES: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: 'La contrasenya introduïda és incorrecta.', - form_password_or_identifier_incorrect: - "La contrasenya o l'identificador és incorrecte. Torna-ho a intentar o utilitza un altre mètode.", form_password_length_too_short: 'La teva contrasenya ha de tenir almenys 8 caràcters.', form_password_not_strong_enough: 'La teva contrasenya no és prou forta.', + form_password_or_identifier_incorrect: + "La contrasenya o l'identificador és incorrecte. Torna-ho a intentar o utilitza un altre mètode.", form_password_pwned: 'Aquesta contrasenya ha aparegut en una filtració i no es pot utilitzar, si us plau, prova una altra contrasenya.', form_password_pwned__sign_in: undefined, diff --git a/packages/localizations/src/cs-CZ.ts b/packages/localizations/src/cs-CZ.ts index d077e4fcf69..a0f28e7bfcf 100644 --- a/packages/localizations/src/cs-CZ.ts +++ b/packages/localizations/src/cs-CZ.ts @@ -370,6 +370,12 @@ export const csCZ: LocalizationResource = { tableHeader__role: 'Role', tableHeader__user: 'Uživatel', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Aktualizujeme dostupné role. Jakmile to bude hotové, budete moci role opět aktualizovat.', + title: 'Role jsou dočasně uzamčeny', + }, + }, detailsTitle__emptyRow: 'Žádní členové k zobrazení', invitationsTab: { autoInvitations: { @@ -401,12 +407,6 @@ export const csCZ: LocalizationResource = { headerTitle__members: 'Členové', headerTitle__requests: 'Žádosti', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Role jsou dočasně uzamčeny', - subtitle: 'Aktualizujeme dostupné role. Jakmile to bude hotové, budete moci role opět aktualizovat.', - }, - }, }, navbar: { apiKeys: 'API klíče', @@ -869,6 +869,10 @@ export const csCZ: LocalizationResource = { socialButtonsBlockButton: 'Pokračovat s {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organizace již existuje pro detekovaný název společnosti ({{organizationName}}) a {{organizationDomain}}. Připojte se prostřednictvím pozvánky.', + }, chooseOrganization: { action__createOrganization: 'Vytvořit novou organizaci', action__invitationAccept: 'Připojit se', @@ -889,17 +893,13 @@ export const csCZ: LocalizationResource = { title: 'Nastavte svou organizaci', }, organizationCreationDisabled: { - title: 'Musíte patřit do organizace', subtitle: 'Kontaktujte administrátora vaší organizace pro pozvánku.', + title: 'Musíte patřit do organizace', }, signOut: { actionLink: 'Odhlásit se', actionText: 'Přihlášen jako {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organizace již existuje pro detekovaný název společnosti ({{organizationName}}) a {{organizationDomain}}. Připojte se prostřednictvím pozvánky.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -910,6 +910,69 @@ export const csCZ: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} je již členem organizace.', avatar_file_size_exceeded: 'Velikost souboru přesahuje maximální limit 10 MB. Vyberte prosím menší soubor.', @@ -938,11 +1001,12 @@ export const csCZ: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Tento parametr má neplatnou hodnotu.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Heslo je nesprávné.', - form_password_or_identifier_incorrect: - 'Heslo nebo e-mailová adresa je nesprávná. Zkuste to znovu nebo použijte jinou metodu.', form_password_length_too_short: 'Heslo je příliš krátké.', form_password_not_strong_enough: 'Vaše heslo není dostatečně silné.', + form_password_or_identifier_incorrect: + 'Heslo nebo e-mailová adresa je nesprávná. Zkuste to znovu nebo použijte jinou metodu.', form_password_pwned: 'Toto heslo bylo nalezeno jako součást prolomení a nelze ho použít, zkuste prosím jiné heslo.', form_password_pwned__sign_in: 'Toto heslo bylo nalezeno jako součást prolomení a nelze ho použít, prosím resetujte si heslo.', diff --git a/packages/localizations/src/da-DK.ts b/packages/localizations/src/da-DK.ts index 6f9372f75f6..d2483e2e65a 100644 --- a/packages/localizations/src/da-DK.ts +++ b/packages/localizations/src/da-DK.ts @@ -364,6 +364,12 @@ export const daDK: LocalizationResource = { tableHeader__role: 'Rolle', tableHeader__user: 'Bruger', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Vi opdaterer de tilgængelige roller. Når det er gjort, vil du kunne opdatere roller igen.', + title: 'Roller er midlertidigt låst', + }, + }, detailsTitle__emptyRow: 'Ingen medlemmer at vise', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const daDK: LocalizationResource = { headerTitle__members: 'Medlemmer', headerTitle__requests: 'Anmodninger', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roller er midlertidigt låst', - subtitle: 'Vi opdaterer de tilgængelige roller. Når det er gjort, vil du kunne opdatere roller igen.', - }, - }, }, navbar: { apiKeys: undefined, @@ -856,6 +856,10 @@ export const daDK: LocalizationResource = { socialButtonsBlockButton: 'Fortsæt med {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Der findes allerede en organisation for det registrerede firmanavn ({{organizationName}}) og {{organizationDomain}}. Tilmeld dig via invitation.', + }, chooseOrganization: { action__createOrganization: 'Opret ny organisation', action__invitationAccept: 'Deltag', @@ -876,17 +880,13 @@ export const daDK: LocalizationResource = { title: 'Opsæt din organisation', }, organizationCreationDisabled: { - title: 'Du skal tilhøre en organisation', subtitle: 'Kontakt din organisationsadministrator for en invitation.', + title: 'Du skal tilhøre en organisation', }, signOut: { actionLink: 'Log ud', actionText: 'Logget ind som {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Der findes allerede en organisation for det registrerede firmanavn ({{organizationName}}) og {{organizationDomain}}. Tilmeld dig via invitation.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -897,6 +897,69 @@ export const daDK: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Filstørrelsen overskrider den maksimale grænse på 10 MB. Vælg venligst en mindre fil.', @@ -924,11 +987,12 @@ export const daDK: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Adgangskoden er forkert.', - form_password_or_identifier_incorrect: - 'Adgangskoden eller e-mailadressen er forkert. Prøv igen eller brug en anden metode.', form_password_length_too_short: 'Adgangskoden er for kort.', form_password_not_strong_enough: 'Adgangskoden er ikke stærk nok.', + form_password_or_identifier_incorrect: + 'Adgangskoden eller e-mailadressen er forkert. Prøv igen eller brug en anden metode.', form_password_pwned: 'Adgangskoden er blevet kompromitteret.', form_password_pwned__sign_in: 'Din adgangskode er blevet kompromitteret, vælg en ny.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/de-DE.ts b/packages/localizations/src/de-DE.ts index 6052ff0ef37..649e5c858c0 100644 --- a/packages/localizations/src/de-DE.ts +++ b/packages/localizations/src/de-DE.ts @@ -374,6 +374,13 @@ export const deDE: LocalizationResource = { tableHeader__role: 'Rolle', tableHeader__user: 'Benutzer', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Wir aktualisieren die verfügbaren Rollen. Sobald dies abgeschlossen ist, können Sie die Rollen wieder aktualisieren.', + title: 'Rollen sind vorübergehend gesperrt', + }, + }, detailsTitle__emptyRow: 'Keine Mitglieder zum Anzeigen', invitationsTab: { autoInvitations: { @@ -405,13 +412,6 @@ export const deDE: LocalizationResource = { headerTitle__members: 'Mitglieder', headerTitle__requests: 'Anfragen', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Rollen sind vorübergehend gesperrt', - subtitle: - 'Wir aktualisieren die verfügbaren Rollen. Sobald dies abgeschlossen ist, können Sie die Rollen wieder aktualisieren.', - }, - }, }, navbar: { apiKeys: 'API-Keys', @@ -874,6 +874,10 @@ export const deDE: LocalizationResource = { socialButtonsBlockButton: 'Weiter mit {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Für den erkannten Firmennamen ({{organizationName}}) und {{organizationDomain}} existiert bereits eine Organisation. Treten Sie per Einladung bei.', + }, chooseOrganization: { action__createOrganization: 'Neue Organisation erstellen', action__invitationAccept: 'Beitreten', @@ -894,17 +898,13 @@ export const deDE: LocalizationResource = { title: 'Organisation einrichten', }, organizationCreationDisabled: { - title: 'Sie müssen einer Organisation angehören', subtitle: 'Kontaktieren Sie Ihren Organisationsadministrator für eine Einladung.', + title: 'Sie müssen einer Organisation angehören', }, signOut: { actionLink: 'Abmelden', actionText: 'Angemeldet als {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Für den erkannten Firmennamen ({{organizationName}}) und {{organizationDomain}} existiert bereits eine Organisation. Treten Sie per Einladung bei.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -915,6 +915,69 @@ export const deDE: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Sie sind bereits Mitglied in dieser Organisation.', avatar_file_size_exceeded: @@ -944,11 +1007,12 @@ export const deDE: LocalizationResource = { form_param_type_invalid__email_address: 'Bitte geben Sie eine gültige E-Mail-Adresse ein.', form_param_type_invalid__phone_number: 'Bitte geben Sie eine gültige Telefonnummer ein.', form_param_value_invalid: 'Der eingegebene Wert ist ungültig.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Das eingegebene Passwort ist falsch.', - form_password_or_identifier_incorrect: - 'Passwort oder E-Mail-Adresse ist falsch. Versuchen Sie es erneut oder verwenden Sie eine andere Methode.', form_password_length_too_short: 'Das Passwort ist zu kurz. Es muss mindestens 8 Zeichen lang sein.', form_password_not_strong_enough: 'Passwort nicht stark genug.', + form_password_or_identifier_incorrect: + 'Passwort oder E-Mail-Adresse ist falsch. Versuchen Sie es erneut oder verwenden Sie eine andere Methode.', form_password_pwned: 'Das gewählte Passwort wurde bei einem Datenleck im Internet gefunden. Wählen Sie aus Sicherheitsgründen bitte ein anderes Passwort.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/el-GR.ts b/packages/localizations/src/el-GR.ts index 8c8e28818c0..0e0073ee68b 100644 --- a/packages/localizations/src/el-GR.ts +++ b/packages/localizations/src/el-GR.ts @@ -367,6 +367,13 @@ export const elGR: LocalizationResource = { tableHeader__role: 'Ρόλος', tableHeader__user: 'Χρήστης', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Ενημερώνουμε τους διαθέσιμους ρόλους. Μόλις ολοκληρωθεί, θα μπορείτε να ενημερώσετε ξανά τους ρόλους.', + title: 'Οι ρόλοι είναι προσωρινά κλειδωμένοι', + }, + }, detailsTitle__emptyRow: 'Δεν υπάρχουν μέλη για εμφάνιση', invitationsTab: { autoInvitations: { @@ -398,13 +405,6 @@ export const elGR: LocalizationResource = { headerTitle__members: 'Μέλη', headerTitle__requests: 'Αιτήματα', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Οι ρόλοι είναι προσωρινά κλειδωμένοι', - subtitle: - 'Ενημερώνουμε τους διαθέσιμους ρόλους. Μόλις ολοκληρωθεί, θα μπορείτε να ενημερώσετε ξανά τους ρόλους.', - }, - }, }, navbar: { apiKeys: 'Κλειδιά API', @@ -869,6 +869,10 @@ export const elGR: LocalizationResource = { socialButtonsBlockButton: 'Συνέχεια με {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Υπάρχει ήδη οργανισμός για το ανιχνευμένο όνομα εταιρείας ({{organizationName}}) και {{organizationDomain}}. Εγγραφείτε μέσω πρόσκλησης.', + }, chooseOrganization: { action__createOrganization: 'Δημιουργία νέου οργανισμού', action__invitationAccept: 'Συμμετοχή', @@ -889,17 +893,13 @@ export const elGR: LocalizationResource = { title: 'Ρυθμίστε τον οργανισμό σας', }, organizationCreationDisabled: { - title: 'Πρέπει να ανήκετε σε έναν οργανισμό', subtitle: 'Επικοινωνήστε με τον διαχειριστή του οργανισμού σας για πρόσκληση.', + title: 'Πρέπει να ανήκετε σε έναν οργανισμό', }, signOut: { actionLink: 'Αποσύνδεση', actionText: 'Συνδεδεμένος ως {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Υπάρχει ήδη οργανισμός για το ανιχνευμένο όνομα εταιρείας ({{organizationName}}) και {{organizationDomain}}. Εγγραφείτε μέσω πρόσκλησης.', - }, }, taskResetPassword: { formButtonPrimary: 'Επαναφορά κωδικού πρόσβασης', @@ -910,6 +910,69 @@ export const elGR: LocalizationResource = { subtitle: 'Για λόγους ασφαλείας, παρακαλώ επαναφέρετε τον κωδικό πρόσβασής σας', title: 'Επαναφορά κωδικού πρόσβασης', }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Είστε ήδη μέλος σε αυτόν τον οργανισμό', avatar_file_size_exceeded: @@ -939,20 +1002,20 @@ export const elGR: LocalizationResource = { form_param_type_invalid__email_address: 'Η διεύθυνση email δεν είναι έγκυρη.', form_param_type_invalid__phone_number: 'Ο αριθμός τηλεφώνου δεν είναι έγκυρος.', form_param_value_invalid: '{{paramName}} δεν είναι έγκυρο.', + form_password_compromised__sign_in: + 'Ο κωδικός πρόσβασής σας ενδέχεται να έχει παραβιαστεί. Για την προστασία του λογαριασμού σας, παρακαλώ συνεχίστε με εναλλακτική μέθοδο σύνδεσης. Θα σας ζητηθεί να επαναφέρετε τον κωδικό πρόσβασής σας μετά τη σύνδεση.', form_password_incorrect: 'Ο κωδικός πρόσβασης δεν είναι σωστός.', - form_password_or_identifier_incorrect: - 'Ο κωδικός πρόσβασης ή η διεύθυνση email είναι λανθασμένη. Δοκιμάστε ξανά ή χρησιμοποιήστε άλλη μέθοδο.', form_password_length_too_short: 'Ο κωδικός πρόσβασής σας πρέπει να αποτελείται από τουλάχιστον {{length}} χαρακτήρες.', form_password_not_strong_enough: 'Ο κωδικός πρόσβασής σας δεν είναι αρκετά ισχυρός.', + form_password_or_identifier_incorrect: + 'Ο κωδικός πρόσβασης ή η διεύθυνση email είναι λανθασμένη. Δοκιμάστε ξανά ή χρησιμοποιήστε άλλη μέθοδο.', form_password_pwned: 'Αυτός ο κωδικός πρόσβασης έχει διαρρεύσει online στο παρελθόν και δεν μπορεί να χρησιμοποιηθεί. Δοκιμάστε έναν άλλο κωδικό πρόσβασης αντί για αυτόν.', form_password_pwned__sign_in: 'Αυτός ο κωδικός πρόσβασης εντοπίστηκε σε παραβίαση δεδομένων και πρέπει να επαναφερθεί. Παρακαλώ δοκιμάστε έναν άλλο κωδικό πρόσβασης ή χρησιμοποιήστε τον σύνδεσμο "Ξεχάσατε τον κωδικό πρόσβασης;" για να τον επαναφέρετε.', form_password_size_in_bytes_exceeded: 'Ο κωδικός πρόσβασής σας έχει υπερβεί το μέγιστο αριθμό bytes που επιτρέπεται. Παρακαλούμε, συντομεύστε τον ή αφαιρέστε μερικούς ειδικούς χαρακτήρες.', - form_password_compromised__sign_in: - 'Ο κωδικός πρόσβασής σας ενδέχεται να έχει παραβιαστεί. Για την προστασία του λογαριασμού σας, παρακαλώ συνεχίστε με εναλλακτική μέθοδο σύνδεσης. Θα σας ζητηθεί να επαναφέρετε τον κωδικό πρόσβασής σας μετά τη σύνδεση.', form_password_untrusted__sign_in: 'Για λόγους ασφαλείας, απαιτείται επαναφορά κωδικού πρόσβασης. Παρακαλώ χρησιμοποιήστε τον σύνδεσμο "Ξεχάσατε τον κωδικό πρόσβασης;" για να τον επαναφέρετε.', form_password_validation_failed: 'Λανθασμένος κωδικός', diff --git a/packages/localizations/src/en-GB.ts b/packages/localizations/src/en-GB.ts index e3cf2a2eb18..19b536cdf98 100644 --- a/packages/localizations/src/en-GB.ts +++ b/packages/localizations/src/en-GB.ts @@ -365,6 +365,12 @@ export const enGB: LocalizationResource = { tableHeader__role: 'Role', tableHeader__user: 'User', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: "We are updating the available roles. Once that's done, you'll be able to update roles again.", + title: 'Roles are temporarily locked', + }, + }, detailsTitle__emptyRow: 'No members to display', invitationsTab: { autoInvitations: { @@ -396,12 +402,6 @@ export const enGB: LocalizationResource = { headerTitle__members: 'Members', headerTitle__requests: 'Requests', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roles are temporarily locked', - subtitle: "We are updating the available roles. Once that's done, you'll be able to update roles again.", - }, - }, }, navbar: { apiKeys: undefined, @@ -860,6 +860,10 @@ export const enGB: LocalizationResource = { socialButtonsBlockButton: 'Continue with {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'An organisation already exists for the detected company name ({{organizationName}}) and {{organizationDomain}}. Join by invitation.', + }, chooseOrganization: { action__createOrganization: 'Create new organisation', action__invitationAccept: 'Join', @@ -880,17 +884,13 @@ export const enGB: LocalizationResource = { title: 'Setup your organisation', }, organizationCreationDisabled: { - title: 'You must belong to an organisation', subtitle: 'Contact your organisation admin for an invitation.', + title: 'You must belong to an organisation', }, signOut: { actionLink: 'Sign out', actionText: 'Signed in as {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'An organisation already exists for the detected company name ({{organizationName}}) and {{organizationDomain}}. Join by invitation.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -901,6 +901,69 @@ export const enGB: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} is already a member of the organisation.', avatar_file_size_exceeded: 'File size exceeds the maximum limit of 10MB. Please choose a smaller file.', @@ -928,10 +991,11 @@ export const enGB: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'The value entered is invalid. Please correct it.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'The password you entered is incorrect. Please try again.', - form_password_or_identifier_incorrect: 'Password or email address is incorrect. Try again, or use another method.', form_password_length_too_short: 'Your password is too short. It must be at least 8 characters long.', form_password_not_strong_enough: 'Your password is not strong enough.', + form_password_or_identifier_incorrect: 'Password or email address is incorrect. Try again, or use another method.', form_password_pwned: 'This password has been found as part of a breach and can not be used, please try another password instead.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/en-US.ts b/packages/localizations/src/en-US.ts index 15256e3e1c2..964a7acee74 100644 --- a/packages/localizations/src/en-US.ts +++ b/packages/localizations/src/en-US.ts @@ -361,6 +361,12 @@ export const enUS: LocalizationResource = { tableHeader__role: 'Role', tableHeader__user: 'User', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'We are updating the available roles. Once that’s done, you’ll be able to update roles again.', + title: 'Roles are temporarily locked', + }, + }, detailsTitle__emptyRow: 'No members to display', invitationsTab: { autoInvitations: { @@ -392,12 +398,6 @@ export const enUS: LocalizationResource = { headerTitle__members: 'Members', headerTitle__requests: 'Requests', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roles are temporarily locked', - subtitle: 'We are updating the available roles. Once that’s done, you’ll be able to update roles again.', - }, - }, }, navbar: { apiKeys: 'API keys', @@ -857,6 +857,10 @@ export const enUS: LocalizationResource = { socialButtonsBlockButton: 'Continue with {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'An organization already exists for the detected company name ({{organizationName}}) and {{organizationDomain}}. Join by invitation.', + }, chooseOrganization: { action__createOrganization: 'Create new organization', action__invitationAccept: 'Join', @@ -877,17 +881,13 @@ export const enUS: LocalizationResource = { title: 'Setup your organization', }, organizationCreationDisabled: { - title: 'You must belong to an organization', subtitle: 'Contact your organization admin for an invitation.', + title: 'You must belong to an organization', }, signOut: { actionLink: 'Sign out', actionText: 'Signed in as {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'An organization already exists for the detected company name ({{organizationName}}) and {{organizationDomain}}. Join by invitation.', - }, }, taskResetPassword: { formButtonPrimary: 'Reset Password', @@ -898,6 +898,76 @@ export const enUS: LocalizationResource = { subtitle: 'Your account requires a new password before you can continue', title: 'Reset your password', }, + taskSetupMfa: { + badge: 'Two-step verification setup', + signOut: { + actionLink: 'Sign out', + actionText: 'Signed in as {{identifier}}', + }, + smsCode: { + addPhone: { + formButtonPrimary: 'Continue', + infoText: + 'A text message containing a verification code will be sent to this phone number. Message and data rates may apply.', + }, + addPhoneNumber: 'Add phone number', + cancel: 'Cancel', + subtitle: 'Choose phone number you want to use for SMS code two-step verification', + success: { + finishButton: 'Continue', + message1: + 'Two-step verification is now enabled. When signing in, you will need to enter a verification code sent to this phone number as an additional step.', + message2: + 'Save these backup codes and store them somewhere safe. If you lose access to your authentication device, you can use backup codes to sign in.', + title: 'SMS code verification enabled', + }, + title: 'Add SMS code verification', + verifyPhone: { + formButtonPrimary: 'Continue', + formTitle: 'Verification code', + resendButton: "Didn't receive a code? Resend", + subtitle: 'Enter the verification code sent to', + title: 'Verify your phone number', + }, + }, + start: { + methodSelection: { + phoneCode: 'SMS code', + totp: 'Authenticator application', + }, + subtitle: 'Choose which method you prefer to protect your account with an extra layer of security', + title: 'Set up two-step verification', + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: 'Scan QR code instead', + buttonUnableToScan__nonPrimary: "Can't scan QR code?", + formButtonPrimary: 'Continue', + formButtonReset: 'Cancel', + infoText__ableToScan: + 'Set up a new sign-in method in your authenticator app and scan the following QR code to link it to your account.', + infoText__unableToScan: 'Set up a new sign-in method in your authenticator and enter the Key provided below.', + inputLabel__unableToScan1: + 'Make sure Time-based or One-time passwords is enabled, then finish linking your account.', + }, + success: { + finishButton: 'Continue', + message1: + 'Two-step verification is now enabled. When signing in, you will need to enter a verification code from this authenticator as an additional step.', + message2: + 'Save these backup codes and store them somewhere safe. If you lose access to your authentication device, you can use backup codes to sign in.', + title: 'Authenticator application verification enabled', + }, + title: 'Add authenticator application', + verifyTotp: { + formButtonPrimary: 'Continue', + formButtonReset: 'Cancel', + formTitle: 'Verification code', + subtitle: 'Enter verification code generated by your authenticator', + title: 'Add authenticator application', + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} is already a member of the organization.', avatar_file_size_exceeded: 'File size exceeds the maximum limit of 10MB. Please choose a smaller file.', @@ -923,16 +993,16 @@ export const enUS: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: undefined, form_password_length_too_short: 'Your password is too short. It must be at least 8 characters long.', form_password_not_strong_enough: 'Your password is not strong enough.', + form_password_or_identifier_incorrect: undefined, form_password_pwned: 'This password has been found as part of a breach and can not be used, please try another password instead.', form_password_pwned__sign_in: 'This password has been found as part of a breach and can not be used, please reset your password.', form_password_size_in_bytes_exceeded: undefined, - form_password_compromised__sign_in: undefined, form_password_untrusted__sign_in: 'Your password may be compromised. To protect your account, please continue with an alternative sign-in method. You will be required to reset your password after signing in.', form_password_validation_failed: undefined, diff --git a/packages/localizations/src/es-CR.ts b/packages/localizations/src/es-CR.ts index 342cec4458a..199324841eb 100644 --- a/packages/localizations/src/es-CR.ts +++ b/packages/localizations/src/es-CR.ts @@ -366,6 +366,13 @@ export const esCR: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Usuario', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', + title: 'Los roles están temporalmente bloqueados', + }, + }, detailsTitle__emptyRow: 'No hay miembros para mostrar', invitationsTab: { autoInvitations: { @@ -397,13 +404,6 @@ export const esCR: LocalizationResource = { headerTitle__members: 'Miembros', headerTitle__requests: 'Solicitudes', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Los roles están temporalmente bloqueados', - subtitle: - 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', - }, - }, }, navbar: { apiKeys: undefined, @@ -866,6 +866,10 @@ export const esCR: LocalizationResource = { socialButtonsBlockButton: 'Continuar con {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', + }, chooseOrganization: { action__createOrganization: 'Crear nueva organización', action__invitationAccept: 'Unirse', @@ -886,17 +890,13 @@ export const esCR: LocalizationResource = { title: 'Configurar su organización', }, organizationCreationDisabled: { - title: 'Debe pertenecer a una organización', subtitle: 'Contacte al administrador de su organización para obtener una invitación.', + title: 'Debe pertenecer a una organización', }, signOut: { actionLink: 'Cerrar sesión', actionText: 'Conectado como {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -907,6 +907,69 @@ export const esCR: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ya es miembro de la organización.', avatar_file_size_exceeded: @@ -935,11 +998,12 @@ export const esCR: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Valor inválido', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Contraseña incorrecta.', - form_password_or_identifier_incorrect: - 'La contraseña o la dirección de correo electrónico es incorrecta. Inténtalo de nuevo o usa otro método.', form_password_length_too_short: 'La contraseña es muy corta.', form_password_not_strong_enough: 'La contraseña no es suficientemente segura.', + form_password_or_identifier_incorrect: + 'La contraseña o la dirección de correo electrónico es incorrecta. Inténtalo de nuevo o usa otro método.', form_password_pwned: 'Esta contraseña se encontró como parte de una brecha y no se puede utilizar, intenta con otra contraseña.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/es-ES.ts b/packages/localizations/src/es-ES.ts index b5b17680545..c67eafdd8ef 100644 --- a/packages/localizations/src/es-ES.ts +++ b/packages/localizations/src/es-ES.ts @@ -372,6 +372,13 @@ export const esES: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Usuario', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', + title: 'Los roles están temporalmente bloqueados', + }, + }, detailsTitle__emptyRow: 'No hay miembros para mostrar', invitationsTab: { autoInvitations: { @@ -403,13 +410,6 @@ export const esES: LocalizationResource = { headerTitle__members: 'Miembros', headerTitle__requests: 'Solicitudes', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Los roles están temporalmente bloqueados', - subtitle: - 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', - }, - }, }, navbar: { apiKeys: undefined, @@ -867,6 +867,10 @@ export const esES: LocalizationResource = { socialButtonsBlockButton: 'Continuar con {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', + }, chooseOrganization: { action__createOrganization: 'Crear nueva organización', action__invitationAccept: 'Unirse', @@ -887,17 +891,13 @@ export const esES: LocalizationResource = { title: 'Configurar su organización', }, organizationCreationDisabled: { - title: 'Debe pertenecer a una organización', subtitle: 'Contacte al administrador de su organización para obtener una invitación.', + title: 'Debe pertenecer a una organización', }, signOut: { actionLink: 'Cerrar sesión', actionText: 'Sesión iniciada como {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -908,6 +908,69 @@ export const esES: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ya es miembro de la organización.', avatar_file_size_exceeded: @@ -937,11 +1000,12 @@ export const esES: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Valor inválido.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Contraseña incorrecta.', - form_password_or_identifier_incorrect: - 'La contraseña o la dirección de correo electrónico es incorrecta. Inténtalo de nuevo o usa otro método.', form_password_length_too_short: 'La contraseña es demasiado corta.', form_password_not_strong_enough: 'Tu contraseña no es lo suficientemente fuerte.', + form_password_or_identifier_incorrect: + 'La contraseña o la dirección de correo electrónico es incorrecta. Inténtalo de nuevo o usa otro método.', form_password_pwned: 'Tu contraseña ha sido comprometida en una violación de seguridad.', form_password_pwned__sign_in: 'La contraseña ya está en uso en otro servicio.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/es-MX.ts b/packages/localizations/src/es-MX.ts index b17ad42dee4..51a4c094d69 100644 --- a/packages/localizations/src/es-MX.ts +++ b/packages/localizations/src/es-MX.ts @@ -367,6 +367,13 @@ export const esMX: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Usuario', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', + title: 'Los roles están temporalmente bloqueados', + }, + }, detailsTitle__emptyRow: 'No hay miembros para mostrar', invitationsTab: { autoInvitations: { @@ -398,13 +405,6 @@ export const esMX: LocalizationResource = { headerTitle__members: 'Miembros', headerTitle__requests: 'Solicitudes', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Los roles están temporalmente bloqueados', - subtitle: - 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', - }, - }, }, navbar: { apiKeys: 'Claves API', @@ -867,6 +867,10 @@ export const esMX: LocalizationResource = { socialButtonsBlockButton: 'Continuar con {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', + }, chooseOrganization: { action__createOrganization: 'Crear nueva organización', action__invitationAccept: 'Unirse', @@ -887,17 +891,13 @@ export const esMX: LocalizationResource = { title: 'Configurar su organización', }, organizationCreationDisabled: { - title: 'Debe pertenecer a una organización', subtitle: 'Contacte al administrador de su organización para obtener una invitación.', + title: 'Debe pertenecer a una organización', }, signOut: { actionLink: 'Cerrar sesión', actionText: 'Registrado como {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -908,6 +908,69 @@ export const esMX: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ya es miembro de la organización.', avatar_file_size_exceeded: @@ -936,11 +999,12 @@ export const esMX: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Valor inválido', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Contraseña incorrecta.', - form_password_or_identifier_incorrect: - 'La contraseña o la dirección de correo electrónico es incorrecta. Inténtalo de nuevo o usa otro método.', form_password_length_too_short: 'La contraseña es muy corta.', form_password_not_strong_enough: 'La contraseña no es suficientemente segura.', + form_password_or_identifier_incorrect: + 'La contraseña o la dirección de correo electrónico es incorrecta. Inténtalo de nuevo o usa otro método.', form_password_pwned: 'Esta contraseña se encontró como parte de una brecha y no se puede utilizar, intenta con otra contraseña.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/es-UY.ts b/packages/localizations/src/es-UY.ts index fc90d0c1824..b9c8a24a530 100644 --- a/packages/localizations/src/es-UY.ts +++ b/packages/localizations/src/es-UY.ts @@ -366,6 +366,13 @@ export const esUY: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Usuario', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', + title: 'Los roles están temporalmente bloqueados', + }, + }, detailsTitle__emptyRow: 'No hay miembros para mostrar', invitationsTab: { autoInvitations: { @@ -397,13 +404,6 @@ export const esUY: LocalizationResource = { headerTitle__members: 'Miembros', headerTitle__requests: 'Solicitudes', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Los roles están temporalmente bloqueados', - subtitle: - 'Estamos actualizando los roles disponibles. Una vez hecho esto, podrás actualizar los roles de nuevo.', - }, - }, }, navbar: { apiKeys: undefined, @@ -866,6 +866,10 @@ export const esUY: LocalizationResource = { socialButtonsBlockButton: 'Continuar con {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', + }, chooseOrganization: { action__createOrganization: 'Crear nueva organización', action__invitationAccept: 'Unirse', @@ -886,17 +890,13 @@ export const esUY: LocalizationResource = { title: 'Configurar tu organización', }, organizationCreationDisabled: { - title: 'Debés pertenecer a una organización', subtitle: 'Contactá al administrador de tu organización para obtener una invitación.', + title: 'Debés pertenecer a una organización', }, signOut: { actionLink: 'Cerrar sesión', actionText: 'Logueado como {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Ya existe una organización para el nombre de empresa detectado ({{organizationName}}) y {{organizationDomain}}. Únete por invitación.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -907,6 +907,69 @@ export const esUY: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ya es miembro de la organización.', avatar_file_size_exceeded: @@ -935,11 +998,12 @@ export const esUY: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'El valor ingresado es inválido. Por favor, corregilo.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'La contraseña ingresada es incorrecta. Por favor, intentá de nuevo.', - form_password_or_identifier_incorrect: - 'La contraseña o la dirección de correo electrónico es incorrecta. Intentá de nuevo o usá otro método.', form_password_length_too_short: 'Tu contraseña es demasiado corta. Debe tener al menos 8 caracteres.', form_password_not_strong_enough: 'Tu contraseña no es lo suficientemente fuerte.', + form_password_or_identifier_incorrect: + 'La contraseña o la dirección de correo electrónico es incorrecta. Intentá de nuevo o usá otro método.', form_password_pwned: 'Esta contraseña se encontró en una filtración y no se puede usar. Por favor, probá con otra contraseña.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/fa-IR.ts b/packages/localizations/src/fa-IR.ts index b33f584be12..c75e29b56c9 100644 --- a/packages/localizations/src/fa-IR.ts +++ b/packages/localizations/src/fa-IR.ts @@ -371,6 +371,13 @@ export const faIR: LocalizationResource = { tableHeader__role: 'نقش', tableHeader__user: 'کاربر', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'ما در حال به‌روزرسانی نقش‌های موجود هستیم. پس از اتمام، می‌توانید دوباره نقش‌ها را به‌روزرسانی کنید.', + title: 'نقش‌ها موقتاً قفل شده‌اند', + }, + }, detailsTitle__emptyRow: 'هیچ عضوی برای نمایش وجود ندارد', invitationsTab: { autoInvitations: { @@ -402,13 +409,6 @@ export const faIR: LocalizationResource = { headerTitle__members: 'اعضا', headerTitle__requests: 'درخواست‌ها', }, - alerts: { - roleSetMigrationInProgress: { - title: 'نقش‌ها موقتاً قفل شده‌اند', - subtitle: - 'ما در حال به‌روزرسانی نقش‌های موجود هستیم. پس از اتمام، می‌توانید دوباره نقش‌ها را به‌روزرسانی کنید.', - }, - }, }, navbar: { apiKeys: 'کلیدهای API', @@ -870,6 +870,10 @@ export const faIR: LocalizationResource = { socialButtonsBlockButton: 'ادامه با {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'سازمانی برای نام شرکت شناسایی شده ({{organizationName}}) و {{organizationDomain}} از قبل وجود دارد. از طریق دعوتنامه بپیوندید.', + }, chooseOrganization: { action__createOrganization: 'ایجاد سازمان', action__invitationAccept: 'بپیوندید', @@ -890,17 +894,13 @@ export const faIR: LocalizationResource = { title: 'ایجاد سازمان جدید', }, organizationCreationDisabled: { - title: 'شما باید عضو یک سازمان باشید', subtitle: 'برای دریافت دعوتنامه با مدیر سازمان خود تماس بگیرید.', + title: 'شما باید عضو یک سازمان باشید', }, signOut: { actionLink: 'خروج از همه حساب‌ها', actionText: 'می‌خواهید خارج شوید؟', }, - alerts: { - organizationAlreadyExists: - 'سازمانی برای نام شرکت شناسایی شده ({{organizationName}}) و {{organizationDomain}} از قبل وجود دارد. از طریق دعوتنامه بپیوندید.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -911,6 +911,69 @@ export const faIR: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} از قبل عضو سازمان است.', avatar_file_size_exceeded: 'حجم فایل از حداکثر مجاز ۱۰ مگابایت بیشتر است. لطفاً فایل کوچکتری انتخاب کنید.', @@ -937,11 +1000,12 @@ export const faIR: LocalizationResource = { form_param_type_invalid__email_address: 'آدرس ایمیل باید یک رشته معتبر باشد.', form_param_type_invalid__phone_number: 'شماره تلفن باید یک رشته معتبر باشد.', form_param_value_invalid: 'مقدار پارامتر نامعتبر است.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'رمز عبور نادرست است.', - form_password_or_identifier_incorrect: - 'رمز عبور یا آدرس ایمیل نادرست است. دوباره تلاش کنید یا از روش دیگری استفاده کنید.', form_password_length_too_short: 'رمز عبور شما خیلی کوتاه است. باید حداقل ۸ کاراکتر داشته باشد.', form_password_not_strong_enough: 'رمز عبور شما به اندازه کافی قوی نیست.', + form_password_or_identifier_incorrect: + 'رمز عبور یا آدرس ایمیل نادرست است. دوباره تلاش کنید یا از روش دیگری استفاده کنید.', form_password_pwned: 'این رمز عبور به عنوان بخشی از یک نقض امنیتی یافت شده و قابل استفاده نیست، لطفاً رمز عبور دیگری را امتحان کنید.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/fi-FI.ts b/packages/localizations/src/fi-FI.ts index bb579b51ed3..69d2b4c76aa 100644 --- a/packages/localizations/src/fi-FI.ts +++ b/packages/localizations/src/fi-FI.ts @@ -372,6 +372,12 @@ export const fiFI: LocalizationResource = { tableHeader__role: 'Rooli', tableHeader__user: 'Käyttäjä', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Päivitämme käytettävissä olevia rooleja. Kun se on tehty, voit päivittää rooleja uudelleen.', + title: 'Roolit on tilapäisesti lukittu', + }, + }, detailsTitle__emptyRow: 'Ei jäseniä näytettäväksi', invitationsTab: { autoInvitations: { @@ -403,12 +409,6 @@ export const fiFI: LocalizationResource = { headerTitle__members: 'Jäsenet', headerTitle__requests: 'Pyyntöjä', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roolit on tilapäisesti lukittu', - subtitle: 'Päivitämme käytettävissä olevia rooleja. Kun se on tehty, voit päivittää rooleja uudelleen.', - }, - }, }, navbar: { apiKeys: 'API-avaimet', @@ -870,6 +870,10 @@ export const fiFI: LocalizationResource = { socialButtonsBlockButton: 'Jatka palvelun {{provider|titleize}} avulla', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organisaatio on jo olemassa havaitulle yrityksen nimelle ({{organizationName}}) ja {{organizationDomain}}. Liity kutsulla.', + }, chooseOrganization: { action__createOrganization: 'Luo uusi organisaatio', action__invitationAccept: 'Liity', @@ -889,14 +893,14 @@ export const fiFI: LocalizationResource = { subtitle: 'Syötä organisaation tiedot jatkaaksesi', title: 'Määritä organisaatiosi', }, + organizationCreationDisabled: { + subtitle: undefined, + title: undefined, + }, signOut: { actionLink: 'Kirjaudu ulos', actionText: 'Kirjautuneena käyttäjänä {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organisaatio on jo olemassa havaitulle yrityksen nimelle ({{organizationName}}) ja {{organizationDomain}}. Liity kutsulla.', - }, }, taskResetPassword: { formButtonPrimary: 'Nollaa salasana', @@ -907,6 +911,69 @@ export const fiFI: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} on jo tämän organisaation jäsen.', avatar_file_size_exceeded: 'Tiedostokoko ylittää enimmäisrajan 10 Mt. Valitse pienempi tiedosto.', @@ -934,11 +1001,12 @@ export const fiFI: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Salasana tai sähköpostiosoite on väärä. Yritä uudelleen tai käytä toista menetelmää.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Salasana ei ole riittävän vahva.', + form_password_or_identifier_incorrect: + 'Salasana tai sähköpostiosoite on väärä. Yritä uudelleen tai käytä toista menetelmää.', form_password_pwned: 'Salasana on ollut mukana julkisissa tietovuodoissa. Valitse toinen salasana.', form_password_pwned__sign_in: 'Salasana on ollut mukana julkisissa tietovuodoissa. Vaihdathan salasanasi.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/fr-FR.ts b/packages/localizations/src/fr-FR.ts index d31f55ded25..a61f083feac 100644 --- a/packages/localizations/src/fr-FR.ts +++ b/packages/localizations/src/fr-FR.ts @@ -375,6 +375,13 @@ export const frFR: LocalizationResource = { tableHeader__role: 'Rôle', tableHeader__user: 'Utilisateur', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Nous mettons à jour les rôles disponibles. Une fois terminé, vous pourrez de nouveau modifier les rôles.', + title: 'Les rôles sont temporairement verrouillés', + }, + }, detailsTitle__emptyRow: 'Aucun membre', invitationsTab: { autoInvitations: { @@ -406,13 +413,6 @@ export const frFR: LocalizationResource = { headerTitle__members: 'Membres', headerTitle__requests: 'Demandes', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Les rôles sont temporairement verrouillés', - subtitle: - 'Nous mettons à jour les rôles disponibles. Une fois terminé, vous pourrez de nouveau modifier les rôles.', - }, - }, }, navbar: { apiKeys: 'Clés API', @@ -875,6 +875,9 @@ export const frFR: LocalizationResource = { socialButtonsBlockButton: 'Continuer avec {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: undefined, + }, chooseOrganization: { action__createOrganization: 'Créer une nouvelle organisation', action__invitationAccept: 'Rejoindre', @@ -895,8 +898,8 @@ export const frFR: LocalizationResource = { title: 'Configurer votre organisation', }, organizationCreationDisabled: { - title: 'Vous devez appartenir à une organisation', subtitle: "Contactez l'administrateur de votre organisation pour obtenir une invitation.", + title: 'Vous devez appartenir à une organisation', }, signOut: { actionLink: 'Se déconnecter', @@ -912,6 +915,69 @@ export const frFR: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Vous êtes déjà membre de cette organisation.', avatar_file_size_exceeded: @@ -941,11 +1007,12 @@ export const frFR: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'La valeur fournie est invalide.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Mot de passe incorrect', - form_password_or_identifier_incorrect: - "Le mot de passe ou l'adresse e-mail est incorrect. Réessayez ou utilisez une autre méthode.", form_password_length_too_short: 'Votre mot de passe est trop court.', form_password_not_strong_enough: "Votre mot de passe n'est pas assez fort.", + form_password_or_identifier_incorrect: + "Le mot de passe ou l'adresse e-mail est incorrect. Réessayez ou utilisez une autre méthode.", form_password_pwned: 'Ce mot de passe a été compromis et ne peut pas être utilisé. Veuillez essayer un autre mot de passe à la place.', form_password_pwned__sign_in: 'Mot de passe compromis. Veuillez le réinitialiser.', diff --git a/packages/localizations/src/he-IL.ts b/packages/localizations/src/he-IL.ts index 9aaf3f6e02c..7441114fedb 100644 --- a/packages/localizations/src/he-IL.ts +++ b/packages/localizations/src/he-IL.ts @@ -363,6 +363,12 @@ export const heIL: LocalizationResource = { tableHeader__role: 'תפקיד', tableHeader__user: 'משתמש', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'אנחנו מעדכנים את התפקידים הזמינים. לאחר שזה יסתיים, תוכל לעדכן תפקידים שוב.', + title: 'התפקידים נעולים זמנית', + }, + }, detailsTitle__emptyRow: 'אין חברים להצגה', invitationsTab: { autoInvitations: { @@ -393,12 +399,6 @@ export const heIL: LocalizationResource = { headerTitle__members: 'חברים', headerTitle__requests: 'בקשות', }, - alerts: { - roleSetMigrationInProgress: { - title: 'התפקידים נעולים זמנית', - subtitle: 'אנחנו מעדכנים את התפקידים הזמינים. לאחר שזה יסתיים, תוכל לעדכן תפקידים שוב.', - }, - }, }, navbar: { apiKeys: undefined, @@ -849,6 +849,10 @@ export const heIL: LocalizationResource = { socialButtonsBlockButton: 'המשך עם {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'ארגון כבר קיים עבור שם החברה שזוהה ({{organizationName}}) ו-{{organizationDomain}}. הצטרף באמצעות הזמנה.', + }, chooseOrganization: { action__createOrganization: 'צור ארגון חדש', action__invitationAccept: 'הצטרף', @@ -869,17 +873,13 @@ export const heIL: LocalizationResource = { title: 'הגדר את הארגון שלך', }, organizationCreationDisabled: { - title: 'עליך להשתייך לארגון', subtitle: 'פנה למנהל הארגון שלך לקבלת הזמנה.', + title: 'עליך להשתייך לארגון', }, signOut: { actionLink: 'התנתק', actionText: 'מחובר כ-{{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'ארגון כבר קיים עבור שם החברה שזוהה ({{organizationName}}) ו-{{organizationDomain}}. הצטרף באמצעות הזמנה.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -890,6 +890,69 @@ export const heIL: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} כבר חבר בארגון', avatar_file_size_exceeded: 'גודל הקובץ חורג מהמגבלה המקסימלית של 10MB. אנא בחר קובץ קטן יותר.', @@ -915,10 +978,11 @@ export const heIL: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: 'הסיסמה או כתובת האימייל שגויים. נסה שוב או השתמש בשיטה אחרת.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'הסיסמה שלך אינה מספיק חזקה.', + form_password_or_identifier_incorrect: 'הסיסמה או כתובת האימייל שגויים. נסה שוב או השתמש בשיטה אחרת.', form_password_pwned: 'הסיסמה הזו נמצאה כחלק מהפרטים שנחשפו בהפרת נתונים ולא ניתן להשתמש בה, נסה סיסמה אחרת במקום.', form_password_pwned__sign_in: 'הסיסמה הזו נמצאה כחלק מהפרטים שנחשפו בהפרת נתונים ולא ניתן להשתמש בה, אנא בצע איתחול לסיסמה שלך.', diff --git a/packages/localizations/src/hi-IN.ts b/packages/localizations/src/hi-IN.ts index 3301b3847c2..ca6dc200bd2 100644 --- a/packages/localizations/src/hi-IN.ts +++ b/packages/localizations/src/hi-IN.ts @@ -366,6 +366,13 @@ export const hiIN: LocalizationResource = { tableHeader__role: 'भूमिका', tableHeader__user: 'उपयोगकर्ता', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'हम उपलब्ध भूमिकाओं को अपडेट कर रहे हैं। एक बार यह हो जाने के बाद, आप फिर से भूमिकाएं अपडेट कर सकेंगे।', + title: 'भूमिकाएं अस्थायी रूप से लॉक हैं', + }, + }, detailsTitle__emptyRow: 'प्रदर्शित करने के लिए कोई सदस्य नहीं', invitationsTab: { autoInvitations: { @@ -397,13 +404,6 @@ export const hiIN: LocalizationResource = { headerTitle__members: 'सदस्य', headerTitle__requests: 'अनुरोध', }, - alerts: { - roleSetMigrationInProgress: { - title: 'भूमिकाएं अस्थायी रूप से लॉक हैं', - subtitle: - 'हम उपलब्ध भूमिकाओं को अपडेट कर रहे हैं। एक बार यह हो जाने के बाद, आप फिर से भूमिकाएं अपडेट कर सकेंगे।', - }, - }, }, navbar: { apiKeys: undefined, @@ -864,6 +864,10 @@ export const hiIN: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}} के साथ जारी रखें', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'पता लगाई गई कंपनी के नाम ({{organizationName}}) और {{organizationDomain}} के लिए एक संगठन पहले से मौजूद है। आमंत्रण द्वारा शामिल हों।', + }, chooseOrganization: { action__createOrganization: 'नया संगठन बनाएं', action__invitationAccept: 'शामिल हों', @@ -884,17 +888,13 @@ export const hiIN: LocalizationResource = { title: 'अपने संगठन को सेटअप करें', }, organizationCreationDisabled: { - title: 'आपको किसी संगठन से संबंधित होना चाहिए', subtitle: 'आमंत्रण के लिए अपने संगठन के व्यवस्थापक से संपर्क करें।', + title: 'आपको किसी संगठन से संबंधित होना चाहिए', }, signOut: { actionLink: 'साइन आउट', actionText: '{{identifier}} के रूप में साइन इन किया गया', }, - alerts: { - organizationAlreadyExists: - 'पता लगाई गई कंपनी के नाम ({{organizationName}}) और {{organizationDomain}} के लिए एक संगठन पहले से मौजूद है। आमंत्रण द्वारा शामिल हों।', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -905,6 +905,69 @@ export const hiIN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} पहले से ही संगठन का सदस्य है।', avatar_file_size_exceeded: 'फ़ाइल का आकार 10MB की अधिकतम सीमा से अधिक है। कृपया एक छोटी फ़ाइल चुनें।', @@ -932,11 +995,12 @@ export const hiIN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'दर्ज किया गया मान अमान्य है। कृपया इसे सही करें।', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'आपके द्वारा दर्ज किया गया पासवर्ड गलत है। कृपया पुनः प्रयास करें।', - form_password_or_identifier_incorrect: - 'पासवर्ड या ईमेल पता गलत है। कृपया पुनः प्रयास करें या किसी अन्य विधि का उपयोग करें।', form_password_length_too_short: 'आपका पासवर्ड बहुत छोटा है। इसमें कम से कम 8 अक्षर होने चाहिए।', form_password_not_strong_enough: 'आपका पासवर्ड पर्याप्त मजबूत नहीं है।', + form_password_or_identifier_incorrect: + 'पासवर्ड या ईमेल पता गलत है। कृपया पुनः प्रयास करें या किसी अन्य विधि का उपयोग करें।', form_password_pwned: 'यह पासवर्ड डेटा उल्लंघन के हिस्से के रूप में पाया गया है और इसका उपयोग नहीं किया जा सकता, कृपया इसके बजाय दूसरा पासवर्ड आज़माएं।', form_password_pwned__sign_in: diff --git a/packages/localizations/src/hr-HR.ts b/packages/localizations/src/hr-HR.ts index 67212f7440a..146b7d85053 100644 --- a/packages/localizations/src/hr-HR.ts +++ b/packages/localizations/src/hr-HR.ts @@ -364,6 +364,12 @@ export const hrHR: LocalizationResource = { tableHeader__role: 'Uloga', tableHeader__user: 'Korisnik', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Ažuriramo dostupne uloge. Kada to završimo, moći ćete ponovno ažurirati uloge.', + title: 'Uloge su privremeno zaključane', + }, + }, detailsTitle__emptyRow: 'Nema članova za prikaz', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const hrHR: LocalizationResource = { headerTitle__members: 'Članovi', headerTitle__requests: 'Zahtjevi', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Uloge su privremeno zaključane', - subtitle: 'Ažuriramo dostupne uloge. Kada to završimo, moći ćete ponovno ažurirati uloge.', - }, - }, }, navbar: { apiKeys: undefined, @@ -860,6 +860,10 @@ export const hrHR: LocalizationResource = { socialButtonsBlockButton: 'Nastavite s {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organizacija već postoji za otkriveni naziv tvrtke ({{organizationName}}) i {{organizationDomain}}. Pridružite se putem pozivnice.', + }, chooseOrganization: { action__createOrganization: 'Stvori novu organizaciju', action__invitationAccept: 'Pridruži se', @@ -880,17 +884,13 @@ export const hrHR: LocalizationResource = { title: 'Postavite svoju organizaciju', }, organizationCreationDisabled: { - title: 'Morate pripadati organizaciji', subtitle: 'Kontaktirajte administratora svoje organizacije za pozivnicu.', + title: 'Morate pripadati organizaciji', }, signOut: { actionLink: 'Odjavi se', actionText: 'Prijavljen kao {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organizacija već postoji za otkriveni naziv tvrtke ({{organizationName}}) i {{organizationDomain}}. Pridružite se putem pozivnice.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -901,6 +901,69 @@ export const hrHR: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} je već član organizacije.', avatar_file_size_exceeded: @@ -929,11 +992,12 @@ export const hrHR: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Lozinka ili e-mail adresa nisu točne. Pokušajte ponovno ili koristite drugu metodu.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Vaša lozinka nije dovoljno jaka.', + form_password_or_identifier_incorrect: + 'Lozinka ili e-mail adresa nisu točne. Pokušajte ponovno ili koristite drugu metodu.', form_password_pwned: 'Ova lozinka je pronađena kao dio curenja podataka i ne može se koristiti, molimo pokušajte s drugom lozinkom.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/hu-HU.ts b/packages/localizations/src/hu-HU.ts index aeb1c042c98..fd064b0d93a 100644 --- a/packages/localizations/src/hu-HU.ts +++ b/packages/localizations/src/hu-HU.ts @@ -364,6 +364,12 @@ export const huHU: LocalizationResource = { tableHeader__role: 'Beosztás', tableHeader__user: 'Felhasználó', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Frissítjük az elérhető szerepköröket. Ha ez befejeződött, újra frissítheti a szerepköröket.', + title: 'A szerepkörök ideiglenesen zárolva vannak', + }, + }, detailsTitle__emptyRow: 'Nincsenek listázható tagok', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const huHU: LocalizationResource = { headerTitle__members: 'Tagok', headerTitle__requests: 'Kérések', }, - alerts: { - roleSetMigrationInProgress: { - title: 'A szerepkörök ideiglenesen zárolva vannak', - subtitle: 'Frissítjük az elérhető szerepköröket. Ha ez befejeződött, újra frissítheti a szerepköröket.', - }, - }, }, navbar: { apiKeys: undefined, @@ -857,6 +857,10 @@ export const huHU: LocalizationResource = { socialButtonsBlockButton: 'Folytatás {{provider|titleize}} segítségével', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Már létezik szervezet az észlelt cégnévhez ({{organizationName}}) és {{organizationDomain}}. Csatlakozz meghívással.', + }, chooseOrganization: { action__createOrganization: 'Szervezet létrehozása', action__invitationAccept: 'Csatlakozás', @@ -877,17 +881,13 @@ export const huHU: LocalizationResource = { title: 'Állítsa be szervezetét', }, organizationCreationDisabled: { - title: 'Egy szervezethez kell tartoznia', subtitle: 'Kérjen meghívót a szervezet adminisztrátorától.', + title: 'Egy szervezethez kell tartoznia', }, signOut: { actionLink: 'Kijelentkezés', actionText: 'Bejelentkezve: {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Már létezik szervezet az észlelt cégnévhez ({{organizationName}}) és {{organizationDomain}}. Csatlakozz meghívással.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -898,6 +898,69 @@ export const huHU: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'A fájl mérete meghaladja a 10 MB-os maximális korlátot. Kérlek válassz kisebb fájlt.', @@ -925,11 +988,12 @@ export const huHU: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'A jelszó vagy az e-mail cím helytelen. Próbáld újra vagy használj másik módszert.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'A jelszó nem elég erős', + form_password_or_identifier_incorrect: + 'A jelszó vagy az e-mail cím helytelen. Próbáld újra vagy használj másik módszert.', form_password_pwned: 'Úgy látjuk, hogy ez a jelszó kiszivárgott, ezért ezt nem használhatod, kérlek próbálj egy másik jelszót.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/id-ID.ts b/packages/localizations/src/id-ID.ts index 0aaa672bfd5..704f9c36bb5 100644 --- a/packages/localizations/src/id-ID.ts +++ b/packages/localizations/src/id-ID.ts @@ -365,6 +365,13 @@ export const idID: LocalizationResource = { tableHeader__role: 'Peran', tableHeader__user: 'Pengguna', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Kami sedang memperbarui peran yang tersedia. Setelah selesai, Anda akan dapat memperbarui peran lagi.', + title: 'Peran untuk sementara terkunci', + }, + }, detailsTitle__emptyRow: 'Tidak ada anggota untuk ditampilkan', invitationsTab: { autoInvitations: { @@ -396,13 +403,6 @@ export const idID: LocalizationResource = { headerTitle__members: 'Anggota', headerTitle__requests: 'Permintaan', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Peran untuk sementara terkunci', - subtitle: - 'Kami sedang memperbarui peran yang tersedia. Setelah selesai, Anda akan dapat memperbarui peran lagi.', - }, - }, }, navbar: { apiKeys: undefined, @@ -865,6 +865,10 @@ export const idID: LocalizationResource = { socialButtonsBlockButton: 'Lanjutkan dengan {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organisasi sudah ada untuk nama perusahaan yang terdeteksi ({{organizationName}}) dan {{organizationDomain}}. Bergabung melalui undangan.', + }, chooseOrganization: { action__createOrganization: 'Buat organisasi baru', action__invitationAccept: 'Bergabung', @@ -885,17 +889,13 @@ export const idID: LocalizationResource = { title: 'Atur organisasi Anda', }, organizationCreationDisabled: { - title: 'Anda harus menjadi anggota organisasi', subtitle: 'Hubungi admin organisasi Anda untuk mendapatkan undangan.', + title: 'Anda harus menjadi anggota organisasi', }, signOut: { actionLink: 'Keluar', actionText: 'Masuk sebagai {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organisasi sudah ada untuk nama perusahaan yang terdeteksi ({{organizationName}}) dan {{organizationDomain}}. Bergabung melalui undangan.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -906,6 +906,69 @@ export const idID: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} sudah menjadi anggota organisasi.', avatar_file_size_exceeded: 'Ukuran file melebihi batas maksimum 10MB. Silakan pilih file yang lebih kecil.', @@ -933,10 +996,11 @@ export const idID: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: 'Kata sandi atau alamat email salah. Coba lagi atau gunakan metode lain.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Kata sandi Anda tidak cukup kuat.', + form_password_or_identifier_incorrect: 'Kata sandi atau alamat email salah. Coba lagi atau gunakan metode lain.', form_password_pwned: 'Kata sandi ini telah ditemukan sebagai bagian dari kebocoran data dan tidak dapat digunakan, silakan coba kata sandi lain.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/is-IS.ts b/packages/localizations/src/is-IS.ts index 94c05eb6832..2cb7036eabe 100644 --- a/packages/localizations/src/is-IS.ts +++ b/packages/localizations/src/is-IS.ts @@ -365,6 +365,12 @@ export const isIS: LocalizationResource = { tableHeader__role: 'Hlutverk', tableHeader__user: 'Notandi', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Við erum að uppfæra tiltæk hlutverk. Þegar því er lokið geturðu uppfært hlutverk aftur.', + title: 'Hlutverk eru tímabundið læst', + }, + }, detailsTitle__emptyRow: 'Engir meðlimir til að sýna', invitationsTab: { autoInvitations: { @@ -396,12 +402,6 @@ export const isIS: LocalizationResource = { headerTitle__members: 'Meðlimir', headerTitle__requests: 'Beiðnir', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Hlutverk eru tímabundið læst', - subtitle: 'Við erum að uppfæra tiltæk hlutverk. Þegar því er lokið geturðu uppfært hlutverk aftur.', - }, - }, }, navbar: { apiKeys: undefined, @@ -860,6 +860,10 @@ export const isIS: LocalizationResource = { socialButtonsBlockButton: 'Halda áfram með {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Fyrirtæki er þegar til fyrir uppgötvaða fyrirtækjanafnið ({{organizationName}}) og {{organizationDomain}}. Skráðu þig með boði.', + }, chooseOrganization: { action__createOrganization: 'Stofna samtök', action__invitationAccept: 'Ganga í', @@ -880,17 +884,13 @@ export const isIS: LocalizationResource = { title: 'Stilltu samtökin þín', }, organizationCreationDisabled: { - title: 'Þú verður að tilheyra samtökum', subtitle: 'Hafðu samband við stjórnanda samtakanna til að fá boð.', + title: 'Þú verður að tilheyra samtökum', }, signOut: { actionLink: 'Skrá út', actionText: 'Skráður inn sem {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Fyrirtæki er þegar til fyrir uppgötvaða fyrirtækjanafnið ({{organizationName}}) og {{organizationDomain}}. Skráðu þig með boði.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -901,6 +901,69 @@ export const isIS: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Skráarstærð fer yfir hámarksmörk 10 MB. Vinsamlegast veldu minni skrá.', @@ -928,10 +991,11 @@ export const isIS: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: 'Lykilorðið eða netfangið er rangt. Reyndu aftur eða notaðu aðra aðferð.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Lykilorðið þitt er ekki nógu sterkt.', + form_password_or_identifier_incorrect: 'Lykilorðið eða netfangið er rangt. Reyndu aftur eða notaðu aðra aðferð.', form_password_pwned: 'Þetta lykilorð hefur fundist sem hluti af öryggisbresti og má ekki nota, vinsamlegast reyndu annað lykilorð.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/it-IT.ts b/packages/localizations/src/it-IT.ts index c99073cde06..fdbedcf27f9 100644 --- a/packages/localizations/src/it-IT.ts +++ b/packages/localizations/src/it-IT.ts @@ -372,6 +372,13 @@ export const itIT: LocalizationResource = { tableHeader__role: 'Ruolo', tableHeader__user: 'Utente', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Stiamo aggiornando i ruoli disponibili. Una volta completato, potrai aggiornare nuovamente i ruoli.', + title: 'I ruoli sono temporaneamente bloccati', + }, + }, detailsTitle__emptyRow: 'Nessun membro da visualizzare', invitationsTab: { autoInvitations: { @@ -403,13 +410,6 @@ export const itIT: LocalizationResource = { headerTitle__members: 'Membri', headerTitle__requests: 'Richieste', }, - alerts: { - roleSetMigrationInProgress: { - title: 'I ruoli sono temporaneamente bloccati', - subtitle: - 'Stiamo aggiornando i ruoli disponibili. Una volta completato, potrai aggiornare nuovamente i ruoli.', - }, - }, }, navbar: { apiKeys: 'Chiavi API', @@ -867,6 +867,10 @@ export const itIT: LocalizationResource = { socialButtonsBlockButton: 'Continua con {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + "Un'organizzazione esiste già per il nome dell'azienda rilevato ({{organizationName}}) e {{organizationDomain}}. Unisciti tramite invito.", + }, chooseOrganization: { action__createOrganization: 'Crea nuova organizzazione', action__invitationAccept: 'Unisciti', @@ -887,17 +891,13 @@ export const itIT: LocalizationResource = { title: 'Configura la tua organizzazione', }, organizationCreationDisabled: { - title: "Devi appartenere a un'organizzazione", subtitle: "Contatta l'amministratore della tua organizzazione per un invito.", + title: "Devi appartenere a un'organizzazione", }, signOut: { actionLink: 'Esci', actionText: 'Accesso effettuato come {{identifier}}', }, - alerts: { - organizationAlreadyExists: - "Un'organizzazione esiste già per il nome dell'azienda rilevato ({{organizationName}}) e {{organizationDomain}}. Unisciti tramite invito.", - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -908,6 +908,69 @@ export const itIT: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Sei già un membro di questa organizzazione.', avatar_file_size_exceeded: 'La dimensione del file supera il limite massimo di 10 MB. Scegli un file più piccolo.', @@ -935,10 +998,11 @@ export const itIT: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Valore non valido.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Password errata.', - form_password_or_identifier_incorrect: "La password o l'indirizzo email è errato. Riprova o usa un altro metodo.", form_password_length_too_short: 'La password deve avere almeno 8 caratteri.', form_password_not_strong_enough: 'La tua password non è abbastanza forte.', + form_password_or_identifier_incorrect: "La password o l'indirizzo email è errato. Riprova o usa un altro metodo.", form_password_pwned: 'Questa password è stata trovata in una violazione dei dati. Scegli una password diversa.', form_password_pwned__sign_in: 'Questa password è stata trovata in una violazione dei dati. Non può essere utilizzata. Reimposta la tua password.', diff --git a/packages/localizations/src/ja-JP.ts b/packages/localizations/src/ja-JP.ts index c58c5197cb4..bb7a6887999 100644 --- a/packages/localizations/src/ja-JP.ts +++ b/packages/localizations/src/ja-JP.ts @@ -372,6 +372,12 @@ export const jaJP: LocalizationResource = { tableHeader__role: '役割', tableHeader__user: 'ユーザー', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: '利用可能なロールを更新しています。完了次第、ロールを再度更新できるようになります。', + title: 'ロールは一時的にロックされています', + }, + }, detailsTitle__emptyRow: '表示するメンバーはありません', invitationsTab: { autoInvitations: { @@ -403,12 +409,6 @@ export const jaJP: LocalizationResource = { headerTitle__members: 'メンバー', headerTitle__requests: 'リクエスト', }, - alerts: { - roleSetMigrationInProgress: { - title: 'ロールは一時的にロックされています', - subtitle: '利用可能なロールを更新しています。完了次第、ロールを再度更新できるようになります。', - }, - }, }, navbar: { apiKeys: 'APIキー', @@ -870,6 +870,10 @@ export const jaJP: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}}で続ける', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + '検出された会社名 ({{organizationName}}) と {{organizationDomain}} の組織がすでに存在します。招待を通じて参加してください。', + }, chooseOrganization: { action__createOrganization: '新しい組織を作成', action__invitationAccept: '参加する', @@ -890,17 +894,13 @@ export const jaJP: LocalizationResource = { title: '組織をセットアップ', }, organizationCreationDisabled: { - title: '組織に所属する必要があります', subtitle: '招待を受けるには組織の管理者にお問い合わせください。', + title: '組織に所属する必要があります', }, signOut: { actionLink: 'サインアウト', actionText: '{{identifier}} としてサインイン中', }, - alerts: { - organizationAlreadyExists: - '検出された会社名 ({{organizationName}}) と {{organizationDomain}} の組織がすでに存在します。招待を通じて参加してください。', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -911,6 +911,69 @@ export const jaJP: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} はすでにこの組織のメンバーです。', avatar_file_size_exceeded: 'ファイルサイズが10MBの上限を超えています。より小さいファイルを選択してください。', @@ -938,11 +1001,12 @@ export const jaJP: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'パスワードまたはメールアドレスが正しくありません。もう一度お試しいただくか、別の方法をご利用ください。', form_password_length_too_short: 'パスワードが短すぎます。8文字以上である必要があります。', form_password_not_strong_enough: 'パスワードの強度が不十分です。', + form_password_or_identifier_incorrect: + 'パスワードまたはメールアドレスが正しくありません。もう一度お試しいただくか、別の方法をご利用ください。', form_password_pwned: 'このパスワードは侵害の一部として見つかったため使用できません。別のパスワードを試してください。', form_password_pwned__sign_in: @@ -952,11 +1016,11 @@ export const jaJP: LocalizationResource = { form_password_untrusted__sign_in: undefined, form_password_validation_failed: 'パスワードが間違っています', form_username_invalid_character: 'ユーザー名に無効な文字が含まれています。', + form_username_invalid_length: 'ユーザー名は{{min_length}}文字以上{{max_length}}文字以下である必要があります。', + form_username_needs_non_number_char: 'ユーザー名には少なくとも1つの数字以外の文字が含まれている必要があります。', identification_deletion_failed: '最後の識別情報は削除できません。', not_allowed_access: "メールアドレスまたは電話番号は登録に使用できません。これは、'+', '=', '#' または '.' がメールアドレスに使用されているか、一時的な電子メールサービスに接続されたドメインが使用されているか、明示的な除外が行われているためです。エラーが発生した場合は、サポートに連絡してください。", - form_username_invalid_length: 'ユーザー名は{{min_length}}文字以上{{max_length}}文字以下である必要があります。', - form_username_needs_non_number_char: 'ユーザー名には少なくとも1つの数字以外の文字が含まれている必要があります。', organization_domain_blocked: undefined, organization_domain_common: undefined, organization_domain_exists_for_enterprise_connection: undefined, diff --git a/packages/localizations/src/kk-KZ.ts b/packages/localizations/src/kk-KZ.ts index 828a94456a9..fffe9a30a75 100644 --- a/packages/localizations/src/kk-KZ.ts +++ b/packages/localizations/src/kk-KZ.ts @@ -363,6 +363,12 @@ export const kkKZ: LocalizationResource = { tableHeader__role: 'Рөл', tableHeader__user: 'Пайдаланушы', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Қолжетімді рөлдерді жаңартып жатырмыз. Бұл аяқталғаннан кейін рөлдерді қайта жаңарта аласыз.', + title: 'Рөлдер уақытша құлыпталған', + }, + }, detailsTitle__emptyRow: 'Көрсету үшін мүшелер жоқ', invitationsTab: { autoInvitations: { @@ -392,12 +398,6 @@ export const kkKZ: LocalizationResource = { headerTitle__members: 'Мүшелер', headerTitle__requests: 'Сұраулар', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Рөлдер уақытша құлыпталған', - subtitle: 'Қолжетімді рөлдерді жаңартып жатырмыз. Бұл аяқталғаннан кейін рөлдерді қайта жаңарта аласыз.', - }, - }, }, navbar: { apiKeys: undefined, @@ -850,6 +850,10 @@ export const kkKZ: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}} арқылы жалғастыру', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Анықталған компания атауы ({{organizationName}}) және {{organizationDomain}} үшін ұйым бұрыннан бар. Шақыру арқылы қосылыңыз.', + }, chooseOrganization: { action__createOrganization: 'Жаңа ұйым құру', action__invitationAccept: 'Қосылу', @@ -870,17 +874,13 @@ export const kkKZ: LocalizationResource = { title: 'Ұйымыңызды баптаңыз', }, organizationCreationDisabled: { - title: 'Сіз ұйымға тиесілі болуыңыз керек', subtitle: 'Шақыру алу үшін ұйымыңыздың әкімшісіне хабарласыңыз.', + title: 'Сіз ұйымға тиесілі болуыңыз керек', }, signOut: { actionLink: 'Шығу', actionText: '{{identifier}} ретінде кірді', }, - alerts: { - organizationAlreadyExists: - 'Анықталған компания атауы ({{organizationName}}) және {{organizationDomain}} үшін ұйым бұрыннан бар. Шақыру арқылы қосылыңыз.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -891,6 +891,69 @@ export const kkKZ: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ұйымға қазірдің өзінде қосылған.', avatar_file_size_exceeded: 'Файл өлшемі 10 МБ шегінен асып кетті. Кішірек файлды таңдаңыз.', @@ -916,11 +979,12 @@ export const kkKZ: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Енгізілген мән жарамсыз.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Құпия сөз қате.', - form_password_or_identifier_incorrect: - 'Құпия сөз немесе электрондық пошта мекенжайы дұрыс емес. Қайталап көріңіз немесе басқа әдісті пайдаланыңыз.', form_password_length_too_short: 'Құпия сөз тым қысқа. Кемінде 8 таңба болуы керек.', form_password_not_strong_enough: 'Құпия сөз әлсіз.', + form_password_or_identifier_incorrect: + 'Құпия сөз немесе электрондық пошта мекенжайы дұрыс емес. Қайталап көріңіз немесе басқа әдісті пайдаланыңыз.', form_password_pwned: 'Бұл құпия сөз қауіпсіздік бұзылуынан табылды. Басқа құпия сөзді қолданыңыз.', form_password_pwned__sign_in: 'Бұл құпия сөз қауіпсіз емес. Құпия сөзді өзгертуге болады.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/ko-KR.ts b/packages/localizations/src/ko-KR.ts index eeca6e25e2f..c3b1491d754 100644 --- a/packages/localizations/src/ko-KR.ts +++ b/packages/localizations/src/ko-KR.ts @@ -368,6 +368,12 @@ export const koKR: LocalizationResource = { tableHeader__role: '역할', tableHeader__user: '사용자', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: '사용 가능한 역할을 업데이트하고 있어요. 끝나면 다시 역할을 바꿀 수 있어요.', + title: '역할이 잠시 잠겼어요', + }, + }, detailsTitle__emptyRow: '표시할 멤버 없음', invitationsTab: { autoInvitations: { @@ -398,12 +404,6 @@ export const koKR: LocalizationResource = { headerTitle__members: '멤버', headerTitle__requests: '요청', }, - alerts: { - roleSetMigrationInProgress: { - title: '역할이 잠시 잠겼어요', - subtitle: '사용 가능한 역할을 업데이트하고 있어요. 끝나면 다시 역할을 바꿀 수 있어요.', - }, - }, }, navbar: { apiKeys: 'API 키', @@ -854,6 +854,10 @@ export const koKR: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}}로 계속하기', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + '감지된 회사 이름({{organizationName}})과 {{organizationDomain}}에 해당하는 조직이 이미 있어요. 초대로 참여해 주세요.', + }, chooseOrganization: { action__createOrganization: '새 조직 만들기', action__invitationAccept: '참여', @@ -874,17 +878,13 @@ export const koKR: LocalizationResource = { title: '조직 설정', }, organizationCreationDisabled: { - title: '조직에 소속돼야 해요', subtitle: '초대가 필요하면 조직 관리자에게 문의해 주세요.', + title: '조직에 소속돼야 해요', }, signOut: { actionLink: '로그아웃', actionText: '{{identifier}}로 로그인됨', }, - alerts: { - organizationAlreadyExists: - '감지된 회사 이름({{organizationName}})과 {{organizationDomain}}에 해당하는 조직이 이미 있어요. 초대로 참여해 주세요.', - }, }, taskResetPassword: { formButtonPrimary: '비밀번호 재설정', @@ -895,6 +895,69 @@ export const koKR: LocalizationResource = { subtitle: '계속하려면 비밀번호를 새로 설정해야 해요', title: '비밀번호 재설정', }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}}은(는) 이미 이 조직의 멤버예요.', avatar_file_size_exceeded: '파일 크기가 최대 10MB 제한을 초과해요. 더 작은 파일을 선택해 주세요.', @@ -922,11 +985,12 @@ export const koKR: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - '비밀번호 또는 이메일 주소가 올바르지 않아요. 다시 시도하거나 다른 방법을 사용해 보세요.', form_password_length_too_short: '비밀번호가 너무 짧아요. 최소 8자 이상이어야 해요.', form_password_not_strong_enough: '비밀번호가 충분히 안전하지 않아요.', + form_password_or_identifier_incorrect: + '비밀번호 또는 이메일 주소가 올바르지 않아요. 다시 시도하거나 다른 방법을 사용해 보세요.', form_password_pwned: '이 비밀번호는 유출된 기록이 있어 사용할 수 없어요. 다른 비밀번호를 사용해 주세요.', form_password_pwned__sign_in: '이 비밀번호는 유출된 비밀번호예요. 비밀번호를 재설정해 주세요.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/mn-MN.ts b/packages/localizations/src/mn-MN.ts index 57ea7f8fdd1..6917bb0991c 100644 --- a/packages/localizations/src/mn-MN.ts +++ b/packages/localizations/src/mn-MN.ts @@ -365,6 +365,13 @@ export const mnMN: LocalizationResource = { tableHeader__role: 'Үүрэг', tableHeader__user: 'Хэрэглэгч', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Бид боломжтой дүрүүдийг шинэчилж байна. Дууссаны дараа та дүрүүдийг дахин шинэчлэх боломжтой болно.', + title: 'Дүрүүд түр хугацаанд түгжигдсэн байна', + }, + }, detailsTitle__emptyRow: 'Харуулах гишүүн алга', invitationsTab: { autoInvitations: { @@ -396,13 +403,6 @@ export const mnMN: LocalizationResource = { headerTitle__members: 'Гишүүд', headerTitle__requests: 'Хүсэлтүүд', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Дүрүүд түр хугацаанд түгжигдсэн байна', - subtitle: - 'Бид боломжтой дүрүүдийг шинэчилж байна. Дууссаны дараа та дүрүүдийг дахин шинэчлэх боломжтой болно.', - }, - }, }, navbar: { apiKeys: undefined, @@ -859,6 +859,10 @@ export const mnMN: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}}-р үргэлжлүүлэх', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Илрүүлсэн компанийн нэр ({{organizationName}}) болон {{organizationDomain}}-д байгууллага аль хэдийн байна. Урилгаар нэгдэнэ үү.', + }, chooseOrganization: { action__createOrganization: 'Шинэ байгууллага үүсгэх', action__invitationAccept: 'Нэгдэх', @@ -879,17 +883,13 @@ export const mnMN: LocalizationResource = { title: 'Байгууллагаа тохируулах', }, organizationCreationDisabled: { - title: 'Та байгууллагад харьяалагдах ёстой', subtitle: 'Урилга авахын тулд байгууллагын админтай холбогдоно уу.', + title: 'Та байгууллагад харьяалагдах ёстой', }, signOut: { actionLink: 'Гарах', actionText: '{{identifier}} гэж нэвтэрсэн', }, - alerts: { - organizationAlreadyExists: - 'Илрүүлсэн компанийн нэр ({{organizationName}}) болон {{organizationDomain}}-д байгууллага аль хэдийн байна. Урилгаар нэгдэнэ үү.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -900,6 +900,69 @@ export const mnMN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Файлын хэмжээ 10MB-ийн дээд хязгаараас хэтэрсэн. Жижиг файл сонгоно уу.', @@ -927,11 +990,12 @@ export const mnMN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Нууц үг буруу байна.', - form_password_or_identifier_incorrect: - 'Нууц үг эсвэл имэйл хаяг буруу байна. Дахин оролдох эсвэл өөр арга ашиглана уу.', form_password_length_too_short: 'Нууц үгийн урт хэт богино байна.', form_password_not_strong_enough: 'Таны нууц үг хангалттай хүчтэй биш байна.', + form_password_or_identifier_incorrect: + 'Нууц үг эсвэл имэйл хаяг буруу байна. Дахин оролдох эсвэл өөр арга ашиглана уу.', form_password_pwned: 'Энэ нууц үгийг зөрчлийн нэг хэсэг гэж олсон тул ашиглах боломжгүй, оронд нь өөр нууц үг оролдоно уу.', form_password_pwned__sign_in: undefined, diff --git a/packages/localizations/src/ms-MY.ts b/packages/localizations/src/ms-MY.ts index 7fc6ace2cbb..12f917ae8c8 100644 --- a/packages/localizations/src/ms-MY.ts +++ b/packages/localizations/src/ms-MY.ts @@ -366,6 +366,13 @@ export const msMY: LocalizationResource = { tableHeader__role: 'Peranan', tableHeader__user: 'Pengguna', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Kami sedang mengemas kini peranan yang tersedia. Setelah selesai, anda akan dapat mengemas kini peranan semula.', + title: 'Peranan dikunci buat sementara waktu', + }, + }, detailsTitle__emptyRow: 'Tiada ahli untuk dipaparkan', invitationsTab: { autoInvitations: { @@ -397,13 +404,6 @@ export const msMY: LocalizationResource = { headerTitle__members: 'Ahli', headerTitle__requests: 'Permintaan', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Peranan dikunci buat sementara waktu', - subtitle: - 'Kami sedang mengemas kini peranan yang tersedia. Setelah selesai, anda akan dapat mengemas kini peranan semula.', - }, - }, }, navbar: { apiKeys: undefined, @@ -867,6 +867,10 @@ export const msMY: LocalizationResource = { socialButtonsBlockButton: 'Teruskan dengan {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organisasi sudah wujud untuk nama syarikat yang dikesan ({{organizationName}}) dan {{organizationDomain}}. Sertai melalui jemputan.', + }, chooseOrganization: { action__createOrganization: 'Cipta organisasi baharu', action__invitationAccept: 'Sertai', @@ -887,17 +891,13 @@ export const msMY: LocalizationResource = { title: 'Sediakan organisasi anda', }, organizationCreationDisabled: { - title: 'Anda mesti menjadi ahli organisasi', subtitle: 'Hubungi pentadbir organisasi anda untuk jemputan.', + title: 'Anda mesti menjadi ahli organisasi', }, signOut: { actionLink: 'Daftar keluar', actionText: 'Log masuk sebagai {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organisasi sudah wujud untuk nama syarikat yang dikesan ({{organizationName}}) dan {{organizationDomain}}. Sertai melalui jemputan.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -908,6 +908,69 @@ export const msMY: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} sudah menjadi ahli organisasi.', avatar_file_size_exceeded: 'Saiz fail melebihi had maksimum 10MB. Sila pilih fail yang lebih kecil.', @@ -936,11 +999,12 @@ export const msMY: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Nilai yang dimasukkan tidak sah. Sila betulkannya.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Kata laluan yang anda masukkan tidak betul. Sila cuba lagi.', - form_password_or_identifier_incorrect: - 'Kata laluan atau alamat e-mel tidak betul. Cuba lagi atau gunakan kaedah lain.', form_password_length_too_short: 'Kata laluan anda terlalu pendek. Ia mesti sekurang-kurangnya 8 aksara panjang.', form_password_not_strong_enough: 'Kata laluan anda tidak cukup kuat.', + form_password_or_identifier_incorrect: + 'Kata laluan atau alamat e-mel tidak betul. Cuba lagi atau gunakan kaedah lain.', form_password_pwned: 'Kata laluan ini telah dijumpai sebagai sebahagian daripada pelanggaran dan tidak boleh digunakan, sila cuba kata laluan lain.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/nb-NO.ts b/packages/localizations/src/nb-NO.ts index a7ae414e371..66cc75613eb 100644 --- a/packages/localizations/src/nb-NO.ts +++ b/packages/localizations/src/nb-NO.ts @@ -364,6 +364,12 @@ export const nbNO: LocalizationResource = { tableHeader__role: 'Rolle', tableHeader__user: 'Bruker', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Vi oppdaterer tilgjengelige roller. Når det er gjort, vil du kunne oppdatere roller igjen.', + title: 'Roller er midlertidig låst', + }, + }, detailsTitle__emptyRow: 'Ingen medlemmer å vise', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const nbNO: LocalizationResource = { headerTitle__members: 'Medlemmer', headerTitle__requests: 'Forespørsler', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roller er midlertidig låst', - subtitle: 'Vi oppdaterer tilgjengelige roller. Når det er gjort, vil du kunne oppdatere roller igjen.', - }, - }, }, navbar: { apiKeys: undefined, @@ -857,6 +857,10 @@ export const nbNO: LocalizationResource = { socialButtonsBlockButton: 'Fortsett med {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'En organisasjon eksisterer allerede for det oppdagede firmanavnet ({{organizationName}}) og {{organizationDomain}}. Bli med via invitasjon.', + }, chooseOrganization: { action__createOrganization: 'Opprett ny organisasjon', action__invitationAccept: 'Bli med', @@ -877,17 +881,13 @@ export const nbNO: LocalizationResource = { title: 'Sett opp din organisasjon', }, organizationCreationDisabled: { - title: 'Du må tilhøre en organisasjon', subtitle: 'Kontakt organisasjonsadministratoren din for en invitasjon.', + title: 'Du må tilhøre en organisasjon', }, signOut: { actionLink: 'Logg ut', actionText: 'Innlogget som {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'En organisasjon eksisterer allerede for det oppdagede firmanavnet ({{organizationName}}) og {{organizationDomain}}. Bli med via invitasjon.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -898,6 +898,69 @@ export const nbNO: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Filstørrelsen overskrider maksgrensen på 10 MB. Vennligst velg en mindre fil.', @@ -925,11 +988,12 @@ export const nbNO: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Passordet eller e-postadressen er feil. Prøv igjen eller bruk en annen metode.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Passordet ditt er ikke sterkt nok.', + form_password_or_identifier_incorrect: + 'Passordet eller e-postadressen er feil. Prøv igjen eller bruk en annen metode.', form_password_pwned: 'Dette passordet er funnet som en del av et datainnbrudd og kan ikke brukes. Vennligst prøv et annet passord.', form_password_pwned__sign_in: undefined, diff --git a/packages/localizations/src/nl-BE.ts b/packages/localizations/src/nl-BE.ts index e614f1f3bcc..0edd4a17a26 100644 --- a/packages/localizations/src/nl-BE.ts +++ b/packages/localizations/src/nl-BE.ts @@ -364,6 +364,13 @@ export const nlBE: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Gebruiker', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'We zijn de beschikbare rollen aan het bijwerken. Zodra dit klaar is, kunt u de rollen opnieuw bijwerken.', + title: 'Rollen zijn tijdelijk vergrendeld', + }, + }, detailsTitle__emptyRow: 'Geen leden gevonden', invitationsTab: { autoInvitations: { @@ -395,13 +402,6 @@ export const nlBE: LocalizationResource = { headerTitle__members: 'Leden', headerTitle__requests: 'Verzoeken', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Rollen zijn tijdelijk vergrendeld', - subtitle: - 'We zijn de beschikbare rollen aan het bijwerken. Zodra dit klaar is, kunt u de rollen opnieuw bijwerken.', - }, - }, }, navbar: { apiKeys: undefined, @@ -859,6 +859,10 @@ export const nlBE: LocalizationResource = { socialButtonsBlockButton: 'Ga verder met {{provider|titleize}}', socialButtonsBlockButtonManyInView: 'Ga verder met {{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Er bestaat al een organisatie voor de gedetecteerde bedrijfsnaam ({{organizationName}}) en {{organizationDomain}}. Word lid via uitnodiging.', + }, chooseOrganization: { action__createOrganization: 'Nieuwe organisatie aanmaken', action__invitationAccept: 'Deelnemen', @@ -879,17 +883,13 @@ export const nlBE: LocalizationResource = { title: 'Stel je organisatie in', }, organizationCreationDisabled: { - title: 'Je moet tot een organisatie behoren', subtitle: 'Neem contact op met de beheerder van je organisatie voor een uitnodiging.', + title: 'Je moet tot een organisatie behoren', }, signOut: { actionLink: 'Uitloggen', actionText: 'Ingelogd als {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Er bestaat al een organisatie voor de gedetecteerde bedrijfsnaam ({{organizationName}}) en {{organizationDomain}}. Word lid via uitnodiging.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -900,6 +900,69 @@ export const nlBE: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Je bent al lid van de organisatie.', avatar_file_size_exceeded: 'Bestandsgrootte overschrijdt de maximale limiet van 10 MB. Kies een kleiner bestand.', @@ -927,11 +990,12 @@ export const nlBE: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'De waarde die je hebt ingevoerd is ongeldig.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Het wachtwoord is incorrect.', - form_password_or_identifier_incorrect: - 'Het wachtwoord of het e-mailadres is onjuist. Probeer het opnieuw of gebruik een andere methode.', form_password_length_too_short: 'Het wachtwoord is te kort.', form_password_not_strong_enough: 'Je wachtwoord is niet sterk genoeg.', + form_password_or_identifier_incorrect: + 'Het wachtwoord of het e-mailadres is onjuist. Probeer het opnieuw of gebruik een andere methode.', form_password_pwned: 'Dit wachtwoord is in een datalek gevonden.', form_password_pwned__sign_in: 'Als je dit wachtwoord elders gebruikt, moet je het wijzigen.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/nl-NL.ts b/packages/localizations/src/nl-NL.ts index a65897a463b..a37bd17c6ff 100644 --- a/packages/localizations/src/nl-NL.ts +++ b/packages/localizations/src/nl-NL.ts @@ -364,6 +364,13 @@ export const nlNL: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Gebruiker', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'We zijn de beschikbare rollen aan het bijwerken. Zodra dit klaar is, kunt u de rollen opnieuw bijwerken.', + title: 'Rollen zijn tijdelijk vergrendeld', + }, + }, detailsTitle__emptyRow: 'Geen leden gevonden', invitationsTab: { autoInvitations: { @@ -395,13 +402,6 @@ export const nlNL: LocalizationResource = { headerTitle__members: 'Leden', headerTitle__requests: 'Verzoeken', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Rollen zijn tijdelijk vergrendeld', - subtitle: - 'We zijn de beschikbare rollen aan het bijwerken. Zodra dit klaar is, kunt u de rollen opnieuw bijwerken.', - }, - }, }, navbar: { apiKeys: undefined, @@ -859,6 +859,10 @@ export const nlNL: LocalizationResource = { socialButtonsBlockButton: 'Ga verder met {{provider|titleize}}', socialButtonsBlockButtonManyInView: 'Ga verder met {{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Er bestaat al een organisatie voor de gedetecteerde bedrijfsnaam ({{organizationName}}) en {{organizationDomain}}. Word lid via uitnodiging.', + }, chooseOrganization: { action__createOrganization: 'Nieuwe organisatie aanmaken', action__invitationAccept: 'Deelnemen', @@ -879,17 +883,13 @@ export const nlNL: LocalizationResource = { title: 'Stel je organisatie in', }, organizationCreationDisabled: { - title: 'Je moet tot een organisatie behoren', subtitle: 'Neem contact op met de beheerder van je organisatie voor een uitnodiging.', + title: 'Je moet tot een organisatie behoren', }, signOut: { actionLink: 'Uitloggen', actionText: 'Ingelogd als {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Er bestaat al een organisatie voor de gedetecteerde bedrijfsnaam ({{organizationName}}) en {{organizationDomain}}. Word lid via uitnodiging.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -900,6 +900,69 @@ export const nlNL: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Je bent al lid van de organisatie.', avatar_file_size_exceeded: 'Bestandsgrootte overschrijdt de maximale limiet van 10 MB. Kies een kleiner bestand.', @@ -927,11 +990,12 @@ export const nlNL: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'De waarde die je hebt ingevoerd is ongeldig.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Het wachtwoord is incorrect.', - form_password_or_identifier_incorrect: - 'Het wachtwoord of het e-mailadres is onjuist. Probeer het opnieuw of gebruik een andere methode.', form_password_length_too_short: 'Het wachtwoord is te kort.', form_password_not_strong_enough: 'Je wachtwoord is niet sterk genoeg.', + form_password_or_identifier_incorrect: + 'Het wachtwoord of het e-mailadres is onjuist. Probeer het opnieuw of gebruik een andere methode.', form_password_pwned: 'Dit wachtwoord is in een datalek gevonden.', form_password_pwned__sign_in: 'Als je dit wachtwoord elders gebruikt, moet je het wijzigen.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/pl-PL.ts b/packages/localizations/src/pl-PL.ts index 638d548ec93..1e8cfbaf92d 100644 --- a/packages/localizations/src/pl-PL.ts +++ b/packages/localizations/src/pl-PL.ts @@ -364,6 +364,12 @@ export const plPL: LocalizationResource = { tableHeader__role: 'Rola', tableHeader__user: 'Użytkownik', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Aktualizujemy dostępne role. Po zakończeniu będziesz mógł ponownie aktualizować role.', + title: 'Role są tymczasowo zablokowane', + }, + }, detailsTitle__emptyRow: 'Brak użytkowników do wyświetlenia', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const plPL: LocalizationResource = { headerTitle__members: 'Członkowie', headerTitle__requests: 'Prośby', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Role są tymczasowo zablokowane', - subtitle: 'Aktualizujemy dostępne role. Po zakończeniu będziesz mógł ponownie aktualizować role.', - }, - }, }, navbar: { apiKeys: undefined, @@ -863,6 +863,10 @@ export const plPL: LocalizationResource = { socialButtonsBlockButton: 'Kontynuuj z {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organizacja już istnieje dla wykrytej nazwy firmy ({{organizationName}}) i {{organizationDomain}}. Dołącz przez zaproszenie.', + }, chooseOrganization: { action__createOrganization: 'Utwórz organizację', action__invitationAccept: 'Dołącz', @@ -883,17 +887,13 @@ export const plPL: LocalizationResource = { title: 'Utwórz swoją organizację', }, organizationCreationDisabled: { - title: 'Musisz należeć do organizacji', subtitle: 'Skontaktuj się z administratorem swojej organizacji, aby uzyskać zaproszenie.', + title: 'Musisz należeć do organizacji', }, signOut: { actionLink: 'Wyloguj', actionText: 'Zalogowano jako {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organizacja już istnieje dla wykrytej nazwy firmy ({{organizationName}}) i {{organizationDomain}}. Dołącz przez zaproszenie.', - }, }, taskResetPassword: { formButtonPrimary: 'Zresetuj hasło', @@ -904,6 +904,69 @@ export const plPL: LocalizationResource = { subtitle: undefined, title: 'Zresetuj hasło', }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} jest już członkiem organizacji.', avatar_file_size_exceeded: 'Rozmiar pliku przekracza maksymalny limit 10 MB. Wybierz mniejszy plik.', @@ -931,11 +994,12 @@ export const plPL: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Wprowadzona wartość jest nieprawidłowa. Popraw ją.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Wprowadzone hasło jest nieprawidłowe. Spróbuj ponownie.', - form_password_or_identifier_incorrect: - 'Hasło lub adres e-mail jest nieprawidłowy. Spróbuj ponownie lub użyj innej metody.', form_password_length_too_short: 'Twoje hasło jest zbyt krótkie. Musi mieć co najmniej 8 znaków.', form_password_not_strong_enough: 'Twoje hasło nie jest wystarczająco silne', + form_password_or_identifier_incorrect: + 'Hasło lub adres e-mail jest nieprawidłowy. Spróbuj ponownie lub użyj innej metody.', form_password_pwned: 'To hasło zostało znalezione w wyniku włamania i nie można go użyć. Zamiast tego spróbuj użyć innego hasła.', form_password_pwned__sign_in: 'To hasło zostało znalezione w wyniku włamania i nie można go użyć. Zresetuj hasło.', diff --git a/packages/localizations/src/pt-BR.ts b/packages/localizations/src/pt-BR.ts index 54f7aff8fd8..5235ac818e3 100644 --- a/packages/localizations/src/pt-BR.ts +++ b/packages/localizations/src/pt-BR.ts @@ -372,6 +372,13 @@ export const ptBR: LocalizationResource = { tableHeader__role: 'Função', tableHeader__user: 'Usuário', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Estamos atualizando as funções disponíveis. Assim que isso for concluído, você poderá atualizar as funções novamente.', + title: 'As funções estão temporariamente bloqueadas', + }, + }, detailsTitle__emptyRow: 'Nenhum membro para exibir', invitationsTab: { autoInvitations: { @@ -403,13 +410,6 @@ export const ptBR: LocalizationResource = { headerTitle__members: 'Membros', headerTitle__requests: 'Solicitações', }, - alerts: { - roleSetMigrationInProgress: { - title: 'As funções estão temporariamente bloqueadas', - subtitle: - 'Estamos atualizando as funções disponíveis. Assim que isso for concluído, você poderá atualizar as funções novamente.', - }, - }, }, navbar: { apiKeys: 'Chaves de API', @@ -871,6 +871,10 @@ export const ptBR: LocalizationResource = { socialButtonsBlockButton: 'Continuar com {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Uma organização já existe para o nome da empresa detectado ({{organizationName}}) e {{organizationDomain}}. Entre por convite.', + }, chooseOrganization: { action__createOrganization: 'Criar nova organização', action__invitationAccept: 'Participar', @@ -891,17 +895,13 @@ export const ptBR: LocalizationResource = { title: 'Configure sua conta', }, organizationCreationDisabled: { - title: 'Você deve pertencer a uma organização', subtitle: 'Entre em contato com o administrador da sua organização para obter um convite.', + title: 'Você deve pertencer a uma organização', }, signOut: { actionLink: 'Sair', actionText: 'Conectado como {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Uma organização já existe para o nome da empresa detectado ({{organizationName}}) e {{organizationDomain}}. Entre por convite.', - }, }, taskResetPassword: { formButtonPrimary: 'Resetar Senha', @@ -912,6 +912,69 @@ export const ptBR: LocalizationResource = { subtitle: 'Sua conta requer uma nova senha antes de continuar', title: 'Resetar senha', }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} já é membro da organização.', avatar_file_size_exceeded: @@ -940,11 +1003,12 @@ export const ptBR: LocalizationResource = { form_param_type_invalid__email_address: 'Endereço de e-mail inválido.', form_param_type_invalid__phone_number: 'Número de telefone inválido.', form_param_value_invalid: 'Valor inválido.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Senha incorreta.', - form_password_or_identifier_incorrect: - 'A senha ou o endereço de e-mail está incorreto. Tente novamente ou use outro método.', form_password_length_too_short: 'Sua senha é muito curta. Por favor, tente novamente.', form_password_not_strong_enough: 'Sua senha não é forte o suficiente.', + form_password_or_identifier_incorrect: + 'A senha ou o endereço de e-mail está incorreto. Tente novamente ou use outro método.', form_password_pwned: 'Esta senha foi comprometida e não pode ser usada, por favor, tente outra senha.', form_password_pwned__sign_in: 'Esta senha foi comprometida, por favor redefina sua senha.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/pt-PT.ts b/packages/localizations/src/pt-PT.ts index ef173c90304..2dee631b312 100644 --- a/packages/localizations/src/pt-PT.ts +++ b/packages/localizations/src/pt-PT.ts @@ -363,6 +363,13 @@ export const ptPT: LocalizationResource = { tableHeader__role: 'Função', tableHeader__user: 'Utilizador', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Estamos a atualizar as funções disponíveis. Assim que terminar, poderá atualizar as funções novamente.', + title: 'As funções estão temporariamente bloqueadas', + }, + }, detailsTitle__emptyRow: 'Nenhum membro para mostrar', invitationsTab: { autoInvitations: { @@ -394,13 +401,6 @@ export const ptPT: LocalizationResource = { headerTitle__members: 'Membros', headerTitle__requests: 'Pedidos', }, - alerts: { - roleSetMigrationInProgress: { - title: 'As funções estão temporariamente bloqueadas', - subtitle: - 'Estamos a atualizar as funções disponíveis. Assim que terminar, poderá atualizar as funções novamente.', - }, - }, }, navbar: { apiKeys: undefined, @@ -857,6 +857,10 @@ export const ptPT: LocalizationResource = { socialButtonsBlockButton: 'Continuar com {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Já existe uma organização para o nome da empresa detetado ({{organizationName}}) e {{organizationDomain}}. Adira por convite.', + }, chooseOrganization: { action__createOrganization: 'Criar nova organização', action__invitationAccept: 'Participar', @@ -877,17 +881,13 @@ export const ptPT: LocalizationResource = { title: 'Configurar a sua organização', }, organizationCreationDisabled: { - title: 'Deve pertencer a uma organização', subtitle: 'Contacte o administrador da sua organização para obter um convite.', + title: 'Deve pertencer a uma organização', }, signOut: { actionLink: 'Terminar sessão', actionText: 'Sessão iniciada como {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Já existe uma organização para o nome da empresa detetado ({{organizationName}}) e {{organizationDomain}}. Adira por convite.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -898,6 +898,69 @@ export const ptPT: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Já é membro nesta organização.', avatar_file_size_exceeded: @@ -926,11 +989,12 @@ export const ptPT: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Valor de parâmetro inválido.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Palavra-passe incorreta.', - form_password_or_identifier_incorrect: - 'A palavra-passe ou o endereço de e-mail está incorreto. Tente novamente ou use outro método.', form_password_length_too_short: 'A palavra-passe é muito curta.', form_password_not_strong_enough: 'A sua palavra-passe não é forte o suficiente.', + form_password_or_identifier_incorrect: + 'A palavra-passe ou o endereço de e-mail está incorreto. Tente novamente ou use outro método.', form_password_pwned: 'Esta palavra-passe foi encontrada como parte de uma violação e não pode ser usada, por favor, tente outra palavra-passe.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/ro-RO.ts b/packages/localizations/src/ro-RO.ts index 53f7145d945..e0e2fab2874 100644 --- a/packages/localizations/src/ro-RO.ts +++ b/packages/localizations/src/ro-RO.ts @@ -372,6 +372,13 @@ export const roRO: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Utilizator', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'Actualizăm rolurile disponibile. Odată ce acest lucru este finalizat, veți putea actualiza din nou rolurile.', + title: 'Rolurile sunt temporar blocate', + }, + }, detailsTitle__emptyRow: 'Nu sunt membri de afișat', invitationsTab: { autoInvitations: { @@ -403,13 +410,6 @@ export const roRO: LocalizationResource = { headerTitle__members: 'Membri', headerTitle__requests: 'Ceri de acces', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Rolurile sunt temporar blocate', - subtitle: - 'Actualizăm rolurile disponibile. Odată ce acest lucru este finalizat, veți putea actualiza din nou rolurile.', - }, - }, }, navbar: { apiKeys: 'Chei API', @@ -872,6 +872,10 @@ export const roRO: LocalizationResource = { socialButtonsBlockButton: 'Continuă cu {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Există deja o organizație pentru numele companiei detectate ({{organizationName}}) și {{organizationDomain}}. Alătură-te prin invitație.', + }, chooseOrganization: { action__createOrganization: 'Creează organizație nouă', action__invitationAccept: 'Alătură-te', @@ -892,17 +896,13 @@ export const roRO: LocalizationResource = { title: 'Configurează-ți organizația', }, organizationCreationDisabled: { - title: 'Trebuie să aparții unei organizații', subtitle: 'Contactează administratorul organizației tale pentru o invitație.', + title: 'Trebuie să aparții unei organizații', }, signOut: { actionLink: 'Deconectează-te', actionText: 'Autentificat ca {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Există deja o organizație pentru numele companiei detectate ({{organizationName}}) și {{organizationDomain}}. Alătură-te prin invitație.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -913,6 +913,69 @@ export const roRO: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} este deja membru al organizației.', avatar_file_size_exceeded: @@ -941,11 +1004,12 @@ export const roRO: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Parola sau adresa de e-mail este incorectă. Încearcă din nou sau folosește o altă metodă.', form_password_length_too_short: 'Parola este prea scurtă. Trebuie să aibă cel puțin 8 caractere.', form_password_not_strong_enough: 'Parola ta nu este suficient de puternică.', + form_password_or_identifier_incorrect: + 'Parola sau adresa de e-mail este incorectă. Încearcă din nou sau folosește o altă metodă.', form_password_pwned: 'Această parolă a fost găsită într-o breșă de securitate și nu poate fi folosită. Te rugăm alege alta.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/ru-RU.ts b/packages/localizations/src/ru-RU.ts index b57a12b9079..dcbd075e3ca 100644 --- a/packages/localizations/src/ru-RU.ts +++ b/packages/localizations/src/ru-RU.ts @@ -368,6 +368,12 @@ export const ruRU: LocalizationResource = { tableHeader__role: 'Роль', tableHeader__user: 'Пользователь', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Мы обновляем доступные роли. Как только это будет сделано, вы сможете снова обновлять роли.', + title: 'Роли временно заблокированы', + }, + }, detailsTitle__emptyRow: 'Нет участников для отображения', invitationsTab: { autoInvitations: { @@ -399,12 +405,6 @@ export const ruRU: LocalizationResource = { headerTitle__members: 'Участники', headerTitle__requests: 'Заявки', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Роли временно заблокированы', - subtitle: 'Мы обновляем доступные роли. Как только это будет сделано, вы сможете снова обновлять роли.', - }, - }, }, navbar: { apiKeys: undefined, @@ -870,6 +870,10 @@ export const ruRU: LocalizationResource = { socialButtonsBlockButton: 'Продолжить с помощью {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Организация уже существует для обнаруженного названия компании ({{organizationName}}) и {{organizationDomain}}. Присоединяйтесь по приглашению.', + }, chooseOrganization: { action__createOrganization: 'Создать новую организацию', action__invitationAccept: 'Присоединиться', @@ -890,17 +894,13 @@ export const ruRU: LocalizationResource = { title: 'Настройте вашу организацию', }, organizationCreationDisabled: { - title: 'Вы должны принадлежать к организации', subtitle: 'Свяжитесь с администратором вашей организации для получения приглашения.', + title: 'Вы должны принадлежать к организации', }, signOut: { actionLink: 'Выйти', actionText: 'Вошли как {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Организация уже существует для обнаруженного названия компании ({{organizationName}}) и {{organizationDomain}}. Присоединяйтесь по приглашению.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -911,6 +911,69 @@ export const ruRU: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} уже является членом организации.', avatar_file_size_exceeded: @@ -940,11 +1003,12 @@ export const ruRU: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Пароль или адрес электронной почты неверен. Попробуйте снова или используйте другой метод.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Ваш пароль недостаточно надежный.', + form_password_or_identifier_incorrect: + 'Пароль или адрес электронной почты неверен. Попробуйте снова или используйте другой метод.', form_password_pwned: 'Этот пароль был взломан и не может быть использован, попробуйте другой пароль.', form_password_pwned__sign_in: 'Этот пароль был найден в утечке данных и не может быть использован. Пожалуйста, сбросьте пароль.', diff --git a/packages/localizations/src/sk-SK.ts b/packages/localizations/src/sk-SK.ts index e48dc7a0afc..3a2eed304f5 100644 --- a/packages/localizations/src/sk-SK.ts +++ b/packages/localizations/src/sk-SK.ts @@ -364,6 +364,12 @@ export const skSK: LocalizationResource = { tableHeader__role: 'Rola', tableHeader__user: 'Užívateľ', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Aktualizujeme dostupné úlohy. Po dokončení budete môcť úlohy opäť aktualizovať.', + title: 'Úlohy sú dočasne uzamknuté', + }, + }, detailsTitle__emptyRow: 'Žiadni členovia na zobrazenie', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const skSK: LocalizationResource = { headerTitle__members: 'Členovia', headerTitle__requests: 'Požiadavky', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Úlohy sú dočasne uzamknuté', - subtitle: 'Aktualizujeme dostupné úlohy. Po dokončení budete môcť úlohy opäť aktualizovať.', - }, - }, }, navbar: { apiKeys: undefined, @@ -863,6 +863,10 @@ export const skSK: LocalizationResource = { socialButtonsBlockButton: 'Pokračovať s {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organizácia už existuje pre zistený názov spoločnosti ({{organizationName}}) a {{organizationDomain}}. Pripojte sa prostredníctvom pozvánky.', + }, chooseOrganization: { action__createOrganization: 'Vytvoriť novú organizáciu', action__invitationAccept: 'Pridať sa', @@ -883,17 +887,13 @@ export const skSK: LocalizationResource = { title: 'Nastavte svoju organizáciu', }, organizationCreationDisabled: { - title: 'Musíte patriť do organizácie', subtitle: 'Kontaktujte administrátora vašej organizácie pre pozvánku.', + title: 'Musíte patriť do organizácie', }, signOut: { actionLink: 'Odhlásiť sa', actionText: 'Prihlásený ako {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organizácia už existuje pre zistený názov spoločnosti ({{organizationName}}) a {{organizationDomain}}. Pripojte sa prostredníctvom pozvánky.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -904,6 +904,69 @@ export const skSK: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Veľkosť súboru presahuje maximálny limit 10 MB. Vyberte prosím menší súbor.', @@ -932,11 +995,12 @@ export const skSK: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Hodnota je neplatná. Skontrolujte a opravte.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Heslo je nesprávne. Skontrolujte a skúste to znova.', - form_password_or_identifier_incorrect: - 'Heslo alebo e-mailová adresa je nesprávna. Skúste to znova alebo použite inú metódu.', form_password_length_too_short: 'Heslo musí mať aspoň 8 znakov.', form_password_not_strong_enough: 'Vaše heslo nie je dostatočne silné.', + form_password_or_identifier_incorrect: + 'Heslo alebo e-mailová adresa je nesprávna. Skúste to znova alebo použite inú metódu.', form_password_pwned: 'Toto heslo bolo nájdené v rámci úniku dát a nemôže byť použité, prosím zvoľte iné heslo.', form_password_pwned__sign_in: 'Toto heslo bolo nájdené v rámci úniku dát a nemôže byť použité, prosím zvoľte iné heslo.', diff --git a/packages/localizations/src/sr-RS.ts b/packages/localizations/src/sr-RS.ts index f1719ff5b44..40bfac1a83d 100644 --- a/packages/localizations/src/sr-RS.ts +++ b/packages/localizations/src/sr-RS.ts @@ -364,6 +364,12 @@ export const srRS: LocalizationResource = { tableHeader__role: 'Uloga', tableHeader__user: 'Korisnik', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Ažuriramo dostupne uloge. Kada to bude završeno, moći ćete ponovo da ažurirate uloge.', + title: 'Uloge su privremeno zaključane', + }, + }, detailsTitle__emptyRow: 'Nema članova za prikaz', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const srRS: LocalizationResource = { headerTitle__members: 'Članovi', headerTitle__requests: 'Zahtevi', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Uloge su privremeno zaključane', - subtitle: 'Ažuriramo dostupne uloge. Kada to bude završeno, moći ćete ponovo da ažurirate uloge.', - }, - }, }, navbar: { apiKeys: undefined, @@ -856,6 +856,10 @@ export const srRS: LocalizationResource = { socialButtonsBlockButton: 'Nastavi sa {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Organizacija već postoji za otkriveno ime kompanije ({{organizationName}}) i {{organizationDomain}}. Pridružite se putem pozivnice.', + }, chooseOrganization: { action__createOrganization: 'Napravi novu organizaciju', action__invitationAccept: 'Pridruži se', @@ -876,17 +880,13 @@ export const srRS: LocalizationResource = { title: 'Podesite svoju organizaciju', }, organizationCreationDisabled: { - title: 'Morate pripadati organizaciji', subtitle: 'Kontaktirajte administratora svoje organizacije za pozivnicu.', + title: 'Morate pripadati organizaciji', }, signOut: { actionLink: 'Odjavi se', actionText: 'Prijavljen kao {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Organizacija već postoji za otkriveno ime kompanije ({{organizationName}}) i {{organizationDomain}}. Pridružite se putem pozivnice.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -897,6 +897,69 @@ export const srRS: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Veličina fajla premašuje maksimalno ograničenje od 10 MB. Molimo izaberite manji fajl.', @@ -924,11 +987,12 @@ export const srRS: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Lozinka je netačna.', - form_password_or_identifier_incorrect: - 'Лозинка или адреса е-поште је нетачна. Покушај поново или користи други метод.', form_password_length_too_short: 'Lozinka je prekratka.', form_password_not_strong_enough: 'Tvoja lozinka nije dovoljno jaka.', + form_password_or_identifier_incorrect: + 'Лозинка или адреса е-поште је нетачна. Покушај поново или користи други метод.', form_password_pwned: 'Ova lozinka je pronađena kao deo kompromitovanih podataka i ne može se koristiti, molimo pokušaj sa drugom lozinkom.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/sv-SE.ts b/packages/localizations/src/sv-SE.ts index 9953b2b6dde..585a3372d92 100644 --- a/packages/localizations/src/sv-SE.ts +++ b/packages/localizations/src/sv-SE.ts @@ -364,6 +364,12 @@ export const svSE: LocalizationResource = { tableHeader__role: 'Roll', tableHeader__user: 'Användare', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Vi uppdaterar tillgängliga roller. När det är klart kommer du att kunna uppdatera roller igen.', + title: 'Roller är tillfälligt låsta', + }, + }, detailsTitle__emptyRow: 'Inga medlemmar att visa', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const svSE: LocalizationResource = { headerTitle__members: 'Medlemmar', headerTitle__requests: 'Förfrågningar', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roller är tillfälligt låsta', - subtitle: 'Vi uppdaterar tillgängliga roller. När det är klart kommer du att kunna uppdatera roller igen.', - }, - }, }, navbar: { apiKeys: undefined, @@ -861,6 +861,10 @@ export const svSE: LocalizationResource = { socialButtonsBlockButton: 'Fortsätt med {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'En organisation finns redan för det upptäckta företagsnamnet ({{organizationName}}) och {{organizationDomain}}. Gå med via inbjudan.', + }, chooseOrganization: { action__createOrganization: 'Skapa ny organisation', action__invitationAccept: 'Gå med', @@ -881,17 +885,13 @@ export const svSE: LocalizationResource = { title: 'Konfigurera din organisation', }, organizationCreationDisabled: { - title: 'Du måste tillhöra en organisation', subtitle: 'Kontakta din organisationsadministratör för en inbjudan.', + title: 'Du måste tillhöra en organisation', }, signOut: { actionLink: 'Logga ut', actionText: 'Inloggad som {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'En organisation finns redan för det upptäckta företagsnamnet ({{organizationName}}) och {{organizationDomain}}. Gå med via inbjudan.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -902,6 +902,69 @@ export const svSE: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} är redan medlem i organisationen.', avatar_file_size_exceeded: 'Filstorleken överskrider maxgränsen på 10 MB. Vänligen välj en mindre fil.', @@ -929,11 +992,12 @@ export const svSE: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Lösenordet är felaktigt.', - form_password_or_identifier_incorrect: - 'Lösenordet eller e-postadressen är felaktig. Försök igen eller använd en annan metod.', form_password_length_too_short: 'Lösenordet är för kort.', form_password_not_strong_enough: 'Ditt lösenord är inte tillräckligt starkt.', + form_password_or_identifier_incorrect: + 'Lösenordet eller e-postadressen är felaktig. Försök igen eller använd en annan metod.', form_password_pwned: 'Lösenordet har läckt i tidigare dataintrång.', form_password_pwned__sign_in: 'Lösenordet har läckt, vänligen logga in för att ändra det.', form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/ta-IN.ts b/packages/localizations/src/ta-IN.ts index e2152864bc9..a48930b0d68 100644 --- a/packages/localizations/src/ta-IN.ts +++ b/packages/localizations/src/ta-IN.ts @@ -367,6 +367,13 @@ export const taIN: LocalizationResource = { tableHeader__role: 'பங்கு', tableHeader__user: 'பயனர்', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'கிடைக்கக்கூடிய பாத்திரங்களை நாங்கள் புதுப்பிக்கிறோம். இது முடிந்ததும், நீங்கள் மீண்டும் பாத்திரங்களை புதுப்பிக்க முடியும்.', + title: 'பாத்திரங்கள் தற்காலிகமாக பூட்டப்பட்டுள்ளன', + }, + }, detailsTitle__emptyRow: 'காட்ட உறுப்பினர்கள் இல்லை', invitationsTab: { autoInvitations: { @@ -398,13 +405,6 @@ export const taIN: LocalizationResource = { headerTitle__members: 'உறுப்பினர்கள்', headerTitle__requests: 'கோரிக்கைகள்', }, - alerts: { - roleSetMigrationInProgress: { - title: 'பாத்திரங்கள் தற்காலிகமாக பூட்டப்பட்டுள்ளன', - subtitle: - 'கிடைக்கக்கூடிய பாத்திரங்களை நாங்கள் புதுப்பிக்கிறோம். இது முடிந்ததும், நீங்கள் மீண்டும் பாத்திரங்களை புதுப்பிக்க முடியும்.', - }, - }, }, navbar: { apiKeys: undefined, @@ -866,6 +866,10 @@ export const taIN: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}} மூலம் தொடரவும்', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'கண்டறியப்பட்ட நிறுவன பெயர் ({{organizationName}}) மற்றும் {{organizationDomain}} க்கு ஒரு அமைப்பு ஏற்கனவே உள்ளது. அழைப்பின் மூலம் சேரவும்.', + }, chooseOrganization: { action__createOrganization: 'புதிய அமைப்பை உருவாக்கவும்', action__invitationAccept: 'சேரவும்', @@ -886,17 +890,13 @@ export const taIN: LocalizationResource = { title: 'உங்கள் அமைப்பை அமைக்கவும்', }, organizationCreationDisabled: { - title: 'நீங்கள் ஒரு அமைப்பில் உறுப்பினராக இருக்க வேண்டும்', subtitle: 'அழைப்புக்கு உங்கள் அமைப்பின் நிர்வாகியைத் தொடர்பு கொள்ளவும்.', + title: 'நீங்கள் ஒரு அமைப்பில் உறுப்பினராக இருக்க வேண்டும்', }, signOut: { actionLink: 'வெளியேறு', actionText: '{{identifier}} என உள்நுழைந்துள்ளீர்கள்', }, - alerts: { - organizationAlreadyExists: - 'கண்டறியப்பட்ட நிறுவன பெயர் ({{organizationName}}) மற்றும் {{organizationDomain}} க்கு ஒரு அமைப்பு ஏற்கனவே உள்ளது. அழைப்பின் மூலம் சேரவும்.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -907,6 +907,69 @@ export const taIN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ஏற்கனவே நிறுவனத்தின் உறுப்பினராக உள்ளார்.', avatar_file_size_exceeded: 'கோப்பு அளவு 10MB அதிகபட்ச வரம்பை மீறுகிறது. சிறிய கோப்பை தேர்வு செய்யவும்.', @@ -934,12 +997,13 @@ export const taIN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'உள்ளிடப்பட்ட மதிப்பு தவறானது. அதை திருத்தவும்.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'நீங்கள் உள்ளிட்ட கடவுச்சொல் தவறானது. மீண்டும் முயற்சிக்கவும்.', - form_password_or_identifier_incorrect: - 'கடவுச்சொல் அல்லது மின்னஞ்சல் முகவரி தவறானது. மீண்டும் முயற்சிக்கவும் அல்லது வேறு முறையைப் பயன்படுத்தவும்.', form_password_length_too_short: 'உங்கள் கடவுச்சொல் மிகவும் குறுகியது. இது குறைந்தது 8 எழுத்துகள் நீளமாக இருக்க வேண்டும்.', form_password_not_strong_enough: 'உங்கள் கடவுச்சொல் போதுமான வலிமை இல்லை.', + form_password_or_identifier_incorrect: + 'கடவுச்சொல் அல்லது மின்னஞ்சல் முகவரி தவறானது. மீண்டும் முயற்சிக்கவும் அல்லது வேறு முறையைப் பயன்படுத்தவும்.', form_password_pwned: 'இந்த கடவுச்சொல் தரவு மீறலின் ஒரு பகுதியாக காணப்பட்டது மற்றும் பயன்படுத்த முடியாது, தயவுசெய்து வேறு கடவுச்சொல்லை முயற்சிக்கவும்.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/te-IN.ts b/packages/localizations/src/te-IN.ts index d603dab21b3..90836b61f4e 100644 --- a/packages/localizations/src/te-IN.ts +++ b/packages/localizations/src/te-IN.ts @@ -366,6 +366,13 @@ export const teIN: LocalizationResource = { tableHeader__role: 'పాత్ర', tableHeader__user: 'వినియోగదారు', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: + 'మేము అందుబాటులో ఉన్న పాత్రలను అప్‌డేట్ చేస్తున్నాము. అది పూర్తయిన తర్వాత, మీరు మళ్ళీ పాత్రలను అప్‌డేట్ చేయగలరు.', + title: 'పాత్రలు తాత్కాలికంగా లాక్ చేయబడ్డాయి', + }, + }, detailsTitle__emptyRow: 'ప్రదర్శించడానికి సభ్యులు లేరు', invitationsTab: { autoInvitations: { @@ -397,13 +404,6 @@ export const teIN: LocalizationResource = { headerTitle__members: 'సభ్యులు', headerTitle__requests: 'అభ్యర్థనలు', }, - alerts: { - roleSetMigrationInProgress: { - title: 'పాత్రలు తాత్కాలికంగా లాక్ చేయబడ్డాయి', - subtitle: - 'మేము అందుబాటులో ఉన్న పాత్రలను అప్‌డేట్ చేస్తున్నాము. అది పూర్తయిన తర్వాత, మీరు మళ్ళీ పాత్రలను అప్‌డేట్ చేయగలరు.', - }, - }, }, navbar: { apiKeys: undefined, @@ -866,6 +866,10 @@ export const teIN: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}}తో కొనసాగించండి', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'గుర్తించిన కంపెనీ పేరు ({{organizationName}}) మరియు {{organizationDomain}} కోసం ఒక సంస్థ ఇప్పటికే ఉంది. ఆహ్వానం ద్వారా చేరండి.', + }, chooseOrganization: { action__createOrganization: 'కొత్త సంస్థను సృష్టించండి', action__invitationAccept: 'చేరండి', @@ -886,17 +890,13 @@ export const teIN: LocalizationResource = { title: 'మీ సంస్థను సెటప్ చేయండి', }, organizationCreationDisabled: { - title: 'మీరు ఒక సంస్థకు చెంది ఉండాలి', subtitle: 'ఆహ్వానం కోసం మీ సంస్థ నిర్వాహకుడిని సంప్రదించండి.', + title: 'మీరు ఒక సంస్థకు చెంది ఉండాలి', }, signOut: { actionLink: 'సైన్ అవుట్', actionText: '{{identifier}}గా సైన్ ఇన్ చేయబడింది', }, - alerts: { - organizationAlreadyExists: - 'గుర్తించిన కంపెనీ పేరు ({{organizationName}}) మరియు {{organizationDomain}} కోసం ఒక సంస్థ ఇప్పటికే ఉంది. ఆహ్వానం ద్వారా చేరండి.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -907,6 +907,69 @@ export const teIN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} ఇప్పటికే సంస్థ సభ్యుడు.', avatar_file_size_exceeded: 'ఫైల్ పరిమాణం గరిష్ట 10MB పరిమితిని మించిపోయింది. దయచేసి చిన్న ఫైల్‌ను ఎంచుకోండి.', @@ -934,11 +997,12 @@ export const teIN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'నమోదు చేసిన విలువ చెల్లనిది. దయచేసి దిద్దుబాటు చేయండి.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'మీరు నమోదు చేసిన పాస్‌వర్డ్ తప్పు. దయచేసి మళ్ళీ ప్రయత్నించండి.', - form_password_or_identifier_incorrect: - 'పాస్‌వర్డ్ లేదా ఇమెయిల్ చిరునామా తప్పు. దయచేసి మళ్ళీ ప్రయత్నించండి లేదా మరొక పద్ధతిని ఉపయోగించండి.', form_password_length_too_short: 'మీ పాస్‌వర్డ్ చాలా చిన్నది. ఇది కనీసం 8 అక్షరాల పొడవు ఉండాలి.', form_password_not_strong_enough: 'మీ పాస్‌వర్డ్ సరిపడా బలంగా లేదు.', + form_password_or_identifier_incorrect: + 'పాస్‌వర్డ్ లేదా ఇమెయిల్ చిరునామా తప్పు. దయచేసి మళ్ళీ ప్రయత్నించండి లేదా మరొక పద్ధతిని ఉపయోగించండి.', form_password_pwned: 'ఈ పాస్‌వర్డ్ డేటా ఉల్లంఘన భాగంగా కనుగొనబడింది మరియు ఉపయోగించడానికి వీలుపడదు, దయచేసి మరొక పాస్‌వర్డ్‌ను ప్రయత్నించండి.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/th-TH.ts b/packages/localizations/src/th-TH.ts index 303b29ca368..be0b457befc 100644 --- a/packages/localizations/src/th-TH.ts +++ b/packages/localizations/src/th-TH.ts @@ -369,6 +369,12 @@ export const thTH: LocalizationResource = { tableHeader__role: 'บทบาท', tableHeader__user: 'ผู้ใช้', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'เรากำลังอัปเดตบทบาทที่มีอยู่ เมื่อเสร็จแล้ว คุณจะสามารถอัปเดตบทบาทได้อีกครั้ง', + title: 'บทบาทถูกล็อคชั่วคราว', + }, + }, detailsTitle__emptyRow: 'ไม่มีสมาชิกที่จะแสดง', invitationsTab: { autoInvitations: { @@ -399,12 +405,6 @@ export const thTH: LocalizationResource = { headerTitle__members: 'สมาชิก', headerTitle__requests: 'คำขอ', }, - alerts: { - roleSetMigrationInProgress: { - title: 'บทบาทถูกล็อคชั่วคราว', - subtitle: 'เรากำลังอัปเดตบทบาทที่มีอยู่ เมื่อเสร็จแล้ว คุณจะสามารถอัปเดตบทบาทได้อีกครั้ง', - }, - }, }, navbar: { apiKeys: 'คีย์ API', @@ -859,6 +859,10 @@ export const thTH: LocalizationResource = { socialButtonsBlockButton: 'ดำเนินการต่อด้วย {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'องค์กรสำหรับชื่อบริษัทที่ตรวจพบ ({{organizationName}}) และ {{organizationDomain}} มีอยู่แล้ว เข้าร่วมโดยการเชิญ', + }, chooseOrganization: { action__createOrganization: 'สร้างองค์กรใหม่', action__invitationAccept: 'เข้าร่วม', @@ -879,17 +883,13 @@ export const thTH: LocalizationResource = { title: 'ตั้งค่าองค์กรของคุณ', }, organizationCreationDisabled: { - title: 'คุณต้องเป็นสมาชิกขององค์กร', subtitle: 'ติดต่อผู้ดูแลระบบขององค์กรของคุณเพื่อขอคำเชิญ', + title: 'คุณต้องเป็นสมาชิกขององค์กร', }, signOut: { actionLink: 'ออกจากระบบ', actionText: 'เข้าสู่ระบบในนาม {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'องค์กรสำหรับชื่อบริษัทที่ตรวจพบ ({{organizationName}}) และ {{organizationDomain}} มีอยู่แล้ว เข้าร่วมโดยการเชิญ', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -900,6 +900,69 @@ export const thTH: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} เป็นสมาชิกขององค์กรอยู่แล้ว', avatar_file_size_exceeded: 'ขนาดไฟล์เกินขีดจำกัดสูงสุด 10MB กรุณาเลือกไฟล์ที่เล็กกว่า', @@ -925,10 +988,11 @@ export const thTH: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: 'รหัสผ่านหรือที่อยู่อีเมลไม่ถูกต้อง ลองอีกครั้งหรือใช้วิธีอื่น', form_password_length_too_short: 'รหัสผ่านของคุณสั้นเกินไป ต้องมีความยาวอย่างน้อย 8 ตัวอักษร', form_password_not_strong_enough: 'รหัสผ่านของคุณไม่แข็งแกร่งพอ', + form_password_or_identifier_incorrect: 'รหัสผ่านหรือที่อยู่อีเมลไม่ถูกต้อง ลองอีกครั้งหรือใช้วิธีอื่น', form_password_pwned: 'รหัสผ่านนี้ถูกพบว่าเป็นส่วนหนึ่งของรหัสผ่านที่เคยถูกโจรกรรมข้อมูลและไม่สามารถใช้ได้ โปรดลองใช้รหัสผ่านอื่นแทน', form_password_pwned__sign_in: diff --git a/packages/localizations/src/tr-TR.ts b/packages/localizations/src/tr-TR.ts index ab80cec37a7..174a398c643 100644 --- a/packages/localizations/src/tr-TR.ts +++ b/packages/localizations/src/tr-TR.ts @@ -364,6 +364,12 @@ export const trTR: LocalizationResource = { tableHeader__role: 'Rol', tableHeader__user: 'Kullanıcı', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Mevcut rolleri güncelliyoruz. Bu tamamlandığında rolleri tekrar güncelleyebileceksiniz.', + title: 'Roller geçici olarak kilitlendi', + }, + }, detailsTitle__emptyRow: 'Görüntülenecek üye yok', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const trTR: LocalizationResource = { headerTitle__members: 'Üyeler', headerTitle__requests: 'İstekler', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Roller geçici olarak kilitlendi', - subtitle: 'Mevcut rolleri güncelliyoruz. Bu tamamlandığında rolleri tekrar güncelleyebileceksiniz.', - }, - }, }, navbar: { apiKeys: undefined, @@ -859,6 +859,10 @@ export const trTR: LocalizationResource = { socialButtonsBlockButton: '{{provider|titleize}} ile giriş yapın', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Tespit edilen şirket adı ({{organizationName}}) ve {{organizationDomain}} için bir organizasyon zaten mevcut. Davetiye ile katılın.', + }, chooseOrganization: { action__createOrganization: 'Yeni organizasyon oluştur', action__invitationAccept: 'Katıl', @@ -879,17 +883,13 @@ export const trTR: LocalizationResource = { title: 'Organizasyonunuzu ayarlayın', }, organizationCreationDisabled: { - title: 'Bir organizasyona ait olmalısınız', subtitle: 'Davet için organizasyon yöneticinizle iletişime geçin.', + title: 'Bir organizasyona ait olmalısınız', }, signOut: { actionLink: 'Çıkış yap', actionText: '{{identifier}} olarak giriş yapıldı', }, - alerts: { - organizationAlreadyExists: - 'Tespit edilen şirket adı ({{organizationName}}) ve {{organizationDomain}} için bir organizasyon zaten mevcut. Davetiye ile katılın.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -900,6 +900,69 @@ export const trTR: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: 'Bu organizasyonda zaten üyesiniz.', avatar_file_size_exceeded: 'Dosya boyutu maksimum 10 MB sınırını aşıyor. Lütfen daha küçük bir dosya seçin.', @@ -928,11 +991,12 @@ export const trTR: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: 'Parametre değeri geçersiz.', + form_password_compromised__sign_in: undefined, form_password_incorrect: 'Şifre yanlış.', - form_password_or_identifier_incorrect: - 'Şifre veya e-posta adresi yanlış. Tekrar deneyin veya başka bir yöntem kullanın.', form_password_length_too_short: 'Şifre çok kısa.', form_password_not_strong_enough: 'Şifreniz yeterince güçlü değil.', + form_password_or_identifier_incorrect: + 'Şifre veya e-posta adresi yanlış. Tekrar deneyin veya başka bir yöntem kullanın.', form_password_pwned: 'Bu şifre bir veri ihlalinde tespit edildi ve kullanılamaz. Lütfen başka bir şifre deneyin.', form_password_pwned__sign_in: 'Bu şifre bir veri ihlalinde tespit edildi ve oturum açmak için kullanılamaz. Lütfen başka bir şifre seçin.', diff --git a/packages/localizations/src/uk-UA.ts b/packages/localizations/src/uk-UA.ts index 4f84903a806..93b9a3d87ea 100644 --- a/packages/localizations/src/uk-UA.ts +++ b/packages/localizations/src/uk-UA.ts @@ -364,6 +364,12 @@ export const ukUA: LocalizationResource = { tableHeader__role: 'Роль', tableHeader__user: 'Користувач', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Ми оновлюємо доступні ролі. Коли це буде зроблено, ви зможете знову оновлювати ролі.', + title: 'Ролі тимчасово заблоковані', + }, + }, detailsTitle__emptyRow: 'Немає учасників для відображення', invitationsTab: { autoInvitations: { @@ -395,12 +401,6 @@ export const ukUA: LocalizationResource = { headerTitle__members: 'Members', headerTitle__requests: 'Requests', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Ролі тимчасово заблоковані', - subtitle: 'Ми оновлюємо доступні ролі. Коли це буде зроблено, ви зможете знову оновлювати ролі.', - }, - }, }, navbar: { apiKeys: undefined, @@ -855,6 +855,10 @@ export const ukUA: LocalizationResource = { socialButtonsBlockButton: 'Продовжити за допомогою {{provider|titleize}}', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Організація вже існує для виявленої назви компанії ({{organizationName}}) та {{organizationDomain}}. Приєднуйтесь за запрошенням.', + }, chooseOrganization: { action__createOrganization: 'Створити нову організацію', action__invitationAccept: 'Приєднатися', @@ -875,17 +879,13 @@ export const ukUA: LocalizationResource = { title: 'Налаштуйте вашу організацію', }, organizationCreationDisabled: { - title: 'Ви повинні належати до організації', subtitle: 'Зверніться до адміністратора вашої організації для отримання запрошення.', + title: 'Ви повинні належати до організації', }, signOut: { actionLink: 'Вийти', actionText: 'Увійшли як {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Організація вже існує для виявленої назви компанії ({{organizationName}}) та {{organizationDomain}}. Приєднуйтесь за запрошенням.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -896,6 +896,69 @@ export const ukUA: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: 'Розмір файлу перевищує максимальний ліміт 10 МБ. Будь ласка, виберіть менший файл.', @@ -924,11 +987,12 @@ export const ukUA: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Пароль або адреса електронної пошти невірні. Спробуйте ще раз або використайте інший метод.', form_password_length_too_short: undefined, form_password_not_strong_enough: 'Ваш пароль недостатньо надійний.', + form_password_or_identifier_incorrect: + 'Пароль або адреса електронної пошти невірні. Спробуйте ще раз або використайте інший метод.', form_password_pwned: 'Цей пароль було зламано і його не можна використовувати, спробуйте інший пароль.', form_password_pwned__sign_in: undefined, form_password_size_in_bytes_exceeded: diff --git a/packages/localizations/src/vi-VN.ts b/packages/localizations/src/vi-VN.ts index 3120325bfcd..4573a4e0d3a 100644 --- a/packages/localizations/src/vi-VN.ts +++ b/packages/localizations/src/vi-VN.ts @@ -370,6 +370,12 @@ export const viVN: LocalizationResource = { tableHeader__role: 'Vai trò', tableHeader__user: 'Người dùng', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: 'Chúng tôi đang cập nhật các vai trò có sẵn. Sau khi hoàn tất, bạn sẽ có thể cập nhật vai trò lại.', + title: 'Các vai trò tạm thời bị khóa', + }, + }, detailsTitle__emptyRow: 'Không có thành viên để hiển thị', invitationsTab: { autoInvitations: { @@ -401,12 +407,6 @@ export const viVN: LocalizationResource = { headerTitle__members: 'Thành viên', headerTitle__requests: 'Yêu cầu', }, - alerts: { - roleSetMigrationInProgress: { - title: 'Các vai trò tạm thời bị khóa', - subtitle: 'Chúng tôi đang cập nhật các vai trò có sẵn. Sau khi hoàn tất, bạn sẽ có thể cập nhật vai trò lại.', - }, - }, }, navbar: { apiKeys: 'Khoá API', @@ -866,6 +866,10 @@ export const viVN: LocalizationResource = { socialButtonsBlockButton: 'Tiếp tục với {{provider|titleize}}', socialButtonsBlockButtonManyInView: '{{provider|titleize}}', taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + 'Một tổ chức đã tồn tại cho tên công ty được phát hiện ({{organizationName}}) và {{organizationDomain}}. Tham gia bằng lời mời.', + }, chooseOrganization: { action__createOrganization: 'Tạo tổ chức mới', action__invitationAccept: 'Tham gia', @@ -886,17 +890,13 @@ export const viVN: LocalizationResource = { title: 'Thiết lập tổ chức của bạn', }, organizationCreationDisabled: { - title: 'Bạn phải thuộc về một tổ chức', subtitle: 'Liên hệ với quản trị viên tổ chức của bạn để nhận lời mời.', + title: 'Bạn phải thuộc về một tổ chức', }, signOut: { actionLink: 'Đăng xuất', actionText: 'Đã đăng nhập với {{identifier}}', }, - alerts: { - organizationAlreadyExists: - 'Một tổ chức đã tồn tại cho tên công ty được phát hiện ({{organizationName}}) và {{organizationDomain}}. Tham gia bằng lời mời.', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -907,6 +907,69 @@ export const viVN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: '{{email}} đã là thành viên của tổ chức.', avatar_file_size_exceeded: 'Kích thước tệp vượt quá giới hạn tối đa 10MB. Vui lòng chọn tệp nhỏ hơn.', @@ -933,11 +996,12 @@ export const viVN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: - 'Mật khẩu hoặc địa chỉ email không đúng. Vui lòng thử lại hoặc sử dụng phương thức khác.', form_password_length_too_short: 'Mật khẩu của bạn quá ngắn. Nó phải có ít nhất 8 ký tự.', form_password_not_strong_enough: 'Mật khẩu của bạn không đủ mạnh.', + form_password_or_identifier_incorrect: + 'Mật khẩu hoặc địa chỉ email không đúng. Vui lòng thử lại hoặc sử dụng phương thức khác.', form_password_pwned: 'Mật khẩu này đã được tìm thấy trong một rò rỉ và không thể được sử dụng, vui lòng thử một mật khẩu khác.', form_password_pwned__sign_in: diff --git a/packages/localizations/src/zh-CN.ts b/packages/localizations/src/zh-CN.ts index 2eef007f398..df555ab2275 100644 --- a/packages/localizations/src/zh-CN.ts +++ b/packages/localizations/src/zh-CN.ts @@ -361,6 +361,12 @@ export const zhCN: LocalizationResource = { tableHeader__role: '角色', tableHeader__user: '用户', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: '我们正在更新可用角色。完成后,您将能够再次更新角色。', + title: '角色暂时被锁定', + }, + }, detailsTitle__emptyRow: '没有可显示的成员', invitationsTab: { autoInvitations: { @@ -391,12 +397,6 @@ export const zhCN: LocalizationResource = { headerTitle__members: '成员', headerTitle__requests: '请求', }, - alerts: { - roleSetMigrationInProgress: { - title: '角色暂时被锁定', - subtitle: '我们正在更新可用角色。完成后,您将能够再次更新角色。', - }, - }, }, navbar: { apiKeys: undefined, @@ -845,6 +845,10 @@ export const zhCN: LocalizationResource = { socialButtonsBlockButton: '使用 {{provider|titleize}} 登录', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + '检测到的公司名称 ({{organizationName}}) 和 {{organizationDomain}} 已存在一个组织。请通过邀请加入。', + }, chooseOrganization: { action__createOrganization: '创建新组织', action__invitationAccept: '加入', @@ -865,17 +869,13 @@ export const zhCN: LocalizationResource = { title: '设置您的组织', }, organizationCreationDisabled: { - title: '您必须属于一个组织', subtitle: '请联系您的组织管理员获取邀请。', + title: '您必须属于一个组织', }, signOut: { actionLink: '退出', actionText: '已登录为 {{identifier}}', }, - alerts: { - organizationAlreadyExists: - '检测到的公司名称 ({{organizationName}}) 和 {{organizationDomain}} 已存在一个组织。请通过邀请加入。', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -886,6 +886,69 @@ export const zhCN: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: '文件大小超过10MB的最大限制。请选择一个较小的文件。', @@ -910,10 +973,11 @@ export const zhCN: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: '密码或电子邮件地址不正确。请重试或使用其他方法。', form_password_length_too_short: undefined, form_password_not_strong_enough: '您的密码强度不够。', + form_password_or_identifier_incorrect: '密码或电子邮件地址不正确。请重试或使用其他方法。', form_password_pwned: '这个密码在数据泄露中被发现,不能使用,请换一个密码试试。', form_password_pwned__sign_in: undefined, form_password_size_in_bytes_exceeded: '您的密码超过了允许的最大字节数,请缩短它或去掉一些特殊字符。', diff --git a/packages/localizations/src/zh-TW.ts b/packages/localizations/src/zh-TW.ts index 72694a19896..cee14264a1d 100644 --- a/packages/localizations/src/zh-TW.ts +++ b/packages/localizations/src/zh-TW.ts @@ -361,6 +361,12 @@ export const zhTW: LocalizationResource = { tableHeader__role: '角色', tableHeader__user: '使用者', }, + alerts: { + roleSetMigrationInProgress: { + subtitle: '我們正在更新可用角色。完成後,您將能夠再次更新角色。', + title: '角色暫時被鎖定', + }, + }, detailsTitle__emptyRow: '沒有可顯示的成員', invitationsTab: { autoInvitations: { @@ -391,12 +397,6 @@ export const zhTW: LocalizationResource = { headerTitle__members: '成員', headerTitle__requests: '請求', }, - alerts: { - roleSetMigrationInProgress: { - title: '角色暫時被鎖定', - subtitle: '我們正在更新可用角色。完成後,您將能夠再次更新角色。', - }, - }, }, navbar: { apiKeys: undefined, @@ -846,6 +846,10 @@ export const zhTW: LocalizationResource = { socialButtonsBlockButton: '以 {{provider|titleize}} 帳戶登入', socialButtonsBlockButtonManyInView: undefined, taskChooseOrganization: { + alerts: { + organizationAlreadyExists: + '偵測到的公司名稱 ({{organizationName}}) 和 {{organizationDomain}} 已存在一個組織。請透過邀請加入。', + }, chooseOrganization: { action__createOrganization: '建立新組織', action__invitationAccept: '加入', @@ -866,17 +870,13 @@ export const zhTW: LocalizationResource = { title: '設定您的組織', }, organizationCreationDisabled: { - title: '您必須屬於一個組織', subtitle: '請聯繫您的組織管理員以獲取邀請。', + title: '您必須屬於一個組織', }, signOut: { actionLink: '登出', actionText: '已登入為 {{identifier}}', }, - alerts: { - organizationAlreadyExists: - '偵測到的公司名稱 ({{organizationName}}) 和 {{organizationDomain}} 已存在一個組織。請透過邀請加入。', - }, }, taskResetPassword: { formButtonPrimary: undefined, @@ -887,6 +887,69 @@ export const zhTW: LocalizationResource = { subtitle: undefined, title: undefined, }, + taskSetupMfa: { + badge: undefined, + signOut: { + actionLink: undefined, + actionText: undefined, + }, + smsCode: { + addPhone: { + formButtonPrimary: undefined, + infoText: undefined, + }, + addPhoneNumber: undefined, + cancel: undefined, + subtitle: undefined, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyPhone: { + formButtonPrimary: undefined, + formTitle: undefined, + resendButton: undefined, + subtitle: undefined, + title: undefined, + }, + }, + start: { + methodSelection: { + phoneCode: undefined, + totp: undefined, + }, + subtitle: undefined, + title: undefined, + }, + totpCode: { + addAuthenticatorApp: { + buttonAbleToScan__nonPrimary: undefined, + buttonUnableToScan__nonPrimary: undefined, + formButtonPrimary: undefined, + formButtonReset: undefined, + infoText__ableToScan: undefined, + infoText__unableToScan: undefined, + inputLabel__unableToScan1: undefined, + }, + success: { + finishButton: undefined, + message1: undefined, + message2: undefined, + title: undefined, + }, + title: undefined, + verifyTotp: { + formButtonPrimary: undefined, + formButtonReset: undefined, + formTitle: undefined, + subtitle: undefined, + title: undefined, + }, + }, + }, unstable__errors: { already_a_member_in_organization: undefined, avatar_file_size_exceeded: '檔案大小超過10MB的上限。請選擇較小的檔案。', @@ -911,10 +974,11 @@ export const zhTW: LocalizationResource = { form_param_type_invalid__email_address: undefined, form_param_type_invalid__phone_number: undefined, form_param_value_invalid: undefined, + form_password_compromised__sign_in: undefined, form_password_incorrect: undefined, - form_password_or_identifier_incorrect: '密碼或電子郵件地址不正確。請重試或使用其他方法。', form_password_length_too_short: undefined, form_password_not_strong_enough: '您的密碼強度不足。', + form_password_or_identifier_incorrect: '密碼或電子郵件地址不正確。請重試或使用其他方法。', form_password_pwned: '此密碼已在已知的資料外洩事件中出現,請改用其他密碼。', form_password_pwned__sign_in: undefined, form_password_size_in_bytes_exceeded: '您的密碼超過允許的大小上限,請縮短或移除部分特殊字元。', diff --git a/packages/localizations/tsconfig.generate.json b/packages/localizations/tsconfig.generate.json new file mode 100644 index 00000000000..01c074b8b15 --- /dev/null +++ b/packages/localizations/tsconfig.generate.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "moduleResolution": "node16", + "module": "node16", + "sourceMap": false, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "allowJs": true, + "target": "ES2019", + "outDir": "tmp", + "resolveJsonModule": true, + "rootDir": "src" + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "**/dist/**"] +} diff --git a/packages/nextjs/src/client-boundary/uiComponents.tsx b/packages/nextjs/src/client-boundary/uiComponents.tsx index 6d032dc45c5..ca3efe37b4f 100644 --- a/packages/nextjs/src/client-boundary/uiComponents.tsx +++ b/packages/nextjs/src/client-boundary/uiComponents.tsx @@ -24,6 +24,7 @@ export { SignUpButton, TaskChooseOrganization, TaskResetPassword, + TaskSetupMFA, UserAvatar, UserButton, Waitlist, diff --git a/packages/nextjs/src/index.ts b/packages/nextjs/src/index.ts index fe82f2ca129..720b08ca433 100644 --- a/packages/nextjs/src/index.ts +++ b/packages/nextjs/src/index.ts @@ -37,6 +37,7 @@ export { SignUpButton, TaskChooseOrganization, TaskResetPassword, + TaskSetupMFA, UserAvatar, UserButton, UserProfile, diff --git a/packages/react-router/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react-router/src/__tests__/__snapshots__/exports.test.ts.snap index ddb5dbd340f..cdd8f290706 100644 --- a/packages/react-router/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/react-router/src/__tests__/__snapshots__/exports.test.ts.snap @@ -44,6 +44,7 @@ exports[`root public exports > should not change unexpectedly 1`] = ` "SignUpButton", "TaskChooseOrganization", "TaskResetPassword", + "TaskSetupMFA", "UNSAFE_PortalProvider", "UserAvatar", "UserButton", diff --git a/packages/react/src/components/index.ts b/packages/react/src/components/index.ts index c200f386236..43763a2c25e 100644 --- a/packages/react/src/components/index.ts +++ b/packages/react/src/components/index.ts @@ -10,6 +10,7 @@ export { SignUp, TaskChooseOrganization, TaskResetPassword, + TaskSetupMFA, UserAvatar, UserButton, UserProfile, diff --git a/packages/react/src/components/uiComponents.tsx b/packages/react/src/components/uiComponents.tsx index 5dd83c510b4..b7f830a6ff3 100644 --- a/packages/react/src/components/uiComponents.tsx +++ b/packages/react/src/components/uiComponents.tsx @@ -10,6 +10,7 @@ import type { SignUpProps, TaskChooseOrganizationProps, TaskResetPasswordProps, + TaskSetupMFAProps, UserAvatarProps, UserButtonProps, UserProfileProps, @@ -725,3 +726,31 @@ export const TaskResetPassword = withClerk( }, { component: 'TaskResetPassword', renderWhileLoading: true }, ); + +export const TaskSetupMFA = withClerk( + ({ clerk, component, fallback, ...props }: WithClerkProp) => { + const mountingStatus = useWaitForComponentMount(component); + const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded; + + const rendererRootProps = { + ...(shouldShowFallback && fallback && { style: { display: 'none' } }), + }; + + return ( + <> + {shouldShowFallback && fallback} + {clerk.loaded && ( + + )} + + ); + }, + { component: 'TaskSetupMFA', renderWhileLoading: true }, +); diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts index b125ff4e096..9a908485a2a 100644 --- a/packages/react/src/isomorphicClerk.ts +++ b/packages/react/src/isomorphicClerk.ts @@ -52,6 +52,7 @@ import type { State, TaskChooseOrganizationProps, TaskResetPasswordProps, + TaskSetupMFAProps, TasksRedirectOptions, UnsubscribeCallback, UserAvatarProps, @@ -157,6 +158,7 @@ export class IsomorphicClerk implements IsomorphicLoadedClerk { private premountOAuthConsentNodes = new Map(); private premountTaskChooseOrganizationNodes = new Map(); private premountTaskResetPasswordNodes = new Map(); + private premountTaskSetupMfaNodes = new Map(); // A separate Map of `addListener` method calls to handle multiple listeners. private premountAddListenerCalls = new Map< ListenerCallback, @@ -703,6 +705,10 @@ export class IsomorphicClerk implements IsomorphicLoadedClerk { clerkjs.mountTaskResetPassword(node, props); }); + this.premountTaskSetupMfaNodes.forEach((props, node) => { + clerkjs.mountTaskSetupMfa(node, props); + }); + /** * Only update status in case `clerk.status` is missing. In any other case, `clerk-js` should be the orchestrator. */ @@ -1267,6 +1273,22 @@ export class IsomorphicClerk implements IsomorphicLoadedClerk { } }; + mountTaskSetupMfa = (node: HTMLDivElement, props?: TaskSetupMFAProps): void => { + if (this.clerkjs && this.loaded) { + this.clerkjs.mountTaskSetupMfa(node, props); + } else { + this.premountTaskSetupMfaNodes.set(node, props); + } + }; + + unmountTaskSetupMfa = (node: HTMLDivElement): void => { + if (this.clerkjs && this.loaded) { + this.clerkjs.unmountTaskSetupMfa(node); + } else { + this.premountTaskSetupMfaNodes.delete(node); + } + }; + addListener = (listener: ListenerCallback, options?: ListenerOptions): UnsubscribeCallback => { if (this.clerkjs) { return this.clerkjs.addListener(listener, options); diff --git a/packages/shared/src/internal/clerk-js/sessionTasks.ts b/packages/shared/src/internal/clerk-js/sessionTasks.ts index eb8a3f3ca99..e0d0fd1e0f8 100644 --- a/packages/shared/src/internal/clerk-js/sessionTasks.ts +++ b/packages/shared/src/internal/clerk-js/sessionTasks.ts @@ -9,6 +9,7 @@ import { buildURL } from './url'; export const INTERNAL_SESSION_TASK_ROUTE_BY_KEY: Record = { 'choose-organization': 'choose-organization', 'reset-password': 'reset-password', + 'setup-mfa': 'setup-mfa', } as const; /** diff --git a/packages/shared/src/types/clerk.ts b/packages/shared/src/types/clerk.ts index d437652b38c..ba5e874e510 100644 --- a/packages/shared/src/types/clerk.ts +++ b/packages/shared/src/types/clerk.ts @@ -714,6 +714,23 @@ export interface Clerk { */ unmountTaskResetPassword: (targetNode: HTMLDivElement) => void; + /** + * Mounts a TaskSetupMFA component at the target element. + * This component allows users to set up multi-factor authentication. + * + * @param targetNode - Target node to mount the TaskSetupMFA component. + * @param props - configuration parameters. + */ + mountTaskSetupMfa: (targetNode: HTMLDivElement, props?: TaskSetupMFAProps) => void; + + /** + * Unmount a TaskSetupMFA component from the target element. + * If there is no component mounted at the target node, results in a noop. + * + * @param targetNode - Target node to unmount the TaskSetupMFA component from. + */ + unmountTaskSetupMfa: (targetNode: HTMLDivElement) => void; + /** * @internal * Loads Stripe libraries for commerce functionality @@ -2354,6 +2371,14 @@ export type TaskResetPasswordProps = { appearance?: ClerkAppearanceTheme; }; +export type TaskSetupMFAProps = { + /** + * Full URL or path to navigate to after successfully resolving all tasks + */ + redirectUrlComplete: string; + appearance?: ClerkAppearanceTheme; +}; + export type CreateOrganizationInvitationParams = { emailAddress: string; role: OrganizationCustomRoleKey; diff --git a/packages/shared/src/types/localization.ts b/packages/shared/src/types/localization.ts index 7c3b5ae0fc0..d97301630d0 100644 --- a/packages/shared/src/types/localization.ts +++ b/packages/shared/src/types/localization.ts @@ -1327,6 +1327,69 @@ export type __internal_LocalizationResource = { }; formButtonPrimary: LocalizationValue; }; + taskSetupMfa: { + badge: LocalizationValue; + start: { + title: LocalizationValue; + subtitle: LocalizationValue; + methodSelection: { + totp: LocalizationValue; + phoneCode: LocalizationValue; + }; + }; + smsCode: { + title: LocalizationValue; + subtitle: LocalizationValue; + addPhoneNumber: LocalizationValue; + cancel: LocalizationValue; + verifyPhone: { + title: LocalizationValue; + subtitle: LocalizationValue; + formTitle: LocalizationValue; + resendButton: LocalizationValue; + formButtonPrimary: LocalizationValue; + }; + addPhone: { + infoText: LocalizationValue; + formButtonPrimary: LocalizationValue; + }; + success: { + title: LocalizationValue; + message1: LocalizationValue; + message2: LocalizationValue; + finishButton: LocalizationValue; + }; + }; + totpCode: { + title: LocalizationValue; + addAuthenticatorApp: { + infoText__ableToScan: LocalizationValue; + infoText__unableToScan: LocalizationValue; + inputLabel__unableToScan1: LocalizationValue; + buttonUnableToScan__nonPrimary: LocalizationValue; + buttonAbleToScan__nonPrimary: LocalizationValue; + formButtonPrimary: LocalizationValue; + formButtonReset: LocalizationValue; + }; + verifyTotp: { + title: LocalizationValue; + subtitle: LocalizationValue; + formTitle: LocalizationValue; + formButtonPrimary: LocalizationValue; + formButtonReset: LocalizationValue; + }; + success: { + title: LocalizationValue; + message1: LocalizationValue; + message2: LocalizationValue; + finishButton: LocalizationValue; + }; + }; + signOut: { + actionText: LocalizationValue<'identifier'>; + actionLink: LocalizationValue; + }; + }; web3SolanaWalletButtons: { connect: LocalizationValue<'walletName'>; continue: LocalizationValue<'walletName'>; diff --git a/packages/shared/src/types/session.ts b/packages/shared/src/types/session.ts index 597611d0380..7a4c1ba50fd 100644 --- a/packages/shared/src/types/session.ts +++ b/packages/shared/src/types/session.ts @@ -335,7 +335,7 @@ export interface SessionTask { /** * A unique identifier for the task */ - key: 'choose-organization' | 'reset-password'; + key: 'choose-organization' | 'reset-password' | 'setup-mfa'; } export type GetTokenOptions = { diff --git a/packages/tanstack-react-start/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/tanstack-react-start/src/__tests__/__snapshots__/exports.test.ts.snap index 23fd7c6c905..a3b4cf8a5a5 100644 --- a/packages/tanstack-react-start/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/tanstack-react-start/src/__tests__/__snapshots__/exports.test.ts.snap @@ -49,6 +49,7 @@ exports[`root public exports > should not change unexpectedly 1`] = ` "SignUpButton", "TaskChooseOrganization", "TaskResetPassword", + "TaskSetupMFA", "UNSAFE_PortalProvider", "UserAvatar", "UserButton", diff --git a/packages/ui/src/common/Wizard.tsx b/packages/ui/src/common/Wizard.tsx index 77bd735452a..aee4cd4d8a4 100644 --- a/packages/ui/src/common/Wizard.tsx +++ b/packages/ui/src/common/Wizard.tsx @@ -4,6 +4,7 @@ import { Animated } from '../elements/Animated'; type WizardProps = React.PropsWithChildren<{ step: number; + animate?: boolean; }>; type UseWizardProps = { @@ -26,7 +27,11 @@ export const useWizard = (params: UseWizardProps = {}) => { }; export const Wizard = (props: WizardProps) => { - const { step, children } = props; + const { step, children, animate = true } = props; + + if (!animate) { + return React.Children.toArray(children)[step]; + } return {React.Children.toArray(children)[step]}; }; diff --git a/packages/ui/src/components/SessionTasks/index.tsx b/packages/ui/src/components/SessionTasks/index.tsx index 9cca5b9b9c1..0672ff7ff6a 100644 --- a/packages/ui/src/components/SessionTasks/index.tsx +++ b/packages/ui/src/components/SessionTasks/index.tsx @@ -12,11 +12,13 @@ import { SessionTasksContext, TaskChooseOrganizationContext, TaskResetPasswordContext, + TaskSetupMFAContext, useSessionTasksContext, } from '../../contexts/components/SessionTasks'; import { Route, Switch, useRouter } from '../../router'; import { TaskChooseOrganization } from './tasks/TaskChooseOrganization'; import { TaskResetPassword } from './tasks/TaskResetPassword'; +import { TaskSetupMFA } from './tasks/TaskSetupMfa'; const SessionTasksStart = () => { const clerk = useClerk(); @@ -50,6 +52,37 @@ const SessionTasksStart = () => { function SessionTasksRoutes(): JSX.Element { const ctx = useSessionTasksContext(); + const clerk = useClerk(); + const { navigate, currentPath } = useRouter(); + + // If there are no pending tasks, navigate away from the tasks flow. + // This handles cases where a user with an active session returns to the tasks URL, + // for example by using browser back navigation. Since there are no pending tasks, + // we redirect them to their intended destination. + useEffect(() => { + // Tasks can only exist on pending sessions, but we check both conditions + // here to be defensive and ensure proper redirection + const task = clerk.session?.currentTask; + if (!task || clerk.session?.status === 'active') { + if (ctx.redirectOnActiveSession?.current) { + void navigate(ctx.redirectUrlComplete); + } + return; + } + + clerk.telemetry?.record(eventComponentMounted('SessionTask', { task: task.key })); + }, [clerk, currentPath, navigate, ctx.redirectUrlComplete, ctx.redirectOnActiveSession]); + + if (!clerk.session?.currentTask && ctx.redirectOnActiveSession?.current) { + return ( + + ({ flex: 1 })}> + + + + + ); + } return ( @@ -68,6 +101,13 @@ function SessionTasksRoutes(): JSX.Element { + + + + + @@ -84,44 +124,9 @@ type SessionTasksProps = { * @internal */ export const SessionTasks = withCardStateProvider(({ redirectUrlComplete }: SessionTasksProps) => { - const clerk = useClerk(); - const { navigate } = useRouter(); - - const currentTaskContainer = useRef(null); - - // If there are no pending tasks, navigate away from the tasks flow. - // This handles cases where a user with an active session returns to the tasks URL, - // for example by using browser back navigation. Since there are no pending tasks, - // we redirect them to their intended destination. - useEffect(() => { - // Tasks can only exist on pending sessions, but we check both conditions - // here to be defensive and ensure proper redirection - const task = clerk.session?.currentTask; - if (!task || clerk.session?.status === 'active') { - void navigate(redirectUrlComplete); - return; - } - - clerk.telemetry?.record(eventComponentMounted('SessionTask', { task: task.key })); - }, [clerk, navigate, redirectUrlComplete]); - - if (!clerk.session?.currentTask) { - return ( - ({ - minHeight: currentTaskContainer ? currentTaskContainer.current?.offsetHeight : undefined, - })} - > - ({ flex: 1 })}> - - - - - ); - } - + const redirectOnActiveSessionRef = useRef(true); return ( - + ); diff --git a/packages/ui/src/components/SessionTasks/tasks/TaskSetupMfa/SetupMfaStartScreen.tsx b/packages/ui/src/components/SessionTasks/tasks/TaskSetupMfa/SetupMfaStartScreen.tsx new file mode 100644 index 00000000000..57f099e76a0 --- /dev/null +++ b/packages/ui/src/components/SessionTasks/tasks/TaskSetupMfa/SetupMfaStartScreen.tsx @@ -0,0 +1,108 @@ +import type { VerificationStrategy } from '@clerk/shared/types'; + +import { Actions } from '@/elements/Actions'; +import { useCardState, withCardStateProvider } from '@/elements/contexts'; +import { PreviewButton } from '@/elements/PreviewButton'; +import { AuthApp, Mobile } from '@/icons'; +import { descriptors, Flex, Icon, type LocalizationKey, localizationKeys, Text } from '@/ui/customizables'; +import { Card } from '@/ui/elements/Card'; +import { Header } from '@/ui/elements/Header'; + +import { MFA_METHODS_TO_STEP } from './constants'; +import { SharedFooterActionForSignOut } from './shared'; + +type SetupMfaStartScreenProps = { + availableMethods: VerificationStrategy[]; + goToStep: (step: number) => void; +}; + +const METHOD_CONFIG: Record<'totp' | 'phone_code', { icon: JSX.Element; label: LocalizationKey }> = { + totp: { + icon: , + label: localizationKeys('taskSetupMfa.start.methodSelection.totp'), + }, + phone_code: { + icon: , + label: localizationKeys('taskSetupMfa.start.methodSelection.phoneCode'), + }, +}; + +export const SetupMfaStartScreen = withCardStateProvider((props: SetupMfaStartScreenProps) => { + const { availableMethods, goToStep } = props; + const card = useCardState(); + + return ( + + ({ padding: t.space.$none })}> + ({ + paddingTop: t.space.$8, + paddingLeft: t.space.$8, + paddingRight: t.space.$8, + })} + > + + + + {card.error && ( + ({ paddingInline: t.space.$8 })}> + {card.error} + + )} + ({ + borderTopWidth: t.borderWidths.$normal, + borderTopStyle: t.borderStyles.$solid, + borderTopColor: t.colors.$borderAlpha100, + })} + > + {availableMethods.map(method => { + const methodConfig = METHOD_CONFIG[method] ?? null; + + if (!methodConfig) { + return null; + } + + return ( + { + goToStep(MFA_METHODS_TO_STEP[method as keyof typeof MFA_METHODS_TO_STEP]); + }} + > + ({ gap: t.space.$2, alignItems: 'center' })}> + ({ + borderRadius: t.radii.$circle, + borderWidth: t.borderWidths.$normal, + borderStyle: t.borderStyles.$solid, + borderColor: t.colors.$avatarBorder, + padding: t.space.$2, + backgroundColor: t.colors.$neutralAlpha50, + })} + > + {methodConfig.icon} + + + + + ); + })} + + + + + + + + ); +}); diff --git a/packages/ui/src/components/SessionTasks/tasks/TaskSetupMfa/SmsCodeFlowScreen.tsx b/packages/ui/src/components/SessionTasks/tasks/TaskSetupMfa/SmsCodeFlowScreen.tsx new file mode 100644 index 00000000000..f37c899cde5 --- /dev/null +++ b/packages/ui/src/components/SessionTasks/tasks/TaskSetupMfa/SmsCodeFlowScreen.tsx @@ -0,0 +1,431 @@ +import { useReverification, useUser } from '@clerk/shared/react'; +import type { PhoneNumberResource, UserResource } from '@clerk/shared/types'; +import React, { useMemo, useRef } from 'react'; + +import { useWizard, Wizard } from '@/common'; +import { MfaBackupCodeList } from '@/components/UserProfile/MfaBackupCodeList'; +import { Action, Actions } from '@/elements/Actions'; +import { useCardState, withCardStateProvider } from '@/elements/contexts'; +import { Form } from '@/elements/Form'; +import { FormButtonContainer } from '@/elements/FormButtons'; +import { PreviewButton } from '@/elements/PreviewButton'; +import { type VerificationCodeCardProps, VerificationCodeContent } from '@/elements/VerificationCodeCard'; +import { Add } from '@/icons'; +import { Button, Col, descriptors, Flex, Flow, localizationKeys, Text } from '@/ui/customizables'; +import { Card } from '@/ui/elements/Card'; +import { Header } from '@/ui/elements/Header'; +import { SuccessPage } from '@/ui/elements/SuccessPage'; +import { handleError } from '@/ui/utils/errorHandler'; +import { getFlagEmojiFromCountryIso, parsePhoneString, stringToFormattedPhoneString } from '@/ui/utils/phoneUtils'; +import { useFormControl } from '@/ui/utils/useFormControl'; + +import { SharedFooterActionForSignOut } from './shared'; + +type MFAVerifyPhoneForSessionTasksProps = { + resourceRef: React.MutableRefObject; + onSuccess: () => void; + onReset: () => void; +}; + +export const getAvailablePhonesFromUser = (user: UserResource | undefined | null) => { + return ( + user?.phoneNumbers.filter(phoneNumber => { + const hasOtherIdentifications = + user?.primaryEmailAddress !== null || + user?.primaryWeb3Wallet !== null || + user?.passkeys.length > 0 || + user?.externalAccounts.length > 0 || + user?.enterpriseAccounts.length > 0 || + user?.username !== null; + + if (phoneNumber.id === user?.primaryPhoneNumber?.id && !hasOtherIdentifications) { + return false; + } + return !phoneNumber.reservedForSecondFactor; + }) || [] + ); +}; + +const MFAVerifyPhoneForSessionTasks = withCardStateProvider((props: MFAVerifyPhoneForSessionTasksProps) => { + const { onSuccess, resourceRef, onReset } = props; + const card = useCardState(); + const phone = resourceRef.current; + const setReservedForSecondFactor = useReverification(() => phone?.setReservedForSecondFactor({ reserved: true })); + + const prepare = () => { + return resourceRef.current?.prepareVerification?.()?.catch(err => handleError(err, [], card.setError)); + }; + + const enableMfa = async () => { + card.setLoading(phone?.id); + try { + const result = await setReservedForSecondFactor(); + resourceRef.current = result; + onSuccess(); + } catch (err) { + handleError(err as Error, [], card.setError); + } finally { + card.setIdle(); + } + }; + + React.useEffect(() => { + void prepare(); + }, []); + + const action: VerificationCodeCardProps['onCodeEntryFinishedAction'] = (code, resolve, reject) => { + void resourceRef.current + ?.attemptVerification({ code: code }) + .then(async () => { + await resolve(); + await enableMfa(); + }) + .catch(reject); + }; + + return ( + + void prepare()} + onIdentityPreviewEditClicked={() => onReset()} + onBackLinkClicked={() => onReset()} + backLinkLabel={localizationKeys('taskSetupMfa.smsCode.cancel')} + /> + + ); +}); + +type AddPhoneForSessionTasksProps = { + resourceRef: React.MutableRefObject; + onSuccess: () => void; + onReset: () => void; +}; + +const AddPhoneForSessionTasks = withCardStateProvider((props: AddPhoneForSessionTasksProps) => { + const { resourceRef, onSuccess, onReset } = props; + const card = useCardState(); + const { user } = useUser(); + const createPhoneNumber = useReverification( + (user: UserResource, opt: Parameters[0]) => user.createPhoneNumber(opt), + ); + + const phoneField = useFormControl('phoneNumber', '', { + type: 'tel', + label: localizationKeys('formFieldLabel__phoneNumber'), + isRequired: true, + }); + + const canSubmit = phoneField.value.length > 1 && user?.username !== phoneField.value; + + const addPhone = async (e: React.FormEvent) => { + e.preventDefault(); + if (!user) { + return; + } + await card.runAsync(async () => { + try { + const res = await createPhoneNumber(user, { phoneNumber: phoneField.value }); + resourceRef.current = res; + onSuccess(); + } catch (e) { + handleError(e as Error, [phoneField], card.setError); + } + }); + }; + + return ( + + + + + + {card.error} + + + + + ({ + flexDirection: 'column', + gap: theme.space.$4, + })} + > + + + + + + ); +}); + +type SuccessScreenProps = { + resourceRef: React.MutableRefObject; + onFinish: () => void; +}; + +const SuccessScreen = withCardStateProvider((props: SuccessScreenProps) => { + const { resourceRef, onFinish } = props; + + return ( + + + } + finishLabel={localizationKeys('taskSetupMfa.smsCode.success.finishButton')} + finishButtonProps={{ + block: true, + hasArrow: true, + }} + /> + + ); +}); + +type PhoneItemProps = { + phone: PhoneNumberResource; + onSuccess: () => void; + onUnverifiedPhoneClick: (phone: PhoneNumberResource) => void; + resourceRef: React.MutableRefObject; +}; + +const PhoneItem = ({ phone, onSuccess, onUnverifiedPhoneClick, resourceRef }: PhoneItemProps) => { + const card = useCardState(); + const setReservedForSecondFactor = useReverification(() => phone.setReservedForSecondFactor({ reserved: true })); + + const { iso } = parsePhoneString(phone.phoneNumber); + const flag = getFlagEmojiFromCountryIso(iso); + const formattedPhone = stringToFormattedPhoneString(phone.phoneNumber); + + const handleSelect = async () => { + if (phone.verification.status !== 'verified') { + return onUnverifiedPhoneClick(phone); + } + + card.setLoading(phone.id); + try { + const result = await setReservedForSecondFactor(); + resourceRef.current = result; + onSuccess(); + } catch (err) { + handleError(err as Error, [], card.setError); + } finally { + card.setIdle(); + } + }; + + return ( + ({ + padding: `${t.space.$4} ${t.space.$6}`, + })} + onClick={() => void handleSelect()} + > + ({ gap: t.space.$4, alignItems: 'center' })}> + ({ fontSize: t.fontSizes.$lg })}>{flag} + {formattedPhone} + + + ); +}; + +type SmsCodeScreenProps = { + onSuccess: () => void; + onReset: () => void; + onAddPhoneClick: () => void; + onUnverifiedPhoneClick: (phone: PhoneNumberResource) => void; + resourceRef: React.MutableRefObject; + availablePhones: PhoneNumberResource[]; +}; + +const SmsCodeScreen = withCardStateProvider((props: SmsCodeScreenProps) => { + const { onSuccess, onReset, onAddPhoneClick, onUnverifiedPhoneClick, resourceRef } = props; + const { user } = useUser(); + const card = useCardState(); + + if (!user) { + return null; + } + + const availablePhones = getAvailablePhonesFromUser(user); + + return ( + + ({ padding: t.space.$none })}> + ({ + paddingTop: t.space.$8, + paddingInline: t.space.$8, + })} + > + + + + {card.error && ( + ({ paddingInline: t.space.$8 })}> + {card.error} + + )} + + ({ + borderTopWidth: t.borderWidths.$normal, + borderTopStyle: t.borderStyles.$solid, + borderTopColor: t.colors.$borderAlpha100, + })} + > + {availablePhones?.map(phone => ( + + ))} + ({ + borderTopWidth: t.borderWidths.$normal, + borderTopStyle: t.borderStyles.$solid, + borderTopColor: t.colors.$borderAlpha100, + padding: `${t.space.$4} ${t.space.$4}`, + gap: t.space.$2, + })} + iconSx={t => ({ + width: t.sizes.$8, + height: t.sizes.$6, + })} + /> + + ({ + borderTopWidth: t.borderWidths.$normal, + borderTopStyle: t.borderStyles.$solid, + borderTopColor: t.colors.$borderAlpha100, + padding: t.space.$4, + })} + > +