From 0fa2017dc805e9fbefd51e8cc2e9135734ada416 Mon Sep 17 00:00:00 2001 From: Darcy Ye Date: Wed, 3 Jan 2024 11:02:11 +0800 Subject: [PATCH] chore(console): update onboarding survey (#5190) * chore(console): update onboarding survey * chore(phrases): update i18n --- .../pages/Welcome/index.module.scss | 4 +- .../src/onboarding/pages/Welcome/index.tsx | 77 ++++++++----------- .../src/onboarding/pages/Welcome/options.tsx | 53 +++++++------ packages/console/src/onboarding/types.ts | 26 +++++++ .../src/locales/de/errors/application.ts | 3 +- .../de/translation/admin-console/cloud.ts | 41 ++++------ .../en/translation/admin-console/cloud.ts | 48 +++++------- .../src/locales/es/errors/application.ts | 3 +- .../es/translation/admin-console/cloud.ts | 47 +++++------ .../src/locales/fr/errors/application.ts | 3 +- .../fr/translation/admin-console/cloud.ts | 48 +++++------- .../src/locales/it/errors/application.ts | 1 - .../it/translation/admin-console/cloud.ts | 41 ++++------ .../src/locales/ja/errors/application.ts | 1 - .../ja/translation/admin-console/cloud.ts | 39 ++++------ .../src/locales/ko/errors/application.ts | 6 +- .../ko/translation/admin-console/cloud.ts | 38 ++++----- .../src/locales/pl-pl/errors/application.ts | 3 +- .../pl-pl/translation/admin-console/cloud.ts | 43 +++++------ .../src/locales/pt-br/errors/application.ts | 3 +- .../pt-br/translation/admin-console/cloud.ts | 41 ++++------ .../src/locales/pt-pt/errors/application.ts | 5 +- .../pt-pt/translation/admin-console/cloud.ts | 57 ++++++-------- .../src/locales/ru/errors/application.ts | 3 +- .../ru/translation/admin-console/cloud.ts | 46 +++++------ .../src/locales/tr-tr/errors/application.ts | 1 - .../tr-tr/translation/admin-console/cloud.ts | 41 ++++------ .../src/locales/zh-cn/errors/application.ts | 3 +- .../zh-cn/translation/admin-console/cloud.ts | 39 ++++------ .../src/locales/zh-hk/errors/application.ts | 3 +- .../zh-hk/translation/admin-console/cloud.ts | 37 ++++----- .../src/locales/zh-tw/errors/application.ts | 3 +- .../zh-tw/translation/admin-console/cloud.ts | 37 ++++----- 33 files changed, 361 insertions(+), 483 deletions(-) diff --git a/packages/console/src/onboarding/pages/Welcome/index.module.scss b/packages/console/src/onboarding/pages/Welcome/index.module.scss index 9cfa7c178..f6fb2b644 100644 --- a/packages/console/src/onboarding/pages/Welcome/index.module.scss +++ b/packages/console/src/onboarding/pages/Welcome/index.module.scss @@ -20,8 +20,6 @@ } .option { - display: flex; - justify-content: center; - min-height: 60px; + min-height: 100px; } } diff --git a/packages/console/src/onboarding/pages/Welcome/index.tsx b/packages/console/src/onboarding/pages/Welcome/index.tsx index a5844d990..46771bbfa 100644 --- a/packages/console/src/onboarding/pages/Welcome/index.tsx +++ b/packages/console/src/onboarding/pages/Welcome/index.tsx @@ -22,7 +22,7 @@ import { OnboardingPage, Project } from '../../types'; import { getOnboardingPage } from '../../utils'; import * as styles from './index.module.scss'; -import { titleOptions, companySizeOptions, reasonOptions, projectOptions } from './options'; +import { stageOptions, additionalFeaturesOptions, projectOptions } from './options'; function Welcome() { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); @@ -77,57 +77,42 @@ function Welcome() { {/* Check whether it is a business use case */} {watch('project') === Project.Company && ( - <> - - ( - { - onChange(value.length === 0 ? undefined : value); - }} - /> - )} - /> - - - - - - ( - { - onChange(conditional(value && value)); - }} - /> - )} - /> - - + + + )} - + ( + { + onChange(conditional(value && value)); + }} + /> + )} + /> + + + ( { onChange(value.length === 0 ? undefined : value); }} diff --git a/packages/console/src/onboarding/pages/Welcome/options.tsx b/packages/console/src/onboarding/pages/Welcome/options.tsx index c97f5e78b..3029548b9 100644 --- a/packages/console/src/onboarding/pages/Welcome/options.tsx +++ b/packages/console/src/onboarding/pages/Welcome/options.tsx @@ -5,7 +5,7 @@ import type { MultiCardSelectorOption, } from '@/onboarding/components/CardSelector'; -import { Project, CompanySize, Reason, Title } from '../../types'; +import { Project, Stage, AdditionalFeatures } from '../../types'; export const projectOptions: CardSelectorOption[] = [ { @@ -20,28 +20,35 @@ export const projectOptions: CardSelectorOption[] = [ }, ]; -export const titleOptions: MultiCardSelectorOption[] = [ - { title: 'cloud.welcome.title_options.developer', value: Title.Developer }, - { title: 'cloud.welcome.title_options.team_lead', value: Title.TeamLead }, - { title: 'cloud.welcome.title_options.ceo', value: Title.Ceo }, - { title: 'cloud.welcome.title_options.cto', value: Title.Cto }, - { title: 'cloud.welcome.title_options.product', value: Title.Product }, - { title: 'cloud.welcome.title_options.others', value: Title.Others }, +export const stageOptions: CardSelectorOption[] = [ + { title: 'cloud.welcome.stage_options.new_product', value: Stage.NewProduct }, + { title: 'cloud.welcome.stage_options.existing_product', value: Stage.ExistingProduct }, + { + title: 'cloud.welcome.stage_options.target_enterprise_ready', + value: Stage.TargetEnterpriseReady, + }, ]; -export const companySizeOptions: CardSelectorOption[] = [ - { title: 'cloud.welcome.company_options.size_1', value: CompanySize.Scale1 }, - { title: 'cloud.welcome.company_options.size_2_49', value: CompanySize.Scale2 }, - { title: 'cloud.welcome.company_options.size_50_199', value: CompanySize.Scale3 }, - { title: 'cloud.welcome.company_options.size_200_999', value: CompanySize.Scale4 }, - { title: 'cloud.welcome.company_options.size_1000_plus', value: CompanySize.Scale5 }, -]; - -export const reasonOptions: MultiCardSelectorOption[] = [ - { title: 'cloud.welcome.reason_options.passwordless', value: Reason.Passwordless }, - { title: 'cloud.welcome.reason_options.efficiency', value: Reason.Efficiency }, - { title: 'cloud.welcome.reason_options.access_control', value: Reason.AccessControl }, - { title: 'cloud.welcome.reason_options.multi_tenancy', value: Reason.MultiTenancy }, - { title: 'cloud.welcome.reason_options.enterprise', value: Reason.Enterprise }, - { title: 'cloud.welcome.reason_options.others', value: Reason.Others }, +export const additionalFeaturesOptions: MultiCardSelectorOption[] = [ + { + title: 'cloud.welcome.additional_features_options.customize_ui_and_flow', + value: AdditionalFeatures.CustomizeUiAndFlow, + }, + { + title: 'cloud.welcome.additional_features_options.compliance', + value: AdditionalFeatures.Compliance, + }, + { + title: 'cloud.welcome.additional_features_options.export_user_data', + value: AdditionalFeatures.ExportUserDataFromLogto, + }, + { + title: 'cloud.welcome.additional_features_options.budget_control', + value: AdditionalFeatures.BudgetControl, + }, + { + title: 'cloud.welcome.additional_features_options.bring_own_auth', + value: AdditionalFeatures.BringOwnAuth, + }, + { title: 'cloud.welcome.additional_features_options.others', value: AdditionalFeatures.Others }, ]; diff --git a/packages/console/src/onboarding/types.ts b/packages/console/src/onboarding/types.ts index 815ce9d2a..01e15f005 100644 --- a/packages/console/src/onboarding/types.ts +++ b/packages/console/src/onboarding/types.ts @@ -25,6 +25,8 @@ enum DeploymentType { Cloud = 'cloud', } +/** @deprecated */ +// eslint-disable-next-line import/no-unused-modules export enum Title { Developer = 'developer', TeamLead = 'team-lead', @@ -34,6 +36,8 @@ export enum Title { Others = 'others', } +/** @deprecated */ +// eslint-disable-next-line import/no-unused-modules export enum CompanySize { Scale1 = '1', Scale2 = '2-49', @@ -42,6 +46,8 @@ export enum CompanySize { Scale5 = '1000+', } +/** @deprecated */ +// eslint-disable-next-line import/no-unused-modules export enum Reason { Passwordless = 'passwordless', Efficiency = 'efficiency', @@ -51,14 +57,34 @@ export enum Reason { Others = 'others', } +export enum Stage { + NewProduct = 'new-product', + ExistingProduct = 'existing-product', + TargetEnterpriseReady = 'target-enterprise-ready', +} + +export enum AdditionalFeatures { + CustomizeUiAndFlow = 'customize-ui-and-flow', + Compliance = 'compliance', + ExportUserDataFromLogto = 'export-user-data-from-logto', + BudgetControl = 'budget-control', + BringOwnAuth = 'bring-own-auth', + Others = 'others', +} + const questionnaireGuard = z.object({ project: z.nativeEnum(Project).optional(), /** @deprecated Open-source options was for cloud preview use, no longer needed. Use default `Cloud` value for placeholder. */ deploymentType: z.nativeEnum(DeploymentType).optional().default(DeploymentType.Cloud), + /** @deprecated */ titles: z.array(z.nativeEnum(Title)).optional(), companyName: z.string().optional(), + /** @deprecated */ companySize: z.nativeEnum(CompanySize).optional(), + /** @deprecated */ reasons: z.array(z.nativeEnum(Reason)).optional(), + stage: z.nativeEnum(Stage).optional(), + additionalFeatures: z.array(z.nativeEnum(AdditionalFeatures)).optional(), }); export type Questionnaire = z.infer; diff --git a/packages/phrases/src/locales/de/errors/application.ts b/packages/phrases/src/locales/de/errors/application.ts index 12dd314b8..cd54f9377 100644 --- a/packages/phrases/src/locales/de/errors/application.ts +++ b/packages/phrases/src/locales/de/errors/application.ts @@ -7,8 +7,7 @@ const application = { 'Nur traditionelle Webanwendungen können als Drittanbieter-App markiert werden.', third_party_application_only: 'Das Feature ist nur für Drittanbieter-Anwendungen verfügbar.', user_consent_scopes_not_found: 'Ungültige Benutzerzustimmungsbereiche.', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: 'Geschützte App-Metadaten sind erforderlich.', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/de/translation/admin-console/cloud.ts b/packages/phrases/src/locales/de/translation/admin-console/cloud.ts index 79638c124..791b1d639 100644 --- a/packages/phrases/src/locales/de/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/de/translation/admin-console/cloud.ts @@ -12,33 +12,26 @@ const cloud = { personal: 'Persönliches Projekt', company: 'Unternehmensprojekt', }, - title_field: 'Wählen Sie anwendbare Titel aus', - title_options: { - developer: 'Entwickler', - team_lead: 'Teamleiter', - ceo: 'CEO', - cto: 'CTO', - product: 'Produkt', - others: 'Andere', - }, company_name_field: 'Firmenname', company_name_placeholder: 'Acme.co', - company_size_field: 'Wie groß ist Ihre Firma?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'In welchem Stadium befindet sich Ihr Produkt derzeit?', + stage_options: { + new_product: 'Starte ein neues Projekt und suche nach einer schnellen, Out-of-the-Box-Lösung', + existing_product: + 'Migration von der derzeitigen Authentifizierung (z. B. selbst erstellt, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Ich habe gerade größere Kunden gewonnen und möchte mein Produkt jetzt bereit machen, um es an Unternehmen zu verkaufen', }, - reason_field: 'Ich melde mich an, weil', - reason_options: { - passwordless: 'Auf der Suche nach passwortloser Authentifizierung und UI-Kit', - efficiency: 'Auf der Suche nach out-of-the-box Identitätsinfrastruktur', - access_control: 'Benutzerzugriff auf Rolle und Verantwortung kontrollieren', - multi_tenancy: 'Auf der Suche nach Strategien für ein Multi-Tenancy-Produkt', - enterprise: 'Suche nach SSO-Lösungen für Enterprise-Readiness', - others: 'Andere', + additional_features_field: 'Haben Sie noch etwas, das Sie uns wissen lassen möchten?', + additional_features_options: { + customize_ui_and_flow: + 'Benötigen Sie die Möglichkeit, Ihr eigenes UI zu integrieren oder Ihre eigenen Abläufe über die Logto-API anzupassen', + compliance: 'SOC2 und GDPR sind Pflicht', + export_user_data: 'Benötigen Sie die Möglichkeit, Benutzerdaten von Logto zu exportieren', + budget_control: 'Ich habe sehr strenge Budgetkontrolle', + bring_own_auth: + 'Ich habe eigene Authentifizierungsdienste und benötige nur einige Logto-Funktionen', + others: 'Keines der oben genannten', }, }, sie: { diff --git a/packages/phrases/src/locales/en/translation/admin-console/cloud.ts b/packages/phrases/src/locales/en/translation/admin-console/cloud.ts index 0c83c31c6..decec848f 100644 --- a/packages/phrases/src/locales/en/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/en/translation/admin-console/cloud.ts @@ -6,44 +6,36 @@ const cloud = { page_title: 'Welcome', title: "Welcome to Logto Cloud! We'd love to learn a bit about you.", description: - 'Let‘s make your Logto experience unique to you by getting to know you better. Your information is safe with us.', - project_field: 'I’m using Logto for', + "Let's make your Logto experience unique to you by getting to know you better. Your information is safe with us.", + project_field: "I'm using Logto for", project_options: { personal: 'Personal project', company: 'Company project', }, - title_field: 'Select applicable title(s)', - title_options: { - developer: 'Developer', - team_lead: 'Team Lead', - ceo: 'CEO', - cto: 'CTO', - product: 'Product', - others: 'Others', - }, company_name_field: 'Company name', company_name_placeholder: 'Acme.co', - company_size_field: 'How’s your company size?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'What stage is your product currently in?', + stage_options: { + new_product: 'Start a new project and looking for a quick, out-of-the-box solution', + existing_product: + 'Migrate from current authentication (e.g., self-built, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'I just landed bigger clients and now make my product ready to sell to enterprises', }, - reason_field: 'I’m signing up because', - reason_options: { - passwordless: 'Finding passwordless authentication and UI kit', - efficiency: 'Finding out-of-the-box identity infrastructure', - access_control: 'Controlling user access based on roles and responsibilities', - multi_tenancy: 'Seeking strategies for a multi-tenancy product', - enterprise: 'Finding SSO solutions for enterprise readiness', - others: 'Others', + additional_features_field: 'Do you have anything else you want us to know?', + additional_features_options: { + customize_ui_and_flow: + 'Need the ability to bring my own UI, or customize my own flows via Logto API', + compliance: 'SOC2 and GDPR are must-haves', + export_user_data: 'Need the ability to export user data from Logto', + budget_control: 'I have very tight budget control', + bring_own_auth: 'Have my own auth services and just need some Logto features', + others: 'None of these above', }, }, sie: { page_title: 'Customize sign-in experience', - title: 'Let’s first customize your sign-in experience with ease', + title: "Let's first customize your sign-in experience with ease", inspire: { title: 'Create compelling examples', description: @@ -74,7 +66,7 @@ const cloud = { unlocked_later_tip: 'Once you have completed the onboarding process and entered the product, you will have access to even more social sign-in methods.', notice: - 'Please avoid using the demo connector for production purposes. Once you’ve completed testing, kindly delete the demo connector and set up your own connector with your credentials.', + "Please avoid using the demo connector for production purposes. Once you've completed testing, kindly delete the demo connector and set up your own connector with your credentials.", }, }, socialCallback: { diff --git a/packages/phrases/src/locales/es/errors/application.ts b/packages/phrases/src/locales/es/errors/application.ts index 01f09a7b1..a283dcff9 100644 --- a/packages/phrases/src/locales/es/errors/application.ts +++ b/packages/phrases/src/locales/es/errors/application.ts @@ -7,8 +7,7 @@ const application = { 'Solo las aplicaciones web tradicionales pueden ser marcadas como una aplicación de terceros.', third_party_application_only: 'La función solo está disponible para aplicaciones de terceros.', user_consent_scopes_not_found: 'Ámbitos de consentimiento de usuario no válidos.', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: 'Se requiere metadatos de aplicación protegida.', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/es/translation/admin-console/cloud.ts b/packages/phrases/src/locales/es/translation/admin-console/cloud.ts index f1e3a522c..9cc053bb6 100644 --- a/packages/phrases/src/locales/es/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/es/translation/admin-console/cloud.ts @@ -12,33 +12,26 @@ const cloud = { personal: 'Proyecto personal', company: 'Proyecto empresarial', }, - title_field: 'Seleccione el/los título(s) aplicable(s)', - title_options: { - developer: 'Desarrollador', - team_lead: 'Líder de equipo', - ceo: 'CEO', - cto: 'CTO', - product: 'Producto', - others: 'Otros', - }, company_name_field: 'Nombre de la empresa', company_name_placeholder: 'Acme.co', - company_size_field: '¿Cómo es el tamaño de su empresa?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: '¿En qué etapa se encuentra su producto actualmente?', + stage_options: { + new_product: 'Comenzar un nuevo proyecto y buscar una solución rápida y lista para usar', + existing_product: + 'Migrar desde una autenticación actual (por ejemplo, creada por uno mismo, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Acabo de obtener clientes más grandes y ahora debo hacer que mi producto esté listo para vender a empresas', }, - reason_field: 'Me registro porque', - reason_options: { - passwordless: 'Buscando autenticación sin contraseña y kit de IU', - efficiency: 'Encontrar una infraestructura de identidad lista para usar', - access_control: 'Controlar el acceso del usuario en función de roles y responsabilidades', - multi_tenancy: 'Buscando estrategias para un producto de multipropiedad', - enterprise: 'Encontrar soluciones SSO para la preparación empresarial', - others: 'Otros', + additional_features_field: '¿Hay algo más que desee que sepamos?', + additional_features_options: { + customize_ui_and_flow: + 'Necesito la capacidad de utilizar mi propia interfaz de usuario o personalizar mis propios flujos a través de la API de Logto', + compliance: 'SOC2 y GDPR son imprescindibles', + export_user_data: 'Necesito la capacidad de exportar datos de usuario de Logto', + budget_control: 'Tengo un control presupuestario muy ajustado', + bring_own_auth: + 'Tengo mis propios servicios de autenticación y solo necesito algunas características de Logto', + others: 'Ninguna de las anteriores', }, }, sie: { @@ -51,7 +44,7 @@ const cloud = { inspire_me: 'Inspírame', }, logo_field: 'Logotipo de la aplicación', - color_field: 'Color de marca', + color_field: 'Color de la marca', identifier_field: 'Identificador', identifier_options: { email: 'Correo electrónico', @@ -72,9 +65,9 @@ const cloud = { connectors: { unlocked_later: 'Desbloqueado más adelante', unlocked_later_tip: - 'Una vez que haya completado el proceso de incorporación y haya ingresado al producto, tendrá acceso a una mayor cantidad de métodos de inicio de sesión social.', + 'Una vez que haya completado el proceso de incorporación y haya ingresado al producto, tendrá acceso a una mayor variedad de métodos de inicio de sesión social.', notice: - 'Evite utilizar el conector de demostración con fines de producción. Una vez que haya completado las pruebas, elimine amablemente el conector de demostración y configure su propio conector con sus credenciales.', + 'Evite usar el conector de demostración para fines de producción. Una vez completadas las pruebas, elimine amablemente el conector de demostración y configure su propio conector con sus credenciales.', }, }, socialCallback: { diff --git a/packages/phrases/src/locales/fr/errors/application.ts b/packages/phrases/src/locales/fr/errors/application.ts index 310f2d946..8e1391fc8 100644 --- a/packages/phrases/src/locales/fr/errors/application.ts +++ b/packages/phrases/src/locales/fr/errors/application.ts @@ -8,8 +8,7 @@ const application = { third_party_application_only: 'La fonctionnalité est uniquement disponible pour les applications tierces.', user_consent_scopes_not_found: 'Portées de consentement utilisateur invalides.', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: "Les métadonnées d'application protégée sont requises.", }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/fr/translation/admin-console/cloud.ts b/packages/phrases/src/locales/fr/translation/admin-console/cloud.ts index 12833496a..5af20e1e0 100644 --- a/packages/phrases/src/locales/fr/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/fr/translation/admin-console/cloud.ts @@ -12,35 +12,27 @@ const cloud = { personal: 'Projet personnel', company: "Projet d'entreprise", }, - title_field: 'Sélectionnez le(s) titre(s) applicable(s)', - title_options: { - developer: 'Développeur', - team_lead: "Chef d'équipe", - ceo: 'PDG', - cto: 'CTO', - product: 'Produit', - others: 'Autres', - }, company_name_field: "Nom de l'entreprise", company_name_placeholder: 'Acme.co', - company_size_field: 'Taille de votre entreprise', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'Dans quelle étape se trouve actuellement votre produit ?', + stage_options: { + new_product: "Démarrer un nouveau projet et chercher une solution rapide et prête à l'emploi", + existing_product: + "Migrer à partir d'une authentification actuelle (par exemple, auto-construite, Auth0, Cognito, Microsoft)", + target_enterprise_ready: + 'Je viens de conclure des contrats avec des clients plus importants et je veux maintenant rendre mon produit prêt à être vendu aux entreprises', }, - reason_field: "Je m'inscris parce que", - reason_options: { - passwordless: - "Je cherche une authentification sans mot de passe et une trousse d'interface utilisateur", - efficiency: "Je cherche une infrastructure d'identité clé en main", - access_control: - "Je cherche à contrôler l'accès utilisateur en fonction des rôles et des responsabilités", - multi_tenancy: 'Je cherche des stratégies pour un produit multi-tenant', - enterprise: "Je cherche des solutions SSO pour une gestion de l'entreprise", - others: 'Autres', + additional_features_field: "Avez-vous d'autres informations à nous communiquer ?", + additional_features_options: { + customize_ui_and_flow: + "Besoin de la possibilité d'apporter ma propre interface utilisateur ou personnaliser mes propres flux via l'API de Logto", + compliance: 'SOC2 et le respect du RGPD sont indispensables', + export_user_data: + "Besoin de la possibilité d'exporter des données utilisateur à partir de Logto", + budget_control: 'Je dois avoir un contrôle de budget très strict', + bring_own_auth: + "J'ai mes propres services d'authentification et j'ai juste besoin de certaines fonctionnalités de Logto", + others: 'Aucun de ceux mentionnés ci-dessus', }, }, sie: { @@ -49,14 +41,14 @@ const cloud = { inspire: { title: 'Créez des exemples convaincants', description: - 'Vous vous sentez incertain de l\'expérience de connexion? Cliquez simplement sur "Inspirez-moi" et laissez la magie opérer!', + 'Vous vous sentez incertain de l\'expérience de connexion ? Cliquez simplement sur "Inspirez-moi" et laissez la magie opérer!', inspire_me: 'Inspirez-moi', }, logo_field: "Logo de l'application", color_field: 'Couleur de la marque', identifier_field: 'Identifiant', identifier_options: { - email: 'Email', + email: 'E-mail', phone: 'Téléphone', user_name: "Nom d'utilisateur", }, diff --git a/packages/phrases/src/locales/it/errors/application.ts b/packages/phrases/src/locales/it/errors/application.ts index 54645fca3..741fb8d9f 100644 --- a/packages/phrases/src/locales/it/errors/application.ts +++ b/packages/phrases/src/locales/it/errors/application.ts @@ -8,7 +8,6 @@ const application = { third_party_application_only: 'La funzionalità è disponibile solo per le applicazioni di terze parti.', user_consent_scopes_not_found: 'Scopi di consenso utente non validi.', - /** UNTRANSLATED */ protected_app_metadata_is_required: 'Protected app metadata is required.', }; diff --git a/packages/phrases/src/locales/it/translation/admin-console/cloud.ts b/packages/phrases/src/locales/it/translation/admin-console/cloud.ts index a38d76e2e..4218ba6e1 100644 --- a/packages/phrases/src/locales/it/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/it/translation/admin-console/cloud.ts @@ -12,33 +12,26 @@ const cloud = { personal: 'Progetto personale', company: 'Progetto aziendale', }, - title_field: 'Seleziona i titoli applicabili', - title_options: { - developer: 'Sviluppatore', - team_lead: 'Responsabile del team', - ceo: 'CEO', - cto: 'CTO', - product: 'Prodotto', - others: 'Altro', - }, company_name_field: "Nome dell'azienda", company_name_placeholder: 'Acme.co', - company_size_field: "Dimensione dell'azienda", - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'In quale fase si trova attualmente il tuo prodotto?', + stage_options: { + new_product: "Inizia un nuovo progetto e cerca una soluzione rapida e pronta all'uso", + existing_product: + "Migra dall'autenticazione attuale (ad esempio, autenticazione autocostruita, Auth0, Cognito, Microsoft)", + target_enterprise_ready: + 'Ho appena acquisito clienti più importanti e ora rendo il mio prodotto pronto per essere venduto alle imprese', }, - reason_field: 'Mi sto iscrivendo perché', - reason_options: { - passwordless: 'Ricerca di autenticazione senza password e UI kit', - efficiency: 'Scoperta di infrastrutture di identità preconfezionate', - access_control: "Controllo dell'accesso degli utenti in base ai ruoli e alle responsabilità", - multi_tenancy: 'Ricerca di strategie per un prodotto multi-tenancy', - enterprise: 'Ricerca di soluzioni SSO per la preparazione aziendale', - others: 'Altro', + additional_features_field: "Qualcos'altro che desideri farci sapere?", + additional_features_options: { + customize_ui_and_flow: + 'Ho bisogno della possibilità di utilizzare la mia UI, o personalizzare i miei flussi tramite API Logto', + compliance: 'SOC2 e GDPR sono imprescindibili', + export_user_data: 'Necessità di esportare i dati utente da Logto', + budget_control: 'Ho un controllo molto stretto sul budget', + bring_own_auth: + 'Ho i miei servizi di autenticazione e ho solo bisogno di alcune funzionalità di Logto', + others: 'Nessuna delle opzioni sopra', }, }, sie: { diff --git a/packages/phrases/src/locales/ja/errors/application.ts b/packages/phrases/src/locales/ja/errors/application.ts index 1542c3ca7..1f6ba28e6 100644 --- a/packages/phrases/src/locales/ja/errors/application.ts +++ b/packages/phrases/src/locales/ja/errors/application.ts @@ -7,7 +7,6 @@ const application = { '伝統的なWebアプリケーションにのみ、サードパーティアプリとしてマークできます。', third_party_application_only: 'この機能はサードパーティアプリケーションにのみ利用可能です。', user_consent_scopes_not_found: '無効なユーザー同意スコープ。', - /** UNTRANSLATED */ protected_app_metadata_is_required: 'Protected app metadata is required.', }; diff --git a/packages/phrases/src/locales/ja/translation/admin-console/cloud.ts b/packages/phrases/src/locales/ja/translation/admin-console/cloud.ts index c72ff693f..a3288cb2e 100644 --- a/packages/phrases/src/locales/ja/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/ja/translation/admin-console/cloud.ts @@ -12,33 +12,24 @@ const cloud = { personal: '個人プロジェクト', company: '会社プロジェクト', }, - title_field: '適用可能なタイトルを選択してください', - title_options: { - developer: '開発者', - team_lead: 'チームリード', - ceo: 'CEO', - cto: 'CTO', - product: 'プロダクト', - others: 'その他', - }, company_name_field: '会社名', company_name_placeholder: 'Acme.co', - company_size_field: '会社の規模は?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: '製品は現在どの段階にありますか?', + stage_options: { + new_product: '新しいプロジェクトを開始し、素早く立ち上げたい場合', + existing_product: '現在の認証(例:自社構築、Auth0、Cognito、Microsoft)から移行する', + target_enterprise_ready: + '大きなクライアントを獲得したため、製品を企業向けに販売できるようにしたい', }, - reason_field: 'サインアップの理由は?', - reason_options: { - passwordless: 'パスワードレス認証と UI キットを探したい', - efficiency: '即時利用可能な ID インフラを探したい', - access_control: '役割と責任に基づくユーザーアクセスを制御したい', - multi_tenancy: 'マルチテナント製品の戦略を探しています', - enterprise: '企業規模に向けた SSO ソリューションを探しています', - others: 'その他', + additional_features_field: '私たちに伝えたいことはありますか?', + additional_features_options: { + customize_ui_and_flow: + '独自のUIを持ち込んだり、Logto APIを使用して独自のフローをカスタマイズしたい場合', + compliance: 'SOC2とGDPRは必須です', + export_user_data: 'Logtoからユーザーデータをエクスポートする機能が必要です', + budget_control: '予算管理が非常に厳しいです', + bring_own_auth: '独自の認証サービスを持っており、Logtoの機能が必要な場合', + others: '上記のどれにも該当しません', }, }, sie: { diff --git a/packages/phrases/src/locales/ko/errors/application.ts b/packages/phrases/src/locales/ko/errors/application.ts index 0a312d1ae..3bb017c8f 100644 --- a/packages/phrases/src/locales/ko/errors/application.ts +++ b/packages/phrases/src/locales/ko/errors/application.ts @@ -3,10 +3,10 @@ const application = { role_exists: '역할 ID {{roleId}} 가 이미이 응용 프로그램에 추가되었습니다.', invalid_role_type: '사용자 유형 역할을 기계 대 기계 응용 프로그램에 할당할 수 없습니다.', invalid_third_party_application_type: - 'Only traditional web applications can be marked as a third-party app.', - third_party_application_only: 'The feature is only available for third-party applications.', + '전통적인 웹 응용 프로그램만 제 3자 앱으로 표시할 수 있습니다.', + third_party_application_only: '해당 기능은 제 3자 응용 프로그램에만 사용할 수 있습니다.', user_consent_scopes_not_found: '유효하지 않은 사용자 동의 범위입니다.', - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: '보호된 응용 프로그램 메타데이터가 필요합니다.', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/ko/translation/admin-console/cloud.ts b/packages/phrases/src/locales/ko/translation/admin-console/cloud.ts index ce9184ee8..20b269d32 100644 --- a/packages/phrases/src/locales/ko/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/ko/translation/admin-console/cloud.ts @@ -12,33 +12,23 @@ const cloud = { personal: '개인 프로젝트', company: '기업 프로젝트', }, - title_field: '해당 제목을 선택하세요', - title_options: { - developer: '개발자', - team_lead: '팀 리더', - ceo: 'CEO', - cto: 'CTO', - product: '상품', - others: '기타', - }, company_name_field: '회사 이름', company_name_placeholder: 'Acme.co', - company_size_field: '회사의 규모가 어느 정도인가요?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: '지금까지 당신의 제품은 어떤 단계에 있나요?', + stage_options: { + new_product: '새로운 프로젝트를 시작하고 빠르고 편리한 솔루션을 찾고 있어요', + existing_product: '현재 인증을 이전하려고 합니다 (예: 자체 구축, Auth0, Cognito, Microsoft)', + target_enterprise_ready: '큰 고객들을 얻었으니 제품을 기업에 판매할 준비를 하고 있어요', }, - reason_field: '저는 이것 때문에 가입하려고 해요', - reason_options: { - passwordless: '비밀번호 없는 인증 및 UI를 위한 도구를 찾고 있어요', - efficiency: '즉시 사용 가능한 인증 인프라를 찾고 있어요', - access_control: '역할 및 책임에 따라 사용자의 접근을 제어하고 싶어요', - multi_tenancy: '멀티 테넌시 제품을 위한 대응 방법을 찾고 있어요', - enterprise: '기업 준비성을 위한 SSO 솔루션을 찾고 있어요', - others: '기타', + additional_features_field: '알려주고 싶은 다른 사항이 있으세요?', + additional_features_options: { + customize_ui_and_flow: + '내가 원하는 UI를 가져오거나 Logto API를 통해 내 흐름을 사용자화하려고 해요', + compliance: 'SOC2와 GDPR가 필수 사항이에요', + export_user_data: 'Logto 에서 사용자 데이터를 내보낼 수 있는 기능이 필요해요', + budget_control: '매우 엄격한 예산 통제가 있어요', + bring_own_auth: '내 자체 인증 서비스가 있고 Logto 기능만 필요해요', + others: '위에 나열된 것 중에 없어요', }, }, sie: { diff --git a/packages/phrases/src/locales/pl-pl/errors/application.ts b/packages/phrases/src/locales/pl-pl/errors/application.ts index 0d93c2916..4470a8b68 100644 --- a/packages/phrases/src/locales/pl-pl/errors/application.ts +++ b/packages/phrases/src/locales/pl-pl/errors/application.ts @@ -6,8 +6,7 @@ const application = { 'Tylko tradycyjne aplikacje internetowe mogą być oznaczone jako aplikacja zewnętrzna.', third_party_application_only: 'Ta funkcja jest dostępna tylko dla aplikacji zewnętrznych.', user_consent_scopes_not_found: 'Nieprawidłowe zakresy zgody użytkownika.', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: 'Wymagane jest zabezpieczone metadane aplikacji.', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/pl-pl/translation/admin-console/cloud.ts b/packages/phrases/src/locales/pl-pl/translation/admin-console/cloud.ts index 282944db8..14b3d99ac 100644 --- a/packages/phrases/src/locales/pl-pl/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/pl-pl/translation/admin-console/cloud.ts @@ -12,33 +12,26 @@ const cloud = { personal: 'Projektu osobistego', company: 'Projektu firmowego', }, - title_field: 'Wybierz odpowiednie tytuły', - title_options: { - developer: 'Developer', - team_lead: 'Team Lead', - ceo: 'CEO', - cto: 'CTO', - product: 'Product', - others: 'Inne', - }, company_name_field: 'Nazwa firmy', company_name_placeholder: 'Acme.co', - company_size_field: 'Jak wielka jest Twoja firma?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'W jakim etapie jest Twój produkt aktualnie?', + stage_options: { + new_product: 'Rozpocznij nowy projekt i szukasz szybkiego, gotowego rozwiązania', + existing_product: + 'Migracja z bieżącej autoryzacji (np. własna autoryzacja, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Właśnie pozyskałem większych klientów i teraz przygotowuję mój produkt do sprzedaży dla przedsiębiorstw', }, - reason_field: 'Rejestruję się, ponieważ', - reason_options: { - passwordless: 'Szukam uwierzytelnienia bez hasła i zestawu interfejsów użytkownika', - efficiency: 'Szukam infrastruktury tożsamości out-of-the-box', - access_control: 'Kontroluj dostęp użytkowników na podstawie ról i odpowiedzialności', - multi_tenancy: 'Szukam strategii dla produktu multi-mandantowego', - enterprise: 'Szukam rozwiązań SSO dla gotowości przedsiębiorstwa', - others: 'Inne', + additional_features_field: 'Czy masz coś jeszcze, o czym chcesz, żebyśmy wiedzieli?', + additional_features_options: { + customize_ui_and_flow: + 'Potrzebuję możliwości dostarczenia mojego własnego interfejsu użytkownika lub dostosowania moich własnych przepływów za pomocą interfejsu API Logto', + compliance: 'SOC2 i GDPR są konieczne', + export_user_data: 'Potrzebuję możliwości eksportu danych użytkownika z Logto', + budget_control: 'Mam bardzo ściśłą kontrolę budżetu', + bring_own_auth: + 'Mam swoje własne usługi autoryzacji i potrzebuję tylko niektórych funkcji Logto', + others: 'Nic z powyższych', }, }, sie: { @@ -72,7 +65,7 @@ const cloud = { connectors: { unlocked_later: 'Zostanie odblokowane później', unlocked_later_tip: - 'Po ukończeniu procesu wprowadzenia do użytku i wejściu do produktu będziesz mieć dostęp do jeszcze większej liczby metod logowania społecznościowego.', + 'Po ukończeniu procesu wprowadzenia do użytku i wejściu do produktu będziesz mieć dostęp do jeszcze większej liczby metod logowania społecznościowego', notice: 'Prosimy, unikaj korzystania z demo konektora do celów produkcyjnych. Po zakończeniu testów, uprzejmie usuń demokonwerter i skonfiguruj swój własny konektor z własnymi poświadczeniami.', }, diff --git a/packages/phrases/src/locales/pt-br/errors/application.ts b/packages/phrases/src/locales/pt-br/errors/application.ts index f96ff9f35..6cba976ff 100644 --- a/packages/phrases/src/locales/pt-br/errors/application.ts +++ b/packages/phrases/src/locales/pt-br/errors/application.ts @@ -7,8 +7,7 @@ const application = { 'Apenas aplicativos da web tradicionais podem ser marcados como um aplicativo de terceiros.', third_party_application_only: 'O recurso está disponível apenas para aplicativos de terceiros.', user_consent_scopes_not_found: 'Escopos de consentimento do usuário inválidos.', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: 'Protegido metadados do app é necessário.', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/pt-br/translation/admin-console/cloud.ts b/packages/phrases/src/locales/pt-br/translation/admin-console/cloud.ts index 29cf803a2..34c579061 100644 --- a/packages/phrases/src/locales/pt-br/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/pt-br/translation/admin-console/cloud.ts @@ -12,33 +12,26 @@ const cloud = { personal: 'Projeto pessoal', company: 'Projeto da empresa', }, - title_field: 'Selecione o(s) título(s) aplicável(eis)', - title_options: { - developer: 'Desenvolvedor', - team_lead: 'Líder de equipe', - ceo: 'CEO', - cto: 'CTO', - product: 'Produto', - others: 'Outros', - }, company_name_field: 'Nome da empresa', company_name_placeholder: 'Acme.co', - company_size_field: 'Qual o tamanho da sua empresa?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'Em qual estágio seu produto está atualmente?', + stage_options: { + new_product: 'Iniciar um novo projeto e procurar por uma solução rápida e pronta para uso', + existing_product: + 'Migrar da autenticação atual (por exemplo, construída internamente, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Acabei de conseguir clientes maiores e agora estou preparando meu produto para vender para empresas', }, - reason_field: 'Estou me inscrevendo porque', - reason_options: { - passwordless: 'Procurando autenticação sem senha e kit de IU', - efficiency: 'Encontrando infraestrutura de identidade pronta para uso', - access_control: 'Controlando o acesso do usuário com base em funções e responsabilidades', - multi_tenancy: 'Buscando estratégias para um produto multi-inquilino', - enterprise: 'Encontrando soluções SSO para prontidão corporativa', - others: 'Outros', + additional_features_field: 'Você tem mais alguma coisa que deseja que saibamos?', + additional_features_options: { + customize_ui_and_flow: + 'Preciso da capacidade de trazer minha própria UI, ou personalizar meus próprios fluxos via API do Logto', + compliance: 'SOC2 e GDPR são imprescindíveis', + export_user_data: 'Preciso da capacidade de exportar dados do usuário do Logto', + budget_control: 'Tenho controle de orçamento muito rígido', + bring_own_auth: + 'Tenho meus próprios serviços de autenticação e apenas preciso de alguns recursos do Logto', + others: 'Nenhuma das opções acima', }, }, sie: { diff --git a/packages/phrases/src/locales/pt-pt/errors/application.ts b/packages/phrases/src/locales/pt-pt/errors/application.ts index cbc62b7c5..095e9d2ad 100644 --- a/packages/phrases/src/locales/pt-pt/errors/application.ts +++ b/packages/phrases/src/locales/pt-pt/errors/application.ts @@ -1,13 +1,12 @@ const application = { - invalid_type: 'Apenas aplicações máquina a máquina podem ter funções associadas.', + invalid_type: 'Apenas as aplicações de máquina a máquina podem ter funções associadas.', role_exists: 'O id da função {{roleId}} já foi adicionado a esta aplicação.', invalid_role_type: - 'Não é possível atribuir uma função de tipo de utilizador a uma aplicação máquina a máquina.', + 'Não é possível atribuir uma função de tipo de utilizador a uma aplicação de máquina a máquina.', invalid_third_party_application_type: 'Apenas aplicações web tradicionais podem ser marcadas como uma aplicação de terceiros.', third_party_application_only: 'A funcionalidade só está disponível para aplicações de terceiros.', user_consent_scopes_not_found: 'Escopos de consentimento de utilizador inválidos.', - /** UNTRANSLATED */ protected_app_metadata_is_required: 'Protected app metadata is required.', }; diff --git a/packages/phrases/src/locales/pt-pt/translation/admin-console/cloud.ts b/packages/phrases/src/locales/pt-pt/translation/admin-console/cloud.ts index c45156e31..5110c9506 100644 --- a/packages/phrases/src/locales/pt-pt/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/pt-pt/translation/admin-console/cloud.ts @@ -4,45 +4,38 @@ const cloud = { }, welcome: { page_title: 'Bem-vindo', - title: 'Bem-vindo ao Logto Cloud! Gostaríamos de aprender um pouco sobre você.', + title: 'Bem-vindo ao Logto Cloud! Gostaríamos de aprender um pouco sobre si.', description: - 'Vamos tornar a experiência da Logto única para você conhecendo você melhor. Suas informações estão seguras conosco.', - project_field: 'Estou usando a Logto para', + 'Vamos tornar a experiência da Logto única para si conhecendo-o melhor. As suas informações estão seguras connosco.', + project_field: 'Estou a usar a Logto para', project_options: { personal: 'Projeto pessoal', company: 'Projeto da empresa', }, - title_field: 'Selecione o(s) título(s) aplicável(veis)', - title_options: { - developer: 'Desenvolvedor/a', - team_lead: 'Líder de equipe', - ceo: 'CEO', - cto: 'CTO', - product: 'Produto', - others: 'Outros', - }, company_name_field: 'Nome da empresa', company_name_placeholder: 'Acme.co', - company_size_field: 'Qual é o tamanho da sua empresa?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'Em que fase está atualmente o seu produto?', + stage_options: { + new_product: 'Iniciar um novo projeto e procurar uma solução rápida e pronta a usar', + existing_product: + 'Migrar da autenticação atual (p. ex., autenticação feita por si, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Acabei de conquistar clientes mais importantes e agora pretendo preparar o meu produto para vender a empresas', }, - reason_field: 'Estou me registrando porque', - reason_options: { - passwordless: 'Busco autenticação sem senha e kit de UI', - efficiency: 'Busco infraestrutura de identidade out-of-the-box', - access_control: 'Controlar o acesso do usuário com base em funções e responsabilidades', - multi_tenancy: 'Procurando estratégias para um produto com múltiplos locatários', - enterprise: 'Buscando soluções SSO para produtividade empresarial', - others: 'Outros', + additional_features_field: 'Tem algo mais que queira que saibamos?', + additional_features_options: { + customize_ui_and_flow: + 'Necessidade de poder usar a minha própria interface do utilizador ou personalizar os meus próprios fluxos através da API da Logto', + compliance: 'A conformidade SOC2 e GDPR são imprescindíveis', + export_user_data: 'Necessidade de exportar dados de utilizadores da Logto', + budget_control: 'Tenho um controlo orçamental muito apertado', + bring_own_auth: + 'Tenho os meus próprios serviços de autenticação e só preciso de algumas funcionalidades da Logto', + others: 'Nenhuma das acima mencionadas', }, }, sie: { - page_title: 'Personalize a experiência de login', + page_title: 'Personalize the Login Experience', title: 'Vamos personalizar a sua experiência de login com facilidade', inspire: { title: 'Crie exemplos convincentes', @@ -56,7 +49,7 @@ const cloud = { identifier_options: { email: 'E-mail', phone: 'Telefone', - user_name: 'Nome de usuário', + user_name: 'Nome de utilizador', }, authn_field: 'Autenticação', authn_options: { @@ -66,7 +59,7 @@ const cloud = { social_field: 'Login social', finish_and_done: 'Terminar e pronto', preview: { - mobile_tab: 'Celular', + mobile_tab: 'Telemóvel', web_tab: 'Web', }, connectors: { @@ -78,9 +71,9 @@ const cloud = { }, }, socialCallback: { - title: 'Você entrou com sucesso', + title: 'Entrou com Sucesso', description: - 'Você entrou com sucesso usando sua conta social. Para garantir uma integração perfeita e acesso a todos os recursos do Logto, recomendamos que você prossiga para configurar seu próprio conector social.', + 'Entrou com sucesso usando a sua conta social. Para garantir uma integração perfeita e acesso a todos os recursos da Logto, recomendamos que prossiga para configurar o seu próprio conector social.', }, tenant: { create_tenant: 'Criar novo inquilino', diff --git a/packages/phrases/src/locales/ru/errors/application.ts b/packages/phrases/src/locales/ru/errors/application.ts index c3e10163f..20f2fdf19 100644 --- a/packages/phrases/src/locales/ru/errors/application.ts +++ b/packages/phrases/src/locales/ru/errors/application.ts @@ -8,8 +8,7 @@ const application = { third_party_application_only: 'Эта функция доступна только для приложений сторонних разработчиков.', user_consent_scopes_not_found: 'Недействительные области согласия пользователя.', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: 'Требуется защищенная метаданные приложения.', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/ru/translation/admin-console/cloud.ts b/packages/phrases/src/locales/ru/translation/admin-console/cloud.ts index 88fc6a401..06e352da4 100644 --- a/packages/phrases/src/locales/ru/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/ru/translation/admin-console/cloud.ts @@ -12,34 +12,26 @@ const cloud = { personal: 'Личного проекта', company: 'Компании', }, - title_field: 'Выберите соответствующие должности', - title_options: { - developer: 'Разработчик', - team_lead: 'Лидер команды', - ceo: 'Генеральный директор', - cto: 'Технический директор', - product: 'Продукт', - others: 'Другие', - }, company_name_field: 'Название компании', company_name_placeholder: 'Acme.co', - company_size_field: 'Какой у вас размер компании?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'What stage is your product currently in?', + stage_options: { + new_product: 'Начать новый проект и ищете быстрое, заранее созданное решение', + existing_product: + 'Миграция с текущей аутентификации (например, собственная разработка, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Я только что получил больших клиентов и теперь готовлю свой продукт к продаже предприятиям', }, - reason_field: 'Я подписываюсь потому, что', - reason_options: { - passwordless: - 'Ищу безопасную аутентификацию без пароля и набор компонентов пользовательского интерфейса', - efficiency: 'Пытаюсь найти готовую инфраструктуру идентификации', - access_control: 'Хочу контролировать доступ пользователей на основе ролей и обязанностей', - multi_tenancy: 'Ищу стратегии для продукта с несколькими арендаторами', - enterprise: 'Ищу решения для одиночного входа (SSO) для компаний', - others: 'Другие', + additional_features_field: 'Хотели бы вы сообщить нам что-то еще?', + additional_features_options: { + customize_ui_and_flow: + 'Необходима возможность использовать собственный интерфейс пользователя или настраивать собственные потоки через API Logto', + compliance: 'SOC2 и GDPR - обязательные требования', + export_user_data: 'Необходима возможность экспортировать данные пользователей из Logto', + budget_control: 'У меня очень тщательный контроль над бюджетом', + bring_own_auth: + 'Имею собственные службы аутентификации и просто нужны некоторые возможности Logto', + others: 'Ничего из вышеперечисленного', }, }, sie: { @@ -73,9 +65,9 @@ const cloud = { connectors: { unlocked_later: 'Разблокируется позже', unlocked_later_tip: - 'После того, как вы завершите процесс ввода в эксплуатацию и войдете в продукт, вы получите доступ к еще большему количеству методов входа через социальные сети.', + 'После того, как завершите процесс настройки и войдете в продукт, у вас появится доступ к большему количеству методов входа через социальные сети.', notice: - 'Пожалуйста, не используйте демонстрационный коннектор для производственных целей. После тестирования удалите демонстрационный коннектор и настройте свой собственный коннектор с вашими учетными данными.', + 'Пожалуйста, не используйте демонстрационный коннектор для производственных целей. После тестирования удалите демонстрационный коннектор и настройте собственный коннектор со своими учетными данными.', }, }, socialCallback: { diff --git a/packages/phrases/src/locales/tr-tr/errors/application.ts b/packages/phrases/src/locales/tr-tr/errors/application.ts index 323c434b5..c4c13b86e 100644 --- a/packages/phrases/src/locales/tr-tr/errors/application.ts +++ b/packages/phrases/src/locales/tr-tr/errors/application.ts @@ -6,7 +6,6 @@ const application = { 'Sadece geleneksel web uygulamaları üçüncü taraf uygulaması olarak işaretlenebilir.', third_party_application_only: 'Bu özellik sadece üçüncü taraf uygulamalar için geçerlidir.', user_consent_scopes_not_found: 'Geçersiz kullanıcı onay kapsamları.', - /** UNTRANSLATED */ protected_app_metadata_is_required: 'Protected app metadata is required.', }; diff --git a/packages/phrases/src/locales/tr-tr/translation/admin-console/cloud.ts b/packages/phrases/src/locales/tr-tr/translation/admin-console/cloud.ts index d3605e936..b85b27267 100644 --- a/packages/phrases/src/locales/tr-tr/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/tr-tr/translation/admin-console/cloud.ts @@ -12,33 +12,26 @@ const cloud = { personal: 'Kişisel proje', company: 'Şirket projesi', }, - title_field: 'Uygun başlığı seçin', - title_options: { - developer: 'Geliştirici', - team_lead: 'Takım Lideri', - ceo: 'CEO', - cto: 'CTO', - product: 'Ürün', - others: 'Diğerleri', - }, company_name_field: 'Şirket adı', company_name_placeholder: 'Acme.co', - company_size_field: 'Şirketinizin boyutu nasıl?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: 'Ürününüz şu anda hangi aşamada?', + stage_options: { + new_product: 'Yeni bir proje başlatmak ve hızlı, hazır bir çözüm arıyorum', + existing_product: + 'Mevcut kimlik doğrulamadan göç etmek (ör. özelleştirilmiş, Auth0, Cognito, Microsoft)', + target_enterprise_ready: + 'Yeni büyük müşteriler kazandım ve ürünümü şimdi kurumsal müşterilere satılabilir hale getiriyorum', }, - reason_field: 'Kaydolma nedenim', - reason_options: { - passwordless: 'Parolasız kimlik doğrulama ve UI kit arayışı', - efficiency: 'Kutudan çıkan kimlik altyapısı arayışı', - access_control: 'Kullanıcının rollerine ve sorumluluklarına göre erişim kontrolü', - multi_tenancy: 'Çok kiracılı bir ürün için stratejiler arayışı', - enterprise: 'Enterprize hazır SSO çözümleri arayışı', - others: 'Diğerleri', + additional_features_field: 'Bilmemizi istediğiniz başka bir şey var mı?', + additional_features_options: { + customize_ui_and_flow: + "Logto API aracılığıyla kendi UI'ımı getirme veya kendi akışlarımı özelleştirme yeteneğine ihtiyacım var", + compliance: 'SOC2 ve GDPR olmazsa olmaz', + export_user_data: "Kullanıcı verilerini Logto'dan dışa aktarma yeteneğine ihtiyacım var", + budget_control: 'Çok sıkı bir bütçe kontrolüm var', + bring_own_auth: + 'Kendi kimlik doğrulama hizmetlerim var ve sadece bazı Logto özelliklerine ihtiyacım var', + others: 'Yukarıdakilerden hiçbiri', }, }, sie: { diff --git a/packages/phrases/src/locales/zh-cn/errors/application.ts b/packages/phrases/src/locales/zh-cn/errors/application.ts index f4086e00e..158db0e7f 100644 --- a/packages/phrases/src/locales/zh-cn/errors/application.ts +++ b/packages/phrases/src/locales/zh-cn/errors/application.ts @@ -5,8 +5,7 @@ const application = { invalid_third_party_application_type: '只有传统网络应用程序可以标记为第三方应用。', third_party_application_only: '该功能仅适用于第三方应用程序。', user_consent_scopes_not_found: '无效的用户同意范围。', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: '需要保护的应用程序元数据。', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/zh-cn/translation/admin-console/cloud.ts b/packages/phrases/src/locales/zh-cn/translation/admin-console/cloud.ts index eab0dcea9..4d275027a 100644 --- a/packages/phrases/src/locales/zh-cn/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/zh-cn/translation/admin-console/cloud.ts @@ -11,33 +11,22 @@ const cloud = { personal: '个人项目', company: '公司项目', }, - title_field: '选择适用的职位', - title_options: { - developer: '开发人员', - team_lead: '团队负责人', - ceo: 'CEO', - cto: 'CTO', - product: '产品', - others: '其他', - }, company_name_field: '公司名称', company_name_placeholder: 'Acme.co', - company_size_field: '你的公司规模如何?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: '你的产品目前处于哪个阶段?', + stage_options: { + new_product: '开始一个新项目,寻找一个快速的即插即用解决方案', + existing_product: '从当前的身份验证系统迁移(例如,自建、Auth0、Cognito、Microsoft)', + target_enterprise_ready: '我刚刚赢得了更大的客户,现在希望让我的产品适应企业销售', }, - reason_field: '我注册的原因是', - reason_options: { - passwordless: '寻找无需密码身份验证和 UI 工具包', - efficiency: '寻找即插即用的身份基础架构', - access_control: '基于角色和责任控制用户访问', - multi_tenancy: '寻求面向多租户产品的策略', - enterprise: '为产品更方便企业使用寻找 SSO 解决方案', - others: '其他', + additional_features_field: '你还有其他想告诉我们的信息么?', + additional_features_options: { + customize_ui_and_flow: '需要通过 Logto API 带入自己的 UI,或定制自己的流程', + compliance: 'SOC2 和 GDPR 是必须的', + export_user_data: '需要能够从 Logto 导出用户数据', + budget_control: '我有非常严格的预算控制', + bring_own_auth: '有自己的身份验证服务,只需要一些 Logto 功能', + others: '以上都不是', }, }, sie: { @@ -71,7 +60,7 @@ const cloud = { unlocked_later: '稍后解锁', unlocked_later_tip: '完成入门流程并进入产品后,你将获得访问更多社交登录方式的权限。', notice: - '请勿将演示连接器用于生产目的。完成测试后,请删除演示连接器并使用你的凭据设置自己的连接器。', + '请勿将演示连接器用于生产目的。 完成测试后,请删除演示连接器并使用你的凭证设置自己的连接器。', }, }, socialCallback: { diff --git a/packages/phrases/src/locales/zh-hk/errors/application.ts b/packages/phrases/src/locales/zh-hk/errors/application.ts index 1ea5b0af0..8b34287c6 100644 --- a/packages/phrases/src/locales/zh-hk/errors/application.ts +++ b/packages/phrases/src/locales/zh-hk/errors/application.ts @@ -5,8 +5,7 @@ const application = { invalid_third_party_application_type: '只有傳統網頁應用程式才能被標記為第三方應用程式。', third_party_application_only: '此功能只適用於第三方應用程式。', user_consent_scopes_not_found: '無效的使用者同意範圍。', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: '保護應用程式元數據是必需的。', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/zh-hk/translation/admin-console/cloud.ts b/packages/phrases/src/locales/zh-hk/translation/admin-console/cloud.ts index bf8169b9e..f29f7b957 100644 --- a/packages/phrases/src/locales/zh-hk/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/zh-hk/translation/admin-console/cloud.ts @@ -11,33 +11,22 @@ const cloud = { personal: '個人專案', company: '公司專案', }, - title_field: '選擇適用的職稱', - title_options: { - developer: '開發人員', - team_lead: '團隊負責人', - ceo: 'CEO', - cto: 'CTO', - product: '產品', - others: '其他', - }, company_name_field: '公司名稱', company_name_placeholder: 'Acme.co', - company_size_field: '你的公司規模如何?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: '你的產品目前處於哪個階段?', + stage_options: { + new_product: '啟動新項目並尋找快速、開箱即用的解決方案', + existing_product: '從當前身份驗證 (例如自建、Auth0、Cognito、Microsoft) 遷移', + target_enterprise_ready: '我剛剛贏得了更大的客戶,現在要讓我的產品準備面向企業銷售', }, - reason_field: '我註冊的原因是', - reason_options: { - passwordless: '尋找無需密碼身份驗證和 UI 工具包', - efficiency: '尋找即插即用的身份基礎架構', - access_control: '基於角色和責任控制用戶訪問', - multi_tenancy: '尋求面向多租戶產品的策略', - enterprise: '為產品更方便企業使用尋找 SSO 解決方案', - others: '其他', + additional_features_field: '你還有其他事情要告訴我們嗎?', + additional_features_options: { + customize_ui_and_flow: '需要通過 Logto API 自定義UI或自定義流程的能力', + compliance: 'SOC2 和 GDPR 是必不可少的', + export_user_data: '需要從 Logto 導出用戶數據的能力', + budget_control: '我有非常嚴格的預算控制', + bring_own_auth: '有自己的身份驗證服務,只需要一些 Logto 功能', + others: '以上都不是', }, }, sie: { diff --git a/packages/phrases/src/locales/zh-tw/errors/application.ts b/packages/phrases/src/locales/zh-tw/errors/application.ts index d2a6adcbc..9fc75f135 100644 --- a/packages/phrases/src/locales/zh-tw/errors/application.ts +++ b/packages/phrases/src/locales/zh-tw/errors/application.ts @@ -5,8 +5,7 @@ const application = { invalid_third_party_application_type: '僅傳統網路應用程式可以標記為第三方應用程式。', third_party_application_only: '該功能僅適用於第三方應用程式。', user_consent_scopes_not_found: '無效的使用者同意範圍。', - /** UNTRANSLATED */ - protected_app_metadata_is_required: 'Protected app metadata is required.', + protected_app_metadata_is_required: '需要保護應用程式元數據。', }; export default Object.freeze(application); diff --git a/packages/phrases/src/locales/zh-tw/translation/admin-console/cloud.ts b/packages/phrases/src/locales/zh-tw/translation/admin-console/cloud.ts index 27bc82740..360ffb1a1 100644 --- a/packages/phrases/src/locales/zh-tw/translation/admin-console/cloud.ts +++ b/packages/phrases/src/locales/zh-tw/translation/admin-console/cloud.ts @@ -11,33 +11,22 @@ const cloud = { personal: '個人專案', company: '公司專案', }, - title_field: '選擇適用的職稱', - title_options: { - developer: '開發人員', - team_lead: '團隊負責人', - ceo: 'CEO', - cto: 'CTO', - product: '產品', - others: '其他', - }, company_name_field: '公司名稱', company_name_placeholder: 'Acme.co', - company_size_field: '你的公司規模如何?', - company_options: { - size_1: '1', - size_2_49: '2-49', - size_50_199: '50-199', - size_200_999: '200-999', - size_1000_plus: '1000+', + stage_field: '你的產品目前處於什麼階段?', + stage_options: { + new_product: '啟動新項目並尋找快速、即插即用的解決方案', + existing_product: '從當前身份驗證進行遷移(例如自行建立、Auth0、Cognito、Microsoft)', + target_enterprise_ready: '我剛剛簽下了更大的客戶,現在要使我的產品能夠銷售給企業', }, - reason_field: '我註冊的原因是', - reason_options: { - passwordless: '尋找無需密碼身份驗證和 UI 工具包', - efficiency: '尋找即插即用的身份基礎架構', - access_control: '基於角色和責任控制用戶訪問', - multi_tenancy: '尋求面向多租戶產品的策略', - enterprise: '為產品更方便企業使用尋找 SSO 解決方案', - others: '其他', + additional_features_field: '你還有其他想讓我們知道的事情嗎?', + additional_features_options: { + customize_ui_and_flow: '需要通過 Logto API 自定義我的 UI,或自定義自己的流程', + compliance: 'SOC2 和 GDPR 是必不可少的', + export_user_data: '需要從 Logto 導出用戶數據的能力', + budget_control: '我有非常嚴格的預算控制', + bring_own_auth: '擁有自己的身份驗證服務,只需要一些 Logto 功能', + others: '以上都不是', }, }, sie: {