mirror of
https://github.com/logto-io/logto.git
synced 2025-03-31 22:51:25 -05:00
Merge pull request #1864 from FlurryNight/i18n/portuguese
feat(phrases): add portuguese language
This commit is contained in:
commit
4360a4aaea
34 changed files with 868 additions and 1 deletions
|
@ -10,6 +10,7 @@ export const mockMetadata: ConnectorMetadata = {
|
|||
platform: null,
|
||||
name: {
|
||||
en: 'Connector',
|
||||
'pt-PT': 'Conector',
|
||||
'zh-CN': '连接器',
|
||||
'tr-TR': 'Connector',
|
||||
'ko-KR': 'Connector',
|
||||
|
@ -18,6 +19,7 @@ export const mockMetadata: ConnectorMetadata = {
|
|||
logoDark: './logo-dark.png',
|
||||
description: {
|
||||
en: 'Connector',
|
||||
'pt-PT': 'Conector',
|
||||
'zh-CN': '连接器',
|
||||
'tr-TR': 'Connector',
|
||||
'ko-KR': 'Connector',
|
||||
|
|
|
@ -3,6 +3,7 @@ import { NormalizeKeyPaths } from '@silverhand/essentials';
|
|||
import en from './locales/en';
|
||||
import fr from './locales/fr';
|
||||
import koKR from './locales/ko-kr';
|
||||
import ptPT from './locales/pt-pt';
|
||||
import trTR from './locales/tr-tr';
|
||||
import zhCN from './locales/zh-cn';
|
||||
import { Resource } from './types';
|
||||
|
@ -14,6 +15,7 @@ export type I18nKey = NormalizeKeyPaths<typeof en.translation>;
|
|||
const resource: Resource = {
|
||||
en,
|
||||
fr,
|
||||
'pt-PT': ptPT,
|
||||
'zh-CN': zhCN,
|
||||
'ko-KR': koKR,
|
||||
'tr-TR': trTR,
|
||||
|
|
78
packages/phrases-ui/src/locales/pt-pt.ts
Normal file
78
packages/phrases-ui/src/locales/pt-pt.ts
Normal file
|
@ -0,0 +1,78 @@
|
|||
import en from './en';
|
||||
|
||||
const translation = {
|
||||
input: {
|
||||
username: 'Utilizador',
|
||||
password: 'Password',
|
||||
email: 'Email',
|
||||
phone_number: 'Telefone',
|
||||
confirm_password: 'Confirmar password',
|
||||
},
|
||||
secondary: {
|
||||
sign_in_with: 'Entrar com {{methods, list(type: disjunction;)}}',
|
||||
social_bind_with:
|
||||
'Já tem uma conta? Faça login para agregar {{methods, list(type: disjunction;)}} com a sua identidade social.',
|
||||
},
|
||||
action: {
|
||||
sign_in: 'Entrar',
|
||||
continue: 'Continuar',
|
||||
create_account: 'Criar uma conta',
|
||||
create: 'Criar',
|
||||
enter_passcode: 'Digite a senha',
|
||||
confirm: 'Confirmar',
|
||||
cancel: 'Cancelar',
|
||||
bind: 'Agregar a {{address}}',
|
||||
back: 'Voltar',
|
||||
nav_back: 'Anterior',
|
||||
agree: 'Aceito',
|
||||
got_it: 'Entendi',
|
||||
sign_in_with: 'Entrar com {{name}}',
|
||||
},
|
||||
description: {
|
||||
email: 'email',
|
||||
phone_number: 'telefone',
|
||||
reminder: 'Lembrete',
|
||||
not_found: '404 Não encontrado',
|
||||
agree_with_terms: 'Eu li e concordo com os ',
|
||||
agree_with_terms_modal: 'Para prosseguir, por favor, concorde com o <link></link>.',
|
||||
terms_of_use: 'Termos de uso',
|
||||
create_account: 'Criar uma conta',
|
||||
forgot_password: 'Esqueceu a password?',
|
||||
or: 'ou',
|
||||
enter_passcode: 'A senha foi enviada para o seu {{address}}',
|
||||
passcode_sent: 'A senha foi reenviada',
|
||||
resend_after_seconds: 'Reenviar após <span>{{seconds}}</span> segundos',
|
||||
resend_passcode: 'Reenviar senha',
|
||||
continue_with: 'Continuar com',
|
||||
create_account_id_exists: 'A conta com {{type}} {{value}} já existe, gostaria de fazer login?',
|
||||
sign_in_id_does_not_exists: 'A conta com {{type}} {{value}} não existe, gostaria de criar uma?',
|
||||
bind_account_title: 'Agregar conta',
|
||||
social_create_account: 'Sem conta? Pode criar uma nova e agregar.',
|
||||
social_bind_account: 'Já tem uma conta? Faça login para agregar a sua identidade social.',
|
||||
social_bind_with_existing: 'Encontramos uma conta relacionada, pode agrega-la diretamente.',
|
||||
},
|
||||
error: {
|
||||
username_password_mismatch: 'O Utilizador e a password não correspondem',
|
||||
username_required: 'Utilizador necessário',
|
||||
password_required: 'Password necessária',
|
||||
username_exists: 'O nome de utilizador já existe',
|
||||
username_should_not_start_with_number: 'O nome de utilizador não deve começar com um número',
|
||||
username_valid_charset:
|
||||
'O nome de utilizador deve conter apenas letras, números ou underscores.',
|
||||
invalid_email: 'O email é inválido',
|
||||
invalid_phone: 'O número de telefone é inválido',
|
||||
password_min_length: 'A password requer um mínimo de {{min}} caracteres',
|
||||
passwords_do_not_match: 'As passwords não coincidem',
|
||||
invalid_passcode: 'A senha é inválida',
|
||||
invalid_connector_auth: 'A autorização é inválida',
|
||||
invalid_connector_request: 'Os dados do conector são inválidos',
|
||||
unknown: 'Erro desconhecido. Por favor, tente novamente mais tarde.',
|
||||
invalid_session: 'Sessão não encontrada. Volte e faça login novamente.',
|
||||
},
|
||||
};
|
||||
|
||||
const ptPT: typeof en = Object.freeze({
|
||||
translation,
|
||||
});
|
||||
|
||||
export default ptPT;
|
|
@ -10,6 +10,7 @@ export type ResourceKey = string | Record<string, unknown>;
|
|||
const languageCodeAndDisplayNameMappings: Record<LanguageKey, string> = {
|
||||
en: 'English',
|
||||
fr: 'Français',
|
||||
'pt-PT': 'Português',
|
||||
'zh-CN': '简体中文',
|
||||
'tr-TR': 'Türkçe',
|
||||
'ko-KR': '한국어',
|
||||
|
|
|
@ -3,6 +3,7 @@ import { NormalizeKeyPaths } from '@silverhand/essentials';
|
|||
import en from './locales/en';
|
||||
import fr from './locales/fr';
|
||||
import koKR from './locales/ko-kr';
|
||||
import ptPT from './locales/pt-pt';
|
||||
import trTR from './locales/tr-tr';
|
||||
import zhCN from './locales/zh-cn';
|
||||
import { Resource } from './types';
|
||||
|
@ -18,6 +19,7 @@ export type AdminConsoleKey = NormalizeKeyPaths<typeof en.translation.admin_cons
|
|||
const resource: Resource = {
|
||||
en,
|
||||
fr,
|
||||
'pt-PT': ptPT,
|
||||
'zh-CN': zhCN,
|
||||
'ko-KR': koKR,
|
||||
'tr-TR': trTR,
|
||||
|
|
119
packages/phrases/src/locales/pt-pt/errors.ts
Normal file
119
packages/phrases/src/locales/pt-pt/errors.ts
Normal file
|
@ -0,0 +1,119 @@
|
|||
const errors = {
|
||||
auth: {
|
||||
authorization_header_missing: 'O cabeçalho de autorização está ausente.',
|
||||
authorization_token_type_not_supported: 'O tipo de autorização não é suportado.',
|
||||
unauthorized: 'Não autorizado. Verifique as credenciais e o scope.',
|
||||
forbidden: 'Proibido. Verifique os seus cargos e permissões.',
|
||||
expected_role_not_found: 'Role esperado não encontrado. Verifique os seus cargos e permissões.',
|
||||
jwt_sub_missing: 'Campo `sub` está ausente no JWT.',
|
||||
},
|
||||
guard: {
|
||||
invalid_input: 'O pedido {{type}} é inválido.',
|
||||
invalid_pagination: 'O valor de paginação enviado é inválido.',
|
||||
},
|
||||
oidc: {
|
||||
aborted: 'O utilizador final abortou a interação.',
|
||||
invalid_scope: 'Scope {{scope}} não é suportado.',
|
||||
invalid_scope_plural: 'Scope {{scopes}} não são suportados.',
|
||||
invalid_token: 'O Token fornecido é inválido.',
|
||||
invalid_client_metadata: 'Metadados de cliente inválidos fornecidos.',
|
||||
insufficient_scope: 'Token de acesso sem scope solicitado {{scopes}}.',
|
||||
invalid_request: 'Pedido inválido.',
|
||||
invalid_grant: 'Pedido Grant inválido.',
|
||||
invalid_redirect_uri:
|
||||
'`redirect_uri` não correspondeu a nenhum dos `redirect_uris` registados.',
|
||||
access_denied: 'Acesso negado.',
|
||||
invalid_target: 'Indicador de recurso inválido.',
|
||||
unsupported_grant_type: '`grant_type` solicitado não é suportado.',
|
||||
unsupported_response_mode: '`response_mode` solicitado não é suportado.',
|
||||
unsupported_response_type: '`response_type` solicitado não é suportado.',
|
||||
provider_error: 'Erro interno OIDC: {{message}}.',
|
||||
},
|
||||
user: {
|
||||
username_exists_register: 'Já existe um utilizador com esse nome de utilizador.',
|
||||
email_exists_register: 'Já existe um utilizador com esse endereço de email.',
|
||||
phone_exists_register: 'Já existe um utilizador com esse numero do telefone.',
|
||||
invalid_email: 'Endereço de email inválido.',
|
||||
invalid_phone: 'Número de telefone inválido.',
|
||||
email_not_exists: 'O endereço de email ainda não foi registada.',
|
||||
phone_not_exists: 'O numero do telefone ainda não foi registada.',
|
||||
identity_not_exists: 'A conta social ainda não foi registada.',
|
||||
identity_exists: 'A conta social foi registada.',
|
||||
invalid_role_names: '({{roleNames}}) não são válidos',
|
||||
cannot_delete_self: 'Não se pode remover a si mesmo.',
|
||||
},
|
||||
password: {
|
||||
unsupported_encryption_method: 'O método de enncriptação {{name}} não é suportado.',
|
||||
pepper_not_found: 'pepper da Password não encontrada. Por favor, verifique os envs.',
|
||||
},
|
||||
session: {
|
||||
not_found: 'Sessão não encontrada. Por favor, volte e faça login novamente.',
|
||||
invalid_credentials: 'Credenciais inválidas. Por favor, verifique os dados.',
|
||||
invalid_sign_in_method: 'O método de login atual não está disponível.',
|
||||
invalid_connector_id:
|
||||
'Não foi possível encontrar um conector disponível com o id {{connectorId}}.',
|
||||
insufficient_info: 'Informações de login insuficientes.',
|
||||
connector_id_mismatch: 'O connectorId não corresponde ao registado na sessão.',
|
||||
connector_session_not_found:
|
||||
'Sessão do conector não encontrada. Por favor, volte e faça login novamente.',
|
||||
unauthorized: 'Faça login primeiro.',
|
||||
unsupported_prompt_name: 'Nome de prompt não suportado.',
|
||||
},
|
||||
connector: {
|
||||
general: 'Ocorreu um erro inesperado no conector.{{errorDescription}}',
|
||||
not_found: 'Não é possível encontrar nenhum conector disponível para o tipo: {{type}}.',
|
||||
not_enabled: 'O conector não está ativo.',
|
||||
invalid_metadata: 'Os metadados do conector são inválidos.',
|
||||
invalid_config_guard: 'A configuração de proteção do conector é inválida.',
|
||||
unexpected_type: 'O tipo do conector é inesperado.',
|
||||
insufficient_request_parameters: 'A solicitação pode perder alguns parâmetros de entrada.',
|
||||
invalid_config: 'A configuração do conector é inválida.',
|
||||
invalid_response: 'A resposta do conector é inválida.',
|
||||
template_not_found: 'Não foi possível encontrar o modelo correto na configuração do conector.',
|
||||
not_implemented: '{{method}}: ainda não foi implementado.',
|
||||
social_invalid_access_token: 'O token de acesso do conector é inválido.',
|
||||
invalid_auth_code: 'O código de autenticação do conector é inválido.',
|
||||
social_invalid_id_token: 'O token de ID do conector é inválido.',
|
||||
authorization_failed: 'O processo de autorização do usuário não foi bem-sucedido.',
|
||||
social_auth_code_invalid:
|
||||
'Não foi possível obter o token de acesso, verifique o código de autorização.',
|
||||
more_than_one_sms: 'O número de conectores SMS é maior que 1.',
|
||||
more_than_one_email: 'O número de conectores de e-mail é maior que 1.',
|
||||
db_connector_type_mismatch: 'Há um conector no banco de dados que não corresponde ao tipo.',
|
||||
},
|
||||
passcode: {
|
||||
phone_email_empty: 'O campos telefone e email estão vazios.',
|
||||
not_found: 'Senha não encontrada. Por favor, envie a senha primeiro.',
|
||||
phone_mismatch: 'O telefone não correspond. Por favor, solicite uma nova senha.',
|
||||
email_mismatch: 'O email não corresponde. Por favor, solicite uma nova senha.',
|
||||
code_mismatch: 'Senha inválida.',
|
||||
expired: 'A senha expirou. Por favor, solicite uma nova senha.',
|
||||
exceed_max_try:
|
||||
'Limitação de verificação de senha excedida. Por favor, solicite uma nova senha.',
|
||||
},
|
||||
sign_in_experiences: {
|
||||
empty_content_url_of_terms_of_use:
|
||||
'URL dos "Termos de uso" vazio. Adicione o URL se os "Termos de uso" estiverem ativados.',
|
||||
empty_logo: 'Insira o URL do seu logotipo',
|
||||
empty_slogan:
|
||||
'Slogan de marca vazio. Adicione um slogan se o estilo da interface com o slogan for selecionado.',
|
||||
empty_social_connectors:
|
||||
'Conectores sociais vazios. Adicione conectores sociais e ative os quando o método de login social estiver ativado.',
|
||||
enabled_connector_not_found: 'Conector {{type}} ativado não encontrado.',
|
||||
not_one_and_only_one_primary_sign_in_method:
|
||||
'Deve haver um e apenas um método de login principal. Por favor, verifique sua entrada.',
|
||||
},
|
||||
swagger: {
|
||||
invalid_zod_type: 'Tipo de Zod inválido. Verifique a configuração do protetor de rota.',
|
||||
not_supported_zod_type_for_params:
|
||||
'Tipo Zod não suportado para os parâmetros. Verifique a configuração do protetor de rota.',
|
||||
},
|
||||
entity: {
|
||||
create_failed: 'Falha ao criar {{name}}.',
|
||||
not_exists: '{{name}} não existe.',
|
||||
not_exists_with_id: '{{name}} com o ID `{{id}}` não existe.',
|
||||
not_found: 'O recurso não existe.',
|
||||
},
|
||||
};
|
||||
|
||||
export default errors;
|
10
packages/phrases/src/locales/pt-pt/index.ts
Normal file
10
packages/phrases/src/locales/pt-pt/index.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
import en from '../en';
|
||||
import errors from './errors';
|
||||
import translation from './translation';
|
||||
|
||||
const ptPT: typeof en = Object.freeze({
|
||||
translation,
|
||||
errors,
|
||||
});
|
||||
|
||||
export default ptPT;
|
|
@ -0,0 +1,11 @@
|
|||
const api_resource_details = {
|
||||
back_to_api_resources: 'Voltar aos recursos API',
|
||||
token_expiration_time_in_seconds: 'Tempo de expiração do token (em segundos)',
|
||||
token_expiration_time_in_seconds_placeholder: 'Insira o tempo de expiração do token',
|
||||
delete_description:
|
||||
'Esta ação não pode ser desfeita. Isso ira eliminar permanentemente o recurso API. Insira o nome do recurso <span>{{name}}</span> para confirmar.',
|
||||
enter_your_api_resource_name: 'Digite o nome do recurso API',
|
||||
api_resource_deleted: 'O recurso API {{name}} foi eliminado com sucesso',
|
||||
};
|
||||
|
||||
export default api_resource_details;
|
|
@ -0,0 +1,14 @@
|
|||
const api_resources = {
|
||||
title: 'Recursos API',
|
||||
subtitle: 'Defina APIs que pode consumir nos aplicações autorizadas',
|
||||
create: 'Criar recurso API',
|
||||
api_name: 'Nome da API',
|
||||
api_name_placeholder: 'Introduza o nome da sua API',
|
||||
api_identifier: 'identificador da API',
|
||||
api_identifier_tip:
|
||||
'O identificador exclusivo para o recurso API. Deve ser um URI absoluto e não tem componente de fragmento (#). Igual ao resource parameter no OAuth 2.0.',
|
||||
api_resource_created: 'O recurso API {{name}} foi criado com sucesso',
|
||||
api_identifier_placeholder: 'https://your-api-identifier/',
|
||||
};
|
||||
|
||||
export default api_resources;
|
|
@ -0,0 +1,40 @@
|
|||
const application_details = {
|
||||
back_to_applications: 'Voltar para aplicações',
|
||||
check_guide: 'Guia de verificação',
|
||||
advanced_settings: 'Configurações avançadas',
|
||||
application_name: 'Nome da aplicação',
|
||||
application_name_placeholder: 'Ex: Site Empresa',
|
||||
description: 'Descrição',
|
||||
description_placeholder: 'Insira a descrição da sua aplicação',
|
||||
authorization_endpoint: 'Endpoint de autorização',
|
||||
authorization_endpoint_tip:
|
||||
'O endpoint para realizar autenticação e autorização. É usado para autenticação OpenID Connect.',
|
||||
application_secret: 'Segredo da aplicação',
|
||||
redirect_uri: 'URI de redirecionamento',
|
||||
redirect_uris: 'URIs de redirecionamento',
|
||||
redirect_uri_placeholder: 'https://your.website.com/app',
|
||||
redirect_uri_placeholder_native: 'io.logto://callback',
|
||||
redirect_uri_tip:
|
||||
'O URI redireciona após o login de um utilizador (com êxito ou não). Consulte OpenID Connect AuthRequest para obter mais informações.',
|
||||
post_sign_out_redirect_uri: 'URI de redirecionamento pós-logout',
|
||||
post_sign_out_redirect_uris: 'URIs de redirecionamento pós-logout',
|
||||
post_sign_out_redirect_uri_placeholder: 'https://your.website.com/home',
|
||||
post_sign_out_redirect_uri_tip:
|
||||
'O URI redireciona após a saída de um utilizador (opcional). Pode não ter efeito prático em alguns tipos de aplicações.',
|
||||
cors_allowed_origins: 'origens permitidas CORS',
|
||||
cors_allowed_origins_placeholder: 'https://your.website.com',
|
||||
cors_allowed_origins_tip:
|
||||
'Por padrão, todas as origens de redirecionamento serão permitidas. Recomenda-se restringir isto.',
|
||||
add_another: 'Adicionar outro',
|
||||
id_token_expiration: 'Expiração do token de ID',
|
||||
refresh_token_expiration: 'Expiração do token de atualização',
|
||||
token_endpoint: 'Endpoint Token',
|
||||
user_info_endpoint: 'Enpoint Userinfo',
|
||||
delete_description:
|
||||
'Esta ação não pode ser desfeita. Isso ira eliminar permanentemente a app. Insira o nome da aplicação <span>{{name}}</span> para confirmar.',
|
||||
enter_your_application_name: 'Digite o nome da aplicação',
|
||||
application_deleted: 'Aplicação {{name}} eliminada com sucesso',
|
||||
redirect_uri_required: 'Deve inserir pelo menos um URI de redirecionamento',
|
||||
};
|
||||
|
||||
export default application_details;
|
|
@ -0,0 +1,43 @@
|
|||
const applications = {
|
||||
title: 'Aplicações',
|
||||
subtitle:
|
||||
'Configure um aplicativo móvel, de página única ou tradicional para usar o Logto para autenticação',
|
||||
create: 'Criar aplicação',
|
||||
application_name: 'Nome da aplicação',
|
||||
application_name_placeholder: 'Ex: Site Empresa',
|
||||
application_description: 'Descrição do aplicação',
|
||||
application_description_placeholder: 'Insira a descrição da sua aplicação',
|
||||
select_application_type: 'Selecione o tipo de aplicação',
|
||||
no_application_type_selected: 'Ainda não selecionou nenhum tipo de aplicação',
|
||||
application_created:
|
||||
'A aplicação {{name}} foi criada com sucesso! \nAgora termine as configurações do seu aplicativo.',
|
||||
app_id: 'ID da aplicação',
|
||||
type: {
|
||||
native: {
|
||||
title: 'Nativo',
|
||||
subtitle: 'Uma aplicação que é executada em um ambiente nativo',
|
||||
description: 'Ex., App iOS, App Android',
|
||||
},
|
||||
spa: {
|
||||
title: 'Página única (SPAs)',
|
||||
subtitle: 'Uma aplicação que é executada num navegador e atualiza dinamicamente os dados',
|
||||
description: 'Ex., App React, App VueJS',
|
||||
},
|
||||
traditional: {
|
||||
title: 'Web tradicional',
|
||||
subtitle: 'Uma aplicação que renderiza e atualiza páginas apenas pelo servidor web',
|
||||
description: 'Ex., Next.js, PHP',
|
||||
},
|
||||
},
|
||||
guide: {
|
||||
get_sample_file: 'Obter amostra',
|
||||
header_description:
|
||||
'Siga um guia passo a passo para integrar a sua aplicação ou clique com o botão direito para obter nosso projeto de amostra',
|
||||
title: 'A aplicação foi criada com sucesso',
|
||||
subtitle:
|
||||
'Agora siga as etapas abaixo para concluir as configurações da aplicação. Selecione o tipo de SDK para continuar.',
|
||||
description_by_sdk: 'Este guia de início rápido demonstra como integrar o Logto em {{sdk}}',
|
||||
},
|
||||
};
|
||||
|
||||
export default applications;
|
|
@ -0,0 +1,22 @@
|
|||
const connector_details = {
|
||||
back_to_connectors: 'Voltar para Conectores',
|
||||
check_readme: 'Verifique o README',
|
||||
save_error_empty_config: 'Por favor, insira a configuração',
|
||||
send: 'Enviar',
|
||||
send_error_invalid_format: 'Entrada inválida',
|
||||
edit_config_label: 'Introduza o JSON aqui',
|
||||
test_email_sender: 'Teste o conector de email',
|
||||
test_sms_sender: 'Teste o conector de SMS',
|
||||
test_email_placeholder: 'Insira um endereço de email para o teste',
|
||||
test_sms_placeholder: 'Insira um número de telefone para o teste',
|
||||
test_message_sent: 'Mensagem de teste enviada!',
|
||||
test_sender_description: 'Receberá uma mensagem se o JSON estiver configurado corretamente',
|
||||
options_change_email: 'Alterar conector de email',
|
||||
options_change_sms: 'Alterar conector de SMS',
|
||||
connector_deleted: 'O conector foi removido com sucesso',
|
||||
type_email: 'Conector de Email',
|
||||
type_sms: 'Conector de SMS',
|
||||
type_social: 'Conector Social',
|
||||
};
|
||||
|
||||
export default connector_details;
|
|
@ -0,0 +1,37 @@
|
|||
const connectors = {
|
||||
title: 'Conectores',
|
||||
subtitle: 'Configure conectores para habilitar a experiência de login social e sem senha',
|
||||
create: 'Adicionar conector social',
|
||||
tab_email_sms: 'Conectores de Email e SMS',
|
||||
tab_social: 'Conectores sociais',
|
||||
connector_name: 'Nome do conector',
|
||||
connector_type: 'Tipo',
|
||||
connector_status: 'Experiência de login',
|
||||
connector_status_in_use: 'Em uso',
|
||||
connector_status_not_in_use: 'Fora de uso',
|
||||
social_connector_eg: 'Ex., Google, Facebook, Github',
|
||||
save_and_done: 'Guardar',
|
||||
type: {
|
||||
email: 'Email',
|
||||
sms: 'SMS',
|
||||
social: 'Social',
|
||||
},
|
||||
setup_title: {
|
||||
email: 'Configurar o conector de email',
|
||||
sms: 'Configurar o conector de SMS',
|
||||
social: 'Adicionar conector social',
|
||||
},
|
||||
guide: {
|
||||
subtitle: 'Um guia passo a passo para configurar o conector',
|
||||
},
|
||||
platform: {
|
||||
universal: 'Universal',
|
||||
web: 'Web',
|
||||
native: 'Nativo',
|
||||
},
|
||||
add_multi_platform: ' suporta várias plataformas, selecione uma plataforma para continuar',
|
||||
drawer_title: 'Guia do conector',
|
||||
drawer_subtitle: 'Siga as instruções para integrar o conector',
|
||||
};
|
||||
|
||||
export default connectors;
|
|
@ -0,0 +1,22 @@
|
|||
const contact = {
|
||||
title: 'Contate-nos',
|
||||
description:
|
||||
'Junte-se à nossa comunidade para fornecer feedback, pedir ajuda e compartilhar pensamentos com outros desenvolvedores',
|
||||
discord: {
|
||||
title: 'Discord',
|
||||
description: 'Junte-se ao nosso canal público para conversar com outros desenvolvedores',
|
||||
button: 'Juntar',
|
||||
},
|
||||
github: {
|
||||
title: 'GitHub',
|
||||
description: 'Crie um issue e submeta no GitHub',
|
||||
button: 'Abrir',
|
||||
},
|
||||
email: {
|
||||
title: 'Enviar email',
|
||||
description: 'Envie-nos um email para mais informações e ajuda',
|
||||
button: 'Enviar',
|
||||
},
|
||||
};
|
||||
|
||||
export default contact;
|
|
@ -0,0 +1,22 @@
|
|||
const dashboard = {
|
||||
title: 'Painel',
|
||||
description: 'Obtenha uma visão geral sobre o desempenho da sua aplicação',
|
||||
total_users: 'Utilizadores totais',
|
||||
total_users_tip: 'Nº de Utilizadores registados',
|
||||
new_users_today: 'Novos utilizadores hoje',
|
||||
new_users_today_tip: 'O número de novos utilizadores registados nas suas aplicações hoje',
|
||||
new_users_7_days: 'Novos utilizadores nos últimos 7 dias',
|
||||
new_users_7_days_tip:
|
||||
'O número de novos utilizadores registados nas suas aplicações nos últimos sete dias',
|
||||
daily_active_users: 'Utilizadores ativos diariamente',
|
||||
daily_active_users_tip:
|
||||
'O número de utilizadores únicos que efetuaram login nas suas aplicações hoje',
|
||||
weekly_active_users: 'Utilizadores ativos semanalmente',
|
||||
weekly_active_users_tip:
|
||||
'O número de utilizadores únicos que efetuaram login nas suas aplicações nos últimos sete dias',
|
||||
monthly_active_users: 'Utilizadores ativos mensais',
|
||||
monthly_active_users_tip:
|
||||
'O número de utilizadores únicos que efetuaram login nas suas aplicações nos últimos 30 dias',
|
||||
};
|
||||
|
||||
export default dashboard;
|
|
@ -0,0 +1,21 @@
|
|||
const errors = {
|
||||
something_went_wrong: 'Ops! Algo deu errado.',
|
||||
page_not_found: 'Página não encontrada',
|
||||
unknown_server_error: 'Ocorreu um erro de servidor desconhecido',
|
||||
empty: 'Sem dados',
|
||||
missing_total_number: 'Não foi possível encontrar `Total-Number` nos cabeçalhos da resposta',
|
||||
invalid_uri_format: 'Formato de URI inválido',
|
||||
invalid_origin_format: 'Formato de origem de URI inválido',
|
||||
invalid_json_format: 'Formato JSON inválido',
|
||||
invalid_error_message_format: 'The error message format is invalid.',
|
||||
required_field_missing: 'Por favor, introduza {{field}}',
|
||||
required_field_missing_plural: 'Deve inserir pelo menos um {{field}}',
|
||||
more_details: 'Mais detalhes',
|
||||
username_pattern_error:
|
||||
'O nome de utilizador deve conter apenas letras, números ou underscores e não deve começar com um número.',
|
||||
password_pattern_error: 'A password requer um mínimo de 6 caracteres',
|
||||
insecure_contexts: 'Contextos inseguros (não HTTPS) não são compatíveis.',
|
||||
unexpected_error: 'Um erro inesperado ocorreu',
|
||||
};
|
||||
|
||||
export default errors;
|
|
@ -0,0 +1,40 @@
|
|||
const general = {
|
||||
placeholder: 'Placeholder',
|
||||
skip: 'Saltar',
|
||||
next: 'Seguine',
|
||||
retry: 'Tente novamente',
|
||||
done: 'Feito',
|
||||
search: 'Pesquisar',
|
||||
search_placeholder: 'Pesquise',
|
||||
clear_result: 'Limpar resultados',
|
||||
save: 'Guardar',
|
||||
save_changes: 'Guardar Alterações',
|
||||
saved: 'Guardado!',
|
||||
loading: 'Carregando...',
|
||||
redirecting: 'Redirecionando...',
|
||||
add: 'Adicionar',
|
||||
added: 'Adicionado',
|
||||
cancel: 'Cancelar',
|
||||
confirm: 'Confirmar',
|
||||
check_out: 'Verificar',
|
||||
create: 'Criar',
|
||||
set_up: 'Configurar',
|
||||
customize: 'Customizar',
|
||||
enable: 'Ativar',
|
||||
reminder: 'Lembrete',
|
||||
delete: 'Apagar',
|
||||
more_options: 'MAIS OPÇÕES',
|
||||
close: 'Fechar',
|
||||
copy: 'Copiar',
|
||||
copying: 'Copiando',
|
||||
copied: 'Copiado',
|
||||
required: 'Necessário',
|
||||
add_another: '+ Adicionar outro',
|
||||
deletion_confirmation: 'Tem a certeza que deseja eliminar isso {{title}}?',
|
||||
settings_nav: 'Definições',
|
||||
unsaved_changes_warning: 'Fez algumas alterações. Tem a certeza que deseja sair desta página?',
|
||||
leave_page: 'Sair da página',
|
||||
stay_on_page: 'Ficar na página',
|
||||
};
|
||||
|
||||
export default general;
|
|
@ -0,0 +1,27 @@
|
|||
const get_started = {
|
||||
progress: 'Guia de primeiros passos: {{completed}}/{{total}}',
|
||||
progress_dropdown_title: 'Algumas coisas que pode fazer...',
|
||||
title: 'Como deseja começar a usar o Logto?',
|
||||
subtitle_part1: 'Algumas coisas que pode fazer para obter rapidamente o valor do Logto',
|
||||
subtitle_part2: 'Acabei com esta configuração. ',
|
||||
hide_this: 'Ocultar isto',
|
||||
confirm_message: 'Tem a certeza que deseja ocultar esta página? Esta ação não pode ser desfeita.',
|
||||
card1_title: 'Confira a demonstração',
|
||||
card1_subtitle: 'Experimente a experiência de login do Logto agora para ver como funciona',
|
||||
card2_title: 'Crie e integre a primeira aplicação',
|
||||
card2_subtitle:
|
||||
'Configure um aplicativo móvel, de página única ou tradicional para usar o Logto para autenticação',
|
||||
card3_title: 'Personalize a experiência de login',
|
||||
card3_subtitle:
|
||||
'Personalize a interface de login para corresponder a sua marca e visualize em tempo rea',
|
||||
card4_title: 'Configure um conector de SMS/Email',
|
||||
card4_subtitle:
|
||||
'Experimente o login sem senha com número de telefone ou email para permitir uma experiência do cliente segura e sem atritos',
|
||||
card5_title: 'Adicione um conector social',
|
||||
card5_subtitle: 'Permita que os seus clientes entrem com as identidades sociais em um clique',
|
||||
card6_title: 'Outras leituras',
|
||||
card6_subtitle:
|
||||
'Confira a nossa documentação passo a passo baseados em cenários sem conceitos tediosos',
|
||||
};
|
||||
|
||||
export default get_started;
|
|
@ -0,0 +1,52 @@
|
|||
import api_resource_details from './api-resource-details';
|
||||
import api_resources from './api-resources';
|
||||
import application_details from './application-details';
|
||||
import applications from './applications';
|
||||
import connector_details from './connector-details';
|
||||
import connectors from './connectors';
|
||||
import contact from './contact';
|
||||
import dashboard from './dashboard';
|
||||
import errors from './errors';
|
||||
import general from './general';
|
||||
import get_started from './get-started';
|
||||
import log_details from './log-details';
|
||||
import logs from './logs';
|
||||
import session_expired from './session-expired';
|
||||
import settings from './settings';
|
||||
import sign_in_exp from './sign-in-exp';
|
||||
import tab_sections from './tab-sections';
|
||||
import tabs from './tabs';
|
||||
import user_details from './user-details';
|
||||
import users from './users';
|
||||
import welcome from './welcome';
|
||||
|
||||
const admin_console = {
|
||||
title: 'Consola de Administrador',
|
||||
sign_out: 'Terminar sessão',
|
||||
profile: 'Perfil',
|
||||
admin_user: 'Administrador',
|
||||
system_app: 'Sistema',
|
||||
general,
|
||||
errors,
|
||||
tab_sections,
|
||||
tabs,
|
||||
applications,
|
||||
application_details,
|
||||
api_resources,
|
||||
api_resource_details,
|
||||
connectors,
|
||||
connector_details,
|
||||
get_started,
|
||||
users,
|
||||
user_details,
|
||||
contact,
|
||||
sign_in_exp,
|
||||
settings,
|
||||
dashboard,
|
||||
logs,
|
||||
log_details,
|
||||
session_expired,
|
||||
welcome,
|
||||
};
|
||||
|
||||
export default admin_console;
|
|
@ -0,0 +1,17 @@
|
|||
const log_details = {
|
||||
back_to_logs: 'Voltar aos registos de auditoria',
|
||||
back_to_user: 'De volta a {{name}}',
|
||||
success: 'Sucesso',
|
||||
failed: 'Falha',
|
||||
event_type: 'Tipo de evento',
|
||||
application: 'Aplicação',
|
||||
ip_address: 'Endereço IP',
|
||||
user: 'Utilizador',
|
||||
log_id: 'ID do registo',
|
||||
time: 'Hora',
|
||||
user_agent: 'User agent',
|
||||
tab_details: 'Detalhes',
|
||||
raw_data: 'Dados não tratados',
|
||||
};
|
||||
|
||||
export default log_details;
|
|
@ -0,0 +1,11 @@
|
|||
const logs = {
|
||||
title: 'Registos de auditoria',
|
||||
subtitle: 'Visualize logs de autenticação feitos por administradores e utilizadores',
|
||||
event: 'Evento',
|
||||
user: 'Utilizador',
|
||||
application: 'Aplicação',
|
||||
time: 'Hora',
|
||||
filter_by: 'Filtrar pors',
|
||||
};
|
||||
|
||||
export default logs;
|
|
@ -0,0 +1,8 @@
|
|||
const session_expired = {
|
||||
title: 'Sessão expirada',
|
||||
subtitle:
|
||||
'A sua sessão pode ter expirado foi desconectado. Clique no botão abaixo para fazer login novamente.',
|
||||
button: 'Entrar novamente',
|
||||
};
|
||||
|
||||
export default session_expired;
|
|
@ -0,0 +1,27 @@
|
|||
const settings = {
|
||||
title: 'Definições',
|
||||
description: 'Gerenciar as configurações globais',
|
||||
tabs: {
|
||||
general: 'Geral',
|
||||
},
|
||||
custom_domain: 'Domínio personalizado',
|
||||
language: 'Linguagem',
|
||||
appearance: 'Aparência',
|
||||
appearance_system: 'Sincronizar com o sistema',
|
||||
appearance_light: 'Claro',
|
||||
appearance_dark: 'Escuro',
|
||||
saved: 'Guardado!',
|
||||
change_password: 'Mudar password',
|
||||
change_password_description:
|
||||
'Pode alterar a senha desta conta. Usará o nome de utilizador atual com a nova password para fazer login na consola.',
|
||||
change_modal_title: 'Alterar password da conta',
|
||||
change_modal_description:
|
||||
'Usará o nome de utilizador atual com a nova password para fazer login na consola.',
|
||||
new_password: 'Nova Password',
|
||||
new_password_placeholder: 'Introduza a password',
|
||||
confirm_password: 'Confirme a password',
|
||||
confirm_password_placeholder: 'Confirme a password',
|
||||
password_changed: 'Password alterada!',
|
||||
};
|
||||
|
||||
export default settings;
|
|
@ -0,0 +1,115 @@
|
|||
const sign_in_exp = {
|
||||
title: 'Experiência de login',
|
||||
description:
|
||||
'Personalize a interface de login para corresponder a sua marca e visualize em tempo real',
|
||||
tabs: {
|
||||
branding: 'Marca',
|
||||
methods: 'Métodos de login',
|
||||
others: 'Outros',
|
||||
},
|
||||
welcome: {
|
||||
title:
|
||||
'Esta é a primeira vez que define a experiência de login. Este guia irá ajudá-lo a passar por todas as configurações necessárias e começar rapidamente.',
|
||||
get_started: 'Começar',
|
||||
apply_remind: 'Observe que a experiência de login será aplicada a todos os apps nesta conta.',
|
||||
got_it: 'Entendi',
|
||||
},
|
||||
color: {
|
||||
title: 'COR',
|
||||
primary_color: 'Cor da marca',
|
||||
dark_primary_color: 'Cor da marca (tema escuro)',
|
||||
dark_mode: 'Ativar tema escuro',
|
||||
dark_mode_description:
|
||||
'O app terá um tema escuro gerado automaticamente com base na cor da marca e no algoritmo Logto. contudo é livre de personalizar.',
|
||||
dark_mode_reset_tip: 'Recalcular a cor do tema escuro com base na cor da marca.',
|
||||
reset: 'Recalcular',
|
||||
},
|
||||
branding: {
|
||||
title: 'ÁREA DE MARCA',
|
||||
ui_style: 'Estilo',
|
||||
styles: {
|
||||
logo_slogan: 'Logo da app com slogan',
|
||||
logo: 'Apenas o logo da app',
|
||||
},
|
||||
logo_image_url: 'URL do logotipo da app',
|
||||
logo_image_url_placeholder: 'https://your.cdn.domain/logo.png',
|
||||
dark_logo_image_url: 'URL do logotipo da app (tema escuro)',
|
||||
dark_logo_image_url_placeholder: 'https://your.cdn.domain/logo-dark.png',
|
||||
slogan: 'Slogan',
|
||||
slogan_placeholder: 'Liberte a sua criatividade',
|
||||
},
|
||||
sign_in_methods: {
|
||||
title: 'MÉTODOS DE LOGIN',
|
||||
primary: 'Método de login principal',
|
||||
enable_secondary: 'Ativar login secundário',
|
||||
enable_secondary_description:
|
||||
'Depois de ativado, a sua app oferecerá suporte a mais métodos de login além do principal. ',
|
||||
methods: 'Método de login',
|
||||
methods_sms: 'SMS',
|
||||
methods_email: 'Email',
|
||||
methods_social: 'Rede social',
|
||||
methods_username: 'Utilizador e password',
|
||||
methods_primary_tag: '(Primário)',
|
||||
define_social_methods: 'Definir métodos de login social',
|
||||
transfer: {
|
||||
title: 'Conectores sociais',
|
||||
footer: {
|
||||
not_in_list: 'Não está na lista?',
|
||||
set_up_more: 'Configurar mais',
|
||||
go_to: 'conectores sociais ou vá para a seção "Conectores".',
|
||||
},
|
||||
},
|
||||
},
|
||||
others: {
|
||||
terms_of_use: {
|
||||
title: 'TERMOS DE USO',
|
||||
enable: 'Ativar termos de uso',
|
||||
description: 'Adicione os termos legais para uso do seu produto',
|
||||
terms_of_use: 'Termos de uso',
|
||||
terms_of_use_placeholder: 'https://your.terms.of.use/',
|
||||
terms_of_use_tip: 'URL dos termos de uso',
|
||||
},
|
||||
languages: {
|
||||
title: 'LÍNGUAS',
|
||||
mode: 'Modo de idioma',
|
||||
auto: 'automático',
|
||||
fixed: 'Fixo',
|
||||
fallback_language: 'Idioma fallback',
|
||||
fallback_language_tip: 'Qual idioma usar se o Logto não encontrar o idioma requisitado.',
|
||||
fixed_language: 'Idioma fixo',
|
||||
},
|
||||
authentication: {
|
||||
title: 'AUTENTICAÇÃO',
|
||||
enable_create_account: 'Permitir criar conta?',
|
||||
enable_create_account_description:
|
||||
'Ativa ou desativa a criação de contas. Depois de desativado, os seus clientes não poderão criar contas por meio da pagina de login, mas você poderá adicionar utiizadores na Consola de Administrador.',
|
||||
},
|
||||
},
|
||||
setup_warning: {
|
||||
no_connector: '',
|
||||
no_connector_sms:
|
||||
'Ainda não configurou um conector de SMS. A experiência de login não será ativada até que conclua as configurações primeiro. ',
|
||||
no_connector_email:
|
||||
'Ainda não configurou um conector de email. A experiência de login não será ativada até que conclua as configurações primeiro. ',
|
||||
no_connector_social:
|
||||
'Ainda não configurou um conector social. A experiência de login não será ativada até que conclua as configurações primeiro. ',
|
||||
no_added_social_connector:
|
||||
'Configurou alguns conectores sociais agora. Certifique-se de adicionar alguns a experiência de login.',
|
||||
},
|
||||
save_alert: {
|
||||
description:
|
||||
'Está alterando os métodos de login. Isso afetará alguns dos seus utilizadoress. Tem a certeza que deseja fazer isso?',
|
||||
before: 'Antes',
|
||||
after: 'Depois',
|
||||
},
|
||||
preview: {
|
||||
title: 'Pre-visualização do login',
|
||||
dark: 'Escuro',
|
||||
light: 'Claro',
|
||||
native: 'Nativo',
|
||||
desktop_web: 'Web computador',
|
||||
mobile_web: 'Web móvel',
|
||||
},
|
||||
};
|
||||
|
||||
export default sign_in_exp;
|
|
@ -0,0 +1,8 @@
|
|||
const tab_sections = {
|
||||
overview: 'Vista geral',
|
||||
resource_management: 'Gestão de recursos',
|
||||
user_management: 'Gestão de utilizadores',
|
||||
help_and_support: 'Ajuda e suporte',
|
||||
};
|
||||
|
||||
export default tab_sections;
|
|
@ -0,0 +1,15 @@
|
|||
const tabs = {
|
||||
get_started: 'Começo',
|
||||
dashboard: 'Painel',
|
||||
applications: 'Aplicações',
|
||||
api_resources: 'Recursos API',
|
||||
sign_in_experience: 'Experiência de login',
|
||||
connectors: 'Conectores',
|
||||
users: 'Gestão de utilizadores',
|
||||
audit_logs: 'Registos de auditoria',
|
||||
docs: 'Documentação',
|
||||
contact_us: 'Contate-nos',
|
||||
settings: 'Definições',
|
||||
};
|
||||
|
||||
export default tabs;
|
|
@ -0,0 +1,41 @@
|
|||
const user_details = {
|
||||
back_to_users: 'Voltar a gestão de utilizadores',
|
||||
created_title: 'Este utilizador foi criado com sucesso',
|
||||
created_guide: 'Pode enviar as seguintes informações de login para o utilizador',
|
||||
created_username: 'Utilizador:',
|
||||
created_password: 'Password:',
|
||||
menu_delete: 'eliminar',
|
||||
delete_description:
|
||||
'Esta ação não pode ser desfeita. Isso ira eliminar o utilizador permanentemente.',
|
||||
deleted: 'The user has been successfully deleted',
|
||||
reset_password: {
|
||||
reset_password: 'Redefinir password',
|
||||
title: 'Tem a certeza que deseja redefinir a password?',
|
||||
content:
|
||||
'Esta ação não pode ser desfeita. Isso irá redefinir as informações de login do utilizador.',
|
||||
congratulations: 'Este utilizador foi redefinido',
|
||||
new_password: 'Nova password:',
|
||||
},
|
||||
tab_logs: 'Registros do utilizador',
|
||||
field_email: 'Email',
|
||||
field_phone: 'Telefone',
|
||||
field_username: 'Nome de utilizador',
|
||||
field_name: 'Nome',
|
||||
field_avatar: 'URL da imagem do avatar',
|
||||
field_avatar_placeholder: 'https://your.cdn.domain/avatar.png',
|
||||
field_custom_data: 'Dados personalizados',
|
||||
field_custom_data_tip:
|
||||
'Informações adicionais do utilizador não listadas nas propriedades predefinidas, ex: idioma preferido pelo utilizador.',
|
||||
field_connectors: 'Conexões sociais',
|
||||
custom_data_invalid: 'Os dados personalizados devem ser um objeto JSON válido',
|
||||
connectors: {
|
||||
connectors: 'Conectores',
|
||||
user_id: 'ID do utilizador',
|
||||
remove: 'Remover',
|
||||
not_connected: 'O utilizador não está conectado a nenhum conector social',
|
||||
deletion_confirmation:
|
||||
'Está removendo a identidade <name/> existente. Tem a certeza que deseja fazer isso?',
|
||||
},
|
||||
};
|
||||
|
||||
export default user_details;
|
|
@ -0,0 +1,15 @@
|
|||
const users = {
|
||||
title: 'Gestão de utilizadores',
|
||||
subtitle:
|
||||
'Gerencie os utilizadores, incluindo a criação, edição de informações, visualização de logs, recuperações de password e exclusões',
|
||||
create: 'Adicionar usuário',
|
||||
user_name: 'Utilizador',
|
||||
application_name: 'Do app',
|
||||
latest_sign_in: 'Último login',
|
||||
create_form_username: 'Utilizador',
|
||||
create_form_password: 'Password',
|
||||
create_form_name: 'Nome completo',
|
||||
unnamed: 'Sem nome',
|
||||
};
|
||||
|
||||
export default users;
|
|
@ -0,0 +1,8 @@
|
|||
const welcome = {
|
||||
title: 'Bem-vindo a consola de Administrador',
|
||||
description:
|
||||
'A consola de Administrador é o lugar para gerenciar o Logto sem ter conhecimentos de programação. Vamos primeiro criar uma conta. Com esta conta, pode gerir o Logto por conta própria ou em nome da empresa.',
|
||||
create_account: 'Criar uma conta',
|
||||
};
|
||||
|
||||
export default welcome;
|
15
packages/phrases/src/locales/pt-pt/translation/demo-app.ts
Normal file
15
packages/phrases/src/locales/pt-pt/translation/demo-app.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
const demo_app = {
|
||||
notification:
|
||||
'Use a sua conta de administrador padrão ou crie uma nova conta para entrar na app de demonstração.',
|
||||
title: 'Entrou com sucesso na app de demonstração!',
|
||||
subtitle: 'Aqui estão as suas informações de login:',
|
||||
username: 'Utilizador: ',
|
||||
user_id: 'ID de utilizador: ',
|
||||
sign_out: 'Sair da app de demonstração',
|
||||
continue_explore: 'Ou continue a explorar',
|
||||
customize_sign_in_experience: 'Personalizar a experiência de login',
|
||||
enable_passwordless: 'Ativar login sem passsword (passwordless)',
|
||||
add_social_connector: 'Adicionar conector socials',
|
||||
};
|
||||
|
||||
export default demo_app;
|
9
packages/phrases/src/locales/pt-pt/translation/index.ts
Normal file
9
packages/phrases/src/locales/pt-pt/translation/index.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import admin_console from './admin-console';
|
||||
import demo_app from './demo-app';
|
||||
|
||||
const translation = {
|
||||
admin_console,
|
||||
demo_app,
|
||||
};
|
||||
|
||||
export default translation;
|
|
@ -10,6 +10,7 @@ export type ResourceKey = string | Record<string, unknown>;
|
|||
const languageCodeAndDisplayNameMappings: Record<LanguageKey, string> = {
|
||||
en: 'English',
|
||||
fr: 'Français',
|
||||
'pt-PT': 'Português',
|
||||
'zh-CN': '简体中文',
|
||||
'tr-TR': 'Türkçe',
|
||||
'ko-KR': '한국어',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { z } from 'zod';
|
||||
|
||||
export const languageKeys = ['en', 'fr', 'zh-CN', 'tr-TR', 'ko-KR'] as const;
|
||||
export const languageKeys = ['en', 'fr', 'pt-PT', 'zh-CN', 'tr-TR', 'ko-KR'] as const;
|
||||
export const languageKeyGuard = z.enum(languageKeys);
|
||||
export type LanguageKey = z.infer<typeof languageKeyGuard>;
|
||||
|
|
|
@ -21,12 +21,14 @@ export const socialConnectors = [
|
|||
logoDark: null,
|
||||
name: {
|
||||
en: 'Sign in with GitHub',
|
||||
'pt-PT': 'Entrar com GitHub',
|
||||
'zh-CN': '使用 GitHub 登录',
|
||||
'tr-TR': 'Github ile giriş yap',
|
||||
'ko-KR': 'Github 로그인',
|
||||
},
|
||||
description: {
|
||||
en: 'Sign in with GitHub',
|
||||
'pt-PT': 'Entrar com GitHub',
|
||||
'zh-CN': '使用 GitHub 登录',
|
||||
'tr-TR': 'Github ile giriş yap',
|
||||
'ko-KR': 'Github 로그인',
|
||||
|
@ -43,12 +45,14 @@ export const socialConnectors = [
|
|||
logoDark: null,
|
||||
name: {
|
||||
en: 'Sign in with Alipay',
|
||||
'pt-PT': 'Entrar com Alipay',
|
||||
'zh-CN': '使用 Alipay 登录',
|
||||
'tr-TR': 'Alipay ile giriş yap',
|
||||
'ko-KR': 'Alipay 로그인',
|
||||
},
|
||||
description: {
|
||||
en: 'Sign in with Alipay',
|
||||
'pt-PT': 'Entrar com Alipay',
|
||||
'zh-CN': '使用 Alipay 登录',
|
||||
'tr-TR': 'Alipay ile giriş yap',
|
||||
'ko-KR': 'Alipay 로그인',
|
||||
|
@ -65,12 +69,14 @@ export const socialConnectors = [
|
|||
logoDark: null,
|
||||
name: {
|
||||
en: 'Sign in with WeChat',
|
||||
'pt-PT': 'Entrar com WeChat',
|
||||
'zh-CN': '使用 WeChat 登录',
|
||||
'tr-TR': 'WeChat ile giriş yap',
|
||||
'ko-KR': 'WeChat 로그인',
|
||||
},
|
||||
description: {
|
||||
en: 'Sign in with WeChat',
|
||||
'pt-PT': 'Entrar com WeChat',
|
||||
'zh-CN': '使用 WeChat 登录',
|
||||
'tr-TR': 'WeChat ile giriş yap',
|
||||
'ko-KR': 'WeChat 로그인',
|
||||
|
@ -87,12 +93,14 @@ export const socialConnectors = [
|
|||
logoDark: null,
|
||||
name: {
|
||||
en: 'Sign in with Google',
|
||||
'pt-PT': 'Entrar com Google',
|
||||
'zh-CN': '使用 Google 登录',
|
||||
'tr-TR': 'Google ile giriş yap',
|
||||
'ko-KR': 'Google 로그인',
|
||||
},
|
||||
description: {
|
||||
en: 'Sign in with Google',
|
||||
'pt-PT': 'Entrar com Google',
|
||||
'zh-CN': '使用 Google 登录',
|
||||
'tr-TR': 'Google ile giriş yap',
|
||||
'ko-KR': 'Google 로그인',
|
||||
|
@ -109,12 +117,14 @@ export const socialConnectors = [
|
|||
logoDark: null,
|
||||
name: {
|
||||
en: 'Sign in with Meta',
|
||||
'pt-PT': 'Entrar com Facebook',
|
||||
'zh-CN': '使用 Meta 登录',
|
||||
'tr-TR': 'Meta ile giriş yap',
|
||||
'ko-KR': 'Meta 로그인',
|
||||
},
|
||||
description: {
|
||||
en: 'Sign in with Meta',
|
||||
'pt-PT': 'Entrar com Facebook',
|
||||
'zh-CN': '使用 Meta 登录',
|
||||
'tr-TR': 'Meta ile giriş yap',
|
||||
'ko-KR': 'Meta 로그인',
|
||||
|
@ -133,12 +143,14 @@ export const mockSocialConnectorData = {
|
|||
logoDark: null,
|
||||
name: {
|
||||
en: 'Sign in with Xxx',
|
||||
'pt-PT': 'Entrar com Xxx',
|
||||
'zh-CN': '使用 Xxx 登录',
|
||||
'tr-TR': 'Xxx ile giriş yap',
|
||||
'ko-KR': 'Xxx 로그인',
|
||||
},
|
||||
description: {
|
||||
en: 'Sign in with Xxx',
|
||||
'pt-PT': 'Entrar com Xxx',
|
||||
'zh-CN': '使用 Xxx 登录',
|
||||
'tr-TR': 'Xxx ile giriş yap',
|
||||
'ko-KR': 'Xxx 로그인',
|
||||
|
|
Loading…
Add table
Reference in a new issue