From dd598f33d95242bd119716e6c3d999ba9e0a8f8c Mon Sep 17 00:00:00 2001 From: Davi Alexandre Date: Fri, 8 Mar 2024 18:10:32 -0300 Subject: [PATCH] Add pt_br translation (#197) --- includes/i18n/languages.php | 1 + includes/i18n/pt_br.php | 214 ++++++++++++++++++++++++++++++++++++ scripts/i18n/pt_br.js | 36 ++++++ 3 files changed, 251 insertions(+) create mode 100644 includes/i18n/pt_br.php create mode 100644 scripts/i18n/pt_br.js diff --git a/includes/i18n/languages.php b/includes/i18n/languages.php index 4a8abc1d2..1f8ed7aca 100644 --- a/includes/i18n/languages.php +++ b/includes/i18n/languages.php @@ -11,6 +11,7 @@ "fr" => "Français", "jp" => "日本語", "pt" => "Português", + "pt_br" => "Português Brasileiro", "tr" => "Türkçe", "zh_cn" => "简体中文", "zh_tw" => "繁體中文", diff --git a/includes/i18n/pt_br.php b/includes/i18n/pt_br.php new file mode 100644 index 000000000..919fc3371 --- /dev/null +++ b/includes/i18n/pt_br.php @@ -0,0 +1,214 @@ + "É necessário criar uma conta antes de poder se logar", + 'username' => "Usuário", + 'password' => "Senha", + "email" => "Email", + "confirm_password" => "Confirmar Senha", + "main_currency" => "Moeda principal", + "language" => "Idioma", + "passwords_dont_match" => "As senhas não são iguais", + "registration_failed" => "O registro falhou. Por favor, tente novamente", + "register" => "Registrar", + // Login Page + 'please_login' => "Por favor, faça o login", + 'stay_logged_in' => "Me manter logado (30 dias)", + 'login' => "Login", + 'login_failed' => "As informações de login estão incorretas", + // Header + 'subscriptions' => "Assinaturas", + 'stats' => "Estatísticas", + 'settings' => "Configurações", + 'about' => "Sobre", + 'logout' => "Sair", + // Subscriptions page + "subscription" => "Assinatura", + "no_subscriptions_yet" => "Você ainda não tem nenhuma assinatura", + "add_first_subscription" => "Adicionar a primeira assinatura", + 'new_subscription' => "Nova assinatura", + 'sort' => "Ordenar", + 'name' => "Nome", + 'last_added' => "Última adicionada", + 'price' => "Preço", + 'next_payment' => "Próximo pagamento", + 'inactive' => "Assinatura inativa", + 'member' => "Membro", + 'category' => "Categoria", + 'payment_method' => "Método de Pagamento", + "Daily" => "Diário", + "Weekly" => "Semanal", + "Monthly" => "Mensal", + "Yearly" => "Anual", + "days" => "dias", + "weeks" => "semanas", + "months" => "meses", + "years" => "anos", + "external_url" => "Abrir URL externa", + "empty_page" => "Página vazia", + // Subscription form + "add_subscription" => "Adicionar assinatura", + "edit_subscription" => "Editar assinatura", + "subscription_name" => "Nome da assinatura", + "logo_preview" => "Preview do logo", + "search_logo" => "Pesquisar logo internet", + "web_search" => "Buscar na internet", + "currency" => "Moeda", + "billing_cycle" => "Ciclo de cobrança", + "frequency" => "Frequência", + "cycle" => "Ciclo", + "no_category" => "Sem categoria", + "paid_by" => "Pago por", + "url" => "URL", + "notes" => "Anotações", + "enable_notifications" => "Ativar notificações para essa assinatura", + "delete" => "Excluir", + "cancel" => "Cancelar", + "upload_logo" => "Enviar Logo", + // Statistics page + 'general_statistics' => "Estatísticas gerais", + 'active_subscriptions' => "Assinaturas ativas", + 'inactive_subscriptions' => "Assinaturas inativas", + 'monthly_cost' => "Custo mensal", + 'yearly_cost' => "Custo anual", + 'average_monthly' => "Custom médio mensal", + 'most_expensive' => "Assinatura mais cara", + 'amount_due' => "Valor devido nesse mês", + 'monthly_savings' => "Economia mensal (em assinaturas inativas)", + 'split_views' => "Visualizações", + 'category_split' => "Por categoria", + 'household_split' => "Por membro", + 'payment_method_split' => "Por método de pagamento", + // About page + 'about_and_credits' => "Sobre e Créditos", + 'license' => "Licença", + 'issues_and_requests' => "Problemas e Pedidos", + 'the_author' => "O autor", + 'icons' => "Ícones", + 'payment_icons' => "Ícones de pagamento", + // Settings page + 'user_details' => "Informações do Usuário", + "household" => "Membros", + "save_member" => "Salvar membro", + "delete_member" => "Excluir membro", + "cant_delete_member" => "Não é possível excluir o membro principal", + "cant_delete_member_in_use" => "Não é possível excluir um membro em uso em uma assinatura", + 'household_info' => "O email permite que os membros sejam notificados quando uma assinatura estiver para expirar.", + "notifications" => "Notificações", + "enable_email_notifications" => "Ativar notificações por email", + "notify_me" => "Me notificar", + "day_before" => "dia antes", + "days_before" => "dias antes", + "smtp_address" => "Endereço SMTP", + "port" => "Porta", + "smtp_username" => "Usuário SMTP", + "smtp_password" => "Senha SMTP", + "from_email" => "Email de envio (Opcional)", + "smtp_info" => "A senha do SMTP é transmitida em texto puro. Por segurança, crie uma conta só para esta finalidade.", + "categories" => "Categorias", + "save_category" => "Salvar categoria", + "delete_category" => "Excluir categoria", + "cant_delete_category_in_use" => "Não é possível excluir uma categoria em uso em uma assinatura", + "currencies" => "Moedas", + "save_currency" => "Salvar moeda", + "delete_currency" => "Excluir moeda", + "cant_delete_main_currency" => "Não é possível excluir a moeda principal", + "cant_delete_currency_in_use" => "Não é possível excluir uma moeda em uso em uma assinatura", + "exchange_update" => "Taxas de câmbio atualizadas em", + "currency_info" => "Encontre as moedas suportadas e os códigos de moeda em", + "currency_performance" => "Para um melhor desempenho, mantenha apenas as moedas que você utiliza.", + "fixer_api_key" => "Chave da API do Fixer", + "api_key" => "Chave da API", + "provider" => "Fornecedor", + "fixer_info" => "Se você utiliza múltiplas moedas e deseja ter estatísticas precisas e ordenação das assinaturas, uma chave GRATUÍTA da API do Fixer é necessária.", + "get_key" => "Obtenha a sua chave em", + "get_free_fixer_api_key" => "Obtenha a sua chave API do Fixer gratuitamente", + "get_key_alternative" => "Como alternativa, você pode obter uma chave de API grátis em", + "display_settings" => "Configurações de visualização", + "switch_theme" => "Alternar entre tema Claro / Escuro", + "calculate_monthly_price" => "Calcular e exibir o custo mensal para todas as assinaturas", + "convert_prices" => "Sempre converter e exibir preços na moeda principal (mais lento)", + "experimental_settings" => "Configurações experimentais", + "remove_background" => "Tentar remover o fundo de logos na pesquisa de imagem", + "experimental_info" => "As configurações experimentais provavelmente não funcionarão corretamente", + "payment_methods" => "Métodos de pagamento", + "payment_methods_info" => "Clique em um método de pagamento para ativá-lo ou desativá-lo", + "rename_payment_methods_info" => "Clique no nome de um método de pagamento para renomeá-lo", + "cant_delete_payment_method_in_use" => "Não é possível desativar um método de pagamento em uso", + "add_custom_payment" => "Adicionar um método de pagamento personalizado", + "payment_method_name" => "Nome do método de pagamento", + "payment_method_added_successfuly" => "Método de pagamento adicionado com sucesso", + "disable" => "Desativar", + "enable" => "Ativar", + "rename_payment_method" => "Renomear método de pagamento", + "payment_renamed" => "Método de pagamento renomeado", + "payment_not_renamed" => "Método de pagamento não renomeado", + "test" => "Testar", + "add" => "Adicionar", + "save" => "Salvar", + "export_subscriptions" => "Exportar assinaturas", + "export_to_json" => "Exportar para JSON", + // Filters menu + "filter" => "Filtrar", + "clear" => "Limpar", + // Toast + "success" => "Sucesso", + // Endpoint responses + "session_expired" => "Sua sessão expirou. Por favor, faça o login novamente", + "fields_missing" => "Alguns campos estão faltando", + "fill_all_fields" => "Por favor, preencha todos os campos", + "fill_mandatory_fields" => "Por favor, preencha todos os campos obrigatórios", + "error" => "Erro", + // Category + "failed_add_category" => "Erro ao adicionar categoria", + "failed_edit_category" => "Erro ao editar categoria", + "category_in_use" => "Essa categoria está em uso em uma assinatura e não pode ser removida", + "failed_remove_category" => "Erro ao remover categoria", + "category_saved" => "Categoria salva", + "category_removed" => "Category excluída", + "sort_order_saved" => "Direção de ordenação salva", + // Currency + "currency_saved" => "foi salva.", + "error_adding_currency" => "Erro ao adicionar moeda.", + "failed_to_store_currency" => "Erro ao armazenar moeda no banco de dados", + "currency_in_use" => "A moeda está em uso em uma assinatura e não pode ser excluída", + "currency_is_main" => "A moeda está configurada como principal e não pode ser excluída", + "failed_to_remove_currency" => "Erro ao excluir a moeda do banco de dados", + "failed_to_store_api_key" => "Erro ao armazenar a chave da API no banco de dados", + "invalid_api_key" => "Chave da API inválida", + "api_key_saved" => "Chave da API salva com sucesso", + "currency_removed" => "Moeda excluída", + // Household + "failed_add_household" => "Erro ao adicionar membro", + "failed_edit_household" => "Erro ao editar membro", + "failed_remove_household" => "Erro ao excluir membro", + "household_in_use" => "O membro está em uso em uma assinatura e não pode ser removido", + "member_saved" => "Membro salvo", + "member_removed" => "Membro excluído", + // Notifications + "error_saving_notifications" => "Error ao salvar dados de notificação", + "wallos_notification" => "Notificação do Wallos", + "test_notification" => "Essa é uma notificação de teste. Se você está vendo isso, a configuração está correta.", + "email_error" => "Erro ao enviar email", + "notification_sent_successfuly" => "Notificação enviada com sucesso", + "notifications_settings_saved" => "Configurações de notificação salvas com sucesso", + // Payments + "payment_in_use" => "Não é possível desativar o método de pagamento", + "failed_update_payment" => "Erro ao atualizar o método de pagamento no banco de dados.", + "enabled" => "ativado", + "disabled" => "desativado", + // Subscription + "error_fetching_image" => "Erro ao carregar imagem", + "subscription_updated_successfuly" => "Assinatura atualizada com sucesso", + "subscription_added_successfuly" => "Assinatura adicionar com sucesso", + "error_deleting_subscription" => "Erro ao excluir assinatura", + "invalid_request_method" => "Método de requisição inválido", + // User + "error_updating_user_data" => "Erro ao atualizar os dados do usuário", + "user_details_saved" => "Dados do usuário salvos", + +]; + + +?> diff --git a/scripts/i18n/pt_br.js b/scripts/i18n/pt_br.js new file mode 100644 index 000000000..d224dd2f4 --- /dev/null +++ b/scripts/i18n/pt_br.js @@ -0,0 +1,36 @@ +let i18n = { + // Dashboard + error_reloading_subscription: "Erro ao recarregar assinaturas:", + error_fetching_image_results: "Erro ao carregar resultados de imagens:", + subscription_deleted: "Assinatura excluída", + error_deleting_subscription: "Erro ao excluir assinatura", + failed_to_load_subscription: "Erro ao carregar assinaturas", + edit_subscription: "Editar assinatura", + add_subscription: "Adicionar assinatura", + confirm_delete_subscription: "Você tem certeza que deseja excluir essa assinatura?", + // Settings + network_response_error: "Resposta da rede não foi OK", + failed_add_member: "Erro ao adicionar membro", + member: "Membro", + email: "Email", + save_member: "Salvar membro", + delete_member: "Excluir membro", + failed_remove_member: "Erro ao excluir membro", + failed_save_member: "Erro ao salvar membro", + failed_add_category: "Erro ao adicionar categoria", + category: "Categoria", + save_category: "Salvar categoria", + delete_category: "Excluir categoria", + failed_remove_category: "Erro ao excluir categoria", + currency: "Moeda", + currency_code: "Código da moeda", + save_currency: "Salvar moeda", + delete_currency: "Excluir moeda", + failed_remove_currency: "Erro ao excluir moeda", + failed_save_currency: "Error ao salvar moeda", + cant_disable_payment_in_use: "Não é possível desativar uma moeda em uso", + failed_save_payment_method: "Erro ao salvar o método de pagamento", + unknown_error: "Erro desconhecido. Por favor, tente novamente", + error_saving_notification_data: "Erro ao salvar dados da notificação", + error_sending_notification: "Erro ao enviar notificação", +}