mirror of
https://github.com/logto-io/logto.git
synced 2025-03-24 22:41:28 -05:00
refactor(phrases): sync translation (#6607)
* refactor(phrases): sync translation * refactor: revert type
This commit is contained in:
parent
72738b2b65
commit
a1d0d109df
198 changed files with 2558 additions and 566 deletions
|
@ -1,5 +1,3 @@
|
|||
import { type DeepPartial } from '@silverhand/essentials';
|
||||
|
||||
import type { LocalePhrase } from '../../types.js';
|
||||
|
||||
import action from './action.js';
|
||||
|
@ -24,6 +22,6 @@ const ar = {
|
|||
development_tenant,
|
||||
user_scopes,
|
||||
},
|
||||
} satisfies DeepPartial<LocalePhrase>;
|
||||
} satisfies LocalePhrase;
|
||||
|
||||
export default Object.freeze(ar);
|
||||
|
|
|
@ -65,16 +65,10 @@ const description = {
|
|||
password_requirement: {
|
||||
length_one: 'wymaga co najmniej {{count}} znaku',
|
||||
length_other: 'wymaga co najmniej {{count}} znaków',
|
||||
length_few: 'wymaga co najmniej {{count}} znaki',
|
||||
length_many: 'wymaga co najmniej {{count}} znaków',
|
||||
character_types_one:
|
||||
'powinno zawierać co najmniej {{count}} rodzaj liter wielkich, małych liter, cyfr i symboli',
|
||||
character_types_other:
|
||||
'powinno zawierać co najmniej {{count}} rodzaje liter wielkich, małych liter, cyfr i symboli',
|
||||
character_types_few:
|
||||
'powinno zawierać co najmniej {{count}} rodzaje liter wielkich, małych liter, cyfr i symboli',
|
||||
character_types_many:
|
||||
'powinno zawierać co najmniej {{count}} rodzaje liter wielkich, małych liter, cyfr i symboli',
|
||||
},
|
||||
use: 'Użyj',
|
||||
single_sign_on_email_form: 'Wpisz swój służbowy adres email',
|
||||
|
|
|
@ -66,16 +66,10 @@ const description = {
|
|||
password_requirement: {
|
||||
length_one: 'требуется минимум {{count}} символ',
|
||||
length_other: 'требуется минимум {{count}} символов',
|
||||
length_few: 'требуется минимум {{count}} символа',
|
||||
length_many: 'требуется минимум {{count}} символов',
|
||||
character_types_one:
|
||||
'должен содержать по крайней мере {{count}} тип прописных букв, строчных букв, цифр и символов',
|
||||
character_types_other:
|
||||
'должен содержать по крайней мере {{count}} типа прописных букв, строчных букв, цифр и символов',
|
||||
character_types_few:
|
||||
'должен содержать по крайней мере {{count}} типа прописных букв, строчных букв, цифр и символов',
|
||||
character_types_many:
|
||||
'должен содержать по крайней мере {{count}} типа прописных букв, строчных букв, цифр и символов',
|
||||
},
|
||||
use: 'Использовать',
|
||||
single_sign_on_email_form: 'Введите корпоративный адрес электронной почты',
|
||||
|
|
|
@ -34,8 +34,7 @@ const user = {
|
|||
backup_code_already_in_use: 'تم استخدام رمز النسخ الاحتياطي بالفعل.',
|
||||
password_algorithm_required: 'مطلوب خوارزمية كلمة المرور.',
|
||||
password_and_digest: 'لا يمكنك تعيين كلمة مرور عادية ومعلومات تجزئة كلمة المرور معًا.',
|
||||
/** UNTRANSLATED */
|
||||
personal_access_token_name_exists: 'Personal access token name already exists.',
|
||||
personal_access_token_name_exists: 'اسم رمز الوصول الشخصي موجود بالفعل.',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -168,8 +168,7 @@ const application_details = {
|
|||
},
|
||||
secrets: {
|
||||
value: 'Value',
|
||||
/** UNTRANSLATED */
|
||||
empty: 'The application does not have any secrets.',
|
||||
empty: 'التطبيق لا يحتوي على أي أسرار.',
|
||||
created_at: 'Created at',
|
||||
expires_at: 'Expires at',
|
||||
never: 'Never',
|
||||
|
|
|
@ -46,10 +46,8 @@ const general = {
|
|||
continue: 'متابعة',
|
||||
page_info: '{{min, number}}-{{max, number}} من {{total, number}}',
|
||||
learn_more: 'معرفة المزيد',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_other: '{{count, number}} errors',
|
||||
tab_error_one: '{{count, number}} خطأ',
|
||||
tab_error_other: '{{count, number}} أخطاء',
|
||||
skip_for_now: 'تخطي للآن',
|
||||
remove: 'إزالة',
|
||||
visit: 'زيارة',
|
||||
|
@ -72,6 +70,8 @@ const general = {
|
|||
delete_field: 'حذف {{field}}',
|
||||
coming_soon: 'قريبًا',
|
||||
or: 'أو',
|
||||
reset: 'إعادة تعيين',
|
||||
generate: 'إنشاء',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -39,6 +39,10 @@ const jwt_claims = {
|
|||
title: 'بيانات الرمز',
|
||||
subtitle: 'استخدم معلمة الإدخال `token` لحمولة رمز الوصول الحالي.',
|
||||
},
|
||||
api_context: {
|
||||
title: 'سياق API: التحكم في الوصول',
|
||||
subtitle: 'استخدم طريقة `api.denyAccess` لرفض طلب الرمز.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: 'استرجاع البيانات الخارجية',
|
||||
subtitle: 'دمج البيانات من واجهات برمجة التطبيقات الخارجية مباشرة في المطالبات.',
|
||||
|
|
|
@ -7,10 +7,11 @@ const subscription = {
|
|||
free_plan_description: 'للمشاريع الجانبية وتجارب Logto الأولية. بدون بطاقة ائتمان.',
|
||||
pro_plan: 'خطة Pro',
|
||||
pro_plan_description: 'للاستفادة من الأعمال بدون قلق مع Logto.',
|
||||
enterprise: 'الشركات',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'خطة المؤسسة',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
'للمؤسسات الكبيرة التي تتطلب ميزات متقدمة وتخصيص كامل ودعم مخصص لتشغيل التطبيقات الحيوية. مصمم خصيصًا لتلبية احتياجاتك من الأمان والامتثال والأداء النهائي.',
|
||||
admin_plan: 'خطة المسؤول',
|
||||
dev_plan: 'خطة التطوير',
|
||||
current_plan: 'الخطة الحالية',
|
||||
current_plan_description:
|
||||
'هذه هي الخطة الحالية الخاصة بك. يمكنك بسهولة رؤية استخدام الخطة الخاصة بك ، والتحقق من فاتورتك القادمة ، وإجراء التغييرات على الخطة حسب الحاجة.',
|
||||
|
|
|
@ -63,28 +63,18 @@ const quota_table = {
|
|||
customer_ticket: 'دعم التذاكر',
|
||||
premium: 'متميز',
|
||||
email_ticket_support: 'دعم التذاكر عبر البريد الإلكتروني',
|
||||
/** UNTRANSLATED */
|
||||
discord_private_channel: 'Discord private channel',
|
||||
/** UNTRANSLATED */
|
||||
premium_support: 'Premium support',
|
||||
/** UNTRANSLATED */
|
||||
developer_onboarding: 'Developer onboarding',
|
||||
/** UNTRANSLATED */
|
||||
solution_engineer_support: 'Solution engineer',
|
||||
/** UNTRANSLATED */
|
||||
sla: 'SLA',
|
||||
/** UNTRANSLATED */
|
||||
dedicated_computing_resources: 'Dedicated computing resources',
|
||||
discord_private_channel: 'قناة خاصة على Discord',
|
||||
premium_support: 'دعم متميز',
|
||||
developer_onboarding: 'إعداد المطور',
|
||||
solution_engineer_support: 'مهندس الحلول',
|
||||
sla: 'اتفاقية مستوى الخدمة',
|
||||
dedicated_computing_resources: 'موارد الحوسبة المخصصة',
|
||||
},
|
||||
compliance: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Compliance',
|
||||
/** UNTRANSLATED */
|
||||
soc2_compliant: 'SOC2 compliant',
|
||||
/** UNTRANSLATED */
|
||||
soc2_report: 'SOC2 report',
|
||||
/** UNTRANSLATED */
|
||||
hipaa_or_baa_report: 'HIPAA/BAA report',
|
||||
title: 'التوافق',
|
||||
soc2_compliant: 'متوافق مع SOC2',
|
||||
soc2_report: 'تقرير SOC2',
|
||||
hipaa_or_baa_report: 'تقرير HIPAA/BAA',
|
||||
},
|
||||
developers_and_platform: {
|
||||
title: 'المطورين والمنصة',
|
||||
|
|
|
@ -53,9 +53,8 @@ const usage = {
|
|||
tooltip: 'ميزة إضافية بسعر قدره ${{price, number}} لكل خطاف. الخطافات الأولى 10 مشمولة.',
|
||||
},
|
||||
pricing: {
|
||||
/** UNTRANSLATED */
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
'If you make any changes during the current billing cycle, your next bill may be slightly higher for the first month after the change. It will be ${{price, number}} base price plus add-on costs for unbilled usage from the current cycle and the full charge for the next cycle. <a>Learn more</a>',
|
||||
'إذا قمت بإجراء أي تغييرات خلال دورة الفوترة الحالية، فقد تكون فاتورتك التالية أعلى قليلًا للشهر الأول بعد التغيير. سيكون السعر الأساسي ${{price, number}} بالإضافة إلى تكاليف الميزات الإضافية للاستخدام غير المقدر من الدورة الحالية والرسوم الكاملة للدورة التالية. <a>تعرف أكثر</a>',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -12,10 +12,13 @@ const user_details = {
|
|||
deleted: 'تم حذف المستخدم بنجاح',
|
||||
reset_password: {
|
||||
reset_title: 'هل أنت متأكد أنك تريد إعادة تعيين كلمة المرور؟',
|
||||
generate_title: 'هل أنت متأكد أنك تريد توليد كلمة مرور؟',
|
||||
content:
|
||||
'لا يمكن التراجع عن هذا الإجراء. سيتم إعادة تعيين معلومات تسجيل الدخول الخاصة بالمستخدم.',
|
||||
reset_complete: 'تم إعادة تعيين هذا المستخدم',
|
||||
generate_complete: 'تم توليد كلمة المرور',
|
||||
new_password: 'كلمة المرور الجديدة:',
|
||||
password: 'كلمة المرور:',
|
||||
},
|
||||
tab_settings: 'الإعدادات',
|
||||
tab_roles: 'الأدوار',
|
||||
|
@ -28,6 +31,7 @@ const user_details = {
|
|||
field_email: 'عنوان البريد الإلكتروني',
|
||||
field_phone: 'رقم الهاتف',
|
||||
field_username: 'اسم المستخدم',
|
||||
field_password: 'كلمة المرور',
|
||||
field_name: 'الاسم',
|
||||
field_avatar: 'عنوان صورة الصورة الرمزية',
|
||||
field_avatar_placeholder: 'https://your.cdn.domain/avatar.png',
|
||||
|
@ -41,6 +45,8 @@ const user_details = {
|
|||
field_sso_connectors: 'روابط المؤسسات',
|
||||
custom_data_invalid: 'يجب أن تكون البيانات المخصصة كائن JSON صالح',
|
||||
profile_invalid: 'يجب أن يكون الملف الشخصي كائن JSON صالح',
|
||||
password_already_set: 'تم تعيين كلمة المرور بالفعل',
|
||||
no_password_set: 'لم يتم تعيين كلمة مرور',
|
||||
connectors: {
|
||||
connectors: 'الروابط',
|
||||
user_id: 'معرف المستخدم',
|
||||
|
@ -96,57 +102,33 @@ const user_details = {
|
|||
warning_no_sign_in_identifier:
|
||||
'يحتاج المستخدم إلى وجود واحد على الأقل من معرفات تسجيل الدخول (اسم المستخدم أو البريد الإلكتروني أو رقم الهاتف أو الوسائط الاجتماعية) لتسجيل الدخول. هل أنت متأكد أنك تريد المتابعة؟',
|
||||
personal_access_tokens: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Personal access token',
|
||||
/** UNTRANSLATED */
|
||||
title_other: 'Personal access tokens',
|
||||
/** UNTRANSLATED */
|
||||
title_short: 'token',
|
||||
/** UNTRANSLATED */
|
||||
empty: 'The user does not have any personal access tokens.',
|
||||
/** UNTRANSLATED */
|
||||
create: 'Create new token',
|
||||
/** UNTRANSLATED */
|
||||
tip: 'Personal access tokens (PATs) provide a secure way for users to grant access tokens without using their credentials and interactive sign-in. This is useful for CI/CD, scripts, or applications that need to access resources programmatically. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
value: 'Value',
|
||||
/** UNTRANSLATED */
|
||||
created_at: 'Created at',
|
||||
/** UNTRANSLATED */
|
||||
expires_at: 'Expires at',
|
||||
/** UNTRANSLATED */
|
||||
never: 'Never',
|
||||
/** UNTRANSLATED */
|
||||
create_new_token: 'Create new token',
|
||||
/** UNTRANSLATED */
|
||||
delete_confirmation:
|
||||
'This action cannot be undone. Are you sure you want to delete this token?',
|
||||
/** UNTRANSLATED */
|
||||
expired: 'Expired',
|
||||
/** UNTRANSLATED */
|
||||
expired_tooltip: 'This token was expired on {{date}}.',
|
||||
title: 'رمز الوصول الشخصي',
|
||||
title_other: 'رموز الوصول الشخصية',
|
||||
title_short: 'رمز',
|
||||
empty: 'المستخدم لا يمتلك أي رموز وصول شخصية.',
|
||||
create: 'إنشاء رمز جديد',
|
||||
tip: 'توفر رموز الوصول الشخصية (PATs) طريقة آمنة للمستخدمين لمنح رموز الوصول دون استخدام بيانات اعتمادهم وتسجيل الدخول التفاعلي. هذا مفيد لـ CI/CD، النصوص، أو التطبيقات التي تحتاج إلى الوصول إلى الموارد برمجيًا. <a> تعرف على المزيد </a>',
|
||||
value: 'القيمة',
|
||||
created_at: 'تم إنشاؤه في',
|
||||
expires_at: 'ينتهي في',
|
||||
never: 'أبدًا',
|
||||
create_new_token: 'إنشاء رمز جديد',
|
||||
delete_confirmation: 'لا يمكن التراجع عن هذا الإجراء. هل أنت متأكد أنك تريد حذف هذا الرمز؟',
|
||||
expired: 'منتهي الصلاحية',
|
||||
expired_tooltip: 'انتهت صلاحية هذا الرمز في {{date}}.',
|
||||
create_modal: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Create personal access token',
|
||||
/** UNTRANSLATED */
|
||||
expiration: 'Expiration',
|
||||
/** UNTRANSLATED */
|
||||
expiration_description: 'The token will expire at {{date}}.',
|
||||
/** UNTRANSLATED */
|
||||
title: 'إنشاء رمز الوصول الشخصي',
|
||||
expiration: 'انتهاء الصلاحية',
|
||||
expiration_description: 'سينتهي الرمز في {{date}}.',
|
||||
expiration_description_never:
|
||||
'The token will never expire. We recommend setting an expiration date for enhanced security.',
|
||||
/** UNTRANSLATED */
|
||||
days: '{{count}} day',
|
||||
/** UNTRANSLATED */
|
||||
days_other: '{{count}} days',
|
||||
/** UNTRANSLATED */
|
||||
created: 'The token {{name}} has been successfully created.',
|
||||
'لن تنتهي صلاحية الرمز أبدًا. نوصي بتحديد تاريخ انتهاء لتعزيز الأمان.',
|
||||
days: '{{count}} يوم',
|
||||
days_other: '{{count}} أيام',
|
||||
created: 'تم إنشاء الرمز {{name}} بنجاح.',
|
||||
},
|
||||
edit_modal: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Edit personal access token',
|
||||
/** UNTRANSLATED */
|
||||
edited: 'The token {{name}} has been successfully edited.',
|
||||
title: 'تحرير رمز الوصول الشخصي',
|
||||
edited: 'تم تحرير الرمز {{name}} بنجاح.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
@ -19,6 +19,8 @@ const application = {
|
|||
invalid_subdomain: 'Ungültige Subdomain.',
|
||||
custom_domain_not_found: 'Benutzerdefinierte Domain nicht gefunden.',
|
||||
should_delete_custom_domains_first: 'Benutzerdefinierte Domains sollten zuerst gelöscht werden.',
|
||||
no_legacy_secret_found: 'Die Anwendung hat kein altes Geheimnis.',
|
||||
secret_name_exists: 'Geheimnisname existiert bereits.',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -4,6 +4,7 @@ const guard = {
|
|||
can_not_get_tenant_id: 'Die tenant_id konnte nicht aus der Anfrage abgerufen werden.',
|
||||
file_size_exceeded: 'Dateigröße überschritten.',
|
||||
mime_type_not_allowed: 'Der MIME-Typ ist nicht erlaubt.',
|
||||
not_allowed_for_admin_tenant: 'Nicht erlaubt für Administrator-Mieter.',
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -24,10 +24,14 @@ const session = {
|
|||
'Benutzerkennung nicht gefunden. Bitte gehen Sie zurück und melden Sie sich erneut an.',
|
||||
interaction_not_found:
|
||||
'Interaktionssitzung nicht gefunden. Bitte gehen Sie zurück und starten Sie die Sitzung erneut.',
|
||||
invalid_interaction_type:
|
||||
'Diese Operation wird für die aktuelle Interaktion nicht unterstützt. Bitte starte eine neue Sitzung.',
|
||||
not_supported_for_forgot_password:
|
||||
'Diese Operation wird für das vergessene Passwort nicht unterstützt.',
|
||||
identity_conflict:
|
||||
'Identitätskonflikt festgestellt. Bitte starten Sie eine neue Sitzung, um mit einer anderen Identität fortzufahren.',
|
||||
identifier_not_verified:
|
||||
'Die bereitgestellte Kennung {{identifier}} wurde nicht verifiziert. Bitte erstelle einen Verifizierungsdatensatz für diese Kennung und schließe den Verifizierungsprozess ab.',
|
||||
mfa: {
|
||||
require_mfa_verification: 'MFA-Verifizierung ist erforderlich, um sich anzumelden.',
|
||||
mfa_sign_in_only: 'MFA ist nur für die Anmeldeinteraktion verfügbar.',
|
||||
|
@ -41,6 +45,7 @@ const session = {
|
|||
backup_code_required: 'Backup-Code ist erforderlich.',
|
||||
invalid_backup_code: 'Ungültiger Backup-Code.',
|
||||
mfa_policy_not_user_controlled: 'MFA-Richtlinie wird nicht vom Benutzer gesteuert.',
|
||||
mfa_factor_not_enabled: 'MFA-Faktor ist nicht aktiviert.',
|
||||
},
|
||||
sso_enabled:
|
||||
'Einmaliges Anmelden ist für diese gegebene E-Mail aktiviert. Bitte melden Sie sich mit SSO an.',
|
||||
|
|
|
@ -40,6 +40,7 @@ const user = {
|
|||
password_algorithm_required: 'Password-Algorithmus ist erforderlich.',
|
||||
password_and_digest:
|
||||
'Sie können nicht sowohl das Passwort im Klartext als auch den Passwort-Hash festlegen.',
|
||||
personal_access_token_name_exists: 'Name des persönlichen Zugriffstokens existiert bereits.',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -35,6 +35,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
'Die eindeutige Anwendungs-ID, die normalerweise von Logto generiert wird. Steht auch für "<a>client_id</a>" in OpenID Connect.',
|
||||
application_secret: 'App-Geheimnis',
|
||||
application_secret_other: 'App-Geheimnisse',
|
||||
redirect_uri: 'Umleitungs-URI',
|
||||
redirect_uris: 'Umleitungs-URIs',
|
||||
redirect_uri_placeholder: 'https://deine.website.de/app',
|
||||
|
@ -95,6 +96,10 @@ const application_details = {
|
|||
session_duration: 'Sitzungsdauer (Tage)',
|
||||
try_it: 'Probieren Sie es aus',
|
||||
no_organization_placeholder: 'Keine Organisation gefunden. <a>Zu den Organisationen</a>',
|
||||
field_custom_data: 'Benutzerdefinierte Daten',
|
||||
field_custom_data_tip:
|
||||
'Zusätzliche benutzerdefinierte Anwendungsinformationen, die nicht in den vordefinierten Anwendungseigenschaften aufgeführt sind, wie z. B. geschäftsspezifische Einstellungen und Konfigurationen.',
|
||||
custom_data_invalid: 'Benutzerdefinierte Daten müssen ein gültiges JSON-Objekt sein',
|
||||
branding: {
|
||||
name: 'Branding',
|
||||
description:
|
||||
|
@ -169,6 +174,33 @@ const application_details = {
|
|||
search: 'Nach Rollennamen, Beschreibung oder ID suchen',
|
||||
empty: 'Keine Rollen verfügbar',
|
||||
},
|
||||
secrets: {
|
||||
value: 'Wert',
|
||||
empty: 'Die Anwendung hat keine Geheimnisse.',
|
||||
created_at: 'Erstellt am',
|
||||
expires_at: 'Läuft ab am',
|
||||
never: 'Niemals',
|
||||
create_new_secret: 'Neues Geheimnis erstellen',
|
||||
delete_confirmation:
|
||||
'Diese Aktion kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie dieses Geheimnis löschen möchten?',
|
||||
legacy_secret: 'Altes Geheimnis',
|
||||
expired: 'Abgelaufen',
|
||||
expired_tooltip: 'Dieses Geheimnis lief am {{date}} ab.',
|
||||
create_modal: {
|
||||
title: 'Anwendungsgeheimnis erstellen',
|
||||
expiration: 'Ablauf',
|
||||
expiration_description: 'Das Geheimnis läuft am {{date}} ab.',
|
||||
expiration_description_never:
|
||||
'Das Geheimnis läuft niemals ab. Wir empfehlen, ein Ablaufdatum festzulegen, um die Sicherheit zu verbessern.',
|
||||
days: '{{count}} Tag',
|
||||
days_other: '{{count}} Tage',
|
||||
created: 'Das Geheimnis {{name}} wurde erfolgreich erstellt.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'Anwendungsgeheimnis bearbeiten',
|
||||
edited: 'Das Geheimnis {{name}} wurde erfolgreich bearbeitet.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -47,8 +47,7 @@ const general = {
|
|||
continue: 'Fortsetzen',
|
||||
page_info: '{{min, number}}-{{max, number}} von {{total, number}}',
|
||||
learn_more: 'Mehr erfahren',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_one: '{{count, number}} Fehler',
|
||||
tab_error_other: '{{count, number}} Fehler',
|
||||
skip_for_now: 'Jetzt überspringen',
|
||||
remove: 'Entfernen',
|
||||
|
@ -72,6 +71,8 @@ const general = {
|
|||
delete_field: 'Lösche {{field}}',
|
||||
coming_soon: 'Demnächst verfügbar',
|
||||
or: 'Oder',
|
||||
reset: 'Zurücksetzen',
|
||||
generate: 'Erzeugen',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -44,6 +44,10 @@ const jwt_claims = {
|
|||
title: 'Token-Daten',
|
||||
subtitle: 'Verwenden Sie den `token` Eingabeparameter für die aktuelle Zugriffstoken-Payload.',
|
||||
},
|
||||
api_context: {
|
||||
title: 'API-Kontext: Zugriffskontrolle',
|
||||
subtitle: 'Verwenden Sie die Methode `api.denyAccess`, um die Token-Anfrage abzulehnen.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: 'Externe Daten abrufen',
|
||||
subtitle: 'Integrieren Sie Daten direkt aus Ihren externen APIs in die Ansprüche.',
|
||||
|
|
|
@ -1,30 +1,26 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: 'Kostenloser Plan',
|
||||
free_plan: 'Kostenloser plan',
|
||||
free_plan_description: 'Für Nebenprojekte und erste Logto-Tests. Keine Kreditkarte erforderlich.',
|
||||
pro_plan: 'Pro plan',
|
||||
pro_plan_description: 'Für Unternehmen, die sorgenfrei von Logto profitieren möchten.',
|
||||
enterprise: 'Unternehmen',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'Enterprise-Plan',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'Für große Organisationen, die erweiterte Funktionen, volle Anpassung und dedizierten Support benötigen, um geschäftskritische Anwendungen zu betreiben. Auf Ihre Bedürfnisse zugeschnitten für ultimative Sicherheit, Compliance und Leistung.',
|
||||
admin_plan: 'Admin-Plan',
|
||||
dev_plan: 'Entwicklungsplan',
|
||||
current_plan: 'Aktueller Plan',
|
||||
current_plan_description:
|
||||
'Hier ist dein aktueller Tarif. Du kannst einfach deinen Tarifverbrauch einsehen, deine anstehende Rechnung überprüfen und bei Bedarf Änderungen an deinem Tarif vornehmen.',
|
||||
plan_usage: 'Plan-Nutzung',
|
||||
plan_cycle: 'Plan-Zyklus: {{period}}. Die Nutzung wird am {{renewDate}} erneuert.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: 'Ihre bevorstehende Rechnung',
|
||||
next_bill_hint: 'Weitere Informationen zur Berechnung finden Sie in diesem <a>Artikel</a>.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
'Die hier angezeigten Preise sind ohne Steuern und können geringfügigen Verzögerungen bei der Aktualisierung unterliegen. Der Steuerbetrag wird basierend auf den von Ihnen bereitgestellten Informationen und den lokalen regulatorischen Anforderungen berechnet und in Ihren Rechnungen angezeigt.',
|
||||
manage_payment: 'Zahlung verwalten',
|
||||
overfill_quota_warning:
|
||||
'Sie haben Ihr Quotenlimit erreicht. Um Probleme zu vermeiden, upgraden Sie den Plan.',
|
||||
|
@ -73,6 +69,7 @@ const subscription = {
|
|||
downgrade_success: 'Erfolgreich auf <name/> herabgestuft',
|
||||
subscription_check_timeout: 'Abo-Überprüfung ist abgelaufen. Bitte später aktualisieren.',
|
||||
no_subscription: 'Kein Abonnement',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
|
@ -37,7 +37,6 @@ const quota_table = {
|
|||
built_in_email_connector: 'Integrierter E-Mail-Connector',
|
||||
mfa: 'Multi-Faktor-Authentifizierung',
|
||||
sso: 'Unternehmens-SSO',
|
||||
|
||||
impersonation: 'Stellvertretung',
|
||||
},
|
||||
user_management: {
|
||||
|
@ -59,12 +58,21 @@ const quota_table = {
|
|||
just_in_time_provisioning: 'Bedarfsgesteuerte Bereitstellung',
|
||||
},
|
||||
support: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Support',
|
||||
title: 'Unterstützung',
|
||||
community: 'Gemeinschaft',
|
||||
customer_ticket: 'Support-Ticket',
|
||||
premium: 'Premium',
|
||||
email_ticket_support: 'E-Mail-Ticket-Support',
|
||||
discord_private_channel: 'Discord-Privatkanal',
|
||||
premium_support: 'Premium-Unterstützung',
|
||||
developer_onboarding: 'Entwickler-Einarbeitung',
|
||||
solution_engineer_support: 'Solution-Engineer',
|
||||
sla: 'SLA',
|
||||
dedicated_computing_resources: 'Dedizierte Computerressourcen',
|
||||
},
|
||||
compliance: {
|
||||
title: 'Compliance',
|
||||
soc2_compliant: 'SOC2-konform',
|
||||
soc2_report: 'SOC2-Bericht',
|
||||
hipaa_or_baa_report: 'HIPAA/BAA-Bericht',
|
||||
},
|
||||
|
@ -82,7 +90,6 @@ const quota_table = {
|
|||
days_other: '{{count, number}} Tage',
|
||||
add_on: 'Zusatzleistung',
|
||||
tier: 'Stufe{{value, number}}: ',
|
||||
|
||||
million: '{{value, number}} Millionen',
|
||||
mau_tip:
|
||||
'MAU (monatlich aktive Benutzer) bezeichnet die Anzahl der eindeutigen Benutzer, die in einem Abrechnungszyklus mindestens einen Token mit Logto ausgetauscht haben.',
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
const usage = {
|
||||
status_active: 'An',
|
||||
status_inactive: 'Aus',
|
||||
mau: {
|
||||
title: 'MAU',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Ein MAU ist ein eindeutiger Nutzer, der innerhalb eines Abrechnungszyklus mindestens ein Token mit Logto ausgetauscht hat. Unbegrenzt für den Pro-Plan. <a>Erfahre mehr</a>',
|
||||
},
|
||||
organizations: {
|
||||
title: 'Organisationen',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Zusatzfeature mit einem Festpreis von ${{price, number}} pro Monat. Der Preis wird nicht von der Anzahl der Organisationen oder ihrem Aktivitätsniveau beeinflusst.',
|
||||
},
|
||||
mfa: {
|
||||
title: 'MFA',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Zusatzfeature mit einem Festpreis von ${{price, number}} pro Monat. Der Preis wird nicht von der Anzahl der genutzten Authentifizierungsfaktoren beeinflusst.',
|
||||
},
|
||||
enterprise_sso: {
|
||||
title: 'Enterprise SSO',
|
||||
description: '{{usage}}',
|
||||
tooltip: 'Zusatzfeature mit einem Preis von ${{price, number}} pro SSO-Verbindung pro Monat.',
|
||||
},
|
||||
api_resources: {
|
||||
title: 'API-Ressourcen',
|
||||
description: '{{usage}} <span>(Kostenlos für die ersten 3)</span>',
|
||||
tooltip:
|
||||
'Zusatzfeature zu einem Preis von ${{price, number}} pro Ressource pro Monat. Die ersten 3 API-Ressourcen sind kostenlos.',
|
||||
},
|
||||
machine_to_machine: {
|
||||
title: 'Machine-to-Machine',
|
||||
description: '{{usage}} <span>(Kostenlos für die erste)</span>',
|
||||
tooltip:
|
||||
'Zusatzfeature zu einem Preis von ${{price, number}} pro App pro Monat. Die erste Machine-to-Machine-App ist kostenlos.',
|
||||
},
|
||||
tenant_members: {
|
||||
title: 'Tenant-Mitglieder',
|
||||
description: '{{usage}} <span>(Kostenlos für die ersten 3)</span>',
|
||||
tooltip:
|
||||
'Zusatzfeature zu einem Preis von ${{price, number}} pro Mitglied pro Monat. Die ersten 3 Tenant-Mitglieder sind kostenlos.',
|
||||
},
|
||||
tokens: {
|
||||
title: 'Tokens',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Zusatzfeature zu einem Preis von ${{price, number}} pro Million Tokens. Die ersten 1 Million Tokens sind inklusive.',
|
||||
},
|
||||
hooks: {
|
||||
title: 'Hooks',
|
||||
description: '{{usage}} <span>(Kostenlos für die ersten 10)</span>',
|
||||
tooltip:
|
||||
'Zusatzfeature zu einem Preis von ${{price, number}} pro Hook. Die ersten 10 Hooks sind inklusive.',
|
||||
},
|
||||
pricing: {
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
'Wenn du während des aktuellen Abrechnungszyklus Änderungen vornimmst, kann deine nächste Rechnung im ersten Monat nach der Änderung leicht höher ausfallen. Es wird ein Basispreis von ${{price, number}} plus Zusatzkosten für unberechnete Nutzung aus dem aktuellen Zyklus und die volle Gebühr für den nächsten Zyklus berechnet. <a>Erfahre mehr</a>',
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(usage);
|
|
@ -1,23 +1,17 @@
|
|||
const add_on = {
|
||||
/** UNTRANSLATED */
|
||||
mfa_inline_notification:
|
||||
'MFA is a ${{price, number}} per mo add-on for the {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'MFA ist ein Add-on für ${{price, number}} pro Monat für den {{planName}}. Der erste Monat wird anteilig basierend auf deinem Abrechnungszyklus berechnet. <a>Erfahre mehr</a>',
|
||||
footer: {
|
||||
/** UNTRANSLATED */
|
||||
api_resource:
|
||||
'Additional resources cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Zusätzliche Ressourcen kosten <span>${{price, number}} pro Monat / Stück</span>. Der erste Monat wird anteilig basierend auf deinem Abrechnungszyklus berechnet. <a>Erfahre mehr</a>',
|
||||
machine_to_machine_app:
|
||||
'Additional machine-to-machine apps cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Zusätzliche Maschine-zu-Maschine-Apps kosten <span>${{price, number}} pro Monat / Stück</span>. Der erste Monat wird anteilig basierend auf deinem Abrechnungszyklus berechnet. <a>Erfahre mehr</a>',
|
||||
enterprise_sso:
|
||||
'Enterprise SSO cost <span>${{price, number}} per mo / ea</span> add-on for {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Enterprise SSO ist ein Add-on für <span>${{price, number}} pro Monat / Stück</span> für {{planName}}. Der erste Monat wird anteilig basierend auf deinem Abrechnungszyklus berechnet. <a>Erfahre mehr</a>',
|
||||
tenant_members:
|
||||
'Additional members cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Zusätzliche Mitglieder kosten <span>${{price, number}} pro Monat / Stück</span>. Der erste Monat wird anteilig basierend auf deinem Abrechnungszyklus berechnet. <a>Erfahre mehr</a>',
|
||||
organization:
|
||||
'Organization is a <span>${{price, number}} per mo</span> add-on for {{planName}} with unlimited organizations. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'Organisation ist ein Add-on für <span>${{price, number}} pro Monat</span> für {{planName}} mit unbegrenzten Organisationen. Der erste Monat wird anteilig basierend auf deinem Abrechnungszyklus berechnet. <a>Erfahre mehr</a>',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import add_on from './add-on.js';
|
||||
import featured_plan_content from './featured-plan-content.js';
|
||||
import paywall from './paywall.js';
|
||||
|
||||
|
@ -41,6 +42,7 @@ const upsell = {
|
|||
'Sie haben Ihr {{item}}-Quotenlimit überschritten. Logto wird Gebühren für die Nutzung über Ihr Quotenlimit hinaus hinzufügen. Die Abrechnung beginnt am Tag der Veröffentlichung des neuen Add-On-Preisdesigns. <a>Mehr erfahren</a>',
|
||||
paywall,
|
||||
featured_plan_content,
|
||||
add_on,
|
||||
};
|
||||
|
||||
export default Object.freeze(upsell);
|
||||
|
|
|
@ -13,10 +13,13 @@ const user_details = {
|
|||
deleted: 'Der Benutzer wurde erfolgreich gelöscht',
|
||||
reset_password: {
|
||||
reset_title: 'Willst du das Passwort wirklich zurücksetzen?',
|
||||
generate_title: 'Möchten Sie wirklich ein Passwort generieren?',
|
||||
content:
|
||||
'Diese Aktion kann nicht rückgängig gemacht werden. Das Anmeldeinformationen werden zurückgesetzt.',
|
||||
reset_complete: 'Der Benutzer wurde erfolgreich zurückgesetzt',
|
||||
generate_complete: 'Das Passwort wurde generiert',
|
||||
new_password: 'Neues Passwort:',
|
||||
password: 'Passwort:',
|
||||
},
|
||||
tab_settings: 'Einstellungen',
|
||||
tab_roles: 'Benutzerrollen',
|
||||
|
@ -29,6 +32,7 @@ const user_details = {
|
|||
field_email: 'E-Mail-Adresse',
|
||||
field_phone: 'Telefonnummer',
|
||||
field_username: 'Benutzername',
|
||||
field_password: 'Passwort',
|
||||
field_name: 'Name',
|
||||
field_avatar: 'Profilbild URL',
|
||||
field_avatar_placeholder: 'https://dein.cdn.domain/profilbild.png',
|
||||
|
@ -42,6 +46,8 @@ const user_details = {
|
|||
field_sso_connectors: 'Unternehmensverbindungen',
|
||||
custom_data_invalid: 'Benutzerdefinierte Daten müssen ein gültiges JSON-Objekt sein.',
|
||||
profile_invalid: 'Profil muss ein gültiges JSON-Objekt sein',
|
||||
password_already_set: 'Passwort bereits gesetzt',
|
||||
no_password_set: 'Kein Passwort gesetzt',
|
||||
connectors: {
|
||||
connectors: 'Verbindungen',
|
||||
user_id: 'Benutzer ID',
|
||||
|
@ -100,6 +106,37 @@ const user_details = {
|
|||
},
|
||||
warning_no_sign_in_identifier:
|
||||
'Der Benutzer muss mindestens einen der Anmelde-Identifikatoren (Benutzername, E-Mail, Telefonnummer oder soziales Konto) haben, um sich anzumelden. Sind Sie sicher, dass Sie fortfahren möchten?',
|
||||
personal_access_tokens: {
|
||||
title: 'Persönliches Zugriffstoken',
|
||||
title_other: 'Persönliche Zugriffstokens',
|
||||
title_short: 'Token',
|
||||
empty: 'Der Benutzer hat keine persönlichen Zugriffstokens.',
|
||||
create: 'Neues Token erstellen',
|
||||
tip: 'Persönliche Zugriffstokens (PATs) bieten eine sichere Möglichkeit, Nutzern Zugriffstokens zu gewähren, ohne ihre Anmeldedaten und interaktive Anmeldung zu nutzen. Dies ist nützlich für CI/CD, Skripte oder Anwendungen, die programmatisch auf Ressourcen zugreifen müssen. <a>Erfahre mehr</a>',
|
||||
value: 'Wert',
|
||||
created_at: 'Erstellt am',
|
||||
expires_at: 'Läuft ab am',
|
||||
never: 'Niemals',
|
||||
create_new_token: 'Neues Token erstellen',
|
||||
delete_confirmation:
|
||||
'Diese Aktion kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie dieses Token löschen möchten?',
|
||||
expired: 'Abgelaufen',
|
||||
expired_tooltip: 'Dieses Token ist am {{date}} abgelaufen.',
|
||||
create_modal: {
|
||||
title: 'Persönliches Zugriffstoken erstellen',
|
||||
expiration: 'Ablauf',
|
||||
expiration_description: 'Das Token läuft am {{date}} ab.',
|
||||
expiration_description_never:
|
||||
'Das Token läuft nie ab. Wir empfehlen, ein Ablaufdatum für verbesserte Sicherheit festzulegen.',
|
||||
days: '{{count}} Tag',
|
||||
days_other: '{{count}} Tage',
|
||||
created: 'Das Token {{name}} wurde erfolgreich erstellt.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'Persönliches Zugriffstoken bearbeiten',
|
||||
edited: 'Das Token {{name}} wurde erfolgreich bearbeitet.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(user_details);
|
||||
|
|
|
@ -7,7 +7,7 @@ const subscription = {
|
|||
free_plan_description: 'For side projects and initial Logto trials. No credit card.',
|
||||
pro_plan: 'Pro plan',
|
||||
pro_plan_description: 'For businesses benefit worry-free with Logto.',
|
||||
enterprise: 'Enterprise',
|
||||
enterprise: 'Enterprise plan',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
admin_plan: 'Admin plan',
|
||||
|
|
|
@ -20,6 +20,8 @@ const application = {
|
|||
invalid_subdomain: 'Subdominio no válido.',
|
||||
custom_domain_not_found: 'Dominio personalizado no encontrado.',
|
||||
should_delete_custom_domains_first: 'Debe eliminar primero los dominios personalizados.',
|
||||
no_legacy_secret_found: 'La aplicación no tiene un secreto heredado.',
|
||||
secret_name_exists: 'El nombre del secreto ya existe.',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -4,6 +4,7 @@ const guard = {
|
|||
can_not_get_tenant_id: 'No se puede obtener el ID del inquilino de la solicitud.',
|
||||
file_size_exceeded: 'Se excedió el tamaño del archivo.',
|
||||
mime_type_not_allowed: 'El tipo MIME no está permitido.',
|
||||
not_allowed_for_admin_tenant: 'No está permitido para el inquilino administrador.',
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -25,10 +25,14 @@ const session = {
|
|||
'Identificador de usuario no encontrado. Vuelva atrás e inicie sesión nuevamente.',
|
||||
interaction_not_found:
|
||||
'No se encuentra la sesión de interacción. Vuelva atrás y vuelva a iniciar la sesión.',
|
||||
invalid_interaction_type:
|
||||
'Esta operación no es compatible con la interacción actual. Inicie una nueva sesión, por favor.',
|
||||
not_supported_for_forgot_password:
|
||||
'Esta operación no es compatible para restablecer la contraseña.',
|
||||
identity_conflict:
|
||||
'Se detectó un conflicto de identidad. Por favor, inicie una nueva sesión para continuar con una identidad diferente.',
|
||||
identifier_not_verified:
|
||||
'El identificador proporcionado {{identifier}} no ha sido verificado. Crea un registro de verificación para este identificador y completa el proceso de verificación, por favor.',
|
||||
mfa: {
|
||||
require_mfa_verification: 'Se requiere verificación de MFA para iniciar sesión.',
|
||||
mfa_sign_in_only: 'MFA solo está disponible para la interacción de inicio de sesión.',
|
||||
|
@ -42,6 +46,7 @@ const session = {
|
|||
backup_code_required: 'Se requiere el código de respaldo.',
|
||||
invalid_backup_code: 'Código de respaldo no válido.',
|
||||
mfa_policy_not_user_controlled: 'La política de MFA no está controlada por el usuario.',
|
||||
mfa_factor_not_enabled: 'El factor de MFA no está habilitado.',
|
||||
},
|
||||
sso_enabled:
|
||||
'El inicio de sesión único está habilitado para este correo electrónico dado. Inicie sesión con SSO, por favor.',
|
||||
|
|
|
@ -37,6 +37,7 @@ const user = {
|
|||
password_algorithm_required: 'Se requiere algoritmo de contraseña.',
|
||||
password_and_digest:
|
||||
'No puedes establecer una contraseña en texto plano y en formato resumido al mismo tiempo.',
|
||||
personal_access_token_name_exists: 'El nombre del token de acceso personal ya existe.',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -34,6 +34,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
'El identificador de aplicación único normalmente generado por Logto. También se conoce como “<a>client_id</a>” en OpenID Connect.',
|
||||
application_secret: 'Aplicación Secreta',
|
||||
application_secret_other: 'Secretos de la aplicación',
|
||||
redirect_uri: 'URI de Redireccionamiento',
|
||||
redirect_uris: 'URIs de Redireccionamiento',
|
||||
redirect_uri_placeholder: 'https://tu.pagina.com/app',
|
||||
|
@ -94,6 +95,10 @@ const application_details = {
|
|||
session_duration: 'Duración de la sesión (días)',
|
||||
try_it: 'Probar',
|
||||
no_organization_placeholder: 'No se encontró organización. <a>Ir a organizaciones</a>',
|
||||
field_custom_data: 'Datos personalizados',
|
||||
field_custom_data_tip:
|
||||
'Información personalizada adicional de la aplicación no listada en las propiedades predefinidas de la aplicación, como configuraciones específicas del negocio.',
|
||||
custom_data_invalid: 'Los datos personalizados deben ser un objeto JSON válido',
|
||||
branding: {
|
||||
name: 'Marca',
|
||||
description:
|
||||
|
@ -165,6 +170,33 @@ const application_details = {
|
|||
search: 'Buscar por nombre de rol, descripción o ID',
|
||||
empty: 'No hay roles disponibles',
|
||||
},
|
||||
secrets: {
|
||||
value: 'Valor',
|
||||
empty: 'La aplicación no tiene ningún secreto.',
|
||||
created_at: 'Creado en',
|
||||
expires_at: 'Expira en',
|
||||
never: 'Nunca',
|
||||
create_new_secret: 'Crear nuevo secreto',
|
||||
delete_confirmation:
|
||||
'Esta acción no se puede deshacer. ¿Estás seguro de que deseas eliminar este secreto?',
|
||||
legacy_secret: 'Secreto heredado',
|
||||
expired: 'Expirado',
|
||||
expired_tooltip: 'Este secreto expiró el {{date}}.',
|
||||
create_modal: {
|
||||
title: 'Crear secreto de aplicación',
|
||||
expiration: 'Expiración',
|
||||
expiration_description: 'El secreto expirará el {{date}}.',
|
||||
expiration_description_never:
|
||||
'El secreto nunca expirará. Recomendamos establecer una fecha de expiración para mayor seguridad.',
|
||||
days: '{{count}} día',
|
||||
days_other: '{{count}} días',
|
||||
created: 'El secreto {{name}} se ha creado exitosamente.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'Editar secreto de aplicación',
|
||||
edited: 'El secreto {{name}} ha sido editado exitosamente.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -47,7 +47,6 @@ const general = {
|
|||
continue: 'Continuar',
|
||||
page_info: '{{min, number}}-{{max, number}} de {{total, number}}',
|
||||
learn_more: 'Saber más',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_other: '{{count, number}} errores',
|
||||
skip_for_now: 'Omitir por ahora',
|
||||
|
@ -72,6 +71,8 @@ const general = {
|
|||
delete_field: 'Eliminar {{field}}',
|
||||
coming_soon: 'Próximamente',
|
||||
or: 'O ',
|
||||
reset: 'Restablecer',
|
||||
generate: 'Generar',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -43,6 +43,10 @@ const jwt_claims = {
|
|||
subtitle:
|
||||
'Utilice el parámetro de entrada `token` para la carga útil actual del token de acceso. ',
|
||||
},
|
||||
api_context: {
|
||||
title: 'Contexto de la API: control de acceso',
|
||||
subtitle: 'Utilice el método `api.denyAccess` para rechazar la solicitud de token.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: 'Obtener datos externos',
|
||||
subtitle: 'Incorpore datos de sus API externas directamente en los reclamos.',
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: 'Plan Gratuito',
|
||||
|
@ -7,25 +8,20 @@ const subscription = {
|
|||
'Para proyectos secundarios y pruebas iniciales de Logto. No se requiere tarjeta de crédito.',
|
||||
pro_plan: 'Plan Pro',
|
||||
pro_plan_description: 'Benefíciese sin preocupaciones con Logto para empresas.',
|
||||
enterprise: 'Empresa',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'Plan Empresa',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'Para organizaciones a gran escala que requieren funciones avanzadas, personalización completa y soporte dedicado para impulsar aplicaciones críticas. Adaptado a tus necesidades para máxima seguridad, cumplimiento y rendimiento.',
|
||||
admin_plan: 'Plan de administrador',
|
||||
dev_plan: 'Plan de desarrollo',
|
||||
current_plan: 'Plan Actual',
|
||||
current_plan_description:
|
||||
'Aquí está tu plan actual. Puedes ver fácilmente el uso de tu plan, revisar tu próxima factura y hacer cambios en tu plan según sea necesario.',
|
||||
plan_usage: 'Uso del plan',
|
||||
plan_cycle: 'Ciclo del plan: {{period}}. La renovación del uso se realiza en {{renewDate}}.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: 'Tu próxima factura',
|
||||
next_bill_hint: 'Para obtener más información sobre el cálculo, consulte este <a>artículo</a>.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
'Los precios mostrados aquí son sin impuestos y pueden estar sujetos a un ligero retraso en las actualizaciones. El monto del impuesto se calculará en función de la información que proporciones y los requisitos regulatorios locales y se mostrará en tus facturas.',
|
||||
manage_payment: 'Gestionar el pago',
|
||||
overfill_quota_warning:
|
||||
'Ha alcanzado el límite de su cuota. Para evitar problemas, actualice el plan.',
|
||||
|
@ -75,6 +71,7 @@ const subscription = {
|
|||
subscription_check_timeout:
|
||||
'La comprobación de suscripción expiró. Por favor, actualiza más tarde.',
|
||||
no_subscription: 'Sin suscripción',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
|
@ -37,7 +37,6 @@ const quota_table = {
|
|||
built_in_email_connector: 'Conector de correo electrónico incorporado',
|
||||
mfa: 'Autenticación multifactor',
|
||||
sso: 'SSO empresarial',
|
||||
|
||||
impersonation: 'Suplantación de identidad',
|
||||
},
|
||||
user_management: {
|
||||
|
@ -59,14 +58,23 @@ const quota_table = {
|
|||
just_in_time_provisioning: 'Provisión justo a tiempo',
|
||||
},
|
||||
support: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Support',
|
||||
title: 'Soporte',
|
||||
community: 'Comunidad',
|
||||
customer_ticket: 'Ticket de soporte',
|
||||
premium: 'Premium',
|
||||
email_ticket_support: 'Soporte por ticket de correo electrónico',
|
||||
soc2_report: 'Informe SOC2 (Próximamente)',
|
||||
hipaa_or_baa_report: 'Informe HIPAA/BAA (Próximamente)',
|
||||
discord_private_channel: 'Canal privado de Discord',
|
||||
premium_support: 'Soporte premium',
|
||||
developer_onboarding: 'Incorporación de desarrolladores',
|
||||
solution_engineer_support: 'Soporte de ingeniero de soluciones',
|
||||
sla: 'SLA',
|
||||
dedicated_computing_resources: 'Recursos informáticos dedicados',
|
||||
},
|
||||
compliance: {
|
||||
title: 'Cumplimiento',
|
||||
soc2_compliant: 'Cumple con SOC2',
|
||||
soc2_report: 'Informe SOC2',
|
||||
hipaa_or_baa_report: 'Informe HIPAA/BAA',
|
||||
},
|
||||
developers_and_platform: {
|
||||
title: 'Desarrolladores y plataforma',
|
||||
|
@ -82,7 +90,6 @@ const quota_table = {
|
|||
days_other: '{{count, number}} días',
|
||||
add_on: 'Complemento',
|
||||
tier: 'Nivel{{value, number}}: ',
|
||||
|
||||
million: '{{value, number}} millones',
|
||||
mau_tip:
|
||||
'MAU (usuarios activos mensuales) significa el número de usuarios únicos que han intercambiado al menos un token con Logto en un ciclo de facturación.',
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
const usage = {
|
||||
status_active: 'Encendido',
|
||||
status_inactive: 'Apagado',
|
||||
mau: {
|
||||
title: 'MAU',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Un MAU es un usuario único que ha intercambiado al menos un token con Logto dentro de un ciclo de facturación. Ilimitado para el Plan Pro. <a>Más información</a>',
|
||||
},
|
||||
organizations: {
|
||||
title: 'Organizaciones',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Función adicional con una tarifa fija de ${{price, number}} por mes. El precio no se ve afectado por el número de organizaciones o su nivel de actividad.',
|
||||
},
|
||||
mfa: {
|
||||
title: 'MFA',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Función adicional con una tarifa fija de ${{price, number}} por mes. El precio no se ve afectado por el número de factores de autenticación utilizados.',
|
||||
},
|
||||
enterprise_sso: {
|
||||
title: 'SSO empresarial',
|
||||
description: '{{usage}}',
|
||||
tooltip: 'Función adicional con un precio de ${{price, number}} por conexión SSO por mes.',
|
||||
},
|
||||
api_resources: {
|
||||
title: 'Recursos API',
|
||||
description: '{{usage}} <span>(Gratis para los primeros 3)</span>',
|
||||
tooltip:
|
||||
'Función adicional con un precio de ${{price, number}} por recurso por mes. Los primeros 3 recursos API son gratis.',
|
||||
},
|
||||
machine_to_machine: {
|
||||
title: 'Máquina a máquina',
|
||||
description: '{{usage}} <span>(Gratis para el primero)</span>',
|
||||
tooltip:
|
||||
'Función adicional con un precio de ${{price, number}} por aplicación por mes. La primera aplicación de máquina a máquina es gratis.',
|
||||
},
|
||||
tenant_members: {
|
||||
title: 'Miembros del inquilino',
|
||||
description: '{{usage}} <span>(Gratis para los primeros 3)</span>',
|
||||
tooltip:
|
||||
'Función adicional con un precio de ${{price, number}} por miembro por mes. Los primeros 3 miembros del inquilino son gratis.',
|
||||
},
|
||||
tokens: {
|
||||
title: 'Tokens',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Función adicional con un precio de ${{price, number}} por millón de tokens. El primer millón de tokens está incluido.',
|
||||
},
|
||||
hooks: {
|
||||
title: 'Ganchos',
|
||||
description: '{{usage}} <span>(Gratis para los primeros 10)</span>',
|
||||
tooltip:
|
||||
'Función adicional con un precio de ${{price, number}} por gancho. Los primeros 10 ganchos están incluidos.',
|
||||
},
|
||||
pricing: {
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
'Si realizas algún cambio durante el ciclo de facturación actual, tu próximo recibo puede ser ligeramente más alto durante el primer mes después del cambio. Será ${{price, number}} como precio base más los costos adicionales por el uso no facturado del ciclo actual y el cargo completo para el próximo ciclo. <a>Más información</a>',
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(usage);
|
|
@ -1,23 +1,17 @@
|
|||
const add_on = {
|
||||
/** UNTRANSLATED */
|
||||
mfa_inline_notification:
|
||||
'MFA is a ${{price, number}} per mo add-on for the {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'MFA es un complemento de ${{price, number}} por mes para el {{planName}}. Primer mes prorrateado según tu ciclo de facturación. <a>Aprende más</a>',
|
||||
footer: {
|
||||
/** UNTRANSLATED */
|
||||
api_resource:
|
||||
'Additional resources cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Los recursos adicionales cuestan <span>${{price, number}} por mes / cada uno</span>. Primer mes prorrateado según tu ciclo de facturación. <a>Aprende más</a>',
|
||||
machine_to_machine_app:
|
||||
'Additional machine-to-machine apps cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Las aplicaciones de máquina a máquina adicionales cuestan <span>${{price, number}} por mes / cada una</span>. Primer mes prorrateado según tu ciclo de facturación. <a>Aprende más</a>',
|
||||
enterprise_sso:
|
||||
'Enterprise SSO cost <span>${{price, number}} per mo / ea</span> add-on for {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'SSO empresarial es un complemento de <span>${{price, number}} por mes / cada uno</span> para {{planName}}. Primer mes prorrateado según tu ciclo de facturación. <a>Aprende más</a>',
|
||||
tenant_members:
|
||||
'Additional members cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Miembros adicionales cuestan <span>${{price, number}} por mes / cada uno</span>. Primer mes prorrateado según tu ciclo de facturación. <a>Aprende más</a>',
|
||||
organization:
|
||||
'Organization is a <span>${{price, number}} per mo</span> add-on for {{planName}} with unlimited organizations. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'La organización es un complemento de <span>${{price, number}} por mes</span> para {{planName}} con organizaciones ilimitadas. Primer mes prorrateado según tu ciclo de facturación. <a>Aprende más</a>',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import add_on from './add-on.js';
|
||||
import featured_plan_content from './featured-plan-content.js';
|
||||
import paywall from './paywall.js';
|
||||
|
||||
|
@ -41,6 +42,7 @@ const upsell = {
|
|||
'Has superado tu límite de cuota de {{item}}. Logto agregará cargos por el uso más allá de tu límite de cuota. La facturación comenzará el día en que se lance el nuevo diseño de precios del complemento. <a>Más información</a>',
|
||||
paywall,
|
||||
featured_plan_content,
|
||||
add_on,
|
||||
};
|
||||
|
||||
export default Object.freeze(upsell);
|
||||
|
|
|
@ -13,10 +13,13 @@ const user_details = {
|
|||
deleted: 'Usuario eliminado con éxito',
|
||||
reset_password: {
|
||||
reset_title: '¿Está seguro de que desea restablecer la contraseña?',
|
||||
generate_title: '¿Estás seguro de que deseas generar una contraseña?',
|
||||
content:
|
||||
'Esta acción no se puede deshacer. Esto restablecerá la información de inicio de sesión del usuario.',
|
||||
reset_complete: 'Se ha restablecido la información de inicio de sesión del usuario',
|
||||
generate_complete: 'La contraseña ha sido generada',
|
||||
new_password: 'Nueva contraseña:',
|
||||
password: 'Contraseña:',
|
||||
},
|
||||
tab_settings: 'Configuración',
|
||||
tab_roles: 'Roles de usuario',
|
||||
|
@ -29,6 +32,7 @@ const user_details = {
|
|||
field_email: 'Dirección de correo electrónico',
|
||||
field_phone: 'Número de teléfono',
|
||||
field_username: 'Nombre de usuario',
|
||||
field_password: 'Contraseña',
|
||||
field_name: 'Nombre',
|
||||
field_avatar: 'URL de imagen de avatar',
|
||||
field_avatar_placeholder: 'https://tu.dominio.cdn/avatar.png',
|
||||
|
@ -41,7 +45,9 @@ const user_details = {
|
|||
field_connectors: 'Conexiones sociales',
|
||||
field_sso_connectors: 'Conexiones empresariales',
|
||||
custom_data_invalid: 'Los datos personalizados deben ser un objeto JSON válido',
|
||||
profile_invalid: 'Profile must be a valid JSON object',
|
||||
profile_invalid: 'El perfil debe ser un objeto JSON válido',
|
||||
password_already_set: 'Contraseña ya configurada',
|
||||
no_password_set: 'No se ha configurado la contraseña',
|
||||
connectors: {
|
||||
connectors: 'Conectores',
|
||||
user_id: 'ID de usuario',
|
||||
|
@ -99,6 +105,37 @@ const user_details = {
|
|||
},
|
||||
warning_no_sign_in_identifier:
|
||||
'El usuario necesita tener al menos uno de los identificadores de inicio de sesión (nombre de usuario, correo electrónico, número de teléfono o red social) para iniciar sesión. ¿Estás seguro/a de que quieres continuar?',
|
||||
personal_access_tokens: {
|
||||
title: 'Token de acceso personal',
|
||||
title_other: 'Tokens de acceso personal',
|
||||
title_short: 'token',
|
||||
empty: 'El usuario no tiene ningún token de acceso personal.',
|
||||
create: 'Crear nuevo token',
|
||||
tip: 'Los tokens de acceso personal (PATs) proporcionan una forma segura para que los usuarios otorguen tokens de acceso sin usar sus credenciales y el inicio de sesión interactivo. Esto es útil para CI/CD, scripts o aplicaciones que necesitan acceder a recursos de forma programática. <a>Aprende más</a>',
|
||||
value: 'Valor',
|
||||
created_at: 'Creado el',
|
||||
expires_at: 'Expira el',
|
||||
never: 'Nunca',
|
||||
create_new_token: 'Crear nuevo token',
|
||||
delete_confirmation:
|
||||
'Esta acción no se puede deshacer. ¿Está seguro de que desea eliminar este token?',
|
||||
expired: 'Expirado',
|
||||
expired_tooltip: 'Este token expiró el {{date}}.',
|
||||
create_modal: {
|
||||
title: 'Crear token de acceso personal',
|
||||
expiration: 'Expiración',
|
||||
expiration_description: 'El token expirará el {{date}}.',
|
||||
expiration_description_never:
|
||||
'El token nunca expirará. Recomendamos establecer una fecha de expiración para una mayor seguridad.',
|
||||
days: '{{count}} día',
|
||||
days_other: '{{count}} días',
|
||||
created: 'El token {{name}} ha sido creado con éxito.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'Editar token de acceso personal',
|
||||
edited: 'El token {{name}} ha sido editado con éxito.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(user_details);
|
||||
|
|
|
@ -22,6 +22,8 @@ const application = {
|
|||
invalid_subdomain: 'Sous-domaine invalide.',
|
||||
custom_domain_not_found: 'Domaine personnalisé non trouvé.',
|
||||
should_delete_custom_domains_first: "Devrait d'abord supprimer les domaines personnalisés.",
|
||||
no_legacy_secret_found: "L'application n'a pas de secret hérité.",
|
||||
secret_name_exists: 'Le nom du secret existe déjà.',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -5,6 +5,7 @@ const guard = {
|
|||
"Impossible de récupérer l'identifiant du locataire à partir de la demande.",
|
||||
file_size_exceeded: 'Taille du fichier dépassée.',
|
||||
mime_type_not_allowed: "Le type MIME n'est pas autorisé.",
|
||||
not_allowed_for_admin_tenant: 'Non autorisé pour le locataire administrateur.',
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -26,10 +26,14 @@ const session = {
|
|||
'Identifiant utilisateur introuvable. Veuillez retourner en arrière et vous connecter à nouveau.',
|
||||
interaction_not_found:
|
||||
"Session d'interaction introuvable. Veuillez retourner en arrière et recommencer la session.",
|
||||
invalid_interaction_type:
|
||||
"Cette opération n'est pas prise en charge pour l'interaction actuelle. Veuillez initier une nouvelle session.",
|
||||
not_supported_for_forgot_password:
|
||||
"Cette opération n'est pas prise en charge pour la réinitialisation du mot de passe.",
|
||||
identity_conflict:
|
||||
"Conflit d'identité détecté. Veuillez initier une nouvelle session pour continuer avec une identité différente.",
|
||||
identifier_not_verified:
|
||||
"L'identifiant fourni {{identifier}} n'a pas été vérifié. Veuillez créer un enregistrement de vérification pour cet identifiant et compléter le processus de vérification.",
|
||||
mfa: {
|
||||
require_mfa_verification: 'La vérification MFA est requise pour vous connecter.',
|
||||
mfa_sign_in_only: "MFA est uniquement disponible pour l'interaction de connexion.",
|
||||
|
@ -43,6 +47,7 @@ const session = {
|
|||
backup_code_required: 'Le code de sauvegarde est requis.',
|
||||
invalid_backup_code: 'Code de sauvegarde non valide.',
|
||||
mfa_policy_not_user_controlled: "La politique MFA n'est pas contrôlée par l'utilisateur.",
|
||||
mfa_factor_not_enabled: "Le facteur MFA n'est pas activé.",
|
||||
},
|
||||
sso_enabled:
|
||||
'La connexion unique est activée pour cet e-mail donné. Veuillez vous connecter avec SSO.',
|
||||
|
|
|
@ -36,6 +36,7 @@ const user = {
|
|||
password_algorithm_required: 'Algorithme de mot de passe est requis.',
|
||||
password_and_digest:
|
||||
'Vous ne pouvez pas définir à la fois un mot de passe en texte brut et un digest de mot de passe.',
|
||||
personal_access_token_name_exists: "Le nom du jeton d'accès personnel existe déjà.",
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -34,6 +34,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
"L'identifiant d'application unique généralement généré par Logto. Il signifie également <a>client_id</a> dans OpenID Connect.",
|
||||
application_secret: "Secret de l'application",
|
||||
application_secret_other: 'Secrets de l’appli',
|
||||
redirect_uri: 'URI de redirection',
|
||||
redirect_uris: 'URIs de redirection',
|
||||
redirect_uri_placeholder: 'https://votre.site.com/app',
|
||||
|
@ -94,6 +95,10 @@ const application_details = {
|
|||
session_duration: 'Durée de la session (jours)',
|
||||
try_it: 'Essayez',
|
||||
no_organization_placeholder: 'Aucune organisation trouvée. <a>Aller aux organisations</a>',
|
||||
field_custom_data: 'Données personnalisées',
|
||||
field_custom_data_tip:
|
||||
'Informations supplémentaires personnalisées de l’application non listées dans les propriétés prédéfinies de l’application, telles que les paramètres et configurations spécifiques à l’entreprise.',
|
||||
custom_data_invalid: 'Les données personnalisées doivent être un objet JSON valide.',
|
||||
branding: {
|
||||
name: 'Marque',
|
||||
description:
|
||||
|
@ -165,6 +170,33 @@ const application_details = {
|
|||
search: 'Rechercher par nom de rôle, description ou ID',
|
||||
empty: 'Aucun rôle disponible',
|
||||
},
|
||||
secrets: {
|
||||
value: 'Valeur',
|
||||
empty: "L'application n'a aucun secret.",
|
||||
created_at: 'Créé à',
|
||||
expires_at: 'Expire à',
|
||||
never: 'Jamais',
|
||||
create_new_secret: 'Créer un nouveau secret',
|
||||
delete_confirmation:
|
||||
'Cette action ne peut pas être annulée. Êtes-vous sûr de vouloir supprimer ce secret ?',
|
||||
legacy_secret: 'Secret hérité',
|
||||
expired: 'Expiré',
|
||||
expired_tooltip: 'Ce secret a expiré le {{date}}.',
|
||||
create_modal: {
|
||||
title: "Créer un secret d'application",
|
||||
expiration: 'Expiration',
|
||||
expiration_description: 'Le secret expirera le {{date}}.',
|
||||
expiration_description_never:
|
||||
"Le secret n'expirera jamais. Nous recommandons de définir une date d'expiration pour une sécurité renforcée.",
|
||||
days: '{{count}} jour',
|
||||
days_other: '{{count}} jours',
|
||||
created: 'Le secret {{name}} a été créé avec succès.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: "Modifier le secret de l'application",
|
||||
edited: 'Le secret {{name}} a été modifié avec succès.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -47,8 +47,7 @@ const general = {
|
|||
continue: 'Continuez',
|
||||
page_info: '{{min, number}}-{{max, number}} de {{total, number}}',
|
||||
learn_more: 'En savoir plus',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_one: '{{count, number}} erreur',
|
||||
tab_error_other: '{{count, number}} erreurs',
|
||||
skip_for_now: 'Passer pour l`instant',
|
||||
remove: 'Supprimer',
|
||||
|
@ -72,6 +71,8 @@ const general = {
|
|||
delete_field: 'Supprimer {{field}}',
|
||||
coming_soon: 'Bientôt disponible',
|
||||
or: 'Ou',
|
||||
reset: 'Réinitialiser',
|
||||
generate: 'Générer',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -43,6 +43,10 @@ const jwt_claims = {
|
|||
title: 'Données du jeton',
|
||||
subtitle: "Utilisez le paramètre d'entrée `token` pour le payload du jeton d'accès actuel. ",
|
||||
},
|
||||
api_context: {
|
||||
title: "Contexte API : contrôle d'accès",
|
||||
subtitle: 'Utilisez la méthode `api.denyAccess` pour rejeter la demande de jeton.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: 'Récupérer des données externes',
|
||||
subtitle:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: 'Plan Gratuit',
|
||||
|
@ -7,25 +8,20 @@ const subscription = {
|
|||
'Pour les projets secondaires et les premiers essais de Logto. Aucune carte de crédit.',
|
||||
pro_plan: 'Plan Professionnel',
|
||||
pro_plan_description: 'Pour les entreprises qui bénéficient de Logto sans soucis.',
|
||||
enterprise: 'Entreprise',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'Plan Entreprise',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'Pour les grandes organisations nécessitant des fonctionnalités avancées, une personnalisation complète et un support dédié afin de soutenir les applications critiques. Adapté à vos besoins pour une sécurité, une conformité et une performance optimales.',
|
||||
admin_plan: 'Plan Admin',
|
||||
dev_plan: 'Plan Développement',
|
||||
current_plan: 'Plan Actuel',
|
||||
current_plan_description:
|
||||
"Voici votre plan actuel. Vous pouvez facilement consulter l'utilisation de votre plan, vérifier votre prochaine facture et apporter des modifications à votre plan si nécessaire.",
|
||||
plan_usage: 'Utilisation du plan',
|
||||
plan_cycle: "Cycle du plan: {{period}}. L'utilisation est renouvelée le {{renewDate}}.",
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: 'Votre prochaine facture',
|
||||
next_bill_hint: 'Pour en savoir plus sur le calcul, veuillez vous référer à cet <a>article</a>.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
'Les prix affichés ici sont hors taxes et peuvent être soumis à un léger délai de mise à jour. Le montant des taxes sera calculé en fonction des informations que vous fournissez et des exigences réglementaires locales, et sera indiqué sur vos factures.',
|
||||
manage_payment: 'Gérer le Paiement',
|
||||
overfill_quota_warning:
|
||||
'Vous avez atteint votre limite de quota. Pour éviter tout problème, passez à un plan supérieur.',
|
||||
|
@ -75,6 +71,7 @@ const subscription = {
|
|||
subscription_check_timeout:
|
||||
"La vérification d'abonnement a expiré. Veuillez actualiser ultérieurement.",
|
||||
no_subscription: 'Aucun abonnement',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
|
@ -37,7 +37,6 @@ const quota_table = {
|
|||
built_in_email_connector: 'Connecteur email intégré',
|
||||
mfa: 'Authentification multi-facteurs',
|
||||
sso: 'SSO entreprise',
|
||||
|
||||
impersonation: "Usurpation d'identité",
|
||||
},
|
||||
user_management: {
|
||||
|
@ -59,12 +58,21 @@ const quota_table = {
|
|||
just_in_time_provisioning: 'Fourniture juste-à-temps',
|
||||
},
|
||||
support: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Support',
|
||||
title: 'Assistance',
|
||||
community: 'Communauté',
|
||||
customer_ticket: 'Ticket de support',
|
||||
premium: 'Premium',
|
||||
email_ticket_support: 'Support par ticket électronique',
|
||||
discord_private_channel: 'Canal privé Discord',
|
||||
premium_support: 'Support premium',
|
||||
developer_onboarding: 'Intégration des développeurs',
|
||||
solution_engineer_support: 'Support ingénieur solutions',
|
||||
sla: 'SLA',
|
||||
dedicated_computing_resources: 'Ressources informatiques dédiées',
|
||||
},
|
||||
compliance: {
|
||||
title: 'Conformité',
|
||||
soc2_compliant: 'Conforme SOC2',
|
||||
soc2_report: 'Rapport SOC2',
|
||||
hipaa_or_baa_report: 'Rapport HIPAA/BAA',
|
||||
},
|
||||
|
@ -82,7 +90,6 @@ const quota_table = {
|
|||
days_other: '{{count, number}} jours',
|
||||
add_on: 'Module complémentaire',
|
||||
tier: 'Niveau{{value, number}} :',
|
||||
|
||||
million: '{{value, number}} million',
|
||||
mau_tip:
|
||||
"MAU (utilisateurs actifs mensuels) signifie le nombre d'utilisateurs uniques qui ont échangé au moins un jeton avec Logto au cours d'un cycle de facturation.",
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
const usage = {
|
||||
status_active: 'Activé',
|
||||
status_inactive: 'Désactivé',
|
||||
mau: {
|
||||
title: 'MAU',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Un MAU est un utilisateur unique qui a échangé au moins un jeton avec Logto pendant un cycle de facturation. Illimité pour le plan Pro. <a>En savoir plus</a>',
|
||||
},
|
||||
organizations: {
|
||||
title: 'Organisations',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
"Fonctionnalité en supplément à un tarif fixe de ${{price, number}} par mois. Le prix n'est pas affecté par le nombre d'organisations ou leur niveau d'activité.",
|
||||
},
|
||||
mfa: {
|
||||
title: 'MFA',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
"Fonctionnalité en supplément à un tarif fixe de ${{price, number}} par mois. Le prix n'est pas affecté par le nombre de facteurs d'authentification utilisés.",
|
||||
},
|
||||
enterprise_sso: {
|
||||
title: "SSO d'entreprise",
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Fonctionnalité en supplément avec un prix de ${{price, number}} par connexion SSO par mois.',
|
||||
},
|
||||
api_resources: {
|
||||
title: 'Ressources API',
|
||||
description: '{{usage}} <span>(Gratuit pour les 3 premiers)</span>',
|
||||
tooltip:
|
||||
'Fonctionnalité en supplément au prix de ${{price, number}} par ressource par mois. Les 3 premières ressources API sont gratuites.',
|
||||
},
|
||||
machine_to_machine: {
|
||||
title: 'Machine à machine',
|
||||
description: '{{usage}} <span>(Gratuit pour le premier)</span>',
|
||||
tooltip:
|
||||
'Fonctionnalité en supplément au prix de ${{price, number}} par application par mois. La première application machine à machine est gratuite.',
|
||||
},
|
||||
tenant_members: {
|
||||
title: 'Membres du locataire',
|
||||
description: '{{usage}} <span>(Gratuit pour les 3 premiers)</span>',
|
||||
tooltip:
|
||||
'Fonctionnalité en supplément au prix de ${{price, number}} par membre par mois. Les 3 premiers membres du locataire sont gratuits.',
|
||||
},
|
||||
tokens: {
|
||||
title: 'Jetons',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Fonctionnalité en supplément au prix de ${{price, number}} par million de jetons. Le premier million de jetons est inclus.',
|
||||
},
|
||||
hooks: {
|
||||
title: 'Hooks',
|
||||
description: '{{usage}} <span>(Gratuit pour les 10 premiers)</span>',
|
||||
tooltip:
|
||||
'Fonctionnalité en supplément au prix de ${{price, number}} par hook. Les 10 premiers hooks sont inclus.',
|
||||
},
|
||||
pricing: {
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
"Si vous effectuez des modifications pendant le cycle de facturation actuel, votre prochaine facture peut être légèrement plus élevée pour le premier mois suivant la modification. Elle sera de ${{price, number}} prix de base plus le coût des fonctionnalités en supplément pour l'utilisation non facturée du cycle actuel et la charge complète pour le cycle suivant. <a>En savoir plus</a>",
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(usage);
|
|
@ -1,23 +1,17 @@
|
|||
const add_on = {
|
||||
/** UNTRANSLATED */
|
||||
mfa_inline_notification:
|
||||
'MFA is a ${{price, number}} per mo add-on for the {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
"L'authentification multifacteur (MFA) est un complément à ${{price, number}} par mois pour le {{planName}}. Le premier mois est calculé au prorata en fonction de votre cycle de facturation. <a>En savoir plus</a>",
|
||||
footer: {
|
||||
/** UNTRANSLATED */
|
||||
api_resource:
|
||||
'Additional resources cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Les ressources supplémentaires coûtent <span>${{price, number}} par mois / chacune</span>. Le premier mois est calculé au prorata en fonction de votre cycle de facturation. <a>En savoir plus</a>',
|
||||
machine_to_machine_app:
|
||||
'Additional machine-to-machine apps cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Les applications machine-à-machine supplémentaires coûtent <span>${{price, number}} par mois / chacune</span>. Le premier mois est calculé au prorata en fonction de votre cycle de facturation. <a>En savoir plus</a>',
|
||||
enterprise_sso:
|
||||
'Enterprise SSO cost <span>${{price, number}} per mo / ea</span> add-on for {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
"Le SSO d'entreprise coûte <span>${{price, number}} par mois / chacune</span> en option pour {{planName}}. Le premier mois est calculé au prorata en fonction de votre cycle de facturation. <a>En savoir plus</a>",
|
||||
tenant_members:
|
||||
'Additional members cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Les membres supplémentaires coûtent <span>${{price, number}} par mois / chacun</span>. Le premier mois est calculé au prorata en fonction de votre cycle de facturation. <a>En savoir plus</a>',
|
||||
organization:
|
||||
'Organization is a <span>${{price, number}} per mo</span> add-on for {{planName}} with unlimited organizations. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
"L'organisation est un complément à <span>${{price, number}} par mois</span> pour {{planName}} avec les organisations illimitées. Le premier mois est calculé au prorata en fonction de votre cycle de facturation. <a>En savoir plus</a>",
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import add_on from './add-on.js';
|
||||
import featured_plan_content from './featured-plan-content.js';
|
||||
import paywall from './paywall.js';
|
||||
|
||||
|
@ -41,6 +42,7 @@ const upsell = {
|
|||
"Vous avez dépassé votre limite de quota {{item}}. Logto ajoutera des frais pour l'utilisation au-delà de votre limite de quota. La facturation commencera le jour de la publication du nouveau design tarifaire de l'extension. <a>En savoir plus</a>",
|
||||
paywall,
|
||||
featured_plan_content,
|
||||
add_on,
|
||||
};
|
||||
|
||||
export default Object.freeze(upsell);
|
||||
|
|
|
@ -13,10 +13,13 @@ const user_details = {
|
|||
deleted: "L'utilisateur a été supprimé avec succès",
|
||||
reset_password: {
|
||||
reset_title: 'Êtes-vous sûr de vouloir réinitialiser le mot de passe ?',
|
||||
generate_title: 'Êtes-vous sûr de vouloir générer un mot de passe ?',
|
||||
content:
|
||||
"Cette action ne peut être annulée. Cette action réinitialisera les informations de connexion de l'utilisateur.",
|
||||
reset_complete: 'Cet utilisateur a été réinitialisé',
|
||||
generate_complete: 'Le mot de passe a été généré',
|
||||
new_password: 'Nouveau mot de passe :',
|
||||
password: 'Mot de passe :',
|
||||
},
|
||||
tab_settings: 'Paramètres',
|
||||
tab_roles: 'Rôles utilisateur',
|
||||
|
@ -29,6 +32,7 @@ const user_details = {
|
|||
field_email: 'Adresse e-mail',
|
||||
field_phone: 'Numéro de téléphone',
|
||||
field_username: "Nom d'utilisateur",
|
||||
field_password: 'Mot de passe',
|
||||
field_name: 'Nom',
|
||||
field_avatar: "URL de l'image avatar",
|
||||
field_avatar_placeholder: 'https://votre.domaine.cdn/avatar.png',
|
||||
|
@ -42,6 +46,8 @@ const user_details = {
|
|||
field_sso_connectors: "Connexions d'entreprise",
|
||||
custom_data_invalid: 'Les données personnalisées doivent être un objet JSON valide.',
|
||||
profile_invalid: 'Le profil doit être un objet JSON valide.',
|
||||
password_already_set: 'Mot de passe déjà défini',
|
||||
no_password_set: 'Pas de mot de passe défini',
|
||||
connectors: {
|
||||
connectors: 'Connecteurs',
|
||||
user_id: 'ID utilisateur',
|
||||
|
@ -100,6 +106,37 @@ const user_details = {
|
|||
},
|
||||
warning_no_sign_in_identifier:
|
||||
"L'utilisateur doit avoir au moins l'un des identifiants de connexion (nom d'utilisateur, e-mail, numéro de téléphone ou compte social) pour se connecter. Êtes-vous sûr(e) de vouloir continuer?",
|
||||
personal_access_tokens: {
|
||||
title: "Jeton d'accès personnel",
|
||||
title_other: "Jetons d'accès personnel",
|
||||
title_short: 'jeton',
|
||||
empty: "L'utilisateur ne possède aucun jeton d'accès personnel.",
|
||||
create: 'Créer un nouveau jeton',
|
||||
tip: "Les jetons d'accès personnel (PAT) offrent un moyen sécurisé pour les utilisateurs d'accorder des jetons d'accès sans utiliser leurs identifiants et connexion interactive. Ceci est utile pour les CI/CD, scripts ou applications qui doivent accéder aux ressources de manière programmatique. <a>En savoir plus</a>",
|
||||
value: 'Valeur',
|
||||
created_at: 'Créé le',
|
||||
expires_at: 'Expire le',
|
||||
never: 'Jamais',
|
||||
create_new_token: 'Créer un nouveau jeton',
|
||||
delete_confirmation:
|
||||
'Cette action ne peut être annulée. Êtes-vous sûr de vouloir supprimer ce jeton ?',
|
||||
expired: 'Expiré',
|
||||
expired_tooltip: 'Ce jeton a expiré le {{date}}.',
|
||||
create_modal: {
|
||||
title: "Créer un jeton d'accès personnel",
|
||||
expiration: 'Expiration',
|
||||
expiration_description: 'Le jeton expirera le {{date}}.',
|
||||
expiration_description_never:
|
||||
"Le jeton n'expirera jamais. Nous recommandons de définir une date d'expiration pour une sécurité renforcée.",
|
||||
days: '{{count}} jour',
|
||||
days_other: '{{count}} jours',
|
||||
created: 'Le jeton {{name}} a été créé avec succès.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: "Éditer le jeton d'accès personnel",
|
||||
edited: 'Le jeton {{name}} a été modifié avec succès.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(user_details);
|
||||
|
|
|
@ -21,6 +21,8 @@ const application = {
|
|||
invalid_subdomain: 'Sottodominio non valido.',
|
||||
custom_domain_not_found: 'Dominio personalizzato non trovato.',
|
||||
should_delete_custom_domains_first: 'Dovresti eliminare prima i domini personalizzati.',
|
||||
no_legacy_secret_found: "L'applicazione non ha un segreto legacy.",
|
||||
secret_name_exists: 'Il nome del segreto esiste già.',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -4,6 +4,7 @@ const guard = {
|
|||
can_not_get_tenant_id: "Impossibile ottenere l'ID dell'inquilino dalla richiesta.",
|
||||
file_size_exceeded: 'Dimensione del file superata.',
|
||||
mime_type_not_allowed: 'Il tipo MIME non è consentito.',
|
||||
not_allowed_for_admin_tenant: "Non consentito per l'inquilino amministratore.",
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -24,9 +24,13 @@ const session = {
|
|||
identifier_not_found: 'Identificativo utente non trovato. Torna indietro e accedi nuovamente.',
|
||||
interaction_not_found:
|
||||
'Sessione di interazione non trovata. Torna indietro e avvia la sessione nuovamente.',
|
||||
invalid_interaction_type:
|
||||
"Questa operazione non è supportata per l'interazione corrente. Si prega di avviare una nuova sessione.",
|
||||
not_supported_for_forgot_password: 'Questa operazione non è supportata per il recupero password.',
|
||||
identity_conflict:
|
||||
"Rilevato conflitto di identità. Si prega di avviare una nuova sessione per procedere con un'altra identità.",
|
||||
identifier_not_verified:
|
||||
"L'identificativo fornito {{identifier}} non è stato verificato. Si prega di creare un record di verifica per questo identificativo e completare il processo di verifica.",
|
||||
mfa: {
|
||||
require_mfa_verification: 'La verifica MFA è richiesta per accedere.',
|
||||
mfa_sign_in_only: "MFA è disponibile solo per l'interazione di accesso.",
|
||||
|
@ -40,6 +44,7 @@ const session = {
|
|||
backup_code_required: 'Il codice di backup è richiesto.',
|
||||
invalid_backup_code: 'Codice di backup non valido.',
|
||||
mfa_policy_not_user_controlled: "La politica MFA non è controllata dall'utente.",
|
||||
mfa_factor_not_enabled: 'Il fattore MFA non è abilitato.',
|
||||
},
|
||||
sso_enabled: "L'accesso singolo è abilitato per questa email. Accedi con SSO.",
|
||||
};
|
||||
|
|
|
@ -35,6 +35,7 @@ const user = {
|
|||
backup_code_already_in_use: 'Il codice di backup è già in uso.',
|
||||
password_algorithm_required: "L'algoritmo della password è richiesto.",
|
||||
password_and_digest: 'Non puoi impostare sia la password in chiaro che il digest della password.',
|
||||
personal_access_token_name_exists: 'Il nome del token di accesso personale esiste già.',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -34,6 +34,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
'L\'identificatore univoco dell\'applicazione generato normalmente da Logto. Sta anche per "<a>client_id</a>" in OpenID Connect.',
|
||||
application_secret: 'Secret App',
|
||||
application_secret_other: "Segreti dell'app",
|
||||
redirect_uri: 'URI di reindirizzamento',
|
||||
redirect_uris: 'URI di reindirizzamento',
|
||||
redirect_uri_placeholder: 'https://il-tuo-sito-web.com/la-tua-app',
|
||||
|
@ -94,6 +95,10 @@ const application_details = {
|
|||
session_duration: 'Durata della sessione (giorni)',
|
||||
try_it: 'Provalo',
|
||||
no_organization_placeholder: 'Nessuna organizzazione trovata. <a>Vai alle organizzazioni</a>',
|
||||
field_custom_data: 'Dati personalizzati',
|
||||
field_custom_data_tip:
|
||||
"Ulteriori informazioni personalizzate sull'applicazione non elencate nelle proprietà predefinite dell'applicazione, come impostazioni e configurazioni specifiche del business.",
|
||||
custom_data_invalid: 'I dati personalizzati devono essere un oggetto JSON valido',
|
||||
branding: {
|
||||
name: 'Marchio',
|
||||
description: "Personalizza il nome e il logo dell'applicazione sullo schermo del consenso.",
|
||||
|
@ -165,6 +170,33 @@ const application_details = {
|
|||
search: 'Cerca per nome ruolo, descrizione o ID',
|
||||
empty: 'Nessun ruolo disponibile',
|
||||
},
|
||||
secrets: {
|
||||
value: 'Valore',
|
||||
empty: "L'applicazione non ha segreti.",
|
||||
created_at: 'Creato il',
|
||||
expires_at: 'Scade il',
|
||||
never: 'Mai',
|
||||
create_new_secret: 'Crea nuovo segreto',
|
||||
delete_confirmation:
|
||||
'Questa azione non può essere annullata. Sei sicuro di voler eliminare questo segreto?',
|
||||
legacy_secret: 'Segreto legacy',
|
||||
expired: 'Scaduto',
|
||||
expired_tooltip: 'Questo segreto è scaduto il {{date}}.',
|
||||
create_modal: {
|
||||
title: "Crea segreto dell'applicazione",
|
||||
expiration: 'Scadenza',
|
||||
expiration_description: 'Il segreto scadrà il {{date}}.',
|
||||
expiration_description_never:
|
||||
'Il segreto non scadrà mai. Si consiglia di impostare una data di scadenza per una maggiore sicurezza.',
|
||||
days: '{{count}} giorno',
|
||||
days_other: '{{count}} giorni',
|
||||
created: 'Il segreto {{name}} è stato creato con successo.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: "Modifica segreto dell'applicazione",
|
||||
edited: 'Il segreto {{name}} è stato modificato con successo.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -47,8 +47,7 @@ const general = {
|
|||
continue: 'Continua',
|
||||
page_info: '{{min, number}}-{{max, number}} di {{total, number}}',
|
||||
learn_more: 'Scopri di più',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_one: '{{count, number}} errore',
|
||||
tab_error_other: '{{count, number}} errori',
|
||||
skip_for_now: 'Salta per ora',
|
||||
remove: 'Rimuovi',
|
||||
|
@ -72,6 +71,8 @@ const general = {
|
|||
delete_field: 'Elimina {{field}}',
|
||||
coming_soon: 'Prossimamente',
|
||||
or: 'O',
|
||||
reset: 'Ripristina',
|
||||
generate: 'Genera',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -43,6 +43,10 @@ const jwt_claims = {
|
|||
subtitle:
|
||||
'Utilizza il parametro di input `token` per il payload corrente del token di accesso.',
|
||||
},
|
||||
api_context: {
|
||||
title: 'Contesto API: controllo accessi',
|
||||
subtitle: 'Usa il metodo `api.denyAccess` per rifiutare la richiesta di token.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: 'Recupera dati esterni',
|
||||
subtitle: 'Incorpora dati direttamente dai tuoi API esterni nelle richieste.',
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: 'Piano gratuito',
|
||||
|
@ -7,25 +8,20 @@ const subscription = {
|
|||
'Per progetti secondari e prove iniziali di Logto. Nessuna carta di credito.',
|
||||
pro_plan: 'Piano Pro',
|
||||
pro_plan_description: 'Per aziende che beneficiano di Logto senza preoccupazioni.',
|
||||
enterprise: 'Azienda',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'Piano Azienda',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'Per organizzazioni su larga scala che richiedono funzionalità avanzate, personalizzazione completa e supporto dedicato per applicazioni mission-critical. Su misura per le tue esigenze per la massima sicurezza, conformità e prestazioni.',
|
||||
admin_plan: 'Piano amministratore',
|
||||
dev_plan: 'Piano di sviluppo',
|
||||
current_plan: 'Piano attuale',
|
||||
current_plan_description:
|
||||
"Ecco il tuo piano attuale. Puoi facilmente visualizzare l'utilizzo del tuo piano, controllare la tua prossima fattura e apportare modifiche al piano, se necessario.",
|
||||
plan_usage: 'Utilizzo del piano',
|
||||
plan_cycle: "Ciclo del piano: {{period}}. L'utilizzo si rinnova il {{renewDate}}.",
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: 'La tua prossima fattura',
|
||||
next_bill_hint: 'Per saperne di più sul calcolo, consulta questo <a>articolo</a>.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
"I prezzi visualizzati qui sono al netto delle tasse e possono essere soggetti a un leggero ritardo negli aggiornamenti. L'importo fiscale sarà calcolato in base alle informazioni fornite e ai requisiti normativi locali, e sarà mostrato nelle tue fatture.",
|
||||
manage_payment: 'Gestisci pagamento',
|
||||
overfill_quota_warning:
|
||||
"Hai raggiunto il limite del tuo contingente. Per evitare eventuali problemi, esegui l'upgrade del piano.",
|
||||
|
@ -75,6 +71,7 @@ const subscription = {
|
|||
subscription_check_timeout:
|
||||
"Il controllo dell'abbonamento è scaduto. Si prega di riprovare più tardi.",
|
||||
no_subscription: 'Nessuna sottoscrizione',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
|
@ -37,7 +37,6 @@ const quota_table = {
|
|||
built_in_email_connector: 'Connettore e-mail integrato',
|
||||
mfa: 'Autenticazione a più fattori',
|
||||
sso: 'SSO aziendale',
|
||||
|
||||
impersonation: 'Impersonificazione',
|
||||
},
|
||||
user_management: {
|
||||
|
@ -59,12 +58,21 @@ const quota_table = {
|
|||
just_in_time_provisioning: 'Provisioning just-in-time',
|
||||
},
|
||||
support: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Support',
|
||||
title: 'Supporto',
|
||||
community: 'Community',
|
||||
customer_ticket: 'Ticket di assistenza',
|
||||
premium: 'Premium',
|
||||
email_ticket_support: 'Supporto tramite ticket e-mail',
|
||||
discord_private_channel: 'Canale privato su Discord',
|
||||
premium_support: 'Supporto premium',
|
||||
developer_onboarding: 'Onboarding sviluppatori',
|
||||
solution_engineer_support: 'Supporto ingegnere soluzioni',
|
||||
sla: 'SLA',
|
||||
dedicated_computing_resources: 'Risorse di calcolo dedicate',
|
||||
},
|
||||
compliance: {
|
||||
title: 'Conformità',
|
||||
soc2_compliant: 'Conforme SOC2',
|
||||
soc2_report: 'Rapporto SOC2',
|
||||
hipaa_or_baa_report: 'Rapporto HIPAA/BAA',
|
||||
},
|
||||
|
@ -82,7 +90,6 @@ const quota_table = {
|
|||
days_other: '{{count, number}} giorni',
|
||||
add_on: 'Aggiuntiva',
|
||||
tier: 'Livello{{value, number}}: ',
|
||||
|
||||
million: '{{value, number}} milioni',
|
||||
mau_tip:
|
||||
'MAU (utenti attivi mensili) significa il numero di utenti unici che hanno scambiato almeno un token con Logto in un ciclo di fatturazione.',
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
const usage = {
|
||||
status_active: 'Attivo',
|
||||
status_inactive: 'Non attivo',
|
||||
mau: {
|
||||
title: 'MAU',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Un MAU è un utente unico che ha scambiato almeno un token con Logto durante un ciclo di fatturazione. Illimitato per il piano Pro. <a>Scopri di più</a>',
|
||||
},
|
||||
organizations: {
|
||||
title: 'Organizzazioni',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con una tariffa fissa di ${{price, number}} al mese. Il prezzo non è influenzato dal numero di organizzazioni o dal loro livello di attività.',
|
||||
},
|
||||
mfa: {
|
||||
title: 'MFA',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con una tariffa fissa di ${{price, number}} al mese. Il prezzo non è influenzato dal numero di fattori di autenticazione utilizzati.',
|
||||
},
|
||||
enterprise_sso: {
|
||||
title: 'SSO aziendale',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con un costo di ${{price, number}} per connessione SSO al mese.',
|
||||
},
|
||||
api_resources: {
|
||||
title: 'Risorse API',
|
||||
description: '{{usage}} <span>(Gratis per i primi 3)</span>',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con un prezzo di ${{price, number}} per risorsa al mese. Le prime 3 risorse API sono gratuite.',
|
||||
},
|
||||
machine_to_machine: {
|
||||
title: 'Macchina a macchina',
|
||||
description: '{{usage}} <span>(Gratis per il primo)</span>',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con un prezzo di ${{price, number}} per app al mese. La prima app macchina a macchina è gratuita.',
|
||||
},
|
||||
tenant_members: {
|
||||
title: 'Membri del tenant',
|
||||
description: '{{usage}} <span>(Gratis per i primi 3)</span>',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con un prezzo di ${{price, number}} per membro al mese. I primi 3 membri del tenant sono gratuiti.',
|
||||
},
|
||||
tokens: {
|
||||
title: 'Token',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con un prezzo di ${{price, number}} per milione di token. Il primo milione di token è incluso.',
|
||||
},
|
||||
hooks: {
|
||||
title: 'Hook',
|
||||
description: '{{usage}} <span>(Gratis per i primi 10)</span>',
|
||||
tooltip:
|
||||
'Funzionalità aggiuntiva con un prezzo di ${{price, number}} per hook. I primi 10 hook sono inclusi.',
|
||||
},
|
||||
pricing: {
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
"Se effettui modifiche durante il ciclo di fatturazione corrente, la tua prossima fattura potrebbe essere leggermente più alta per il primo mese dopo la modifica. Sarà ${{price, number}} prezzo base più i costi aggiuntivi per l'utilizzo non fatturato dal ciclo corrente e l'intero addebito per il ciclo successivo. <a>Scopri di più</a>",
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(usage);
|
|
@ -1,23 +1,17 @@
|
|||
const add_on = {
|
||||
/** UNTRANSLATED */
|
||||
mfa_inline_notification:
|
||||
'MFA is a ${{price, number}} per mo add-on for the {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'MFA è un supplemento di ${{price, number}} al mese per il {{planName}}. Il primo mese è calcolato proporzionalmente in base al tuo ciclo di fatturazione. <a>Scopri di più</a>',
|
||||
footer: {
|
||||
/** UNTRANSLATED */
|
||||
api_resource:
|
||||
'Additional resources cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Le risorse aggiuntive costano <span>${{price, number}} al mese / ciascuna</span>. Il primo mese è calcolato proporzionalmente in base al tuo ciclo di fatturazione. <a>Scopri di più</a>',
|
||||
machine_to_machine_app:
|
||||
'Additional machine-to-machine apps cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Le app aggiuntive da macchina a macchina costano <span>${{price, number}} al mese / ciascuna</span>. Il primo mese è calcolato proporzionalmente in base al tuo ciclo di fatturazione. <a>Scopri di più</a>',
|
||||
enterprise_sso:
|
||||
'Enterprise SSO cost <span>${{price, number}} per mo / ea</span> add-on for {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'SSO aziendale è un supplemento di <span>${{price, number}} al mese / ciascuna</span> per {{planName}}. Il primo mese è calcolato proporzionalmente in base al tuo ciclo di fatturazione. <a>Scopri di più</a>',
|
||||
tenant_members:
|
||||
'Additional members cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'I membri aggiuntivi costano <span>${{price, number}} al mese / ciascuno</span>. Il primo mese è calcolato proporzionalmente in base al tuo ciclo di fatturazione. <a>Scopri di più</a>',
|
||||
organization:
|
||||
'Organization is a <span>${{price, number}} per mo</span> add-on for {{planName}} with unlimited organizations. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
"L'organizzazione è un supplemento di <span>${{price, number}} al mese</span> per {{planName}} con organizzazioni illimitate. Il primo mese è calcolato proporzionalmente in base al tuo ciclo di fatturazione. <a>Scopri di più</a>",
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import add_on from './add-on.js';
|
||||
import featured_plan_content from './featured-plan-content.js';
|
||||
import paywall from './paywall.js';
|
||||
|
||||
|
@ -41,6 +42,7 @@ const upsell = {
|
|||
"Hai superato il limite di quota {{item}}. Logto aggiungerà addebiti per l'uso oltre il limite di quota. La fatturazione inizierà il giorno in cui verrà rilasciato il nuovo design dei prezzi dell'addon. <a>Ulteriori informazioni</a>",
|
||||
paywall,
|
||||
featured_plan_content,
|
||||
add_on,
|
||||
};
|
||||
|
||||
export default Object.freeze(upsell);
|
||||
|
|
|
@ -13,10 +13,13 @@ const user_details = {
|
|||
deleted: "L'utente è stato eliminato con successo",
|
||||
reset_password: {
|
||||
reset_title: 'Sei sicuro di voler reimpostare la password?',
|
||||
generate_title: 'Sei sicuro di voler generare una password?',
|
||||
content:
|
||||
"Questa azione non può essere annullata. Questo reimposterà le informazioni di accesso dell'utente.",
|
||||
reset_complete: "L'utente è stato reimpostato",
|
||||
generate_complete: 'La password è stata generata',
|
||||
new_password: 'Nuova password:',
|
||||
password: 'Password:',
|
||||
},
|
||||
tab_settings: 'Impostazioni',
|
||||
tab_roles: 'Ruoli utente',
|
||||
|
@ -29,6 +32,7 @@ const user_details = {
|
|||
field_email: 'Indirizzo email',
|
||||
field_phone: 'Numero di telefono',
|
||||
field_username: 'Nome utente',
|
||||
field_password: 'Password',
|
||||
field_name: 'Nome',
|
||||
field_avatar: "URL dell'immagine dell'avatar",
|
||||
field_avatar_placeholder: 'https://il-tuo-dominio.cdn/avatar.png',
|
||||
|
@ -42,6 +46,8 @@ const user_details = {
|
|||
field_sso_connectors: 'Connessioni enterprise',
|
||||
custom_data_invalid: 'I dati personalizzati devono essere un oggetto JSON valido',
|
||||
profile_invalid: 'Il profilo deve essere un oggetto JSON valido',
|
||||
password_already_set: 'Password già impostata',
|
||||
no_password_set: 'Nessuna password impostata',
|
||||
connectors: {
|
||||
connectors: 'Connettori',
|
||||
user_id: 'ID utente',
|
||||
|
@ -99,6 +105,37 @@ const user_details = {
|
|||
},
|
||||
warning_no_sign_in_identifier:
|
||||
"L'utente deve avere almeno uno degli identificatori di accesso (nome utente, email, numero di telefono, o social) per accedere. Sei sicuro di voler continuare?",
|
||||
personal_access_tokens: {
|
||||
title: 'Token di accesso personale',
|
||||
title_other: 'Token di accesso personali',
|
||||
title_short: 'token',
|
||||
empty: "L'utente non ha token di accesso personali.",
|
||||
create: 'Crea nuovo token',
|
||||
tip: 'I token di accesso personali (PAT) forniscono un modo sicuro per consentire agli utenti di concedere token di accesso senza utilizzare le loro credenziali e il login interattivo. Questo è utile per CI/CD, script o applicazioni che necessitano di accedere alle risorse in modo programmatico. <a>Per saperne di più</a>',
|
||||
value: 'Valore',
|
||||
created_at: 'Creato il',
|
||||
expires_at: 'Scade il',
|
||||
never: 'Mai',
|
||||
create_new_token: 'Crea nuovo token',
|
||||
delete_confirmation:
|
||||
'Questa azione non può essere annullata. Sei sicuro di voler eliminare questo token?',
|
||||
expired: 'Scaduto',
|
||||
expired_tooltip: 'Questo token è scaduto il {{date}}.',
|
||||
create_modal: {
|
||||
title: 'Crea token di accesso personale',
|
||||
expiration: 'Scadenza',
|
||||
expiration_description: 'Il token scadrà il {{date}}.',
|
||||
expiration_description_never:
|
||||
'Il token non scadrà mai. Si consiglia di impostare una data di scadenza per una maggiore sicurezza.',
|
||||
days: '{{count}} giorno',
|
||||
days_other: '{{count}} giorni',
|
||||
created: 'Il token {{name}} è stato creato con successo.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'Modifica token di accesso personale',
|
||||
edited: 'Il token {{name}} è stato modificato con successo.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(user_details);
|
||||
|
|
|
@ -4,14 +4,14 @@ const application = {
|
|||
invalid_role_type:
|
||||
'ユーザータイプのロールをマシン間アプリケーションに割り当てることはできません。',
|
||||
invalid_third_party_application_type:
|
||||
'伝統的なWebアプリケーションにのみ、サードパーティアプリとしてマークできます。',
|
||||
'伝統的な Web アプリケーションにのみ、サードパーティアプリとしてマークできます。',
|
||||
third_party_application_only: 'この機能はサードパーティアプリケーションにのみ利用可能です。',
|
||||
user_consent_scopes_not_found: '無効なユーザー同意スコープ。',
|
||||
consent_management_api_scopes_not_allowed: '管理APIスコープは許可されていません。',
|
||||
consent_management_api_scopes_not_allowed: '管理 API スコープは許可されていません。',
|
||||
protected_app_metadata_is_required: '保護されたアプリケーションメタデータが必要です。',
|
||||
protected_app_not_configured:
|
||||
'保護されたアプリケーションプロバイダーが構成されていません。この機能はオープンソースバージョンでは利用できません。',
|
||||
cloudflare_unknown_error: 'Cloudflare APIをリクエスト中に不明なエラーが発生しました',
|
||||
cloudflare_unknown_error: 'Cloudflare API をリクエスト中に不明なエラーが発生しました',
|
||||
protected_application_only: 'この機能は保護されたアプリケーションにのみ利用可能です。',
|
||||
protected_application_misconfigured: '保護されたアプリケーションの設定が間違っています。',
|
||||
protected_application_subdomain_exists:
|
||||
|
@ -19,6 +19,8 @@ const application = {
|
|||
invalid_subdomain: '無効なサブドメイン。',
|
||||
custom_domain_not_found: 'カスタムドメインが見つかりません。',
|
||||
should_delete_custom_domains_first: 'まずカスタムドメインを削除する必要があります。',
|
||||
no_legacy_secret_found: 'アプリケーションにレガシーシークレットがありません。',
|
||||
secret_name_exists: 'シークレット名はすでに存在します。',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -4,6 +4,7 @@ const guard = {
|
|||
can_not_get_tenant_id: 'リクエストからテナントIDを取得できません。',
|
||||
file_size_exceeded: 'ファイルサイズが超過しました。',
|
||||
mime_type_not_allowed: 'MIMEタイプが許可されていません。',
|
||||
not_allowed_for_admin_tenant: '管理テナントでは許可されていません。',
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -22,10 +22,14 @@ const session = {
|
|||
identifier_not_found: 'ユーザー ID が見つかりません。戻って再度サインインしてください。',
|
||||
interaction_not_found:
|
||||
'インタラクションセッションが見つかりません。戻ってセッションを開始してください。',
|
||||
invalid_interaction_type:
|
||||
'この操作は現在のインタラクションではサポートされていません。新しいセッションを開始してください。',
|
||||
not_supported_for_forgot_password:
|
||||
'この操作は パスワードを忘れた 場合にはサポートされていません。',
|
||||
identity_conflict:
|
||||
'ID の不一致が検出されました。別の ID を使用して新しいセッションを開始してください。',
|
||||
identifier_not_verified:
|
||||
'指定された識別子 {{identifier}} は検証されていません。この識別子の検証記録を作成し、検証プロセスを完了してください。',
|
||||
mfa: {
|
||||
require_mfa_verification: 'サインインするには MFA 検証が必要です。',
|
||||
mfa_sign_in_only: 'MFA はサインイン操作のみに使用できます。',
|
||||
|
@ -38,6 +42,7 @@ const session = {
|
|||
backup_code_required: 'バックアップコードが必要です。',
|
||||
invalid_backup_code: '無効なバックアップコード。',
|
||||
mfa_policy_not_user_controlled: 'MFA ポリシーはユーザーによって管理されていません。',
|
||||
mfa_factor_not_enabled: 'MFA は有効になっていません。',
|
||||
},
|
||||
sso_enabled:
|
||||
'このメールアドレスではシングルサインオンが有効になっています。SSO でサインインしてください。',
|
||||
|
|
|
@ -35,6 +35,7 @@ const user = {
|
|||
backup_code_already_in_use: 'バックアップコードはすでに使用されています。',
|
||||
password_algorithm_required: 'Password algorithm is required.',
|
||||
password_and_digest: 'You cannot set both plain text password and password digest.',
|
||||
personal_access_token_name_exists: '個人用アクセス トークン名は既に存在します。',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -34,6 +34,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
'通常 Logto によって生成される一意のアプリケーション識別子です。OpenID Connect では「<a>client_id</a>」とも呼ばれます。',
|
||||
application_secret: 'アプリのシークレット',
|
||||
application_secret_other: 'アプリのシークレット',
|
||||
redirect_uri: 'リダイレクト URI',
|
||||
redirect_uris: 'リダイレクト URI',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
|
@ -94,6 +95,10 @@ const application_details = {
|
|||
session_duration: 'セッション期間(日単位)',
|
||||
try_it: 'お試しください',
|
||||
no_organization_placeholder: 'No organization found. <a>Go to organizations</a>',
|
||||
field_custom_data: 'カスタムデータ',
|
||||
field_custom_data_tip:
|
||||
'追加のカスタムアプリケーション情報で、事前定義されたアプリケーションプロパティにリストされていないもの。たとえば、ビジネス固有の設定と構成。',
|
||||
custom_data_invalid: 'カスタムデータは有効な JSON オブジェクトである必要があります',
|
||||
branding: {
|
||||
name: 'ブランディング',
|
||||
description: 'Consent 画面上でアプリケーションの表示名とロゴをカスタマイズします。',
|
||||
|
@ -163,6 +168,33 @@ const application_details = {
|
|||
search: '役割名、説明、または ID で検索',
|
||||
empty: '利用可能な役割はありません',
|
||||
},
|
||||
secrets: {
|
||||
value: '値',
|
||||
empty: 'アプリケーションにはシークレットがありません。',
|
||||
created_at: '作成日',
|
||||
expires_at: '有効期限',
|
||||
never: 'なし',
|
||||
create_new_secret: '新しいシークレットを作成',
|
||||
delete_confirmation:
|
||||
'この操作は元に戻せません。本当にこのシークレットを削除してもよろしいですか?',
|
||||
legacy_secret: 'レガシーシークレット',
|
||||
expired: '期限切れ',
|
||||
expired_tooltip: 'このシークレットは {{date}} に期限切れになりました。',
|
||||
create_modal: {
|
||||
title: 'アプリケーションシークレットを作成',
|
||||
expiration: '有効期限',
|
||||
expiration_description: 'シークレットは{{date}}に期限切れになります。',
|
||||
expiration_description_never:
|
||||
'シークレットは期限切れになりません。セキュリティを強化するため、有効期限を設定することをお勧めします。',
|
||||
days: '{{count}} 日',
|
||||
days_other: '{{count}} 日間',
|
||||
created: 'シークレット {{name}} が正常に作成されました。',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'アプリケーションシークレットを編集',
|
||||
edited: 'シークレット {{name}} が正常に編集されました。',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -46,9 +46,8 @@ const general = {
|
|||
continue: '続ける',
|
||||
page_info: '{{total}}件中{{min}}件〜{{max}}件を表示',
|
||||
learn_more: '詳しく見る',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_other: '{{count}}件のエラーがあります',
|
||||
tab_error_one: '{{count, number}} 件のエラー',
|
||||
tab_error_other: '{{count}} 件のエラーがあります',
|
||||
skip_for_now: '今回はスキップする',
|
||||
remove: '削除する',
|
||||
visit: '訪問する',
|
||||
|
@ -71,6 +70,8 @@ const general = {
|
|||
delete_field: '{{field}}を削除',
|
||||
coming_soon: '近日公開予定',
|
||||
or: 'または',
|
||||
reset: 'リセット',
|
||||
generate: '生成する',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -39,6 +39,10 @@ const jwt_claims = {
|
|||
title: 'トークンデータ',
|
||||
subtitle: '現在のアクセストークンペイロードに対して`token`入力パラメータを使用します。',
|
||||
},
|
||||
api_context: {
|
||||
title: 'API コンテキスト:アクセス制御',
|
||||
subtitle: '`api.denyAccess` メソッドを使用してトークンリクエストを拒否します。',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: '外部データを取得',
|
||||
subtitle: '外部APIからデータを直接クレームに組み込みます。',
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: 'フリープラン',
|
||||
|
@ -7,25 +8,20 @@ const subscription = {
|
|||
'サイドプロジェクトや最初のLogtoのトライアルに適しています。クレジットカードは必要ありません。',
|
||||
pro_plan: 'プロプラン',
|
||||
pro_plan_description: 'ビジネスが安心してLogtoを利用できるプランです。',
|
||||
enterprise: 'エンタープライズ',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'エンタープライズプラン',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'高度な機能、完全なカスタマイズ、および専用サポートを必要とする大規模組織のためのものです。究極のセキュリティ、コンプライアンス、およびパフォーマンスのために、あなたのニーズに合わせて調整されています。',
|
||||
admin_plan: '管理者プラン',
|
||||
dev_plan: '開発プラン',
|
||||
current_plan: '現在のプラン',
|
||||
current_plan_description:
|
||||
'現在のプランはこちらです。プランの使用状況を簡単に確認したり、次回の請求を確認したり、必要に応じてプランを変更したりできます。',
|
||||
plan_usage: '利用状況',
|
||||
plan_cycle: 'プランサイクル: {{period}}。更新日: {{renewDate}}。',
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: '次回の請求書',
|
||||
next_bill_hint: '計算方法については、次の<a>記事</a>を参照してください。',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
'ここに表示される価格は税抜きであり、更新に若干の遅れが生じる場合があります。税額は、お客様が提供する情報および地元の規制要件に基づいて計算され、請求書に表示されます。',
|
||||
manage_payment: '支払い方法の管理',
|
||||
overfill_quota_warning:
|
||||
'クォータ制限に到達しました。問題を防ぐために、プランをアップグレードしてください。',
|
||||
|
@ -75,6 +71,7 @@ const subscription = {
|
|||
subscription_check_timeout:
|
||||
'サブスクリプションのチェックがタイムアウトしました。後でもう一度更新してください。',
|
||||
no_subscription: '契約なし',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
|
@ -37,7 +37,6 @@ const quota_table = {
|
|||
built_in_email_connector: '組み込みE-mailコネクタ',
|
||||
mfa: '多要素認証',
|
||||
sso: 'エンタープライズ SSO',
|
||||
|
||||
impersonation: 'なりすまし',
|
||||
},
|
||||
user_management: {
|
||||
|
@ -59,14 +58,23 @@ const quota_table = {
|
|||
just_in_time_provisioning: 'ジャストインタイムプロビジョニング',
|
||||
},
|
||||
support: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Support',
|
||||
title: 'サポート',
|
||||
community: 'コミュニティ',
|
||||
customer_ticket: 'カスタマーチケット',
|
||||
premium: 'プレミアム',
|
||||
email_ticket_support: 'Emailチケットサポート',
|
||||
soc2_report: 'SOC2レポート',
|
||||
hipaa_or_baa_report: 'HIPAA/BAAレポート',
|
||||
discord_private_channel: 'Discord プライベートチャンネル',
|
||||
premium_support: 'プレミアムサポート',
|
||||
developer_onboarding: 'デベロッパーオンボーディング',
|
||||
solution_engineer_support: 'ソリューションエンジニアサポート',
|
||||
sla: 'SLA',
|
||||
dedicated_computing_resources: '専用コンピューティングリソース',
|
||||
},
|
||||
compliance: {
|
||||
title: 'コンプライアンス',
|
||||
soc2_compliant: 'SOC2 準拠',
|
||||
soc2_report: 'SOC2 レポート',
|
||||
hipaa_or_baa_report: 'HIPAA/BAA レポート',
|
||||
},
|
||||
developers_and_platform: {
|
||||
title: 'デベロッパーとプラットフォーム',
|
||||
|
@ -82,7 +90,6 @@ const quota_table = {
|
|||
days_other: '{{count, number}} 日',
|
||||
add_on: 'アドオン',
|
||||
tier: 'レベル{{value, number}}: ',
|
||||
|
||||
million: '{{value, number}} 万',
|
||||
mau_tip:
|
||||
'MAU(月間アクティブユーザー)は、請求サイクルで Logto と少なくとも 1 つのトークンを交換したユニークユーザーの数を指します。',
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
const usage = {
|
||||
status_active: 'オン',
|
||||
status_inactive: 'オフ',
|
||||
mau: {
|
||||
title: 'MAU',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'MAU は、請求サイクル内で Logto と少なくとも 1 つのトークンを交換したユニーク ユーザーです。Pro プランでは無制限です。<a>さらに詳しく</a>',
|
||||
},
|
||||
organizations: {
|
||||
title: '組織',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'追加機能として、月額 {{price, number}} ドルの固定料金です。組織の数や活動レベルには影響されません。',
|
||||
},
|
||||
mfa: {
|
||||
title: '多要素認証',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'追加機能として、月額 {{price, number}} ドルの固定料金です。使用する認証要素の数には影響されません。',
|
||||
},
|
||||
enterprise_sso: {
|
||||
title: 'エンタープライズ SSO',
|
||||
description: '{{usage}}',
|
||||
tooltip: '追加機能として、月額 {{price, number}} ドルの SSO 接続ごとの料金です。',
|
||||
},
|
||||
api_resources: {
|
||||
title: 'API リソース',
|
||||
description: '{{usage}} <span>(最初の 3 つは無料)</span>',
|
||||
tooltip:
|
||||
'追加機能として、月額 {{price, number}} ドルのリソースごとの料金です。最初の 3 つの API リソースは無料です。',
|
||||
},
|
||||
machine_to_machine: {
|
||||
title: 'マシン対マシン',
|
||||
description: '{{usage}} <span>(最初の 1 つは無料)</span>',
|
||||
tooltip:
|
||||
'追加機能として、月額 {{price, number}} ドルのアプリごとの料金です。最初のマシン対マシン アプリは無料です。',
|
||||
},
|
||||
tenant_members: {
|
||||
title: 'テナントメンバー',
|
||||
description: '{{usage}} <span>(最初の 3 つは無料)</span>',
|
||||
tooltip:
|
||||
'追加機能として、月額 {{price, number}} ドルのメンバーごとの料金です。最初の 3 人のテナントメンバーは無料です。',
|
||||
},
|
||||
tokens: {
|
||||
title: 'トークン',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'追加機能として、100 万トークンにつき {{price, number}} ドルの料金です。最初の 100 万トークンは含まれています。',
|
||||
},
|
||||
hooks: {
|
||||
title: 'フック',
|
||||
description: '{{usage}} <span>(最初の 10 個は無料)</span>',
|
||||
tooltip:
|
||||
'追加機能として、フックごとに {{price, number}} ドルの料金です。最初の 10 個のフックは含まれています。',
|
||||
},
|
||||
pricing: {
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
'現在の請求サイクル中に変更を行った場合、次の請求書には変更後の最初の月に少し高くなる可能性があります。それは {{price, number}} ドルの基本価格に、未請求の使用の追加機能の費用と、次のサイクルの全額が加算されます。<a>さらに詳しく</a>',
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(usage);
|
|
@ -1,23 +1,17 @@
|
|||
const add_on = {
|
||||
/** UNTRANSLATED */
|
||||
mfa_inline_notification:
|
||||
'MFA is a ${{price, number}} per mo add-on for the {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'MFA は {{planName}} のアドオンとして月額 ${{price, number}} です。初月は請求サイクルに基づいて日割り計算されます。<a>詳細はこちら</a>',
|
||||
footer: {
|
||||
/** UNTRANSLATED */
|
||||
api_resource:
|
||||
'Additional resources cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'追加リソースは <span>月額 ${{price, number}} / 個</span> です。初月は請求サイクルに基づいて日割り計算されます。<a>詳細はこちら</a>',
|
||||
machine_to_machine_app:
|
||||
'Additional machine-to-machine apps cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'追加のマシン間アプリは <span>月額 ${{price, number}} / 個</span> です。初月は請求サイクルに基づいて日割り計算されます。<a>詳細はこちら</a>',
|
||||
enterprise_sso:
|
||||
'Enterprise SSO cost <span>${{price, number}} per mo / ea</span> add-on for {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'エンタープライズ SSO は {{planName}} のアドオンとして <span>月額 ${{price, number}} / 個</span> です。初月は請求サイクルに基づいて日割り計算されます。<a>詳細はこちら</a>',
|
||||
tenant_members:
|
||||
'Additional members cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'追加メンバーは <span>月額 ${{price, number}} / 個</span> です。初月は請求サイクルに基づいて日割り計算されます。<a>詳細はこちら</a>',
|
||||
organization:
|
||||
'Organization is a <span>${{price, number}} per mo</span> add-on for {{planName}} with unlimited organizations. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'組織は {{planName}} のアドオンとして <span>月額 ${{price, number}}</span> で、無制限の組織をサポートします。初月は請求サイクルに基づいて日割り計算されます。<a>詳細はこちら</a>',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import add_on from './add-on.js';
|
||||
import featured_plan_content from './featured-plan-content.js';
|
||||
import paywall from './paywall.js';
|
||||
|
||||
|
@ -41,6 +42,7 @@ const upsell = {
|
|||
'{{item}} のクォータ制限を超えています。Logto はクォータ制限を超える利用に対して料金を追加します。新しいアドオン価格設計がリリースされる日から請求が開始されます。 <a>詳細</a>',
|
||||
paywall,
|
||||
featured_plan_content,
|
||||
add_on,
|
||||
};
|
||||
|
||||
export default Object.freeze(upsell);
|
||||
|
|
|
@ -21,20 +21,34 @@ const paywall = {
|
|||
'カスタムドメインの機能を解除するには、<strong>Hobby</strong>または<strong>Pro</strong>プランにアップグレードしてください。何かお手伝いが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
social_connectors:
|
||||
'{{count, number}}の<planName/>ソーシャルコネクタ制限に達しました。チームのニーズに合わせて有料プランにアップグレードして、OIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成できるようにしましょう。<a>お問い合わせ</a>は何かお手伝いが必要な場合はお気軽にどうぞ。',
|
||||
social_connectors_other:
|
||||
'{{count, number}}個の<planName/>制限のソーシャルコネクタに達しました。チームのニーズを満たすために、追加のソーシャルコネクタとOIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成する機能を得るためにプランをアップグレードしてください。サポートが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
standard_connectors_feature:
|
||||
'OIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成し、無制限のソーシャルコネクタとすべてのプレミアム機能を利用するには、<strong>Hobby</strong>プランまたは<strong>Pro</strong>プランにアップグレードしてください。どんなお手伝いが必要でも、お気軽に<a>お問い合わせ</a>ください。',
|
||||
standard_connectors:
|
||||
'{{count, number}}の<planName/>ソーシャルコネクタ制限に達しました。チームのニーズに合わせて有料プランにアップグレードして、OIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成できるようにしましょう。<a>お問い合わせ</a>は何かお手伝いが必要な場合はお気軽にどうぞ。',
|
||||
standard_connectors_other:
|
||||
'{{count, number}}個の<planName/>制限のソーシャルコネクタに達しました。チームのニーズを満たすために、追加のソーシャルコネクタとOIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成する機能を得るためにプランをアップグレードしてください。サポートが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
standard_connectors_pro:
|
||||
'{{count, number}}の<planName/>スタンダードコネクタ制限に達しました。チームのニーズに合わせてエンタープライズプランにアップグレードして、OIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成できるようにしましょう。<a>お問い合わせ</a>は何かお手伝いが必要な場合はお気軽にどうぞ。',
|
||||
standard_connectors_pro_other:
|
||||
'{{count, number}}個の<planName/>制限のスタンダードコネクタに達しました。チームのニーズを満たすために、追加のソーシャルコネクタとOIDC、OAuth 2.0、およびSAMLプロトコルを使用して独自のコネクタを作成する機能を得るためにエンタープライズプランにアップグレードしてください。サポートが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
roles:
|
||||
'{{count, number}}の<planName/>ロール制限に達しました。追加のロールと権限を追加するにはプランをアップグレードしてください。<a>お問い合わせ</a>は何かお手伝いが必要な場合はお気軽にどうぞ。',
|
||||
roles_other:
|
||||
'{{count, number}}個の<planName/>制限のロールに達しました。追加のロールおよび権限を追加するにはプランをアップグレードしてください。サポートが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
machine_to_machine_roles:
|
||||
'{{count, number}} machine-to-machine role of <planName/> limit reached. Upgrade plan to add additional roles and permissions. Feel free to <a>contact us</a> if you need any assistance.',
|
||||
machine_to_machine_roles_other:
|
||||
'{{count, number}} machine-to-machine roles of <planName/> limit reached. Upgrade plan to add additional roles and permissions. Feel free to <a>contact us</a> if you need any assistance.',
|
||||
scopes_per_role:
|
||||
'{{count, number}}の<planName/>ロールあたりの許可制限に達しました。追加のロールと権限を追加するにはプランをアップグレードしてください。<a>お問い合わせ</a>は何かお手伝いが必要な場合はお気軽にどうぞ.',
|
||||
scopes_per_role_other:
|
||||
'{{count, number}}個の<planName/>制限のロールあたりの許可に達しました。追加のロールおよび権限を追加するにはプランをアップグレードしてください。サポートが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
hooks:
|
||||
'{{count, number}}の<planName/>ウェブフック制限に達しました。追加のウェブフックを作成するにはプランをアップグレードしてください。<a>お問い合わせ</a>は何かお手伝いが必要な場合はお気軽にどうぞ。',
|
||||
hooks_other:
|
||||
'{{count, number}}個の<planName/>制限のウェブフックに達しました。追加のウェブフックを作成するにはプランをアップグレードしてください。サポートが必要な場合は、お気軽に<a>お問い合わせ</a>ください。',
|
||||
mfa: 'セキュリティを確認するためにMFAを解除して有料プランにアップグレードしてください。ご質問があれば、<a>お問い合わせください</a>。',
|
||||
organizations:
|
||||
'Unlock organizations by upgrading to a paid plan. Don’t hesitate to <a>contact us</a> if you need any assistance.',
|
||||
|
|
|
@ -12,9 +12,12 @@ const user_details = {
|
|||
deleted: 'ユーザーは正常に削除されました',
|
||||
reset_password: {
|
||||
reset_title: '本当にパスワードをリセットしますか?',
|
||||
generate_title: '本当にパスワードを生成しますか?',
|
||||
content: 'この操作は取り消せません。ユーザーのログイン情報がリセットされます。',
|
||||
reset_complete: 'このユーザーはリセットされました',
|
||||
generate_complete: 'パスワードが生成されました',
|
||||
new_password: '新しいパスワード:',
|
||||
password: 'パスワード:',
|
||||
},
|
||||
tab_settings: '設定',
|
||||
tab_roles: 'ユーザー役割',
|
||||
|
@ -27,6 +30,7 @@ const user_details = {
|
|||
field_email: 'メールアドレス',
|
||||
field_phone: '電話番号',
|
||||
field_username: 'ユーザー名',
|
||||
field_password: 'パスワード',
|
||||
field_name: '名前',
|
||||
field_avatar: 'アバター画像のURL',
|
||||
field_avatar_placeholder: 'https://your.cdn.domain/avatar.png',
|
||||
|
@ -40,6 +44,8 @@ const user_details = {
|
|||
field_sso_connectors: 'エンタープライズ接続',
|
||||
custom_data_invalid: 'カスタムデータは有効な JSON オブジェクトである必要があります',
|
||||
profile_invalid: 'プロフィールは有効な JSON オブジェクトである必要があります',
|
||||
password_already_set: 'すでにパスワードが設定されています',
|
||||
no_password_set: 'パスワードが設定されていません',
|
||||
connectors: {
|
||||
connectors: 'コネクタ',
|
||||
user_id: 'ユーザーID',
|
||||
|
@ -94,6 +100,36 @@ const user_details = {
|
|||
},
|
||||
warning_no_sign_in_identifier:
|
||||
'ユーザーは、サインインに少なくとも 1 つの識別子(ユーザー名、メールアドレス、電話番号、またはソーシャル)を持っている必要があります。続行してよろしいですか?',
|
||||
personal_access_tokens: {
|
||||
title: '個人用アクセス トークン',
|
||||
title_other: '個人用アクセス トークン',
|
||||
title_short: 'トークン',
|
||||
empty: 'ユーザーは個人用アクセス トークンを持っていません。',
|
||||
create: '新しいトークンを作成',
|
||||
tip: '個人用アクセス トークン (PAT) を使用すると、ユーザーは資格情報やインタラクティブサインインを使用せずにアクセス トークンを発行できます。これは、プログラムでリソースにアクセスする必要がある CI/CD、スクリプト、またはアプリケーションに役立ちます。<a>詳細を学ぶ</a>',
|
||||
value: '値',
|
||||
created_at: '作成日',
|
||||
expires_at: '有効期限',
|
||||
never: '期限切れなし',
|
||||
create_new_token: '新しいトークンを作成',
|
||||
delete_confirmation: 'この操作は取り消せません。本当にこのトークンを削除しますか?',
|
||||
expired: '期限切れ',
|
||||
expired_tooltip: 'このトークンは {{date}} に期限切れでした。',
|
||||
create_modal: {
|
||||
title: '個人用アクセス トークンを作成',
|
||||
expiration: '有効期限',
|
||||
expiration_description: 'トークンは {{date}} に期限切れになります。',
|
||||
expiration_description_never:
|
||||
'トークンは期限切れになりません。セキュリティを強化するために有効期限を設定することをお勧めします。',
|
||||
days: '{{count}} 日',
|
||||
days_other: '{{count}} 日',
|
||||
created: 'トークン {{name}} が正常に作成されました。',
|
||||
},
|
||||
edit_modal: {
|
||||
title: '個人用アクセス トークンを編集',
|
||||
edited: 'トークン {{name}} が正常に編集されました。',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(user_details);
|
||||
|
|
|
@ -18,6 +18,8 @@ const application = {
|
|||
invalid_subdomain: '잘못된 하위 도메인입니다.',
|
||||
custom_domain_not_found: '사용자 정의 도메인을 찾을 수 없습니다.',
|
||||
should_delete_custom_domains_first: '먼저 사용자 정의 도메인을 삭제해야 합니다.',
|
||||
no_legacy_secret_found: '응용 프로그램에 레거시 비밀이 없습니다.',
|
||||
secret_name_exists: '비밀 이름이 이미 존재합니다.',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -4,6 +4,7 @@ const guard = {
|
|||
can_not_get_tenant_id: '요청에서 테넌트 ID를 가져올 수 없습니다.',
|
||||
file_size_exceeded: '파일 크기가 초과되었습니다.',
|
||||
mime_type_not_allowed: 'MIME 타입이 허용되지 않습니다.',
|
||||
not_allowed_for_admin_tenant: '관리자 테넌트에 허용되지 않습니다.',
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -21,8 +21,12 @@ const session = {
|
|||
csrf_token_mismatch: 'CSRF 토큰이 일치하지 않아요.',
|
||||
identifier_not_found: '사용자 식별자를 찾을 수 없어요. 처음부터 다시 로그인을 시도해 주세요.',
|
||||
interaction_not_found: '인터랙션 세션을 찾을 수 없어요. 처음부터 다시 세션을 시작해 주세요.',
|
||||
invalid_interaction_type:
|
||||
'현재 상호 작용에는 이 작업이 지원되지 않습니다. 새 세션을 시작해 주세요.',
|
||||
not_supported_for_forgot_password: '이 작업은 비밀번호 찾기를 지원하지 않아요.',
|
||||
identity_conflict: 'ID 불일치가 감지되었어요. 다른 ID로 진행하기 위해 새 세션을 시작해 주세요.',
|
||||
identifier_not_verified:
|
||||
'제공된 식별자 {{identifier}}가 확인되지 않았습니다. 이 식별자에 대한 검증 기록을 생성하고 검증 과정을 완료해 주세요.',
|
||||
mfa: {
|
||||
require_mfa_verification: 'MFA 인증이 필요해요.',
|
||||
mfa_sign_in_only: 'MFA는 로그인 인터랙션에서만 사용할 수 있어요.',
|
||||
|
@ -35,6 +39,7 @@ const session = {
|
|||
backup_code_required: '백업 코드가 필요해요.',
|
||||
invalid_backup_code: '유효하지 않은 백업 코드예요.',
|
||||
mfa_policy_not_user_controlled: 'MFA 정책은 사용자가 제어할 수 없어요.',
|
||||
mfa_factor_not_enabled: 'MFA 요소가 활성화되지 않았습니다.',
|
||||
},
|
||||
sso_enabled: '이 이메일로는 SSO가 활성화되어 있어요. SSO로 로그인해 주세요.',
|
||||
};
|
||||
|
|
|
@ -34,6 +34,7 @@ const user = {
|
|||
backup_code_already_in_use: 'Backup code is already in use.',
|
||||
password_algorithm_required: '비밀번호 알고리즘이 필요합니다.',
|
||||
password_and_digest: 'You cannot set both plain text password and password digest.',
|
||||
personal_access_token_name_exists: '개인 액세스 토큰 이름이 이미 존재합니다.',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -33,6 +33,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
'일반적으로 로그토에서 생성되는 고유한 애플리케이션 식별자입니다. OpenID Connect에서 "<a>client_id</a>"의 약어입니다.',
|
||||
application_secret: '앱 시크릿',
|
||||
application_secret_other: '앱 시크릿',
|
||||
redirect_uri: '리디렉트 URI',
|
||||
redirect_uris: '리디렉트 URIs',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
|
@ -75,9 +76,9 @@ const application_details = {
|
|||
application_deleted: '{{name}} 애플리케이션이 성공적으로 삭제되었습니다.',
|
||||
redirect_uri_required: '최소 하나의 리디렉트 URI를 반드시 입력해야 합니다.',
|
||||
app_domain_description_1:
|
||||
'Feel free to use your domain with {{domain}} powered by Logto, which is permanently valid.',
|
||||
'Logto 에 의해 구동되는 {{domain}} 와 함께 도메인을 자유롭게 사용하세요. 이것은 영구적으로 유효합니다.',
|
||||
app_domain_description_2:
|
||||
'Feel free to utilize your domain <domain>{{domain}}</domain> which is permanently valid.',
|
||||
'도메인 <domain>{{domain}}</domain> 을 자유롭게 활용하세요. 이것은 영구적으로 유효합니다.',
|
||||
custom_rules: '사용자 인증규칙',
|
||||
custom_rules_placeholder: '^/(admin|privacy)/.+$',
|
||||
custom_rules_description:
|
||||
|
@ -93,6 +94,10 @@ const application_details = {
|
|||
session_duration: '세션 기간 (일)',
|
||||
try_it: '해보기',
|
||||
no_organization_placeholder: '조직을 찾을 수 없습니다. <a>조직으로 이동</a>',
|
||||
field_custom_data: '사용자 지정 데이터',
|
||||
field_custom_data_tip:
|
||||
'사전 정의된 애플리케이션 속성에 나열되지 않은 추가 사용자 지정 애플리케이션 정보, 비즈니스 관련 설정 및 구성과 같은 항목들.',
|
||||
custom_data_invalid: '사용자 지정 데이터는 유효한 JSON 객체여야 합니다',
|
||||
branding: {
|
||||
name: '브랜딩',
|
||||
description: '동의 화면에서 앱의 표시 이름과 로고를 사용자 정의하세요.',
|
||||
|
@ -159,6 +164,32 @@ const application_details = {
|
|||
search: '역할 이름, 설명 또는 ID로 검색',
|
||||
empty: '사용 가능한 역할이 없습니다.',
|
||||
},
|
||||
secrets: {
|
||||
value: '값',
|
||||
empty: '애플리케이션에 비밀이 없습니다.',
|
||||
created_at: '생성 시간',
|
||||
expires_at: '만료 시간',
|
||||
never: '만료되지 않음',
|
||||
create_new_secret: '새 시크릿 생성',
|
||||
delete_confirmation: '이 작업은 되돌릴 수 없습니다. 이 시크릿을 삭제하시겠습니까?',
|
||||
legacy_secret: '레거시 시크릿',
|
||||
expired: '만료됨',
|
||||
expired_tooltip: '이 시크릿은 {{date}} 에 만료되었습니다.',
|
||||
create_modal: {
|
||||
title: '애플리케이션 시크릿 생성',
|
||||
expiration: '만료',
|
||||
expiration_description: '이 시크릿은 {{date}}에 만료됩니다.',
|
||||
expiration_description_never:
|
||||
'이 시크릿은 만료되지 않을 것입니다. 보안을 강화하기 위해 만료 날짜를 설정하는 것을 권장합니다.',
|
||||
days: '{{count}} 일',
|
||||
days_other: '{{count}} 일',
|
||||
created: '시크릿 {{name}} 이(가) 성공적으로 생성되었습니다.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: '애플리케이션 시크릿 편집',
|
||||
edited: '시크릿 {{name}} 이(가) 성공적으로 편집되었습니다.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -46,8 +46,7 @@ const general = {
|
|||
continue: '계속하기',
|
||||
page_info: '{{min, number}}-{{max, number}} / {{total, number}}',
|
||||
learn_more: '더 알아보기',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_one: '{{count, number}} 오류',
|
||||
tab_error_other: '{{count, number}} 오류',
|
||||
skip_for_now: '지금은 건너뛰기',
|
||||
remove: '삭제',
|
||||
|
@ -71,6 +70,8 @@ const general = {
|
|||
delete_field: '{{field}} 삭제',
|
||||
coming_soon: '곧 출시 예정',
|
||||
or: '또는',
|
||||
reset: '재설정',
|
||||
generate: '생성',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -39,6 +39,10 @@ const jwt_claims = {
|
|||
title: '토큰 데이터',
|
||||
subtitle: '현재 액세스 토큰 페이로드에 대한 `token` 입력 매개변수 사용.',
|
||||
},
|
||||
api_context: {
|
||||
title: 'API 컨텍스트: 접근 제어',
|
||||
subtitle: '`api.denyAccess` 메소드를 사용하여 토큰 요청을 거절하세요.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: '외부 데이터 가져오기',
|
||||
subtitle: '외부 API에서 데이터 직접 클레임에 통합.',
|
||||
|
|
|
@ -1,30 +1,26 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: '무료 요금제',
|
||||
free_plan_description: '사이드 프로젝트 및 초기 Logto 시험용. 신용 카드 없음.',
|
||||
pro_plan: '프로 요금제',
|
||||
pro_plan_description: 'Logto와 함께 걱정 없이 비즈니스 혜택을 받으세요.',
|
||||
enterprise: '기업용',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: '엔터프라이즈 플랜',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'대규모 조직을 위한 고급 기능, 전체 맞춤화 및 전용 지원이 필요한 미션 크리티컬 애플리케이션을 구동합니다. 궁극적인 보안, 규정 준수 및 성능을 위해 당신의 요구에 맞춥니다.',
|
||||
admin_plan: '관리자 플랜',
|
||||
dev_plan: '개발 플랜',
|
||||
current_plan: '현재 요금제',
|
||||
current_plan_description:
|
||||
'현재 사용중인 요금제 정보입니다. 요금제 사용 내역을 쉽게 확인하고, 다가오는 청구서를 확인하며 필요에 따라 요금제를 변경할 수 있습니다.',
|
||||
plan_usage: '요금제 사용량',
|
||||
plan_cycle: 'Plan cycle: {{period}}. 사용량은 {{renewDate}}에 갱신됩니다.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: '다가오는 청구서',
|
||||
next_bill_hint: '계산에 대해 자세히 알아보려면 이 <a>게시물</a>을 참조하세요.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
'여기에 표시된 가격은 세금 제외이며 업데이트에 약간의 지연이 있을 수 있습니다. 세금 금액은 제공한 정보와 지역 규제 요건에 따라 계산되며 청구서에 표시됩니다.',
|
||||
manage_payment: '결제 관리',
|
||||
overfill_quota_warning:
|
||||
'할당량 한도에 도달했습니다. 문제를 방지하기 위해 요금제를 업그레이드하세요.',
|
||||
|
@ -72,6 +68,7 @@ const subscription = {
|
|||
downgrade_success: '성공적으로 <name/>으로 다운그레이드되었습니다.',
|
||||
subscription_check_timeout: '구독 확인이 타임아웃되었습니다. 나중에 다시 확인해주세요.',
|
||||
no_subscription: '구독 없음',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
|
@ -37,7 +37,6 @@ const quota_table = {
|
|||
built_in_email_connector: '내장 이메일 커넥터',
|
||||
mfa: '다중 인증',
|
||||
sso: '기업 SSO',
|
||||
|
||||
impersonation: '가장하기',
|
||||
},
|
||||
user_management: {
|
||||
|
@ -59,12 +58,21 @@ const quota_table = {
|
|||
just_in_time_provisioning: '적시 프로비저닝',
|
||||
},
|
||||
support: {
|
||||
/** UNTRANSLATED */
|
||||
title: 'Support',
|
||||
title: '지원',
|
||||
community: '커뮤니티',
|
||||
customer_ticket: '지원 티켓',
|
||||
premium: '프리미엄',
|
||||
email_ticket_support: '이메일 티켓 지원',
|
||||
discord_private_channel: 'Discord 전용 채널',
|
||||
premium_support: '프리미엄 지원',
|
||||
developer_onboarding: '개발자 온보딩',
|
||||
solution_engineer_support: '솔루션 엔지니어 지원',
|
||||
sla: '서비스 수준 계약',
|
||||
dedicated_computing_resources: '전용 컴퓨팅 리소스',
|
||||
},
|
||||
compliance: {
|
||||
title: '준수',
|
||||
soc2_compliant: 'SOC2 준수',
|
||||
soc2_report: 'SOC2 보고서',
|
||||
hipaa_or_baa_report: 'HIPAA/BAA 보고서',
|
||||
},
|
||||
|
@ -82,7 +90,6 @@ const quota_table = {
|
|||
days_other: '{{count, number}} 일',
|
||||
add_on: '부가 기능',
|
||||
tier: '레벨{{value, number}}: ',
|
||||
|
||||
million: '{{value, number}} 백만',
|
||||
mau_tip:
|
||||
'MAU (월간 활성 사용자) 는 청구 주기 동안 Logto 와 적어도 하나의 토큰을 교환한 고유 사용자 수를 의미합니다.',
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
const usage = {
|
||||
status_active: '켜짐',
|
||||
status_inactive: '꺼짐',
|
||||
mau: {
|
||||
title: 'MAU',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'MAU 는 청구 주기 동안 Logto 와 적어도 한 번 토큰을 교환한 고유 사용자입니다. Pro 플랜에는 무제한입니다. <a>자세히 알아보기</a>',
|
||||
},
|
||||
organizations: {
|
||||
title: '조직',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'매달 ${{price, number}} 의 정액 요금으로 추가 기능입니다. 조직의 수나 활동 수준에 상관없이 가격은 영향을 받지 않습니다.',
|
||||
},
|
||||
mfa: {
|
||||
title: 'MFA',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'매달 ${{price, number}} 의 정액 요금으로 추가 기능입니다. 사용된 인증 요인의 수에 상관없이 가격은 영향을 받지 않습니다.',
|
||||
},
|
||||
enterprise_sso: {
|
||||
title: '기업 SSO',
|
||||
description: '{{usage}}',
|
||||
tooltip: '매달 SSO 연결당 ${{price, number}} 의 추가 기능입니다.',
|
||||
},
|
||||
api_resources: {
|
||||
title: 'API 리소스',
|
||||
description: '{{usage}} <span>(처음 3개는 무료)</span>',
|
||||
tooltip:
|
||||
'매달 자원당 ${{price, number}} 의 추가 기능입니다. 처음 3개의 API 리소스는 무료입니다.',
|
||||
},
|
||||
machine_to_machine: {
|
||||
title: '기계 대 기계',
|
||||
description: '{{usage}} <span>(처음 1개는 무료)</span>',
|
||||
tooltip:
|
||||
'매달 앱당 ${{price, number}} 의 추가 기능입니다. 첫 번째 기계 대 기계 앱은 무료입니다.',
|
||||
},
|
||||
tenant_members: {
|
||||
title: '테넌트 멤버',
|
||||
description: '{{usage}} <span>(처음 3명은 무료)</span>',
|
||||
tooltip:
|
||||
'매달 멤버당 ${{price, number}} 의 추가 기능입니다. 처음 3명의 테넌트 멤버는 무료입니다.',
|
||||
},
|
||||
tokens: {
|
||||
title: '토큰',
|
||||
description: '{{usage}}',
|
||||
tooltip:
|
||||
'백만 개의 토큰당 ${{price, number}} 의 추가 기능입니다. 처음 100만 개의 토큰은 포함되어 있습니다.',
|
||||
},
|
||||
hooks: {
|
||||
title: '훅',
|
||||
description: '{{usage}} <span>(처음 10개는 무료)</span>',
|
||||
tooltip: '훅 하나당 ${{price, number}} 의 추가 기능입니다. 처음 10개의 훅이 포함되어 있습니다.',
|
||||
},
|
||||
pricing: {
|
||||
add_on_changes_in_current_cycle_notice:
|
||||
'현재 청구 주기 동안 변경 사항이 발생하면 변경 후 첫 달 동안 다음 청구서가 약간 높을 수 있습니다. 청구서에는 현재 주기의 청구되지 않은 사용량에 대한 추가 비용과 다음 주기의 전체 요금이 부과된 기본 가격 ${{price, number}} 가 포함됩니다. <a>자세히 알아보기</a>',
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(usage);
|
|
@ -1,23 +1,17 @@
|
|||
const add_on = {
|
||||
/** UNTRANSLATED */
|
||||
mfa_inline_notification:
|
||||
'MFA is a ${{price, number}} per mo add-on for the {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'MFA 는 {{planName}}에 대한 월 ${{price, number}} 추가 기능입니다. 첫 번째 달은 청구 주기에 따라 비례 배분됩니다. <a>자세히 알아보기</a>',
|
||||
footer: {
|
||||
/** UNTRANSLATED */
|
||||
api_resource:
|
||||
'Additional resources cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'추가 리소스는 월 ${{price, number}} / 개당 비용이 청구됩니다. 첫 번째 달은 청구 주기에 따라 비례 배분됩니다. <a>자세히 알아보기</a>',
|
||||
machine_to_machine_app:
|
||||
'Additional machine-to-machine apps cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'추가 기계-대-기계 애플리케이션은 월 ${{price, number}} / 개당 비용이 청구됩니다. 첫 번째 달은 청구 주기에 따라 비례 배분됩니다. <a>자세히 알아보기</a>',
|
||||
enterprise_sso:
|
||||
'Enterprise SSO cost <span>${{price, number}} per mo / ea</span> add-on for {{planName}}. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'Enterprise SSO 는 {{planName}}에 대한 월 ${{price, number}} 추가 기능입니다. 첫 번째 달은 청구 주기에 따라 비례 배분됩니다. <a>자세히 알아보기</a>',
|
||||
tenant_members:
|
||||
'Additional members cost <span>${{price, number}} per mo / ea</span>. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
/** UNTRANSLATED */
|
||||
'추가 멤버는 월 ${{price, number}} / 개당 비용이 청구됩니다. 첫 번째 달은 청구 주기에 따라 비례 배분됩니다. <a>자세히 알아보기</a>',
|
||||
organization:
|
||||
'Organization is a <span>${{price, number}} per mo</span> add-on for {{planName}} with unlimited organizations. First month prorated based on your billing cycle. <a>Learn more</a>',
|
||||
'Organization 는 무제한 조직과 함께 {{planName}}에 대한 월 ${{price, number}} 추가 기능입니다. 첫 번째 달은 청구 주기에 따라 비례 배분됩니다. <a>자세히 알아보기</a>',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import add_on from './add-on.js';
|
||||
import featured_plan_content from './featured-plan-content.js';
|
||||
import paywall from './paywall.js';
|
||||
|
||||
|
@ -41,6 +42,7 @@ const upsell = {
|
|||
'{{item}} 할당량 한도를 초과했습니다. Logto는 할당량을 초과하는 사용에 대한 요금을 추가합니다. 새로운 애드온 가격 디자인이 출시된 날부터 청구가 시작됩니다. <a>더 알아보기</a>',
|
||||
paywall,
|
||||
featured_plan_content,
|
||||
add_on,
|
||||
};
|
||||
|
||||
export default Object.freeze(upsell);
|
||||
|
|
|
@ -17,6 +17,22 @@ const paywall = {
|
|||
'<planName/>의 {{count, number}}개 API 리소스 당 권한 한도에 도달했습니다. 확장을 위해 지금 업그레이드하세요. 도움이 필요하면 <a>문의하기</a>로 연락 주세요.',
|
||||
scopes_per_resource_other:
|
||||
'<planName/>의 {{count, number}}개 API 리소스 당 권한 한도에 도달했습니다. 확장을 위해 지금 업그레이드하세요. 도움이 필요하면 <a>문의하기</a>로 연락 주세요.',
|
||||
custom_domain:
|
||||
'사용자 정의 도메인 기능을 잠금 해제하려면 <strong>Hobby</strong> 또는 <strong>Pro</strong> 플랜으로 업그레이드하세요. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
social_connectors:
|
||||
'<planName/>의 {{count, number}}개 소셜 커넥터 제한에 도달했습니다. 팀의 요구를 충족하기 위해 플랜을 업그레이드하여 추가 소셜 커넥터 및 OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성할 수 있는 기능을 제공합니다. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
social_connectors_other:
|
||||
'<planName/>의 {{count, number}}개 소셜 커넥터 제한에 도달했습니다. 팀의 요구를 충족하기 위해 플랜을 업그레이드하여 추가 소셜 커넥터 및 OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성할 수 있는 기능을 제공합니다. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
standard_connectors_feature:
|
||||
'OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성하고 무제한 소셜 커넥터와 모든 프리미엄 기능을 즐기려면 <strong>Hobby</strong> 또는 <strong>Pro</strong> 플랜으로 업그레이드하세요. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
standard_connectors:
|
||||
'<planName/>의 {{count, number}}개 소셜 커넥터 제한에 도달했습니다. 팀의 요구를 충족하기 위해 플랜을 업그레이드하여 추가 소셜 커넥터 및 OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성할 수 있는 기능을 제공합니다. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
standard_connectors_other:
|
||||
'<planName/>의 {{count, number}}개 소셜 커넥터 제한에 도달했습니다. 팀의 요구를 충족하기 위해 플랜을 업그레이드하여 추가 소셜 커넥터 및 OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성할 수 있는 기능을 제공합니다. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
standard_connectors_pro:
|
||||
'<planName/>의 {{count, number}}개 표준 커넥터 제한에 도달했습니다. 팀의 요구를 충족하기 위해 추가 소셜 커넥터 및 OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성할 수 있는 기능과 함께 엔터프라이즈 플랜으로 업그레이드하세요. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
standard_connectors_pro_other:
|
||||
'<planName/>의 {{count, number}}개 표준 커넥터 제한에 도달했습니다. 팀의 요구를 충족하기 위해 추가 소셜 커넥터 및 OIDC, OAuth 2.0, SAML 프로토콜을 사용하여 고유한 커넥터를 생성할 수 있는 기능과 함께 엔터프라이즈 플랜으로 업그레이드하세요. 도움이 필요하면 <a>문의하세요</a>.',
|
||||
roles:
|
||||
'<planName/>의 {{count, number}}개 역할 한도에 도달했습니다. 플랜을 업그레이드하여 추가 역할과 권한을 추가하세요. 도움이 필요하면 <a>문의하기</a>로 연락 주세요.',
|
||||
roles_other:
|
||||
|
|
|
@ -12,9 +12,12 @@ const user_details = {
|
|||
deleted: '해당 사용자가 성공적으로 삭제되었어요.',
|
||||
reset_password: {
|
||||
reset_title: '정말로 비밀번호를 초기화 할까요?',
|
||||
generate_title: '비밀번호를 생성하시겠습니까?',
|
||||
content: '정말로 비밀번호를 초기화 할까요? 이 행동은 취소될 수 없어요.',
|
||||
reset_complete: '해당 사용자의 비밀번호가 성공적으로 초기화 되었어요.',
|
||||
generate_complete: '비밀번호가 생성되었습니다',
|
||||
new_password: '새로운 비밀번호:',
|
||||
password: '비밀번호:',
|
||||
},
|
||||
tab_settings: '설정',
|
||||
tab_roles: '사용자 역할',
|
||||
|
@ -27,6 +30,7 @@ const user_details = {
|
|||
field_email: '이메일 주소',
|
||||
field_phone: '휴대전화 번호',
|
||||
field_username: '사용자 이름',
|
||||
field_password: '비밀번호',
|
||||
field_name: '이름',
|
||||
field_avatar: '아바타 이미지 URL',
|
||||
field_avatar_placeholder: 'https://your.cdn.domain/avatar.png',
|
||||
|
@ -40,6 +44,8 @@ const user_details = {
|
|||
field_sso_connectors: '기업 연결',
|
||||
custom_data_invalid: '사용자 정의 데이터는 반드시 유효한 JSON 객체여야 해요.',
|
||||
profile_invalid: '프로필은 유효한 JSON 객체여야 해요',
|
||||
password_already_set: '비밀번호가 이미 설정되었습니다',
|
||||
no_password_set: '비밀번호가 설정되지 않았습니다',
|
||||
connectors: {
|
||||
connectors: '연동',
|
||||
user_id: '사용자 ID',
|
||||
|
@ -93,6 +99,36 @@ const user_details = {
|
|||
},
|
||||
warning_no_sign_in_identifier:
|
||||
'사용자는 로그인 식별자(사용자 이름, 이메일, 전화 번호 또는 소셜) 중 적어도 하나를 갖고 로그인해야 합니다. 계속 하시겠습니까?',
|
||||
personal_access_tokens: {
|
||||
title: '개인 액세스 토큰',
|
||||
title_other: '개인 액세스 토큰들',
|
||||
title_short: '토큰',
|
||||
empty: '사용자에게 개인 액세스 토큰이 없습니다.',
|
||||
create: '새로운 토큰 생성',
|
||||
tip: '개인 액세스 토큰(PAT)은 사용자가 자격 증명과 상호작용 로그인을 사용하지 않고 액세스 토큰을 부여할 수 있는 안전한 방법을 제공합니다. 이는 CI/CD, 스크립트 또는 프로그램으로 리소스에 접근해야 하는 애플리케이션에 유용합니다. <a>자세히 알아보기</a>',
|
||||
value: '값',
|
||||
created_at: '생성 시각',
|
||||
expires_at: '만료 시각',
|
||||
never: '만료되지 않음',
|
||||
create_new_token: '새로운 토큰 생성',
|
||||
delete_confirmation: '이 작업은 되돌릴 수 없습니다. 이 토큰을 정말 삭제하시겠습니까?',
|
||||
expired: '만료됨',
|
||||
expired_tooltip: '이 토큰은 {{date}}에 만료되었습니다.',
|
||||
create_modal: {
|
||||
title: '개인 액세스 토큰 생성',
|
||||
expiration: '만료',
|
||||
expiration_description: '토큰은 {{date}}에 만료됩니다.',
|
||||
expiration_description_never:
|
||||
'토큰은 절대 만료되지 않습니다. 보안을 강화하기 위해 만료 날짜를 설정할 것을 권장합니다.',
|
||||
days: '{{count}} 일',
|
||||
days_other: '{{count}} 일',
|
||||
created: '토큰 {{name}}이/가 성공적으로 생성되었습니다.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: '개인 액세스 토큰 편집',
|
||||
edited: '토큰 {{name}}이/가 성공적으로 편집되었습니다.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(user_details);
|
||||
|
|
|
@ -17,6 +17,8 @@ const application = {
|
|||
invalid_subdomain: 'Nieprawidłowa subdomena.',
|
||||
custom_domain_not_found: 'Nie znaleziono niestandardowej domeny.',
|
||||
should_delete_custom_domains_first: 'Należy najpierw usunąć niestandardowe domeny.',
|
||||
no_legacy_secret_found: 'Aplikacja nie ma starszego sekretu.',
|
||||
secret_name_exists: 'Nazwa sekretu już istnieje.',
|
||||
};
|
||||
|
||||
export default Object.freeze(application);
|
||||
|
|
|
@ -4,6 +4,7 @@ const guard = {
|
|||
can_not_get_tenant_id: 'Nie można pobrać identyfikatora najemcy z żądania.',
|
||||
file_size_exceeded: 'Przekroczono rozmiar pliku.',
|
||||
mime_type_not_allowed: 'Nie dozwolony typ MIME.',
|
||||
not_allowed_for_admin_tenant: 'Niedozwolone dla najemcy administracyjnego.',
|
||||
};
|
||||
|
||||
export default Object.freeze(guard);
|
||||
|
|
|
@ -23,9 +23,13 @@ const session = {
|
|||
'Nie znaleziono identyfikatora użytkownika. Proszę wróć i zaloguj się ponownie.',
|
||||
interaction_not_found:
|
||||
'Nie znaleziono sesji interakcji. Proszę wróć i rozpocznij sesję ponownie.',
|
||||
invalid_interaction_type:
|
||||
'Ta operacja nie jest obsługiwana dla bieżącej interakcji. Proszę zainicjuj nową sesję.',
|
||||
not_supported_for_forgot_password: 'Ta operacja nie jest obsługiwana dla zapomnienia hasła.',
|
||||
identity_conflict:
|
||||
'Wykryto konflikt tożsamości. Proszę zainicjuj nową sesję, aby kontynuować przy użyciu innej tożsamości.',
|
||||
identifier_not_verified:
|
||||
'Podany identyfikator {{identifier}} nie został zweryfikowany. Proszę utwórz zapis weryfikacyjny dla tego identyfikatora i ukończ proces weryfikacji.',
|
||||
mfa: {
|
||||
require_mfa_verification: 'Wymagana jest weryfikacja MFA, aby się zalogować.',
|
||||
mfa_sign_in_only: 'MFA jest dostępne tylko dla interakcji logowania.',
|
||||
|
@ -39,6 +43,7 @@ const session = {
|
|||
backup_code_required: 'Kod zapasowy jest wymagany.',
|
||||
invalid_backup_code: 'Nieprawidłowy kod zapasowy.',
|
||||
mfa_policy_not_user_controlled: 'Polityka MFA nie jest kontrolowana przez użytkownika.',
|
||||
mfa_factor_not_enabled: 'Czynnik MFA nie jest włączony.',
|
||||
},
|
||||
sso_enabled: 'Single sign on jest włączony dla tego adresu e-mail. Zaloguj się za pomocą SSO.',
|
||||
};
|
||||
|
|
|
@ -36,6 +36,7 @@ const user = {
|
|||
password_algorithm_required: 'Wymagany jest algorytm hasła.',
|
||||
password_and_digest:
|
||||
'Nie możesz ustawić zarówno hasła w postaci tekstu jawnego, jak i skrótu hasła.',
|
||||
personal_access_token_name_exists: 'Nazwa osobistego tokenu dostępu już istnieje.',
|
||||
};
|
||||
|
||||
export default Object.freeze(user);
|
||||
|
|
|
@ -34,6 +34,7 @@ const application_details = {
|
|||
application_id_tip:
|
||||
'Unikalny identyfikator aplikacji, który zazwyczaj jest generowany przez Logto. Oznacza również „<a>client_id</a>” w OpenID Connect.',
|
||||
application_secret: 'Tajny kod aplikacji',
|
||||
application_secret_other: 'Sekrety aplikacji',
|
||||
redirect_uri: 'Adres URL przekierowania',
|
||||
redirect_uris: 'Adresy URL przekierowania',
|
||||
redirect_uri_placeholder: 'https://twoja.strona.com/aplikacja',
|
||||
|
@ -94,6 +95,10 @@ const application_details = {
|
|||
session_duration: 'Czas trwania sesji (dni)',
|
||||
try_it: 'Wypróbuj',
|
||||
no_organization_placeholder: 'Nie znaleziono organizacji. <a>Przejdź do organizacji</a>',
|
||||
field_custom_data: 'Dane niestandardowe',
|
||||
field_custom_data_tip:
|
||||
'Dodatkowe niestandardowe informacje o aplikacji, które nie są wymienione w predefiniowanych właściwościach aplikacji, takie jak ustawienia i konfiguracje specyficzne dla biznesu.',
|
||||
custom_data_invalid: 'Dane niestandardowe muszą być poprawnym obiektem JSON',
|
||||
branding: {
|
||||
name: 'Branding',
|
||||
description: 'Dostosuj nazwę i logo aplikacji na ekranie zgody.',
|
||||
|
@ -163,6 +168,33 @@ const application_details = {
|
|||
search: 'Wyszukaj według nazwy roli, opisu lub ID',
|
||||
empty: 'Brak dostępnych ról',
|
||||
},
|
||||
secrets: {
|
||||
value: 'Wartość',
|
||||
empty: 'Aplikacja nie ma żadnych sekretów.',
|
||||
created_at: 'Utworzono',
|
||||
expires_at: 'Wygasa o',
|
||||
never: 'Nigdy',
|
||||
create_new_secret: 'Utwórz nowy sekret',
|
||||
delete_confirmation:
|
||||
'Ta czynność nie może zostać cofnięta. Czy na pewno chcesz usunąć ten sekret?',
|
||||
legacy_secret: 'Sekret dziedziczenia',
|
||||
expired: 'Wygasły',
|
||||
expired_tooltip: 'Ten sekret wygasł w dniu {{date}}.',
|
||||
create_modal: {
|
||||
title: 'Utwórz sekret aplikacji',
|
||||
expiration: 'Ważność',
|
||||
expiration_description: 'Sekret wygaśnie w dniu {{date}}.',
|
||||
expiration_description_never:
|
||||
'Sekret nigdy nie wygaśnie. Zalecamy ustawienie daty wygaśnięcia dla zwiększenia bezpieczeństwa.',
|
||||
days: '{{count}} dzień',
|
||||
days_other: '{{count}} dni',
|
||||
created: 'Sekret {{name}} został pomyślnie utworzony.',
|
||||
},
|
||||
edit_modal: {
|
||||
title: 'Edytuj sekret aplikacji',
|
||||
edited: 'Sekret {{name}} został pomyślnie zaktualizowany.',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default Object.freeze(application_details);
|
||||
|
|
|
@ -46,8 +46,7 @@ const general = {
|
|||
continue: 'Kontynuuj',
|
||||
page_info: '{{min, number}}-{{max, number}} z {{total, number}}',
|
||||
learn_more: 'Dowiedz się więcej',
|
||||
/** UNTRANSLATED */
|
||||
tab_error_one: '{{count, number}} error',
|
||||
tab_error_one: '{{count, number}} błąd',
|
||||
tab_error_other: '{{count, number}} błędów',
|
||||
skip_for_now: 'Pomiń na teraz',
|
||||
remove: 'Usuń',
|
||||
|
@ -71,6 +70,8 @@ const general = {
|
|||
delete_field: 'Usuń {{field}}',
|
||||
coming_soon: 'Wkrótce dostępne',
|
||||
or: 'Lub',
|
||||
reset: 'Resetuj',
|
||||
generate: 'Generuj',
|
||||
};
|
||||
|
||||
export default Object.freeze(general);
|
||||
|
|
|
@ -42,6 +42,10 @@ const jwt_claims = {
|
|||
title: 'Dane tokenu',
|
||||
subtitle: 'Użyj parametru wejściowego `token`, aby uzyskać bieżący ładunek tokenu dostępu.',
|
||||
},
|
||||
api_context: {
|
||||
title: 'Kontekst API: kontrola dostępu',
|
||||
subtitle: 'Użyj metody `api.denyAccess`, aby odrzucić żądanie tokenu.',
|
||||
},
|
||||
fetch_external_data: {
|
||||
title: 'Pobierz zewnętrzne dane',
|
||||
subtitle: 'Włóż dane bezpośrednio z Twoich zewnętrznych API do roszczeń.',
|
||||
|
|
|
@ -1,31 +1,27 @@
|
|||
import quota_item from './quota-item.js';
|
||||
import quota_table from './quota-table.js';
|
||||
import usage from './usage.js';
|
||||
|
||||
const subscription = {
|
||||
free_plan: 'Darmowy plan',
|
||||
free_plan: 'Plan Darmowy',
|
||||
free_plan_description:
|
||||
'Dla projektów pobocznych i początkowych prób Logto. Brak wymaganej karty kredytowej.',
|
||||
pro_plan: 'Plan Pro',
|
||||
pro_plan_description: 'Dla firm, ciesz się bezstresową obsługą Logto.',
|
||||
enterprise: 'Przedsiębiorstwo',
|
||||
/** UNTRANSLATED */
|
||||
enterprise: 'Plan Przedsiębiorstwo',
|
||||
enterprise_description:
|
||||
'For large-scale organizations requiring advanced features, full customization, and dedicated support to power mission-critical applications. Tailored to your needs for ultimate security, compliance, and performance.',
|
||||
/** UNTRANSLATED */
|
||||
admin_plan: 'Admin plan',
|
||||
/** UNTRANSLATED */
|
||||
dev_plan: 'Development plan',
|
||||
'Dla dużych organizacji wymagających zaawansowanych funkcji, pełnej personalizacji i dedykowanego wsparcia dla kluczowych aplikacji. Dopasowane do twoich potrzeb dla najwyższego bezpieczeństwa, zgodności i wydajności.',
|
||||
admin_plan: 'Plan administracyjny',
|
||||
dev_plan: 'Plan deweloperski',
|
||||
current_plan: 'Obecny plan',
|
||||
current_plan_description:
|
||||
'Oto Twój obecny plan. Łatwo możesz sprawdzić wykorzystanie swojego planu, sprawdzić nadchodzący rachunek i dokonać zmian w planie, jeśli jest to konieczne.',
|
||||
plan_usage: 'Wykorzystanie planu',
|
||||
plan_cycle: 'Cykl planu: {{period}}. Użycie odnawiane w dniu {{renewDate}}.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill: 'Your upcoming bill',
|
||||
next_bill: 'Twój nadchodzący rachunek',
|
||||
next_bill_hint: 'Aby dowiedzieć się więcej o obliczeniach, zapoznaj się z tym <a>artykułem</a>.',
|
||||
/** UNTRANSLATED */
|
||||
next_bill_tip:
|
||||
'The prices displayed here are tax-exclusive and may be subject to a slight delay in updates. The tax amount will be calculated based on the information you provide and your local regulatory requirements, and will be shown in your invoices.',
|
||||
'Ceny przedstawione tutaj są bez podatku i mogą podlegać niewielkiemu opóźnieniu w aktualizacjach. Kwota podatku zostanie obliczona na podstawie informacji, które podasz oraz lokalnych wymogów prawnych, i będzie wyświetlona na twoich fakturach.',
|
||||
manage_payment: 'Zarządzanie płatnościami',
|
||||
overfill_quota_warning:
|
||||
'Osiągnąłeś limit swojej puli. Aby uniknąć problemów, zaktualizuj swój plan.',
|
||||
|
@ -74,6 +70,7 @@ const subscription = {
|
|||
downgrade_success: 'Pomyślnie zdegradowano do <name/>',
|
||||
subscription_check_timeout: 'Czas sprawdzenia subskrypcji wygasł. Proszę odświeżyć później.',
|
||||
no_subscription: 'Brak subskrypcji',
|
||||
usage,
|
||||
};
|
||||
|
||||
export default Object.freeze(subscription);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue