Skip to content

Commit

Permalink
feat(i18n): add pt-BR translation
Browse files Browse the repository at this point in the history
add missing info about zh
  • Loading branch information
caioluis committed Oct 13, 2023
1 parent fe18d5c commit 4e85ca8
Show file tree
Hide file tree
Showing 5 changed files with 145 additions and 4 deletions.
7 changes: 5 additions & 2 deletions frontend/elements/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,8 @@ Translations are currently available for the following languages:
- "de" - German
- "en" - English
- "fr" - French
- "ptBR" - Brazilian Portuguese
- "zh" - Simplified Chinese

You can import them individually:

Expand All @@ -582,6 +584,7 @@ import { de } from "@teamhanko/hanko-elements/i18n/de";
import { en } from "@teamhanko/hanko-elements/i18n/en";
import { fr } from "@teamhanko/hanko-elements/i18n/fr";
import { zh } from "@teamhanko/hanko-elements/i18n/zh";
import { ptBR } from "@teamhanko/hanko-elements/i18n/pt-BR";
```

Or import all translations at once:
Expand All @@ -593,7 +596,7 @@ import { all } from "@teamhanko/hanko-elements/i18n/all";
After importing, provide the translations through the `register()` function:

```typescript
register("https://hanko.yourdomain.com", { translations: { de, en, fr, zh } });
register("https://hanko.yourdomain.com", { translations: { de, en, fr, ptBR, zh } });

// or

