mirror of
https://github.com/logto-io/logto.git
synced 2025-04-07 23:01:25 -05:00
refactor(phrases): update zh-cn translation (#3513)
This commit is contained in:
parent
f27eb508ed
commit
c4bae2175d
51 changed files with 332 additions and 350 deletions
packages
|
@ -1,8 +1,11 @@
|
|||
import { appendPath } from '@silverhand/essentials';
|
||||
import { setDefaultOptions } from 'expect-puppeteer';
|
||||
|
||||
import { logtoCloudUrl as logtoCloudUrlString, logtoConsoleUrl } from '#src/constants.js';
|
||||
import { generatePassword } from '#src/utils.js';
|
||||
|
||||
setDefaultOptions({ timeout: 1000 });
|
||||
|
||||
/**
|
||||
* NOTE: This test suite assumes test cases will run sequentially (which is Jest default).
|
||||
* Parallel execution will lead to errors.
|
||||
|
@ -97,7 +100,7 @@ describe('smoke testing for cloud', () => {
|
|||
|
||||
// Wait for the next page to load
|
||||
await expect(page).toMatchElement('div[class$=config] div[class$=title]', {
|
||||
text: 'Let’s first customize your experience with ease',
|
||||
text: 'Let’s first customize your sign-in experience with ease',
|
||||
});
|
||||
|
||||
expect(new URL(page.url()).pathname.endsWith('/onboarding/sign-in-experience')).toBeTruthy();
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
import path from 'path';
|
||||
|
||||
import { setDefaultOptions } from 'expect-puppeteer';
|
||||
|
||||
import { logtoConsoleUrl as logtoConsoleUrlString } from '#src/constants.js';
|
||||
import { generatePassword } from '#src/utils.js';
|
||||
|
||||
setDefaultOptions({ timeout: 1000 });
|
||||
|
||||
const appendPathname = (pathname: string, baseUrl: URL) =>
|
||||
new URL(path.join(baseUrl.pathname, pathname), baseUrl);
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ const errors = {
|
|||
invalid_pagination: 'Die Paginierung der Anfrage ist ungültig.',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'MIME type is not allowed.', // UNTRANSLATED
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'Der Endnutzer hat die Interaktion abgebrochen.',
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book', // UNTRANSLATED
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: 'Let’s first customize your sign-in experience with ease', // UNTRANSLATED
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: "You've successfully signed in", // UNTRANSLATED
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
},
|
||||
|
|
|
@ -23,10 +23,10 @@ const role_details = {
|
|||
api_permission_count_one: '{{count, number}} permission', // UNTRANSLATED
|
||||
api_permission_count_other: '{{count, number}} permissions', // UNTRANSLATED
|
||||
confirm_assign: 'Assign Permissions', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role', // UNTRANSLATED
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role', // UNTRANSLATED
|
||||
empty: 'No permission available', // UNTRANSLATED
|
||||
},
|
||||
users: {
|
||||
|
@ -36,13 +36,13 @@ const role_details = {
|
|||
latest_sign_in_column: 'Latest sign in', // UNTRANSLATED
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role', // UNTRANSLATED
|
||||
assign_title: 'Assign users', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.', // UNTRANSLATED
|
||||
assign_users_field: 'Assign users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign users', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role!', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role', // UNTRANSLATED
|
||||
empty: 'No user available', // UNTRANSLATED
|
||||
},
|
||||
};
|
||||
|
|
|
@ -48,7 +48,7 @@ const user_details = {
|
|||
assign_button: 'Assign Roles', // UNTRANSLATED
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user.', // UNTRANSLATED
|
||||
assign_title: 'Assign roles to {{name}}', // UNTRANSLATED
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles', // UNTRANSLATED
|
||||
assign_role_field: 'Assign roles', // UNTRANSLATED
|
||||
|
|
|
@ -18,7 +18,7 @@ const errors = {
|
|||
invalid_pagination: 'The request pagination value is invalid.',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.',
|
||||
file_size_exceeded: 'File size exceeded.',
|
||||
mime_type_not_allowed: 'Mime type is not allowed.',
|
||||
mime_type_not_allowed: 'MIME type is not allowed.',
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'The end-user aborted interaction.',
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book',
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease',
|
||||
title: 'Let’s first customize your sign-in experience with ease',
|
||||
inspire: {
|
||||
title: 'Create compelling examples',
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)',
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!",
|
||||
title: "You've successfully signed in",
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.',
|
||||
},
|
||||
|
|
|
@ -23,10 +23,10 @@ const role_details = {
|
|||
api_permission_count_one: '{{count, number}} permission',
|
||||
api_permission_count_other: '{{count, number}} permissions',
|
||||
confirm_assign: 'Assign Permissions',
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!',
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role',
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.',
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!',
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role',
|
||||
empty: 'No permission available',
|
||||
},
|
||||
users: {
|
||||
|
@ -36,13 +36,13 @@ const role_details = {
|
|||
latest_sign_in_column: 'Latest sign in',
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.',
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role', // UNTRANSLATED
|
||||
assign_title: 'Assign users',
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.',
|
||||
assign_users_field: 'Assign users',
|
||||
confirm_assign: 'Assign users',
|
||||
users_assigned: 'The selected users were successfully assigned to this role!',
|
||||
users_assigned: 'The selected users were successfully assigned to this role',
|
||||
empty: 'No user available',
|
||||
},
|
||||
};
|
||||
|
|
|
@ -46,7 +46,7 @@ const user_details = {
|
|||
assign_button: 'Assign Roles',
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.',
|
||||
deleted: '{{name}} was successfully removed from this user!',
|
||||
deleted: '{{name}} was successfully removed from this user.',
|
||||
assign_title: 'Assign roles to {{name}}',
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles',
|
||||
assign_role_field: 'Assign roles',
|
||||
|
|
|
@ -19,7 +19,7 @@ const errors = {
|
|||
invalid_pagination: "La valeur de la pagination de la requête n'est pas valide.",
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'MIME type is not allowed.', // UNTRANSLATED
|
||||
},
|
||||
oidc: {
|
||||
aborted: "L'utilisateur a abandonné l'interaction.",
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book', // UNTRANSLATED
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: 'Let’s first customize your sign-in experience with ease', // UNTRANSLATED
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: "You've successfully signed in", // UNTRANSLATED
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
},
|
||||
|
|
|
@ -23,10 +23,10 @@ const role_details = {
|
|||
api_permission_count_one: '{{count, number}} permission', // UNTRANSLATED
|
||||
api_permission_count_other: '{{count, number}} permissions', // UNTRANSLATED
|
||||
confirm_assign: 'Assign Permissions', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role', // UNTRANSLATED
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role', // UNTRANSLATED
|
||||
empty: 'No permission available', // UNTRANSLATED
|
||||
},
|
||||
users: {
|
||||
|
@ -36,13 +36,13 @@ const role_details = {
|
|||
latest_sign_in_column: 'Latest sign in', // UNTRANSLATED
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role', // UNTRANSLATED
|
||||
assign_title: 'Assign users', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.', // UNTRANSLATED
|
||||
assign_users_field: 'Assign users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign users', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role!', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role', // UNTRANSLATED
|
||||
empty: 'No user available', // UNTRANSLATED
|
||||
},
|
||||
};
|
||||
|
|
|
@ -48,7 +48,7 @@ const user_details = {
|
|||
assign_button: 'Assign Roles', // UNTRANSLATED
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user.', // UNTRANSLATED
|
||||
assign_title: 'Assign roles to {{name}}', // UNTRANSLATED
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles', // UNTRANSLATED
|
||||
assign_role_field: 'Assign roles', // UNTRANSLATED
|
||||
|
|
|
@ -18,7 +18,7 @@ const errors = {
|
|||
invalid_pagination: '요청의 Pagination 값이 유효하지 않아요.',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'MIME type is not allowed.', // UNTRANSLATED
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'End 사용자가 상호 작용을 중단했어요.',
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book', // UNTRANSLATED
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: 'Let’s first customize your sign-in experience with ease', // UNTRANSLATED
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: "You've successfully signed in", // UNTRANSLATED
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
},
|
||||
|
|
|
@ -18,7 +18,7 @@ const errors = {
|
|||
invalid_pagination: 'O valor de paginação da solicitação é inválido.',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'MIME type is not allowed.', // UNTRANSLATED
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'A interação abortada pelo end-user',
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book', // UNTRANSLATED
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: 'Let’s first customize your sign-in experience with ease', // UNTRANSLATED
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: "You've successfully signed in", // UNTRANSLATED
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
},
|
||||
|
|
|
@ -23,10 +23,10 @@ const role_details = {
|
|||
api_permission_count_one: '{{count, number}} permission', // UNTRANSLATED
|
||||
api_permission_count_other: '{{count, number}} permissions', // UNTRANSLATED
|
||||
confirm_assign: 'Assign Permissions', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role', // UNTRANSLATED
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role', // UNTRANSLATED
|
||||
empty: 'No permission available', // UNTRANSLATED
|
||||
},
|
||||
users: {
|
||||
|
@ -36,13 +36,13 @@ const role_details = {
|
|||
latest_sign_in_column: 'Latest sign in', // UNTRANSLATED
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role', // UNTRANSLATED
|
||||
assign_title: 'Assign users', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.', // UNTRANSLATED
|
||||
assign_users_field: 'Assign users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign users', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role!', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role', // UNTRANSLATED
|
||||
empty: 'No user available', // UNTRANSLATED
|
||||
},
|
||||
};
|
||||
|
|
|
@ -46,7 +46,7 @@ const user_details = {
|
|||
assign_button: 'Assign Roles', // UNTRANSLATED
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user.', // UNTRANSLATED
|
||||
assign_title: 'Assign roles to {{name}}', // UNTRANSLATED
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles', // UNTRANSLATED
|
||||
assign_role_field: 'Assign roles', // UNTRANSLATED
|
||||
|
|
|
@ -17,7 +17,7 @@ const errors = {
|
|||
invalid_pagination: 'O valor de paginação enviado é inválido.',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'MIME type is not allowed.', // UNTRANSLATED
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'O utilizador final abortou a interação.',
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book', // UNTRANSLATED
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: 'Let’s first customize your sign-in experience with ease', // UNTRANSLATED
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: "You've successfully signed in", // UNTRANSLATED
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
},
|
||||
|
|
|
@ -23,10 +23,10 @@ const role_details = {
|
|||
api_permission_count_one: '{{count, number}} permission', // UNTRANSLATED
|
||||
api_permission_count_other: '{{count, number}} permissions', // UNTRANSLATED
|
||||
confirm_assign: 'Assign Permissions', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role', // UNTRANSLATED
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role', // UNTRANSLATED
|
||||
empty: 'No permission available', // UNTRANSLATED
|
||||
},
|
||||
users: {
|
||||
|
@ -36,13 +36,13 @@ const role_details = {
|
|||
latest_sign_in_column: 'Latest sign in', // UNTRANSLATED
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role', // UNTRANSLATED
|
||||
assign_title: 'Assign users', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.', // UNTRANSLATED
|
||||
assign_users_field: 'Assign users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign users', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role!', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role', // UNTRANSLATED
|
||||
empty: 'No user available', // UNTRANSLATED
|
||||
},
|
||||
};
|
||||
|
|
|
@ -48,7 +48,7 @@ const user_details = {
|
|||
assign_button: 'Assign Roles', // UNTRANSLATED
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user.', // UNTRANSLATED
|
||||
assign_title: 'Assign roles to {{name}}', // UNTRANSLATED
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles', // UNTRANSLATED
|
||||
assign_role_field: 'Assign roles', // UNTRANSLATED
|
||||
|
|
|
@ -18,7 +18,7 @@ const errors = {
|
|||
invalid_pagination: 'İstenen sayfalandırma değeri geçersiz.',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'MIME type is not allowed.', // UNTRANSLATED
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'Son kullanıcı etkileşimi iptal etti.',
|
||||
|
|
|
@ -67,7 +67,7 @@ const cloud = {
|
|||
book_button: 'Book', // UNTRANSLATED
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: 'Let’s first customize your sign-in experience with ease', // UNTRANSLATED
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
|
@ -103,7 +103,7 @@ const cloud = {
|
|||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: "You've successfully signed in", // UNTRANSLATED
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
},
|
||||
|
|
|
@ -23,10 +23,10 @@ const role_details = {
|
|||
api_permission_count_one: '{{count, number}} permission', // UNTRANSLATED
|
||||
api_permission_count_other: '{{count, number}} permissions', // UNTRANSLATED
|
||||
confirm_assign: 'Assign Permissions', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role', // UNTRANSLATED
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role', // UNTRANSLATED
|
||||
empty: 'No permission available', // UNTRANSLATED
|
||||
},
|
||||
users: {
|
||||
|
@ -36,13 +36,13 @@ const role_details = {
|
|||
latest_sign_in_column: 'Latest sign in', // UNTRANSLATED
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role', // UNTRANSLATED
|
||||
assign_title: 'Assign users', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.', // UNTRANSLATED
|
||||
assign_users_field: 'Assign users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign users', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role!', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role', // UNTRANSLATED
|
||||
empty: 'No user available', // UNTRANSLATED
|
||||
},
|
||||
};
|
||||
|
|
|
@ -46,7 +46,7 @@ const user_details = {
|
|||
assign_button: 'Assign Roles', // UNTRANSLATED
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user!', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user.', // UNTRANSLATED
|
||||
assign_title: 'Assign roles to {{name}}', // UNTRANSLATED
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles', // UNTRANSLATED
|
||||
assign_role_field: 'Assign roles', // UNTRANSLATED
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const errors = {
|
||||
request: {
|
||||
invalid_input: 'Input is invalid. {{details}}', // UNTRANSLATED
|
||||
general: 'Request error occurred.', // UNTRANSLATED
|
||||
invalid_input: '输入无效。{{details}}',
|
||||
general: '发生请求错误。',
|
||||
},
|
||||
auth: {
|
||||
authorization_header_missing: 'Authorization 请求头缺失。',
|
||||
|
@ -15,9 +15,9 @@ const errors = {
|
|||
guard: {
|
||||
invalid_input: '请求中 {{type}} 无效',
|
||||
invalid_pagination: '分页参数无效',
|
||||
can_not_get_tenant_id: 'Unable to get tenant id from request.', // UNTRANSLATED
|
||||
file_size_exceeded: 'File size exceeded.', // UNTRANSLATED
|
||||
mime_type_not_allowed: 'Mime type is not allowed.', // UNTRANSLATED
|
||||
can_not_get_tenant_id: '无法从请求中获取租户 ID。',
|
||||
file_size_exceeded: '文件大小超过限制。',
|
||||
mime_type_not_allowed: '不允许使用此 MIME 类型。',
|
||||
},
|
||||
oidc: {
|
||||
aborted: '用户终止了交互。',
|
||||
|
@ -62,9 +62,9 @@ const errors = {
|
|||
phone_exists_in_profile: '当前用户已绑定手机号,无需重复操作。',
|
||||
email_or_phone_required_in_profile: '请绑定邮箱地址或手机号码。',
|
||||
suspended: '账号已被禁用。',
|
||||
user_not_exist: '未找到与 {{ identifier }} 相关联的用户。',
|
||||
user_not_exist: '未找到与 {{identifier}} 相关联的用户。',
|
||||
missing_profile: '请于登录时提供必要的用户补充信息。',
|
||||
role_exists: 'The role id {{roleId}} is already been added to this user', // UNTRANSLATED
|
||||
role_exists: '角色 ID {{roleId}} 已添加到此用户',
|
||||
},
|
||||
password: {
|
||||
unsupported_encryption_method: '不支持的加密方法 {{name}}',
|
||||
|
@ -85,9 +85,8 @@ const errors = {
|
|||
forgot_password_not_enabled: '忘记密码功能没有开启。',
|
||||
verification_failed: '验证失败,请重新验证。',
|
||||
connector_validation_session_not_found: '找不到连接器用于验证 token 的信息。',
|
||||
identifier_not_found: 'User identifier not found. Please go back and sign in again.', // UNTRANSLATED
|
||||
interaction_not_found:
|
||||
'Interaction session not found. Please go back and start the session again.', // UNTRANSLATED
|
||||
identifier_not_found: '找不到用户标识符。请返回并重新登录。',
|
||||
interaction_not_found: '找不到交互会话。请返回并重新开始会话。',
|
||||
},
|
||||
connector: {
|
||||
general: '连接器发生错误:{{errorDescription}}',
|
||||
|
@ -133,18 +132,16 @@ const errors = {
|
|||
empty_social_connectors: '你启用了社交登录的方式。请至少选择一个社交连接器。',
|
||||
enabled_connector_not_found: '未找到已启用的 {{type}} 连接器',
|
||||
not_one_and_only_one_primary_sign_in_method: '主要的登录方式必须有且仅有一个,请检查你的输入。',
|
||||
username_requires_password: 'Must enable set a password for username sign up identifier.', // UNTRANSLATED
|
||||
passwordless_requires_verify: 'Must enable verify for email/phone sign up identifier.', // UNTRANSLATED
|
||||
miss_sign_up_identifier_in_sign_in: 'Sign in methods must contain the sign up identifier.', // UNTRANSLATED
|
||||
password_sign_in_must_be_enabled:
|
||||
'Password sign in must be enabled when set a password is required in sign up.', // UNTRANSLATED
|
||||
code_sign_in_must_be_enabled:
|
||||
'Verification code sign in must be enabled when set a password is not required in sign up.', // UNTRANSLATED
|
||||
unsupported_default_language: '{{language}}无法选择为默认语言。',
|
||||
username_requires_password: '必须为用户名注册标识符启用设置密码。',
|
||||
passwordless_requires_verify: '必须为电子邮件/电话注册标识符启用验证。',
|
||||
miss_sign_up_identifier_in_sign_in: '登录方法必须包含注册标识符。',
|
||||
password_sign_in_must_be_enabled: '必须在注册中要求设置密码时启用密码登录。',
|
||||
code_sign_in_must_be_enabled: '必须在注册中不要求设置密码时启用验证码登录。',
|
||||
unsupported_default_language: '{{language}} 无法选择为默认语言。',
|
||||
at_least_one_authentication_factor: '至少要选择一个登录要素',
|
||||
},
|
||||
localization: {
|
||||
cannot_delete_default_language: '你已设置{{languageTag}}为你的默认语言,你无法删除默认语言。',
|
||||
cannot_delete_default_language: '你已设置 {{languageTag}} 为你的默认语言,你无法删除默认语言。',
|
||||
invalid_translation_structure: '无效的数据格式,请检查你的输入并重试。',
|
||||
},
|
||||
swagger: {
|
||||
|
@ -158,25 +155,24 @@ const errors = {
|
|||
not_found: '该资源不存在',
|
||||
},
|
||||
log: {
|
||||
invalid_type: 'The log type is invalid.', // UNTRANSLATED
|
||||
invalid_type: '日志类型无效。',
|
||||
},
|
||||
role: {
|
||||
name_in_use: 'This role name {{name}} is already in use', // UNTRANSLATED
|
||||
scope_exists: 'The scope id {{scopeId}} has already been added to this role', // UNTRANSLATED
|
||||
user_exists: 'The user id {{userId}} is already been added to this role', // UNTRANSLATED
|
||||
default_role_missing:
|
||||
'Some of the default roleNames does not exist in database, please ensure to create roles first', // UNTRANSLATED
|
||||
name_in_use: '此角色名称 {{name}} 已被使用',
|
||||
scope_exists: '作用域 ID {{scopeId}} 已添加到此角色',
|
||||
user_exists: '用户 ID {{userId}} 已添加到此角色',
|
||||
default_role_missing: '某些默认角色名称在数据库中不存在,请确保先创建角色',
|
||||
internal_role_violation:
|
||||
'You may be trying to update or delete an internal role which is forbidden by Logto. If you are creating a new role, try another name that does not start with "#internal:".', // UNTRANSLATED
|
||||
'你可能正在尝试更新或删除 Logto 禁止的内部角色。如果你要创建新角色,请尝试使用不以“#internal:”开头的名称。',
|
||||
},
|
||||
scope: {
|
||||
name_exists: 'The scope name {{name}} is already in use', // UNTRANSLATED
|
||||
name_with_space: 'The name of the scope cannot contain any spaces.', // UNTRANSLATED
|
||||
name_exists: '此作用域名称 {{name}} 已被使用',
|
||||
name_with_space: '作用域名称不能包含任何空格。',
|
||||
},
|
||||
storage: {
|
||||
not_configured: 'Storage provider is not configured.', // UNTRANSLATED
|
||||
missing_parameter: 'Missing parameter {{parameter}} for storage provider.', // UNTRANSLATED
|
||||
upload_error: 'Failed to upload file to the storage provider.', // UNTRANSLATED
|
||||
not_configured: '未配置存储提供程序。',
|
||||
missing_parameter: '存储提供程序缺少参数 {{parameter}}。',
|
||||
upload_error: '无法将文件上传到存储提供程序。',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
const api_resource_details = {
|
||||
back_to_api_resources: '返回 API 资源',
|
||||
settings_tab: 'Settings', // UNTRANSLATED
|
||||
permissions_tab: 'Permissions', // UNTRANSLATED
|
||||
settings_tab: '设置',
|
||||
permissions_tab: '权限',
|
||||
settings: '设置',
|
||||
settings_description:
|
||||
'API resources, a.k.a. Resource Indicators, indicate the target services or resources to be requested, usually, a URI format variable representing the resource‘s identity.', // UNTRANSLATED
|
||||
'API 资源,又称资源指示器,表示要请求的目标服务或资源,通常是表示资源身份的 URI 格式变量。',
|
||||
token_expiration_time_in_seconds: 'Token 过期时间(秒)',
|
||||
token_expiration_time_in_seconds_placeholder: '请输入你的 token 过期时间',
|
||||
delete_description:
|
||||
|
@ -12,19 +12,18 @@ const api_resource_details = {
|
|||
enter_your_api_resource_name: '输入 API 资源名称',
|
||||
api_resource_deleted: ' API 资源 {{name}} 已删除.',
|
||||
permission: {
|
||||
create_button: 'Create Permission', // UNTRANSLATED
|
||||
create_title: 'Create permission', // UNTRANSLATED
|
||||
create_subtitle: 'Define the permissions (scopes) needed by this API.', // UNTRANSLATED
|
||||
confirm_create: 'Create permission', // UNTRANSLATED
|
||||
name: 'Permission name', // UNTRANSLATED
|
||||
name_placeholder: 'read:resource', // UNTRANSLATED
|
||||
forbidden_space_in_name: 'The permission name must not contain any spaces.', // UNTRANSLATED
|
||||
description: 'Description', // UNTRANSLATED
|
||||
description_placeholder: 'Able to read the resources', // UNTRANSLATED
|
||||
permission_created: 'The permission {{name}} has been successfully created', // UNTRANSLATED
|
||||
delete_description:
|
||||
'If this permission is deleted, the user who had this permission will lose the access granted by it.', // UNTRANSLATED
|
||||
deleted: 'The permission "{{name}}" was successfully deleted!', // UNTRANSLATED
|
||||
create_button: '创建权限',
|
||||
create_title: '创建权限',
|
||||
create_subtitle: '定义此 API 所需的权限 (scope)。',
|
||||
confirm_create: '创建权限',
|
||||
name: '权限名称',
|
||||
name_placeholder: 'read:resource',
|
||||
forbidden_space_in_name: '权限名称不能包含空格。',
|
||||
description: '描述',
|
||||
description_placeholder: '能够读取资源',
|
||||
permission_created: '权限 "{{name}}" 已成功创建',
|
||||
delete_description: '如果删除此权限,拥有该权限的用户将失去由此权限授予的访问权限。',
|
||||
deleted: '成功删除权限 "{{name}}"!',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -2,48 +2,46 @@ const application_details = {
|
|||
back_to_applications: '返回全部应用',
|
||||
check_guide: '查看指南',
|
||||
settings: '设置',
|
||||
settings_description:
|
||||
'Applications are used to identify your applications in Logto for OIDC, sign-in experience, audit logs, etc.', // UNTRANSLATED
|
||||
settings_description: '应用程序用于在 Logto OIDC、登录体验、审计日志等方面识别你的应用程序。',
|
||||
advanced_settings: '高级设置',
|
||||
advanced_settings_description:
|
||||
'Advanced settings include OIDC related terms. You can check out the Token Endpoint for more information.', // UNTRANSLATED
|
||||
'高级设置包括 OIDC 相关术语。你可以查看 Token Endpoint 以获取更多信息。',
|
||||
application_name: '应用名称',
|
||||
application_name_placeholder: '我的应用',
|
||||
description: '描述',
|
||||
description_placeholder: '请输入应用描述',
|
||||
authorization_endpoint: 'Authorization Endpoint',
|
||||
authorization_endpoint_tip:
|
||||
'进行鉴权与授权的端点 endpoint。用于 OpenID Connect 中的 <a>鉴权</a> 流程。',
|
||||
application_id: 'App ID',
|
||||
authorization_endpoint: '授权端点',
|
||||
authorization_endpoint_tip: '进行鉴权与授权的端点。用于 OpenID Connect 中的 <a>鉴权</a> 流程。',
|
||||
application_id: '应用 ID',
|
||||
application_id_tip:
|
||||
'应用的唯一标识,通常由 Logto 生成。等价于 OpenID Connect 中的 <a>client_id</a>。',
|
||||
application_secret: 'App Secret',
|
||||
redirect_uri: 'Redirect URI',
|
||||
redirect_uris: 'Redirect URIs',
|
||||
application_secret: '应用密钥',
|
||||
redirect_uri: '重定向 URI',
|
||||
redirect_uris: '重定向 URIs',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'在用户登录完成(不论成功与否)后重定向的目标 URI。参见 OpenID Connect <a>AuthRequest</a> 以了解更多。',
|
||||
post_sign_out_redirect_uri: 'Post Sign-out Redirect URI',
|
||||
post_sign_out_redirect_uris: 'Post sign out redirect URIs',
|
||||
post_sign_out_redirect_uri: '退出登录后重定向 URI',
|
||||
post_sign_out_redirect_uris: '退出登录后重定向 URIs',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
post_sign_out_redirect_uri_tip:
|
||||
'在用户退出登录后重定向的目标 URI(可选)。在某些应用类型中可能无实质作用。',
|
||||
cors_allowed_origins: 'CORS Allowed Origins',
|
||||
cors_allowed_origins: 'CORS 允许的来源',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'所有 Redirect URI 的 origin 将默认被允许。通常不需要对此字段进行操作。参见 <a>MDN 文档</a>以了解更多',
|
||||
'所有重定向 URI 的来源将默认被允许。通常不需要对此字段进行操作。参见 <a>MDN 文档</a> 以了解更多。',
|
||||
id_token_expiration: 'ID Token 过期时间',
|
||||
refresh_token_expiration: 'Refresh Token 过期时间',
|
||||
token_endpoint: 'Token Endpoint',
|
||||
user_info_endpoint: 'UserInfo Endpoint',
|
||||
enable_admin_access: 'Enable admin access', // UNTRANSLATED
|
||||
user_info_endpoint: '用户信息端点',
|
||||
enable_admin_access: '启用管理访问',
|
||||
enable_admin_access_label:
|
||||
'Enable or disable the access to Management API. Once enabled, you can use access tokens to call Management API on behalf on this application.', // UNTRANSLATED
|
||||
'启用或禁用对管理 API 的访问。启用后,你可以使用访问令牌代表该应用程序调用管理 API。',
|
||||
delete_description: '本操作会永久性地删除该应用,且不可撤销。输入 <span>{{name}}</span> 确认。',
|
||||
enter_your_application_name: '输入你的应用名称',
|
||||
application_deleted: '应用 {{name}} 成功删除.',
|
||||
redirect_uri_required: '至少需要输入一个 Redirect URL',
|
||||
application_deleted: '应用 {{name}} 成功删除。',
|
||||
redirect_uri_required: '至少需要输入一个重定向 URL。',
|
||||
};
|
||||
|
||||
export default application_details;
|
||||
|
|
|
@ -26,11 +26,10 @@ const applications = {
|
|||
subtitle: '仅由 Web 服务器渲染和更新的应用程序',
|
||||
description: '例如 Next.js, PHP',
|
||||
},
|
||||
// UNTRANSLATED
|
||||
machine_to_machine: {
|
||||
title: 'Machine to Machine',
|
||||
subtitle: 'An app (usually a service) that directly talks to resources',
|
||||
description: 'E.g., Backend service',
|
||||
title: '机器对机器',
|
||||
subtitle: '直接与资源对话的应用程序(通常是服务)',
|
||||
description: '例如,后端服务',
|
||||
},
|
||||
},
|
||||
guide: {
|
||||
|
@ -41,9 +40,9 @@ const applications = {
|
|||
subtitle: '参考以下步骤完成你的应用设置。首先,选择你要使用的 SDK 类型:',
|
||||
description_by_sdk: '本教程向你演示如何在 {{sdk}} 应用中集成 Logto 登录功能',
|
||||
},
|
||||
placeholder_title: 'Select an application type to continue', // UNTRANSLATED
|
||||
placeholder_title: '选择应用程序类型以继续',
|
||||
placeholder_description:
|
||||
'Logto uses an application entity for OIDC to help with tasks such as identifying your apps, managing sign-in, and creating audit logs.', // UNTRANSLATED
|
||||
'Logto 使用 OIDC 的应用程序实体来帮助识别你的应用程序、管理登录和创建审计日志等任务。',
|
||||
};
|
||||
|
||||
export default applications;
|
||||
|
|
|
@ -1,111 +1,108 @@
|
|||
const cloud = {
|
||||
welcome: {
|
||||
title: 'Welcome and let’s create your own Logto Cloud Preview', // UNTRANSLATED
|
||||
title: '欢迎来到 Logto Cloud(预览版),让我们一起创建独属于你的体验',
|
||||
description:
|
||||
'Whether you’re an open-source or cloud user, take a tour of the showcase and experience the full value of Logto. Cloud preview also serves as a preliminary version of Logto Cloud.', // UNTRANSLATED
|
||||
project_field: 'I’m using Logto for', // UNTRANSLATED
|
||||
'无论你是开源用户还是云用户,都可以在展示中了解 Logto 的全部价值。Cloud 预览版也是 Logto Cloud 的初步版本。',
|
||||
project_field: '我使用 Logto 是为了',
|
||||
project_options: {
|
||||
personal: 'Personal project', // UNTRANSLATED
|
||||
company: 'Company project', // UNTRANSLATED
|
||||
personal: '个人项目',
|
||||
company: '公司项目',
|
||||
},
|
||||
deployment_type_field: 'Prefer open-source or cloud?', // UNTRANSLATED
|
||||
deployment_type_field: '你偏爱开源还是云?',
|
||||
deployment_type_options: {
|
||||
open_source: 'Open-Source', // UNTRANSLATED
|
||||
cloud: 'Cloud', // UNTRANSLATED
|
||||
open_source: '开源',
|
||||
cloud: '云',
|
||||
},
|
||||
},
|
||||
about: {
|
||||
title: 'A little bit about you', // UNTRANSLATED
|
||||
description:
|
||||
'Let‘s make your Logto experience unique to you by getting to know you better. Your information is safe with us.', // UNTRANSLATED
|
||||
title_field: 'Your title', // UNTRANSLATED
|
||||
title: '关于你的一些信息',
|
||||
description: '通过更好地了解你,我们可以使你的 Logto 体验更加个性化。你的信息是安全的。',
|
||||
title_field: '你的头衔',
|
||||
title_options: {
|
||||
developer: 'Developer', // UNTRANSLATED
|
||||
team_lead: 'Team Lead', // UNTRANSLATED
|
||||
ceo: 'CEO', // UNTRANSLATED
|
||||
cto: 'CTO', // UNTRANSLATED
|
||||
product: 'Product', // UNTRANSLATED
|
||||
others: 'Others', // UNTRANSLATED
|
||||
developer: '开发人员',
|
||||
team_lead: '团队负责人',
|
||||
ceo: 'CEO',
|
||||
cto: 'CTO',
|
||||
product: '产品',
|
||||
others: '其他',
|
||||
},
|
||||
company_name_field: 'Company name', // UNTRANSLATED
|
||||
company_name_placeholder: 'Acme.co', // UNTRANSLATED
|
||||
company_size_field: 'How’s your company size?', // UNTRANSLATED
|
||||
company_name_field: '公司名称',
|
||||
company_name_placeholder: 'Acme.co',
|
||||
company_size_field: '你的公司规模如何?',
|
||||
company_options: {
|
||||
size_1: '1', // UNTRANSLATED
|
||||
size_2_49: '2-49', // UNTRANSLATED
|
||||
size_50_199: '50-199', // UNTRANSLATED
|
||||
size_200_999: '200-999', // UNTRANSLATED
|
||||
size_1000_plus: '1000+', // UNTRANSLATED
|
||||
size_1: '1',
|
||||
size_2_49: '2-49',
|
||||
size_50_199: '50-199',
|
||||
size_200_999: '200-999',
|
||||
size_1000_plus: '1000+',
|
||||
},
|
||||
reason_field: 'I’m signing up because', // UNTRANSLATED
|
||||
reason_field: '我注册的原因是',
|
||||
reason_options: {
|
||||
passwordless: 'Finding passwordless authentication and UI kit', // UNTRANSLATED
|
||||
efficiency: 'Finding out-of-the-box identity infrastructure', // UNTRANSLATED
|
||||
access_control: 'Controlling user access based on roles and responsibilities', // UNTRANSLATED
|
||||
multi_tenancy: 'Seeking strategies for a multi-tenancy product', // UNTRANSLATED
|
||||
enterprise: 'Finding SSO solutions for enterprise readiness', // UNTRANSLATED
|
||||
others: 'Others', // UNTRANSLATED
|
||||
passwordless: '寻找无需密码身份验证和 UI 工具包',
|
||||
efficiency: '寻找即插即用的身份基础架构',
|
||||
access_control: '基于角色和责任控制用户访问',
|
||||
multi_tenancy: '寻求面向多租户产品的策略',
|
||||
enterprise: '为产品更方便企业使用寻找 SSO 解决方案',
|
||||
others: '其他',
|
||||
},
|
||||
},
|
||||
congrats: {
|
||||
title: 'Great news! You are qualified to earn Logto Cloud early credit!', // UNTRANSLATED
|
||||
title: '好消息!你有资格获得 Logto Cloud 的早鸟惊喜。',
|
||||
description:
|
||||
'Don’t miss out on a chance to enjoy a free <strong>60 days</strong> subscription to Logto Cloud after its official launch! Contact the Logto team now to learn more.', // UNTRANSLATED
|
||||
check_out_button: 'Check out the live preview', // UNTRANSLATED
|
||||
reserve_title: 'Reserve your time with Logto team', // UNTRANSLATED
|
||||
reserve_description: 'Credit is only eligible once upon validation.', // UNTRANSLATED
|
||||
book_button: 'Schedule now', // UNTRANSLATED
|
||||
join_description: 'Join our public <a>{{link}}</a> to connect and chat with other developers.', // UNTRANSLATED
|
||||
discord_link: 'discord channel', // UNTRANSLATED
|
||||
enter_admin_console: 'Enter Logto Cloud Preview', // UNTRANSLATED
|
||||
'别错过:立即联系 Logto 团队,了解更多信息,获得 Logto Cloud 正式版 <strong>60 天</strong> 的免费试用机会!',
|
||||
check_out_button: '查看实时预览',
|
||||
reserve_title: '与 Logto 团队预定时间',
|
||||
reserve_description: '验证后仅有一次领取资格。',
|
||||
book_button: '现在预定',
|
||||
join_description: '加入我们的公开 <a>{{link}}</a>,与其他开发人员连接和聊天。',
|
||||
discord_link: 'Discord 频道',
|
||||
enter_admin_console: '进入 Logto Cloud 预览',
|
||||
},
|
||||
gift: {
|
||||
title: 'Use Logto Cloud free for 60 days. Join the front-runners now!', // UNTRANSLATED
|
||||
description: 'Book a one-on-one session with our team for early credit.', // UNTRANSLATED
|
||||
reserve_title: 'Reserve your time with Logto team', // UNTRANSLATED
|
||||
reserve_description: 'Credit is only eligible once upon evaluation.', // UNTRANSLATED
|
||||
book_button: 'Book', // UNTRANSLATED
|
||||
title: '免费使用 Logto Cloud 60 天,立即成为尝鲜会员!',
|
||||
description: '预定与我们团队的一对一会话,以获取早鸟惊喜。',
|
||||
reserve_title: '与 Logto 团队预定时间',
|
||||
reserve_description: '评估后仅有一次领取资格。',
|
||||
book_button: '预定',
|
||||
},
|
||||
sie: {
|
||||
title: 'Let’s first customize your experience with ease', // UNTRANSLATED
|
||||
title: '让我们轻松定制你的登录体验',
|
||||
inspire: {
|
||||
title: 'Create compelling examples', // UNTRANSLATED
|
||||
description:
|
||||
'Feeling unsure about sign in experience? Just click the "Inspire Me" and let the magic happen!', // UNTRANSLATED
|
||||
inspire_me: 'Inspire me', // UNTRANSLATED
|
||||
title: '创建引人入胜的示例',
|
||||
description: '对登录体验不确定吗?只需点击“启发我”,让魔法发生!',
|
||||
inspire_me: '来点灵感',
|
||||
},
|
||||
logo_field: 'App Logo', // UNTRANSLATED
|
||||
color_field: 'Brand color', // UNTRANSLATED
|
||||
identifier_field: 'Identifier', // UNTRANSLATED
|
||||
logo_field: '应用商标',
|
||||
color_field: '品牌颜色',
|
||||
identifier_field: '标识符',
|
||||
identifier_options: {
|
||||
email: 'Email', // UNTRANSLATED
|
||||
phone: 'Phone', // UNTRANSLATED
|
||||
user_name: 'Username', // UNTRANSLATED
|
||||
email: '电子邮件',
|
||||
phone: '电话',
|
||||
user_name: '用户名',
|
||||
},
|
||||
authn_field: 'Authentication', // UNTRANSLATED
|
||||
authn_field: '身份验证',
|
||||
authn_options: {
|
||||
password: 'Password', // UNTRANSLATED
|
||||
verification_code: 'Verification code', // UNTRANSLATED
|
||||
password: '密码',
|
||||
verification_code: '验证码',
|
||||
},
|
||||
social_field: 'Social sign in', // UNTRANSLATED
|
||||
finish_and_done: 'Finish and done', // UNTRANSLATED
|
||||
social_field: '社交登录',
|
||||
finish_and_done: '完成并完成',
|
||||
preview: {
|
||||
mobile_tab: 'Mobile', // UNTRANSLATED
|
||||
web_tab: 'Web', // UNTRANSLATED
|
||||
mobile_tab: '移动端',
|
||||
web_tab: '网页端',
|
||||
},
|
||||
connectors: {
|
||||
unlocked_later: 'Unlocked later', // UNTRANSLATED
|
||||
unlocked_later_tip:
|
||||
'Once you have completed the onboarding process and entered the product, you will have access to even more social sign-in methods.', // UNTRANSLATED
|
||||
unlocked_later: '稍后解锁',
|
||||
unlocked_later_tip: '完成入门流程并进入产品后,你将获得访问更多社交登录方式的权限。',
|
||||
notice:
|
||||
'Please avoid using the demo connector for production purposes. Once you’ve completed testing, kindly delete the demo connector and set up your own connector with your credentials.', // UNTRANSLATED
|
||||
'请勿将演示连接器用于生产目的。完成测试后,请删除演示连接器并使用你的凭据设置自己的连接器。',
|
||||
},
|
||||
},
|
||||
broadcast: '📣 You are in Logto Cloud (Preview)', // UNTRANSLATED
|
||||
broadcast: '📣 你正在使用 Logto Cloud(预览版)',
|
||||
socialCallback: {
|
||||
title: "You've successfully signed in!", // UNTRANSLATED
|
||||
title: '你已成功登录',
|
||||
description:
|
||||
'You have successfully signed in using your social account. To ensure seamless integration and access to all the features of Logto, we recommend that you proceed to configure your own social connector.', // UNTRANSLATED
|
||||
'你已成功使用社交账户登录。为确保与 Logto 的无缝集成并获得所有功能的访问权限,我们建议你继续配置自己的社交连接器。',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
const components = {
|
||||
uploader: {
|
||||
action_description: 'Drag and drop or browse', // UNTRANSLATED
|
||||
uploading: 'Uploading...', // UNTRANSLATED
|
||||
action_description: '拖放或浏览上传',
|
||||
uploading: '上传中...',
|
||||
image_limit:
|
||||
'Upload image under {{size, number}}KB, {{extensions, list(style: narrow; type: conjunction;)}} only.', // UNTRANSLATED
|
||||
error_upload: 'Something went wrong. File upload failed.', // UNTRANSLATED
|
||||
error_file_size: 'File size is too large. Please upload a file under {{size, number}}KB.', // UNTRANSLATED
|
||||
'上传图片大小不能超过 {{size, number}}KB,只支持 {{extensions, list(style: narrow; type: conjunction;)}} 格式的文件。',
|
||||
error_upload: '哎呀,出了些问题。文件上传失败。',
|
||||
error_file_size: '文件太大了,请上传小于 {{size, number}}KB 的文件。',
|
||||
error_file_type:
|
||||
'File type is not supported. {{extensions, list(style: narrow; type: conjunction;)}} only.', // UNTRANSLATED
|
||||
'不支持该文件类型。只支持 {{extensions, list(style: narrow; type: conjunction;)}} 格式的文件。',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ const connector_details = {
|
|||
check_readme: '查看 README',
|
||||
settings: '通用设置',
|
||||
settings_description:
|
||||
'Connectors play a critical role in Logto. With their help, Logto enables end-users to use passwordless registration or sign-in and the capabilities of signing in with social accounts.', // UNTRANSLATED
|
||||
'连接器在 Logto 中扮演着至关重要的角色。借助它们的帮助,Logto 使终端用户能够使用无密码注册或登录的功能以及使用社交帐户登录的功能。',
|
||||
parameter_configuration: '参数配置',
|
||||
test_connection: '连接测试',
|
||||
save_error_empty_config: '请输入配置内容',
|
||||
|
@ -24,9 +24,9 @@ const connector_details = {
|
|||
type_sms: '短信连接器',
|
||||
type_social: '社交连接器',
|
||||
in_used_social_deletion_description:
|
||||
'This connector is in-use in your sign in experience. By deleting, <name/> sign in experience will be deleted in sign in experience settings.', // UNTRANSLATED
|
||||
'你的登录体验正在使用这个连接器。删除后,<name/> 登录体验将在登录体验设置中被删除。',
|
||||
in_used_passwordless_deletion_description:
|
||||
'This {{name}} is in-use in your sign-in experience. By deleting, your sign-in experience will not work properly until you resolve the conflict.', // UNTRANSLATED
|
||||
'你的登录体验正在使用 {{name}} 连接器。删除后,你的登录体验将无法正常工作,直到你解决冲突。',
|
||||
};
|
||||
|
||||
export default connector_details;
|
||||
|
|
|
@ -7,8 +7,7 @@ const connectors = {
|
|||
tab_email_sms: '短信和邮件连接器',
|
||||
tab_social: '社交连接器',
|
||||
connector_name: '连接器名称',
|
||||
demo_tip:
|
||||
'The demo connector is designed exclusively for demonstration purposes and is not recommended for deployment in a production environment.', // UNTRANSLATED
|
||||
demo_tip: '演示连接器仅用于演示目的,不建议在生产环境中部署。',
|
||||
connector_type: '类型',
|
||||
connector_status: '登录体验',
|
||||
connector_status_in_use: '使用中',
|
||||
|
@ -17,9 +16,9 @@ const connectors = {
|
|||
content: '未使用意味着你的登录体验并没有使用这个登录方式。<a>{{link}}</a>去添加。',
|
||||
go_to_sie: '前往登录体验',
|
||||
},
|
||||
placeholder_title: 'Social connector', // UNTRANSLATED
|
||||
placeholder_title: '社交连接器',
|
||||
placeholder_description:
|
||||
'Logto has provided many widely used social sign-in connectors meantime you can create your own with standard protocols.', // UNTRANSLATED
|
||||
'Logto 提供了许多广泛使用的社交登录连接器,同时你还可以使用标准协议创建自己的连接器。',
|
||||
save_and_done: '保存并完成',
|
||||
type: {
|
||||
email: '邮件连接器',
|
||||
|
@ -57,15 +56,15 @@ const connectors = {
|
|||
'此「身份供应商名称」值与现有的 <span>name</span> 连接器相同。使用相同的身份供应商名称会导致不符合预期的登录行为,用户可能通过两个不同的连接器访问同一个帐户。',
|
||||
target_conflict_line2:
|
||||
'如果你想替换当前的连接器,并连接相同的身份提供商(IdP),以便先前的用户可以直接登录而无需重新注册,请先删除 <span>name</span> 连接器,再创建一个新的连接器并使用相同的「身份供应商名称」值。',
|
||||
target_conflict_line3: '如果您想连接一个新的身份验证提供程序,请修改「身份供应商名称」并继续。',
|
||||
target_conflict_line3: '如果你想连接一个新的身份验证提供程序,请修改「身份供应商名称」并继续。',
|
||||
config: '粘贴你的 JSON 代码',
|
||||
sync_profile: '开启用户资料同步',
|
||||
sync_profile_only_at_sign_up: '首次注册时同步',
|
||||
sync_profile_each_sign_in: '每次登录时同步',
|
||||
sync_profile_tip: '同步用户的用户名、头像等个人资料信息',
|
||||
callback_uri: 'Callback URI', // UNTRANSLATED
|
||||
callback_uri: 'Callback URI',
|
||||
callback_uri_description:
|
||||
"Also called redirect URI, is the URI in Logto where users will be sent back after social authorization, copy and paste to the social provider's config page.", // UNTRANSLATED
|
||||
'也称为重定向 URI,在社交授权后,用户将被发送回 Logto 的 URI,复制并粘贴到社交提供者的配置页面中。',
|
||||
},
|
||||
platform: {
|
||||
universal: '通用',
|
||||
|
|
|
@ -15,9 +15,9 @@ const errors = {
|
|||
password_pattern_error: '密码至少需要 {{min}} 个字符,且必须包含字母、数字和符号。',
|
||||
insecure_contexts: '不支持不安全的上下文(非 HTTPS)。',
|
||||
unexpected_error: '发生未知错误',
|
||||
not_found: '404 not found', // UNTRANSLATED
|
||||
not_found: '404 找不到资源',
|
||||
create_internal_role_violation:
|
||||
'You are creating a new internal role which is forbidden by Logto. Try another name that does not start with "#internal:".', // UNTRANSLATED
|
||||
'你正在创建一个被 Logto 禁止内部角色。尝试使用不以 "#internal:" 开头的其他名称。',
|
||||
};
|
||||
|
||||
export default errors;
|
||||
|
|
|
@ -11,7 +11,7 @@ const general = {
|
|||
save: '保存',
|
||||
save_changes: '保存更改',
|
||||
saved: '保存成功!',
|
||||
discard: 'Discard', // UNTRANSLATED
|
||||
discard: '放弃',
|
||||
loading: '读取中...',
|
||||
redirecting: '页面跳转中...',
|
||||
add: '添加',
|
||||
|
@ -41,16 +41,16 @@ const general = {
|
|||
got_it: '知道了',
|
||||
continue: '继续',
|
||||
page_info: '{{min, number}}-{{max, number}} 共 {{total, number}} 条',
|
||||
learn_more: 'Learn more', // UNTRANSLATED
|
||||
tab_errors: '{{count, number}} errors', // UNTRANSLATED
|
||||
skip_for_now: 'Skip for now', // UNTRANSLATED
|
||||
learn_more: '了解更多',
|
||||
tab_errors: '{{count, number}} 个错误',
|
||||
skip_for_now: '先跳过',
|
||||
remove: '移除',
|
||||
visit: 'Visit', // UNTRANSLATED
|
||||
join: 'Join', // UNTRANSLATED
|
||||
try_now: 'Try Now', // UNTRANSLATED
|
||||
multiple_form_field: '(Multiple)', // UNTRANSLATED
|
||||
cap_limit: 'Cap limit', // UNTRANSLATED
|
||||
demo: 'Demo', // UNTRANSLATED
|
||||
visit: '访问',
|
||||
join: '加入',
|
||||
try_now: '现在试试',
|
||||
multiple_form_field: '(多选)',
|
||||
cap_limit: '限量使用',
|
||||
demo: '演示',
|
||||
};
|
||||
|
||||
export default general;
|
||||
|
|
|
@ -1,31 +1,27 @@
|
|||
const get_started = {
|
||||
progress: '开始上手: {{completed}}/{{total}}',
|
||||
progress_dropdown_title: '一些快速上手的操作',
|
||||
title: 'Something to explore to help you succeed', // UNTRANSLATED
|
||||
title: '成功开发身份方案,我们先来探索一番',
|
||||
subtitle_part1: '下列是一些可以快速上手的操作,通过这些,你可以更好地感受 Logto 的价值',
|
||||
subtitle_part2: '我已经完成了这些设置。 ',
|
||||
subtitle_part2: '我已经完成了这些设置。',
|
||||
hide_this: '隐藏引导',
|
||||
confirm_message: '你确认要隐藏该页面吗? 本操作将无法恢复。',
|
||||
check_preview_title: 'Check the live preview', // UNTRANSLATED
|
||||
check_preview_title: '查看实时预览',
|
||||
check_preview_subtitle: '来体验 Logto 登录吧',
|
||||
integration_title: 'Create and integrate your application', // UNTRANSLATED
|
||||
integration_subtitle:
|
||||
'Set up Logto authentication for your native, single page, machine to machine, or traditional application', // UNTRANSLATED
|
||||
custom_sie_title: 'Customize sign-in experience', // UNTRANSLATED
|
||||
custom_sie_subtitle: 'Unlock a vast range of scenarios with advanced settings', // UNTRANSLATED
|
||||
passwordless_title: 'Scale passwordless sign in by adding your own connectors', // UNTRANSLATED
|
||||
passwordless_subtitle:
|
||||
'Try passwordless sign in and enable a secure and frictionless experience for your customer', // UNTRANSLATED
|
||||
community_title: 'Join our discord community', // UNTRANSLATED
|
||||
community_subtitle: 'Join our public channel to chat with other developers', // UNTRANSLATED
|
||||
management_api_title: 'Interact with Management API', // UNTRANSLATED
|
||||
management_api_subtitle: 'Directly connect your authentication system to our management API', // UNTRANSLATED
|
||||
further_readings_title: 'Further readings', // UNTRANSLATED
|
||||
further_readings_subtitle:
|
||||
'Check out our step-by-step, scenario-based docs without tedious concepts', // UNTRANSLATED
|
||||
add_rbac_title: 'Add role-based access control to protect your resources', // UNTRANSLATED
|
||||
add_rbac_subtitle:
|
||||
'Control your resource through scalable role authorization for diverse use cases.', // UNTRANSLATED
|
||||
integration_title: '创建和集成你的应用程序',
|
||||
integration_subtitle: '为你的本地、单页、机器对机器或传统应用程序设置 Logto 身份验证',
|
||||
custom_sie_title: '自定义登录体验',
|
||||
custom_sie_subtitle: '使用高级设置解锁各种场景',
|
||||
passwordless_title: '通过添加自己的连接器来扩展无密码登录',
|
||||
passwordless_subtitle: '尝试无密码登录,并为你的客户提供安全和无摩擦的体验',
|
||||
community_title: '加入我们的 Discord 社区',
|
||||
community_subtitle: '加入我们的公共频道与其他开发人员交流',
|
||||
management_api_title: '与管理 API 交互',
|
||||
management_api_subtitle: '直接将你的身份验证系统连接到我们的管理 API',
|
||||
further_readings_title: '进一步阅读',
|
||||
further_readings_subtitle: '查看我们的逐步、基于场景的文档,避免繁琐的概念',
|
||||
add_rbac_title: '添加基于角色的访问控制以保护你的资源',
|
||||
add_rbac_subtitle: '通过可扩展的角色授权控制你的资源,以适应各种用例。',
|
||||
};
|
||||
|
||||
export default get_started;
|
||||
|
|
|
@ -3,7 +3,7 @@ const log_details = {
|
|||
back_to_user: '返回 {{name}}',
|
||||
success: '成功',
|
||||
failed: '失败',
|
||||
event_key: 'Event Key', // UNTRANSLATED
|
||||
event_key: '事件 Key',
|
||||
application: '应用',
|
||||
ip_address: 'IP 地址',
|
||||
user: '用户',
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
const permissions = {
|
||||
search_placeholder: 'Search by API or permission name', // UNTRANSLATED
|
||||
search_placeholder_without_api: 'Search by permission name', // UNTRANSLATED
|
||||
name_column: 'Permission', // UNTRANSLATED
|
||||
description_column: 'Description', // UNTRANSLATED
|
||||
api_column: 'API', // UNTRANSLATED
|
||||
placeholder_title: 'Permission', // UNTRANSLATED
|
||||
placeholder_description:
|
||||
'Permission refers to the authorization to access a resource (we call it API resource).', // UNTRANSLATED
|
||||
search_placeholder: '通过 API 或权限名称搜索',
|
||||
search_placeholder_without_api: '通过权限名称搜索',
|
||||
name_column: '权限',
|
||||
description_column: '描述',
|
||||
api_column: 'API',
|
||||
placeholder_title: '权限',
|
||||
placeholder_description: '权限是指访问资源的授权(我们称其为 API 资源)。',
|
||||
};
|
||||
|
||||
export default permissions;
|
||||
|
|
|
@ -47,11 +47,11 @@ const profile = {
|
|||
description: '删除账户将会删除所有个人信息、用户数据和配置。此操作无法撤销。',
|
||||
button: '删除账户',
|
||||
dialog_paragraph_1:
|
||||
'很抱歉听到您想要删除您的帐户。删除您的帐户将永久删除所有数据,包括用户信息、日志和设置,此操作无法撤销。因此,请确保在继续之前备份任何重要数据。',
|
||||
'很抱歉听到你想要删除你的帐户。删除你的帐户将永久删除所有数据,包括用户信息、日志和设置,此操作无法撤销。因此,请确保在继续之前备份任何重要数据。',
|
||||
dialog_paragraph_2:
|
||||
'要继续删除帐户的删除过程,请通过 <a>mail</a> 向我们的支持团队发送主题为“帐户删除请求”的邮件。我们将协助您并确保所有数据都已从我们的系统中正确删除。',
|
||||
'要继续删除帐户的删除过程,请通过 <a>mail</a> 向我们的支持团队发送主题为“帐户删除请求”的邮件。我们将协助你并确保所有数据都已从我们的系统中正确删除。',
|
||||
dialog_paragraph_3:
|
||||
'感谢您选择 Logto Cloud。如果您有任何进一步的问题或疑虑,请随时与我们联系。',
|
||||
'感谢你选择 Logto Cloud。如果你有任何进一步的问题或疑虑,请随时与我们联系。',
|
||||
},
|
||||
set: '设置',
|
||||
change: '修改',
|
||||
|
|
|
@ -1,49 +1,45 @@
|
|||
const role_details = {
|
||||
back_to_roles: 'Back to Roles',
|
||||
identifier: 'Identifier',
|
||||
back_to_roles: '返回角色',
|
||||
identifier: '标识符',
|
||||
delete_description:
|
||||
'Doing so will remove the permissions associated with this role from the affected users and delete the mapping between roles, users, and permissions.', // UNTRANSLATED
|
||||
role_deleted: '{{name}} was successfully deleted!', // UNTRANSLATED
|
||||
settings_tab: 'Settings',
|
||||
users_tab: 'Users',
|
||||
permissions_tab: 'Permissions',
|
||||
settings: 'Settings',
|
||||
'这样做将从受影响的用户中删除与该角色关联的权限,并删除角色、用户和权限之间的映射关系。',
|
||||
role_deleted: '{{name}} 已成功删除!',
|
||||
settings_tab: '设置',
|
||||
users_tab: '用户',
|
||||
permissions_tab: '权限',
|
||||
settings: '设置',
|
||||
settings_description:
|
||||
'Roles are a grouping of permissions that can be assigned to users. They also provide a way to aggregate permissions defined for different APIs, making it more efficient to add, remove, or adjust permissions compared to assigning them individually to users.', // UNTRANSLATED
|
||||
field_name: 'Name',
|
||||
field_description: 'Description',
|
||||
'角色是一组权限,可以分配给用户。它们还提供了一种聚合不同 API 定义的权限的方法,使得添加、删除或调整权限比将其单独分配给用户更有效率。',
|
||||
field_name: '名称',
|
||||
field_description: '描述',
|
||||
permission: {
|
||||
assign_button: 'Assign Permissions', // UNTRANSLATED
|
||||
assign_title: 'Assign permissions', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign permissions to this role. The role will gain the added permissions, and users with this role will inherit these permissions.', // UNTRANSLATED
|
||||
assign_form_field: 'Assign permissions', // UNTRANSLATED
|
||||
added_text_one: '{{count, number}} permission added', // UNTRANSLATED
|
||||
added_text_other: '{{count, number}} permissions added', // UNTRANSLATED
|
||||
api_permission_count_one: '{{count, number}} permission', // UNTRANSLATED
|
||||
api_permission_count_other: '{{count, number}} permissions', // UNTRANSLATED
|
||||
confirm_assign: 'Assign Permissions', // UNTRANSLATED
|
||||
permission_assigned: 'The selected permissions were successfully assigned to this role!', // UNTRANSLATED
|
||||
deletion_description:
|
||||
'If this permission is removed, the affected user with this role will lose the access granted by this permission.', // UNTRANSLATED
|
||||
permission_deleted: 'The permission "{{name}}" was successfully removed from this role!', // UNTRANSLATED
|
||||
empty: 'No permission available', // UNTRANSLATED
|
||||
assign_button: '分配权限',
|
||||
assign_title: '分配权限',
|
||||
assign_subtitle: '将权限分配给此角色。角色将获得添加的权限,具有此角色的用户将继承这些权限。',
|
||||
assign_form_field: '分配权限',
|
||||
added_text_one: '添加了 {{count, number}} 个权限',
|
||||
added_text_other: '添加了 {{count, number}} 个权限',
|
||||
api_permission_count_one: '{{count, number}} 个权限',
|
||||
api_permission_count_other: '{{count, number}} 个权限',
|
||||
confirm_assign: '分配权限',
|
||||
permission_assigned: '所选的权限已成功分配给此角色',
|
||||
deletion_description: '如果删除此权限,则具有此角色的受影响用户将失去此权限授予的访问权限。',
|
||||
permission_deleted: '权限 {{name}} 已成功从此角色中删除',
|
||||
empty: '无可用权限',
|
||||
},
|
||||
users: {
|
||||
assign_button: 'Assign Users', // UNTRANSLATED
|
||||
name_column: 'User', // UNTRANSLATED
|
||||
app_column: 'App', // UNTRANSLATED
|
||||
latest_sign_in_column: 'Latest sign in', // UNTRANSLATED
|
||||
delete_description:
|
||||
'It will remain in your user pool but lose the authorization for this role.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this role!', // UNTRANSLATED
|
||||
assign_title: 'Assign users', // UNTRANSLATED
|
||||
assign_subtitle:
|
||||
'Assign users to this role. Find appropriate users by searching name, email, phone, or user ID.', // UNTRANSLATED
|
||||
assign_users_field: 'Assign users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign users', // UNTRANSLATED
|
||||
users_assigned: 'The selected users were successfully assigned to this role!', // UNTRANSLATED
|
||||
empty: 'No user available', // UNTRANSLATED
|
||||
assign_button: '分配用户',
|
||||
name_column: '用户',
|
||||
app_column: '应用',
|
||||
latest_sign_in_column: '最近登录',
|
||||
delete_description: '它将保留在你的用户池中,但失去此角色的授权。',
|
||||
deleted: '{{name}} 已成功从此角色中删除',
|
||||
assign_title: '分配用户',
|
||||
assign_subtitle: '将用户分配给此角色。通过搜索名称、电子邮件、电话或用户 ID 查找适当的用户。',
|
||||
assign_users_field: '分配用户',
|
||||
confirm_assign: '分配用户',
|
||||
users_assigned: '所选的用户已成功分配给此角色',
|
||||
empty: '无可用用户',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,23 +1,21 @@
|
|||
const roles = {
|
||||
title: 'Roles', // UNTRANSLATED
|
||||
title: '角色',
|
||||
subtitle:
|
||||
'Roles include permissions that determine what a user can do. RBAC uses roles to give users access to resources for specific actions.', // UNTRANSLATED
|
||||
create: 'Create Role', // UNTRANSLATED
|
||||
role_name: 'Role', // UNTRANSLATED
|
||||
role_description: 'Description', // UNTRANSLATED
|
||||
role_name_placeholder: 'Enter your role name', // UNTRANSLATED
|
||||
role_description_placeholder: 'Enter your role description', // UNTRANSLATED
|
||||
assigned_users: 'Assigned users', // UNTRANSLATED
|
||||
assign_permissions: 'Assign permissions', // UNTRANSLATED
|
||||
create_role_title: 'Create Role', // UNTRANSLATED
|
||||
create_role_description:
|
||||
'Create and manage roles for your applications. Roles contain collections of permissions and can be assigned to users.', // UNTRANSLATED
|
||||
create_role_button: 'Create Role', // UNTRANSLATED
|
||||
role_created: 'The role {{name}} has been successfully created!', // UNTRANSLATED
|
||||
search: 'Search by role name, description or ID', // UNTRANSLATED
|
||||
placeholder_title: 'Roles', // UNTRANSLATED
|
||||
placeholder_description:
|
||||
'Roles are a grouping of permissions that can be assigned to users. Be sure to add permission first before create roles.', // UNTRANSLATED
|
||||
'RBAC 是一种访问控制方法,它使用角色来决定用户可以做什么事情,包括授予用户访问特定资源的权限。',
|
||||
create: '创建角色',
|
||||
role_name: '角色名称',
|
||||
role_description: '描述',
|
||||
role_name_placeholder: '输入你的角色名称',
|
||||
role_description_placeholder: '输入你的角色描述',
|
||||
assigned_users: '已分配的用户',
|
||||
assign_permissions: '分配权限',
|
||||
create_role_title: '创建角色',
|
||||
create_role_description: '为你的应用程序创建和管理角色。角色包含权限集合,并可以分配给用户。',
|
||||
create_role_button: '创建角色',
|
||||
role_created: '角色 {{name}} 已成功创建。',
|
||||
search: '按角色名称、描述或 ID 搜索',
|
||||
placeholder_title: '角色',
|
||||
placeholder_description: '角色是可以分配给用户的权限分组。在创建角色之前,请确保先添加权限。',
|
||||
};
|
||||
|
||||
export default roles;
|
||||
|
|
|
@ -7,9 +7,8 @@ const sign_in_exp = {
|
|||
others: '其它',
|
||||
},
|
||||
welcome: {
|
||||
title: 'Customize sign-in experience', // UNTRANSLATED
|
||||
description:
|
||||
'Get started fast with your first sign-in setup. This guide walks you through all the necessary settings.', // UNTRANSLATED
|
||||
title: '自定义登录体验',
|
||||
description: '通过首次登录设置快速入门。本指南将带领你完成所有必要的设置。',
|
||||
get_started: '开始',
|
||||
apply_remind: '请注意,登录体验将会应用到当前帐户下的所有应用。',
|
||||
},
|
||||
|
@ -33,8 +32,8 @@ const sign_in_exp = {
|
|||
dark_logo_image_url_placeholder: 'https://your.cdn.domain/logo-dark.png',
|
||||
logo_image: 'Logo 图片',
|
||||
dark_logo_image: 'Logo 图片(深色)',
|
||||
logo_image_error: 'App logo: {{error}}', // UNTRANSLATED
|
||||
favicon_error: 'Favicon: {{error}}', // UNTRANSLATED
|
||||
logo_image_error: '应用 Logo:{{error}}',
|
||||
favicon_error: 'Favicon:{{error}}',
|
||||
},
|
||||
custom_css: {
|
||||
title: '自定义 CSS',
|
||||
|
@ -160,8 +159,8 @@ const sign_in_exp = {
|
|||
},
|
||||
preview: {
|
||||
title: '登录预览',
|
||||
live_preview: 'Live preview', // UNTRANSLATED
|
||||
live_preview_tip: 'Save to preview changes', // UNTRANSLATED
|
||||
live_preview: '实时预览',
|
||||
live_preview_tip: '保存以预览更改',
|
||||
native: '移动原生',
|
||||
desktop_web: '桌面网页',
|
||||
mobile_web: '移动网页',
|
||||
|
|
|
@ -2,7 +2,7 @@ const tab_sections = {
|
|||
overview: '概览',
|
||||
resource_management: '资源管理',
|
||||
user_management: '用户管理',
|
||||
access_control: 'Access Control', // UNTRANSLATED
|
||||
access_control: '访问控制',
|
||||
help_and_support: '帮助与支持',
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ const tabs = {
|
|||
connectors: '连接器',
|
||||
users: '用户管理',
|
||||
audit_logs: '审计日志',
|
||||
roles: 'Roles', // UNTRANSLATED
|
||||
roles: '角色',
|
||||
docs: '文档',
|
||||
contact_us: '联系我们',
|
||||
settings: '设置',
|
||||
|
|
|
@ -14,12 +14,12 @@ const user_details = {
|
|||
congratulations: '该用户已被重置',
|
||||
new_password: '新密码:',
|
||||
},
|
||||
tab_settings: 'Settings', // UNTRANSLATED
|
||||
tab_roles: 'Roles', // UNTRANSLATED
|
||||
tab_settings: '设置',
|
||||
tab_roles: '角色',
|
||||
tab_logs: '用户日志',
|
||||
settings: 'Settings', // UNTRANSLATED
|
||||
settings: '设置',
|
||||
settings_description:
|
||||
'Each user has a profile containing all user information. It consists of basic data, social identities, and custom data.', // UNTRANSLATED
|
||||
'每个用户都有一个包含所有用户信息的个人资料。它由基本数据、社交身份和自定义数据组成。',
|
||||
field_email: '主要邮箱',
|
||||
field_phone: '主要手机号码',
|
||||
field_username: '用户名',
|
||||
|
@ -39,22 +39,21 @@ const user_details = {
|
|||
},
|
||||
suspended: '已禁用',
|
||||
roles: {
|
||||
name_column: 'Role', // UNTRANSLATED
|
||||
description_column: 'Description', // UNTRANSLATED
|
||||
assign_button: 'Assign Roles', // UNTRANSLATED
|
||||
delete_description:
|
||||
'This action will remove this role from this user. The role itself will still exist, but it will no longer be associated with this user.', // UNTRANSLATED
|
||||
deleted: '{{name}} was successfully removed from this user!', // UNTRANSLATED
|
||||
assign_title: 'Assign roles to {{name}}', // UNTRANSLATED
|
||||
assign_subtitle: 'Authorize {{name}} one or more roles', // UNTRANSLATED
|
||||
assign_role_field: 'Assign roles', // UNTRANSLATED
|
||||
role_search_placeholder: 'Search by role name', // UNTRANSLATED
|
||||
added_text: '{{value, number}} added', // UNTRANSLATED
|
||||
assigned_user_count: '{{value, number}} users', // UNTRANSLATED
|
||||
confirm_assign: 'Assign roles', // UNTRANSLATED
|
||||
role_assigned: 'Successfully assigned role(s)', // UNTRANSLATED
|
||||
search: 'Search by role name, description or ID', // UNTRANSLATED
|
||||
empty: 'No role available', // UNTRANSLATED
|
||||
name_column: '角色名称',
|
||||
description_column: '描述',
|
||||
assign_button: '分配角色',
|
||||
delete_description: '此操作将从此用户中删除此角色。角色本身仍将存在,但不再与此用户相关联。',
|
||||
deleted: '已成功将 {{name}} 从此用户中删除。',
|
||||
assign_title: '将角色分配给 {{name}}',
|
||||
assign_subtitle: '为 {{name}} 授权一个或多个角色',
|
||||
assign_role_field: '分配角色',
|
||||
role_search_placeholder: '按角色名称搜索',
|
||||
added_text: '添加了 {{value, number}} 个',
|
||||
assigned_user_count: '{{value, number}} 个用户',
|
||||
confirm_assign: '分配角色',
|
||||
role_assigned: '已成功分配角色',
|
||||
search: '按角色名称、描述或 ID 搜索',
|
||||
empty: '无可用角色',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -9,11 +9,11 @@ const users = {
|
|||
create_form_password: '密码',
|
||||
create_form_name: '姓名',
|
||||
unnamed: '未命名',
|
||||
search: 'Search by name, email, phone or username', // UNTRANSLATED
|
||||
search: '按姓名、电子邮件、电话或用户名搜索',
|
||||
check_user_detail: '查看用户详情',
|
||||
placeholder_title: 'User management', // UNTRANSLATED
|
||||
placeholder_title: '用户管理',
|
||||
placeholder_description:
|
||||
'Each user has a profile containing all user information. It consists of basic data, social identities, and custom data.', // UNTRANSLATED
|
||||
'每个用户都有一个包含所有用户信息的个人资料。它由基本数据、社交身份和自定义数据组成。',
|
||||
};
|
||||
|
||||
export default users;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
const demo_app = {
|
||||
title: "You've successfully signed in the live preview!", // UNTRANSLATED
|
||||
title: '你已成功登录实时预览!',
|
||||
subtitle: '以下是本次登录的用户信息:',
|
||||
username: '用户名:',
|
||||
user_id: '用户 ID:',
|
||||
sign_out: 'Sign Out the Live Preview', // UNTRANSLATED
|
||||
sign_out: '退出实时预览',
|
||||
continue_explore: '或继续探索',
|
||||
customize_sign_in_experience: '自定义登录体验',
|
||||
enable_passwordless: '启用无密码登录',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const oidc = {
|
||||
logout_success: 'You have successfully signed out.',
|
||||
logout_success: '你已经成功登出。',
|
||||
};
|
||||
|
||||
export default oidc;
|
||||
|
|
Loading…
Add table
Reference in a new issue