Skip to content

Commit

Permalink
Add Portuguese Brazilian language (#259)
Browse files Browse the repository at this point in the history
* feat: add translations of api

* feat: translate frontend

* feat: translate statuspage

* feat: add language key suport on config php file

* fix: identation and rever organize file imports

---------

Co-authored-by: Matheus Campos <external.matheus.campos@trisor.de>
  • Loading branch information
matheusdgdcampos and matheus-campos-trisor authored Sep 2, 2024
1 parent 15d1a4f commit c649525
Show file tree
Hide file tree
Showing 8 changed files with 672 additions and 14 deletions.
2 changes: 1 addition & 1 deletion api/config/config.inc.default.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@

//! @note List of supported languages. When adding new language file, be sure
//! to add the new language code here.
'languages' => ['en', 'de', 'fr', 'zh_TW', 'ro', 'pl'],
'languages' => ['en', 'de', 'fr', 'zh_TW', 'ro', 'pl', 'pt_BR'],

//! @note Lifetime for test run meta data in redis cache.
'testRunLifetime' => 5 * 60
Expand Down
57 changes: 57 additions & 0 deletions api/languages/pt_BR.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php
$lang = [
'changeEmail.footer' => 'Você recebeu este email porque alguém tentou conectar uma conta ao seu endereço de email. Caso não tenha solicitado, por favor, ignore e exclua este email.',
'changeEmail.subject' => '$projectName: Confirmar alteração de email',
'changeEmail.body' =>
'Olá,' . "\n\n"
. 'você solicitou para alterar o endereço de email da sua conta $$projectName para $newEmail.' . "\n\n"
. 'Por favor clique no link a seguir para confirmar a alteração do seu endereço de email.' . "\n\n"
. '{link|$confirmationLink|Confirmar endereço de email}' . "\n\n"
. 'Caso não tenha solicitado essa alteração, por favor, NÂO CLIQUE no link de confirmação e do contrário ignore e exclua este email.' . "\n\n"
. 'Atenciosamente,' . "\n\n"
. '$projectName',
'lostPasswordEmail.footer' => 'Você recebeu este email porque alguém tentou alterar a senha da sua conta. Caso não tenha solicitado isso, por favor, ignore e exclua este email.',
'lostPasswordEmail.subject' => '$projectName: Alterar Senha',
'lostPasswordEmail.body' =>
'Olá,' . "\n\n"
. 'você solicitou para alterar a senha da sua conta $projectName.' . "\n\n"
. 'Por favor clique no link a seguir para alterar a sua senha.' . "\n\n"
. '{link|$confirmationLink|Alterar Senha}' . "\n\n"
. 'Caso não tenha solicitado esta mudança, por favor NÂO CLIQUE no link e do contrário ignore e exclua este email.' . "\n\n"
. 'Atenciosamente,' . "\n\n"
. '$projectName',
'signupEmail.footer' => 'Você está recebendo este email porque alguém se inscreveu com o seu endereço de email. Caso não tenha solicitado isso, por favor ignore e exclua este email.',
'signupEmail.subject' => '$projectName: Ativação da conta',
'signupEmail.body' =>
'Olá,' . "\n\n"
. 'obrigado por se inscrever em $projectName!' . "\n\n"
. 'Por favor clique no link a seguir para ativar a sua conta.' . "\n\n"
. '{link|$confirmationLink|Ativar conta}' . "\n\n"
. 'Caso não tenha se inscrito, por favor NÂO CLIQUE no link e do contrário ignore e exclua este email.' . "\n\n"
. 'Atenciosamente,' . "\n\n"
. '$projectName',
'subscriptionEmail.footer' => 'Você está recebendo este email porque o status da sua assinatura foi alterado. Em caso de dúvida não hesite em entrar em contato com nossa equipe de suporte.',
'subscriptionActivatedEmail.subject' => '$projectName: Assinatura ativada',
'subscriptionActivatedEmail.body' =>
'Olá,' . "\n\n"
. 'muito obrigado por apoiar $projectName e tornar nosso serviço possível!' . "\n\n"
. 'Sua assinatura foi ativada com sucesso. Em casos raros. o status da assinatura pode ainda não aparecer na sua conta. Neste caso, basta fazer login novamente.' . "\n\n"
. 'A propósito: Você pode encontrar seus recibos e faturas em Configurações -> Gerenciar Assinatura.' . "\n\n"
. 'Atenciosamente,' . "\n\n"
. '$projectName',
'subscriptionCancelledEmail.subject' => '$projectName: Assinatura encerrada',
'subscriptionCancelledEmail.body' =>
'Olá,' . "\n\n"
. 'sua inscrição em $projectName foi encerrada agora.' . "\n\n"
. 'Muito obrigado por apoiar $projectName!' . "\n\n"
. 'Atenciosamente,' . "\n\n"
. '$projectName',
'subscriptionExpiringEmail.subject' => '$projectName: A assinatura está sendo encerrada',
'subscriptionExpiringEmail.body' =>
'Olá,' . "\n\n"
. 'conforme solicitado estamos encerrando sua assinatura em $projectName a partir de $cancelAt.' . "\n\n"
. 'Muito obrigado por apoiar $projectName!' . "\n\n"
. 'Atenciosamente,' . "\n\n"
. '$projectName',
'dateFormat' => 'd/m/Y'
];
13 changes: 9 additions & 4 deletions frontend/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import translationFR from './locales/fr/translation.json';
import translationZhTW from './locales/zh_TW/translation.json';
import translationRo from './locales/ro/translation.json';
import translationPL from './locales/pl/translation.json';
import translationPtBR from './locales/pt_BR/translation.json';

import AppMenu from './components/AppMenu';
import Dashboard from './components/dashboard/Dashboard';
Expand All @@ -43,6 +44,7 @@ import 'moment/locale/fr';
import 'moment/locale/ro';
import 'moment/locale/pl';
import 'moment/locale/zh-tw';
import 'moment/locale/pt-br';
import moment from 'moment';
import useLanguageCode, { getLanguageCode } from './hooks/useLanguageCode';
import { Config } from './utils/Config';
Expand Down Expand Up @@ -81,6 +83,9 @@ const LANGUAGE_RESOURCES = {
pl: {
translation: translationPL,
},
pt_BR: {
translation: translationPtBR,
},
};

i18n
Expand All @@ -107,9 +112,9 @@ function SnackbarReferenceProvider() {

function diffLang(lang1, lang2, prefix = '') {
for (let key in lang1) {
if (typeof(lang2[key]) === 'undefined') {
if (typeof (lang2[key]) === 'undefined') {
console.log(prefix + key);
} else if (typeof(lang1[key]) === 'object') {
} else if (typeof (lang1[key]) === 'object') {
diffLang(lang1[key], lang2[key], key + '.');
}
}
Expand Down Expand Up @@ -173,7 +178,7 @@ function ConsoleMenu({ selectedId, onListItemClick, indentSubItems = false }) {
selectedId={selectedId}
onListItemClick={onListItemClick}
indentSubItems={indentSubItems}
/>;
/>;
}

function getSelectedId(loc) {
Expand Down Expand Up @@ -216,7 +221,7 @@ function App() {
menuText={t('common.menu')}
menu={<ConsoleMenu indentSubItems={indentSubItems} selectedId={getSelectedId(location.pathname)} onListItemClick={isMobile ? () => dispatch(setUiSetting('menuClosed', true)) : () => null} />}
toolbar={<AppToolbar />}
>
>
<Switch>
<Route path="/dashboard" exact component={Dashboard} />
<Route path="/jobs/folders" exact component={Folders} />
Expand Down
Loading

0 comments on commit c649525

Please sign in to comment.