Expand Down Expand Up @@ -768,4 +771,4 @@ Found a bug? Please report on our [GitHub](https://github.com/teamhanko/hanko/is

## License

The `elements` project is licensed under the [MIT License](LICENSE).
The `elements` project is licensed under the [MIT License](LICENSE).
8 changes: 8 additions & 0 deletions frontend/elements/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
"i18n/fr": [
"dist/i18n/fr.d.ts"
],
"i18n/pt-BR": [
"dist/i18n/pt-BR.d.ts"
],
"i18n/zh": [
"dist/i18n/zh.d.ts"
],
Expand Down Expand Up @@ -55,6 +58,11 @@
"import": "./dist/i18n/fr.js",
"require": "./dist/i18n/fr.js"
},
"./i18n/pt-BR": {
"types": "./dist/i18n/pt-BR.d.ts",
"import": "./dist/i18n/pt-BR.js",
"require": "./dist/i18n/pt-BR.js"
},
"./i18n/zh": {
"types": "./dist/i18n/zh.d.ts",
"import": "./dist/i18n/zh.js",
Expand Down
3 changes: 2 additions & 1 deletion frontend/elements/src/i18n/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ import { Translations } from "./translations";
import { de } from "./de";
import { en } from "./en";
import { fr } from "./fr";
import { ptBR } from "./pt-BR";
import { zh } from "./zh";
export const all: Translations = { de, en, fr, zh };
export const all: Translations = { de, en, fr, ptBR, zh };
122 changes: 122 additions & 0 deletions frontend/elements/src/i18n/pt-BR.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
import { Translation } from "./translations";

export const ptBR: Translation = {
headlines: {
error: "Ocorreu um erro",
loginEmail: "Entre ou cadastre-se",
loginEmailNoSignup: "Entre",
loginFinished: "Login efetuado com sucesso",
loginPasscode: "Digite o código de acesso",
loginPassword: "Digite a senha",
registerAuthenticator: "Criar uma chave de acesso",
registerConfirm: "Concluir cadastro?",
registerPassword: "Redefina sua senha",
profileEmails: "E-mails",
profilePassword: "Senha",
profilePasskeys: "Chave de acesso",
isPrimaryEmail: "E-mail principal",
setPrimaryEmail: "Definir o e-mail principal",
emailVerified: "Verificado",
emailUnverified: "Não verificado",
emailDelete: "Apagar",
renamePasskey: "Renomear a chave de acesso",
deletePasskey: "Apagar a chave de acesso",
lastUsedAt: "Usado pela última vez em",
createdAt: "Criado em",
connectedAccounts: "Contas conectadas",
deleteAccount: "Apagar a conta",
accountNotFound: "Conta não encontrada",
},
texts: {
enterPasscode:
'Digite o código de acesso que foi enviado para "{emailAddress}".',
setupPasskey:
"Entre na sua conta de forma fácil e segura com uma chave de acesso. Nota: Os seus dados biométricos são apenas guardados no seu aparelho e nunca serão compartilhados com ninguém.",
createAccount:
'Nenhuma conta encontrada para o e-mail "{emailAddress}". Deseja criar uma nova conta?',
passwordFormatHint:
"Deve conter entre {minLength} e {maxLength} caracteres.",
manageEmails: "Usado para a autenticação com o código de acesso.",
changePassword: "Alterar senha.",
managePasskeys:
"As suas chaves de acesso permitem que você faça login nesta conta.",
isPrimaryEmail:
"Este e-mail será usado como seu nome de usuário para as suas chaves de acesso.",
setPrimaryEmail:
"Definir este e-mail como nome de usuário para novas chaves de acesso.",
emailVerified: "Este e-mail foi verificado.",
emailUnverified: "Este e-mail não foi verificado.",
emailDelete:
"Se você apagar esse e-mail, não poderá mais usá-lo para entrar em sua conta.",
emailDeleteThirdPartyConnection:
"Se você apagar esse e-mail, não poderá mais usá-lo para entrar em sua conta.",
emailDeletePrimary: "O seu e-mail principal não pode ser apagado.",
renamePasskey: "Defina um nome para a chave de acesso.",
deletePasskey: "Remova essa chave de acesso da sua conta.",
deleteAccount:
"Tem certeza que deseja apagar esta conta? Todos os dados serão apagados imediatamente e não poderão ser recuperados.",
noAccountExists: 'Nenhuma conta encontrada para o e-mail "{emailAddress}".',
},
labels: {
or: "ou",
no: "não",
yes: "sim",
email: "E-mail",
continue: "Continuar",
skip: "Pular",
save: "Salvar",
password: "Senha",
signInPassword: "Entre com uma senha",
signInPasscode: "Entre com um código de acesso",
forgotYourPassword: "Esqueceu a sua senha?",
back: "Voltar",
signInPasskey: "Entre com uma chave de acesso",
registerAuthenticator: "Criar uma chave de acesso",
signIn: "Entrar",
signUp: "Cadastrar-se",
sendNewPasscode: "Enviar novo código",
passwordRetryAfter: "Tente novamente em {passwordRetryAfter}",
passcodeResendAfter: "Peça outro código em {passcodeResendAfter}",
unverifiedEmail: "Não verificado",
primaryEmail: "principal",
setAsPrimaryEmail: "Definir como principal",
verify: "Verificar",
delete: "Apagar",
newEmailAddress: "Novo e-mail",
newPassword: "Nova senha",
rename: "Renomear",
newPasskeyName: "Novo nome para a chave de acesso",
addEmail: "Adicionar e-mail",
changePassword: "Mudar a senha",
createPasskey: "Criar uma chave de acesso",
webauthnUnsupported:
"Chaves de acesso não são compatíveis com seu navegador",
signInWith: "Entre com {provider}",
deleteAccount: "Sim, apagar esta conta.",
},
errors: {
somethingWentWrong:
"Ocorreu um erro técnico. Por favor, tente novamente mais tarde.",
requestTimeout: "A página demorou demais para se conectar.",
invalidPassword: "E-mail ou senha inválido.",
invalidPasscode: "O código de acesso inserido não é válido.",
passcodeAttemptsReached:
"Um código de acesso inválido foi inserido várias vezes. Por favor, solicite um novo código.",
tooManyRequests:
"Muitas tentativas foram feitas. Aguarde alguns minutos antes de tentar novamente.",
unauthorized: "A sua sessão expirou. Inicie uma nova sessão.",
invalidWebauthnCredential: "Esta chave de acesso já não pode ser usada.",
passcodeExpired:
"O seu código de acesso expirou. Por favor, solicite um novo.",
userVerification:
"Verificação de usuário necessária. Por favor, verifique se o seu dispositivo de verificação está protegido com um PIN ou biometria.",
emailAddressAlreadyExistsError: "Este endereço de e-mail já existe.",
maxNumOfEmailAddressesReached: "Não é possível adicionar mais e-mails.",
thirdPartyAccessDenied:
"Acesso negado. O pedido foi cancelado pelo usuário ou o provedor negou o acesso por outros motivos.",
thirdPartyMultipleAccounts:
"Não foi possível identificar a conta. O endereço de e-mail é usado por várias contas.",
thirdPartyUnverifiedEmail:
"Verificação de e-mail necessária. Por favor, verifique o e-mail utilizado com o seu provedor.",
},
};
9 changes: 8 additions & 1 deletion frontend/elements/webpack.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,14 @@ module.exports = {
type: "module",
},
},
fr: {
ptBR: {
filename: "i18n/pt-BR.js",
import: "./src/i18n/pt-BR.ts",
library: {
type: "module",
},
},
zr: {
filename: "i18n/zh.js",
import: "./src/i18n/zh.ts",
library: {
Expand Down

0 comments on commit 4e85ca8

Please sign in to comment.