diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index 6bd65c563..29a3f62a8 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -161,7 +161,8 @@ module LanguagesHelper "tr", # Turkish - 57 translation files "nb", # Norwegian Bokmål - 56 translation files "ca", # Catalan - 56 translation files - "ro" # Romanian - 61 translation files + "ro", # Romanian - 61 translation files + "pt-BR" # Brazilian Portuguese - 60 translation files ].freeze COUNTRY_MAPPING = { diff --git a/config/locales/mailers/invitation_mailer/pt-BR.yml b/config/locales/mailers/invitation_mailer/pt-BR.yml new file mode 100644 index 000000000..38fc3cd51 --- /dev/null +++ b/config/locales/mailers/invitation_mailer/pt-BR.yml @@ -0,0 +1,5 @@ +--- +pt-BR: + invitation_mailer: + invite_email: + subject: "%{inviter} convidou você para se juntar à sua família no %{product_name}!" diff --git a/config/locales/models/account/pt-BR.yml b/config/locales/models/account/pt-BR.yml new file mode 100644 index 000000000..f3e576c0f --- /dev/null +++ b/config/locales/models/account/pt-BR.yml @@ -0,0 +1,21 @@ +--- +pt-BR: + activerecord: + attributes: + account: + balance: Saldo + currency: Moeda + family: Família + family_id: Família + name: Nome + subtype: Subtipo + models: + account: Conta + account/credit: Cartão de Crédito + account/depository: Conta Bancária + account/investment: Investimento + account/loan: Empréstimo + account/other_asset: Outro Ativo + account/other_liability: Outro Passivo + account/property: Imóvel + account/vehicle: Veículo diff --git a/config/locales/models/address/pt-BR.yml b/config/locales/models/address/pt-BR.yml new file mode 100644 index 000000000..50b3772d5 --- /dev/null +++ b/config/locales/models/address/pt-BR.yml @@ -0,0 +1,11 @@ +--- +pt-BR: + address: + attributes: + country: País + line1: Endereço Linha 1 + line2: Endereço Linha 2 + locality: Cidade + postal_code: CEP + region: Estado/Região + format: "%{line1} %{line2}, %{locality}, %{region} %{postal_code} %{country}" diff --git a/config/locales/models/entry/pt-BR.yml b/config/locales/models/entry/pt-BR.yml new file mode 100644 index 000000000..8501967a6 --- /dev/null +++ b/config/locales/models/entry/pt-BR.yml @@ -0,0 +1,10 @@ +--- +pt-BR: + activerecord: + errors: + models: + entry: + attributes: + base: + invalid_sell_quantity: não é possível vender %{sell_qty} ações de %{ticker} porque + você possui apenas %{current_qty} ações diff --git a/config/locales/models/import/pt-BR.yml b/config/locales/models/import/pt-BR.yml new file mode 100644 index 000000000..d931ed224 --- /dev/null +++ b/config/locales/models/import/pt-BR.yml @@ -0,0 +1,13 @@ +--- +pt-BR: + activerecord: + attributes: + import: + currency: Moeda + number_format: Formato de Número + errors: + models: + import: + attributes: + raw_file_str: + invalid_csv_format: não é um formato CSV válido diff --git a/config/locales/models/time_series/value/pt-BR.yml b/config/locales/models/time_series/value/pt-BR.yml new file mode 100644 index 000000000..4096fd29f --- /dev/null +++ b/config/locales/models/time_series/value/pt-BR.yml @@ -0,0 +1,9 @@ +--- +pt-BR: + activemodel: + errors: + models: + time_series/value: + attributes: + value: + must_be_a_money_or_numeric: deve ser um valor monetário ou número diff --git a/config/locales/models/transfer/pt-BR.yml b/config/locales/models/transfer/pt-BR.yml new file mode 100644 index 000000000..c41cf2453 --- /dev/null +++ b/config/locales/models/transfer/pt-BR.yml @@ -0,0 +1,22 @@ +--- +pt-BR: + activerecord: + errors: + models: + transfer: + attributes: + base: + inflow_cannot_be_in_multiple_transfers: Transação de entrada não pode fazer + parte de múltiplas transferências + must_be_from_different_accounts: Transferência deve ter contas diferentes + must_be_from_same_family: Transferência deve ser da mesma família + must_be_within_date_range: Datas das transações de transferência devem estar + dentro de 4 dias uma da outra + must_have_opposite_amounts: Transações de transferência devem ter valores + opostos + must_have_single_currency: Transferência deve ter uma única moeda + outflow_cannot_be_in_multiple_transfers: Transação de saída não pode + fazer parte de múltiplas transferências + transfer: + name: Transferência para %{to_account} + payment_name: Pagamento para %{to_account} diff --git a/config/locales/models/trend/pt-BR.yml b/config/locales/models/trend/pt-BR.yml new file mode 100644 index 000000000..93525643a --- /dev/null +++ b/config/locales/models/trend/pt-BR.yml @@ -0,0 +1,15 @@ +--- +pt-BR: + activemodel: + errors: + models: + trend: + attributes: + current: + must_be_of_the_same_type_as_previous: deve ser do mesmo tipo que o anterior + must_be_of_type_money_numeric_or_nil: deve ser do tipo monetário, numérico + ou nulo + previous: + must_be_of_the_same_type_as_current: deve ser do mesmo tipo que o atual + must_be_of_type_money_numeric_or_nil: deve ser do tipo monetário, numérico + ou nulo diff --git a/config/locales/models/user/pt-BR.yml b/config/locales/models/user/pt-BR.yml new file mode 100644 index 000000000..34ca4419c --- /dev/null +++ b/config/locales/models/user/pt-BR.yml @@ -0,0 +1,21 @@ +--- +pt-BR: + activerecord: + attributes: + user: + email: E-mail + family: Família + family_id: Família + first_name: Primeiro Nome + last_name: Sobrenome + password: Senha + password_confirmation: Confirmação da Senha + errors: + models: + user: + attributes: + base: + cannot_deactivate_admin_with_other_users: Administrador não pode excluir a conta + enquanto outros usuários estiverem presentes. Por favor, exclua todos os membros primeiro. + profile_image: + invalid_file_size: tamanho do arquivo deve ser menor que %{max_megabytes}MB diff --git a/config/locales/views/accounts/pt-BR.yml b/config/locales/views/accounts/pt-BR.yml new file mode 100644 index 000000000..244b91ba5 --- /dev/null +++ b/config/locales/views/accounts/pt-BR.yml @@ -0,0 +1,118 @@ +--- +pt-BR: + accounts: + account: + link_lunchflow: Vincular ao Lunch Flow + link_provider: Vincular ao provedor + unlink_provider: Desvincular do provedor + troubleshoot: Solucionar problemas + chart: + data_not_available: Dados não disponíveis para o período selecionado + create: + success: "Conta %{type} criada" + destroy: + success: "Conta %{type} agendada para exclusão" + cannot_delete_linked: "Não é possível excluir uma conta vinculada. Por favor, desvincule-a primeiro." + empty: + empty_message: Adicione uma conta via conexão, importação ou inserção manual. + new_account: Nova conta + no_accounts: Nenhuma conta ainda + form: + balance: Saldo atual + name_label: Nome da conta + name_placeholder: Nome da conta exemplo + index: + accounts: Contas + manual_accounts: + other_accounts: Outras contas + new_account: Nova conta + sync: Sincronizar todas + sync_all: + syncing: "Sincronizando contas..." + new: + import_accounts: Importar contas + method_selector: + connected_entry: Vincular conta + connected_entry_eu: Vincular conta EU + link_with_provider: "Vincular com %{provider}" + lunchflow_entry: Vincular conta do Lunch Flow + manual_entry: Inserir saldo da conta + title: Como você gostaria de adicionar? + title: O que você gostaria de adicionar? + show: + activity: + amount: Valor + balance: Saldo + date: Data + entries: entradas + entry: entrada + new: Nova + new_balance: Novo saldo + new_transaction: Nova transação + no_entries: Nenhuma entrada encontrada + search: + placeholder: Buscar entradas por nome + title: Atividade + chart: + balance: Saldo + owed: Valor devido + menu: + confirm_accept: Excluir "%{name}" + confirm_body_html: "

Ao excluir esta conta, você apagará seu histórico de valores, + afetando vários aspectos de sua conta geral. Esta ação + terá um impacto direto nos cálculos de patrimônio líquido e nos + gráficos da conta.


Após a exclusão, não há como restaurar + as informações da conta porque você precisará adicioná-la como uma nova conta.

" + confirm_title: Excluir conta? + edit: Editar + import: Importar transações + manage: Gerenciar contas + update: + success: "Conta %{type} atualizada" + sidebar: + missing_data: Dados históricos ausentes + missing_data_description: "%{product} usa provedores terceirizados para buscar taxas de câmbio históricas, preços de títulos e muito mais. Esses dados são necessários para calcular saldos de contas históricos com precisão." + configure_providers: Configure seus provedores aqui. + tabs: + all: Todas + assets: Ativos + debts: Dívidas + new_asset: Novo ativo + new_debt: Nova dívida + new_account: Nova conta + new_account_group: "Novo(a) %{account_group}" + types: + depository: Dinheiro + investment: Investimento + crypto: Cripto + property: Propriedade + vehicle: Veículo + other_asset: Outro Ativo + credit_card: Cartão de Crédito + loan: Empréstimo + other_liability: Outro Passivo + confirm_unlink: + title: Desvincular conta do provedor? + description_html: "Você está prestes a desvincular %{account_name} de %{provider_name}. Isso a converterá em uma conta manual." + warning_title: O que isso significa + warning_no_sync: A conta não sincronizará mais automaticamente com seu banco + warning_manual_updates: Você precisará adicionar transações e atualizar saldos manualmente + warning_transactions_kept: Todas as transações e saldos existentes serão preservados + warning_can_delete: Após desvincular, você poderá excluir a conta, se necessário + confirm_button: Confirmar e desvincular + unlink: + success: "Conta desvinculada com sucesso. Agora é uma conta manual." + not_linked: "A conta não está vinculada a um provedor" + error: "Falha ao desvincular conta: %{error}" + generic_error: "Ocorreu um erro inesperado. Por favor, tente novamente." + select_provider: + title: Selecione um provedor para vincular + description: "Escolha qual provedor você deseja usar para vincular %{account_name}" + already_linked: "A conta já está vinculada a um provedor" + no_providers: "Nenhum provedor configurado no momento" + + email_confirmations: + new: + invalid_token: Link de confirmação inválido ou expirado. + success_login: Seu e-mail foi confirmado. Por favor, faça login com seu novo endereço + de e-mail. diff --git a/config/locales/views/application/pt-BR.yml b/config/locales/views/application/pt-BR.yml new file mode 100644 index 000000000..729047451 --- /dev/null +++ b/config/locales/views/application/pt-BR.yml @@ -0,0 +1,10 @@ +--- +pt-BR: + number: + currency: + format: + delimiter: "." + format: "%u %n" + precision: 2 + separator: "," + unit: "R$" diff --git a/config/locales/views/categories/pt-BR.yml b/config/locales/views/categories/pt-BR.yml new file mode 100644 index 000000000..d928bedf5 --- /dev/null +++ b/config/locales/views/categories/pt-BR.yml @@ -0,0 +1,34 @@ +--- +pt-BR: + categories: + bootstrap: + success: Categorias padrão criadas com sucesso + category: + delete: Excluir categoria + edit: Editar categoria + create: + success: Categoria criada com sucesso + destroy: + success: Categoria excluída com sucesso + edit: + edit: Editar categoria + form: + placeholder: Nome da categoria + index: + bootstrap: Usar padrões (recomendado) + categories: Categorias + categories_expenses: Categorias de despesas + categories_incomes: Categorias de receitas + empty: Nenhuma categoria encontrada + new: Nova categoria + menu: + loading: Carregando... + new: + new_category: Nova categoria + update: + success: Categoria atualizada com sucesso + category: + dropdowns: + show: + bootstrap: Gerar categorias padrão + empty: Nenhuma categoria encontrada diff --git a/config/locales/views/category/deletions/pt-BR.yml b/config/locales/views/category/deletions/pt-BR.yml new file mode 100644 index 000000000..5a763bc10 --- /dev/null +++ b/config/locales/views/category/deletions/pt-BR.yml @@ -0,0 +1,15 @@ +--- +pt-BR: + category: + deletions: + create: + success: Categoria de transação excluída com sucesso + new: + category: Categoria + delete_and_leave_uncategorized: Excluir "%{category_name}" e deixar sem categoria + delete_and_recategorize: Excluir "%{category_name}" e atribuir nova categoria + delete_category: Excluir categoria? + explanation: Ao excluir esta categoria, toda transação que possui a categoria "%{category_name}" + ficará sem categoria. Em vez de deixá-las sem categoria, você + também pode atribuir uma nova categoria abaixo. + replacement_category_prompt: Selecionar categoria diff --git a/config/locales/views/category/dropdowns/pt-BR.yml b/config/locales/views/category/dropdowns/pt-BR.yml new file mode 100644 index 000000000..6cde2c64a --- /dev/null +++ b/config/locales/views/category/dropdowns/pt-BR.yml @@ -0,0 +1,11 @@ +--- +pt-BR: + category: + dropdowns: + row: + delete: Excluir categoria + edit: Editar categoria + show: + clear: Limpar categoria + no_categories: Nenhuma categoria encontrada + search_placeholder: Buscar diff --git a/config/locales/views/credit_cards/pt-BR.yml b/config/locales/views/credit_cards/pt-BR.yml new file mode 100644 index 000000000..a7bc6c10e --- /dev/null +++ b/config/locales/views/credit_cards/pt-BR.yml @@ -0,0 +1,25 @@ +--- +pt-BR: + credit_cards: + edit: + edit: Editar %{account} + form: + annual_fee: Taxa anual + annual_fee_placeholder: '99' + apr: TAE + apr_placeholder: '15,99' + available_credit: Crédito disponível + available_credit_placeholder: '10000' + expiration_date: Data de expiração + minimum_payment: Pagamento mínimo + minimum_payment_placeholder: '100' + new: + title: Inserir detalhes do cartão de crédito + overview: + amount_owed: Valor Devido + annual_fee: Taxa Anual + apr: TAE + available_credit: Crédito Disponível + expiration_date: Data de Expiração + minimum_payment: Pagamento Mínimo + unknown: Desconhecido diff --git a/config/locales/views/cryptos/pt-BR.yml b/config/locales/views/cryptos/pt-BR.yml new file mode 100644 index 000000000..e776f490e --- /dev/null +++ b/config/locales/views/cryptos/pt-BR.yml @@ -0,0 +1,7 @@ +--- +pt-BR: + cryptos: + edit: + edit: Editar %{account} + new: + title: Inserir saldo da conta diff --git a/config/locales/views/depositories/pt-BR.yml b/config/locales/views/depositories/pt-BR.yml new file mode 100644 index 000000000..3b7fd87d4 --- /dev/null +++ b/config/locales/views/depositories/pt-BR.yml @@ -0,0 +1,10 @@ +--- +pt-BR: + depositories: + edit: + edit: Editar %{account} + form: + none: Nenhum + subtype_prompt: Selecionar tipo de conta + new: + title: Inserir saldo da conta diff --git a/config/locales/views/email_confirmation_mailer/pt-BR.yml b/config/locales/views/email_confirmation_mailer/pt-BR.yml new file mode 100644 index 000000000..df27e0469 --- /dev/null +++ b/config/locales/views/email_confirmation_mailer/pt-BR.yml @@ -0,0 +1,10 @@ +--- +pt-BR: + email_confirmation_mailer: + confirmation_email: + body: Você solicitou recentemente a alteração do seu endereço de e-mail. Clique no botão + abaixo para confirmar esta alteração. + cta: Confirmar alteração de e-mail + expiry_notice: Este link expirará em %{hours} horas. + greeting: Olá! + subject: '%{product_name}: Confirme sua alteração de e-mail' diff --git a/config/locales/views/entries/pt-BR.yml b/config/locales/views/entries/pt-BR.yml new file mode 100644 index 000000000..c753c1f47 --- /dev/null +++ b/config/locales/views/entries/pt-BR.yml @@ -0,0 +1,14 @@ +--- +pt-BR: + entries: + create: + success: Entrada criada + destroy: + success: Entrada excluída + empty: + description: Tente adicionar uma entrada, editando filtros ou refinando sua busca + title: Nenhuma entrada encontrada + loading: + loading: Carregando entradas... + update: + success: Entrada atualizada diff --git a/config/locales/views/family_exports/pt-BR.yml b/config/locales/views/family_exports/pt-BR.yml new file mode 100644 index 000000000..78d35db25 --- /dev/null +++ b/config/locales/views/family_exports/pt-BR.yml @@ -0,0 +1,7 @@ +--- +pt-BR: + family_exports: + list: + in_progress: Em andamento + complete: Concluído + failed: Falhou diff --git a/config/locales/views/holdings/pt-BR.yml b/config/locales/views/holdings/pt-BR.yml new file mode 100644 index 000000000..39be1bcd4 --- /dev/null +++ b/config/locales/views/holdings/pt-BR.yml @@ -0,0 +1,37 @@ +--- +pt-BR: + holdings: + cash: + brokerage_cash: Dinheiro da corretora + destroy: + success: Posição excluída + holding: + per_share: por ação + shares: "%{qty} ações" + index: + average_cost: Custo médio + holdings: Posições + name: Nome + new_holding: Nova transação + no_holdings: Nenhuma posição para mostrar. + return: Retorno total + weight: Peso + missing_price_tooltip: + description: Este investimento tem valores em falta e não conseguimos calcular + seus retornos ou valor. + missing_data: Dados em falta + show: + avg_cost_label: Custo Médio + current_market_price_label: Preço de Mercado Atual + delete: Excluir + delete_subtitle: Isso excluirá a posição e todas as suas negociações associadas + nesta conta. Esta ação não pode ser desfeita. + delete_title: Excluir posição + history: Histórico + overview: Visão geral + portfolio_weight_label: Peso do Portfólio + settings: Configurações + ticker_label: Ticker + trade_history_entry: "%{qty} ações de %{security} a %{price}" + total_return_label: Retorno Total + unknown: Desconhecido diff --git a/config/locales/views/impersonation_sessions/pt-BR.yml b/config/locales/views/impersonation_sessions/pt-BR.yml new file mode 100644 index 000000000..4c7a6ab7e --- /dev/null +++ b/config/locales/views/impersonation_sessions/pt-BR.yml @@ -0,0 +1,15 @@ +--- +pt-BR: + impersonation_sessions: + approve: + success: Solicitação aprovada + complete: + success: Sessão concluída + create: + success: Solicitação enviada ao usuário. Aguardando aprovação. + join: + success: Sessão iniciada + leave: + success: Sessão encerrada + reject: + success: Solicitação rejeitada diff --git a/config/locales/views/imports/pt-BR.yml b/config/locales/views/imports/pt-BR.yml new file mode 100644 index 000000000..33350d79c --- /dev/null +++ b/config/locales/views/imports/pt-BR.yml @@ -0,0 +1,99 @@ +--- +pt-BR: + import: + cleans: + show: + description: Edite seus dados na tabela abaixo. Células vermelhas são inválidas. + errors_notice: Há erros em seus dados. Passe o mouse sobre o erro para ver + detalhes. + errors_notice_mobile: Há erros em seus dados. Toque na dica de ferramenta do erro para ver + detalhes. + title: Limpar seus dados + configurations: + category_import: + button_label: Continuar + description: Faça o upload de um arquivo CSV simples (como o que geramos quando você + exporta seus dados). Mapearemos as colunas automaticamente para você. + instructions: Selecione continuar para processar seu CSV e avançar para a etapa de limpeza. + mint_import: + date_format_label: Formato da data + show: + description: Selecione as colunas que correspondem a cada campo no seu CSV. + title: Configurar sua importação + trade_import: + date_format_label: Formato da data + transaction_import: + date_format_label: Formato da data + confirms: + mappings: + create_account: Criar conta + csv_mapping_label: "%{mapping} no CSV" + sure_mapping_label: "%{mapping} no %{product_name}" + no_accounts: Você ainda não tem contas. Crie uma conta que possamos usar para + linhas (não atribuídas) no seu CSV ou volte para a etapa de Limpeza e forneça + um nome de conta que possamos usar. + rows_label: Linhas + unassigned_account: Precisa criar uma nova conta para linhas não atribuídas? + show: + account_mapping_description: Atribua todas as contas do seu arquivo importado às + contas existentes no %{product_name}. Você também pode adicionar novas contas ou deixá-las + sem categoria. + account_mapping_title: Atribuir suas contas + account_type_mapping_description: Atribuir todos os tipos de conta do seu arquivo importado aos + do %{product_name} + account_type_mapping_title: Atribuir seus tipos de conta + category_mapping_description: Atribua todas as categorias do seu arquivo importado às + categorias existentes no %{product_name}. Você também pode adicionar novas categorias ou deixá-las + sem categoria. + category_mapping_title: Atribuir suas categorias + tag_mapping_description: Atribua todas as tags do seu arquivo importado às + tags existentes no %{product_name}. Você também pode adicionar novas tags ou deixá-las + sem categoria. + tag_mapping_title: Atribuir suas tags + uploads: + show: + description: Cole ou faça upload do seu arquivo CSV abaixo. Por favor, revise as instruções + na tabela abaixo antes de começar. + instructions_1: Abaixo está um exemplo de CSV com as colunas disponíveis para importação. + instructions_2: Seu CSV deve ter uma linha de cabeçalho + instructions_3: Você pode nomear suas colunas como quiser. Você as mapeará + em uma etapa posterior. + instructions_4: Colunas marcadas com um asterisco (*) são dados obrigatórios. + instructions_5: Sem vírgulas (para separar milhares), sem símbolos de moeda e sem parênteses em números. + title: Importar seus dados + imports: + empty: + message: Nenhuma importação ainda. + new: Nova Importação + import: + complete: Concluída + delete: Excluir + failed: Falhou + in_progress: Em andamento + label: "%{type}: %{datetime}" + revert_failed: Falha na reversão + reverting: Revertendo + uploading: Processando linhas + view: Visualizar + index: + imports: Importações + new: Nova Importação + title: Importar/Exportar + exports: Exportações + new_export: Nova Exportação + no_exports: Nenhuma exportação ainda. + new: + description: Você pode importar manualmente vários tipos de dados via CSV ou usar um + de nossos modelos de importação, como o do Mint. + import_accounts: Importar contas + import_categories: Importar categorias + import_mint: Importar do Mint + import_portfolio: Importar investimentos + import_transactions: Importar transações + resume: Retomar %{type} + sources: Fontes + title: Nova Importação CSV + ready: + description: Aqui está um resumo dos novos itens que serão adicionados à sua conta + assim que você publicar esta importação. + title: Confirmar seus dados de importação diff --git a/config/locales/views/investments/pt-BR.yml b/config/locales/views/investments/pt-BR.yml new file mode 100644 index 000000000..ecadeed41 --- /dev/null +++ b/config/locales/views/investments/pt-BR.yml @@ -0,0 +1,18 @@ +--- +pt-BR: + investments: + edit: + edit: Editar %{account} + form: + none: Nenhum + subtype_prompt: Selecionar tipo de investimento + new: + title: Inserir saldo da conta + show: + chart_title: Valor total + value_tooltip: + cash: Dinheiro + holdings: Posições + total: Saldo do portfólio + total_value_tooltip: O saldo total do portfólio é a soma do dinheiro da corretora + (disponível para negociação) e o valor de mercado atual de suas posições. diff --git a/config/locales/views/invitation_mailer/pt-BR.yml b/config/locales/views/invitation_mailer/pt-BR.yml new file mode 100644 index 000000000..217055a64 --- /dev/null +++ b/config/locales/views/invitation_mailer/pt-BR.yml @@ -0,0 +1,8 @@ +--- +pt-BR: + invitation_mailer: + invite_email: + accept_button: Aceitar Convite + body: "%{inviter} convidou você para se juntar à família %{family} no %{product_name}!" + expiry_notice: Este convite expirará em %{days} dias + greeting: Bem-vindo ao %{product_name}! diff --git a/config/locales/views/invitations/pt-BR.yml b/config/locales/views/invitations/pt-BR.yml new file mode 100644 index 000000000..884788022 --- /dev/null +++ b/config/locales/views/invitations/pt-BR.yml @@ -0,0 +1,19 @@ +--- +pt-BR: + invitations: + create: + failure: Não foi possível enviar o convite + success: Convite enviado com sucesso + destroy: + failure: Houve um problema ao remover o convite. + not_authorized: Você não está autorizado a gerenciar convites. + success: Convite foi removido com sucesso. + new: + email_label: Endereço de E-mail + email_placeholder: Digite o endereço de e-mail + role_admin: Administrador + role_label: Função + role_member: Membro + submit: Enviar Convite + subtitle: Envie um convite para se juntar à sua conta familiar no %{product_name} + title: Convidar Alguém diff --git a/config/locales/views/invite_codes/pt-BR.yml b/config/locales/views/invite_codes/pt-BR.yml new file mode 100644 index 000000000..f31394e43 --- /dev/null +++ b/config/locales/views/invite_codes/pt-BR.yml @@ -0,0 +1,7 @@ +--- +pt-BR: + invite_codes: + index: + invite_code_description: Gere um novo código para vê-lo exibido aqui. Códigos gerados + que foram usados não serão mais mostrados. + no_invite_codes: Nenhum código para mostrar diff --git a/config/locales/views/layout/pt-BR.yml b/config/locales/views/layout/pt-BR.yml new file mode 100644 index 000000000..8f499ac1c --- /dev/null +++ b/config/locales/views/layout/pt-BR.yml @@ -0,0 +1,12 @@ +--- +pt-BR: + layouts: + auth.sign_up: + existing_account: Já tem uma conta? + no_account: Novo no %{product_name}? + sign_in: Entrar + sign_up: Criar conta + shared: + footer: + privacy_policy: Política de Privacidade + terms_of_service: Termos de Serviço diff --git a/config/locales/views/loans/pt-BR.yml b/config/locales/views/loans/pt-BR.yml new file mode 100644 index 000000000..7a6340a08 --- /dev/null +++ b/config/locales/views/loans/pt-BR.yml @@ -0,0 +1,23 @@ +--- +pt-BR: + loans: + edit: + edit: Editar %{account} + form: + interest_rate: Taxa de juros + interest_rate_placeholder: '5,25' + initial_balance: Saldo original do empréstimo + rate_type: Tipo de taxa + term_months: Prazo (meses) + term_months_placeholder: '360' + new: + title: Inserir detalhes do empréstimo + overview: + interest_rate: Taxa de Juros + monthly_payment: Pagamento Mensal + not_applicable: N/A + original_principal: Principal Original + remaining_principal: Principal Restante + term: Prazo + type: Tipo + unknown: Desconhecido diff --git a/config/locales/views/merchants/pt-BR.yml b/config/locales/views/merchants/pt-BR.yml new file mode 100644 index 000000000..73d38f69a --- /dev/null +++ b/config/locales/views/merchants/pt-BR.yml @@ -0,0 +1,27 @@ +--- +pt-BR: + family_merchants: + create: + error: 'Erro ao criar comerciante: %{error}' + success: Novo comerciante criado com sucesso + destroy: + success: Comerciante excluído com sucesso + edit: + title: Editar comerciante + form: + name_placeholder: Nome do comerciante + index: + empty: Nenhum comerciante ainda + new: Novo comerciante + title: Comerciantes + merchant: + confirm_accept: Excluir comerciante + confirm_body: Tem certeza de que deseja excluir este comerciante? Remover este comerciante + desvinculará todas as transações associadas e pode afetar seus relatórios. + confirm_title: Excluir comerciante? + delete: Excluir comerciante + edit: Editar comerciante + new: + title: Novo comerciante + update: + success: Comerciante atualizado com sucesso diff --git a/config/locales/views/mfa/pt-BR.yml b/config/locales/views/mfa/pt-BR.yml new file mode 100644 index 000000000..f4b539381 --- /dev/null +++ b/config/locales/views/mfa/pt-BR.yml @@ -0,0 +1,38 @@ +--- +pt-BR: + mfa: + backup_codes: + backup_codes_description: Cada código só pode ser usado uma vez. Mantenha estes códigos + seguros e protegidos. + backup_codes_title: Seus Códigos de Backup + continue: Continuar para Configurações de Segurança + description: Armazene estes códigos de backup em um local seguro - você precisará deles se + perder o acesso ao seu aplicativo autenticador + page_title: Códigos de Backup + title: Salve Seus Códigos de Backup + create: + invalid_code: Código de verificação inválido. Tente novamente. + disable: + success: Autenticação de dois fatores foi desabilitada + new: + code_label: Código de Verificação + code_placeholder: Digite o código de 6 dígitos + description: Melhore a segurança da sua conta configurando a autenticação de dois fatores + page_title: Configuração de Autenticação de Dois Fatores + scan_description: Use um aplicativo autenticador como Google Authenticator ou 1Password + para escanear este código QR + scan_title: 1. Escanear Código QR + secret_description: Se você não conseguir escanear o código QR, digite esta chave secreta manualmente + no seu aplicativo autenticador + secret_title: Código de Entrada Manual + title: Configurar Autenticação de Dois Fatores + verify_button: Verificar e Habilitar 2FA + verify_description: Digite o código de 6 dígitos do seu aplicativo autenticador + verify_title: 2. Digite o Código de Verificação + verify: + description: Digite o código do seu aplicativo autenticador para continuar + page_title: Verificar Autenticação de Dois Fatores + title: Autenticação de Dois Fatores + verify_button: Verificar + verify_code: + invalid_code: Código de autenticação inválido. Tente novamente. diff --git a/config/locales/views/onboardings/pt-BR.yml b/config/locales/views/onboardings/pt-BR.yml new file mode 100644 index 000000000..b69ad4bc7 --- /dev/null +++ b/config/locales/views/onboardings/pt-BR.yml @@ -0,0 +1,28 @@ +--- +pt-BR: + onboardings: + header: + sign_out: Sair + preferences: + currency: Moeda + date_format: Formato de data + example: Conta exemplo + locale: Idioma + preview: Visualize como os dados são exibidos com base nas preferências. + submit: Concluir + subtitle: Vamos configurar suas preferências. + title: Configure suas preferências + profile: + country: País + first_name: Primeiro Nome + household_name: Nome da Família + last_name: Sobrenome + profile_image: Imagem do Perfil + submit: Continuar + subtitle: Vamos completar seu perfil. + title: Vamos configurar o básico + show: + message: Estamos muito empolgados por você estar aqui. No próximo passo, faremos + algumas perguntas para completar seu perfil e então deixar tudo configurado. + setup: Configurar conta + title: Conheça o %{product_name} diff --git a/config/locales/views/other_assets/pt-BR.yml b/config/locales/views/other_assets/pt-BR.yml new file mode 100644 index 000000000..1d4fe4065 --- /dev/null +++ b/config/locales/views/other_assets/pt-BR.yml @@ -0,0 +1,9 @@ +--- +pt-BR: + other_assets: + edit: + edit: Editar %{account} + balance_tracking_info: "Outros Ativos são atualizados via avaliações manuais usando 'Novo Saldo', e não por transações. O fluxo de caixa não afetará o saldo da conta." + new: + title: Inserir detalhes do ativo + balance_tracking_info: "Outros Ativos são atualizados via avaliações manuais usando 'Novo Saldo', e não por transações. O fluxo de caixa não afetará o saldo da conta." diff --git a/config/locales/views/other_liabilities/pt-BR.yml b/config/locales/views/other_liabilities/pt-BR.yml new file mode 100644 index 000000000..988f3ca2b --- /dev/null +++ b/config/locales/views/other_liabilities/pt-BR.yml @@ -0,0 +1,7 @@ +--- +pt-BR: + other_liabilities: + edit: + edit: Editar %{account} + new: + title: Inserir detalhes do passivo diff --git a/config/locales/views/pages/pt-BR.yml b/config/locales/views/pages/pt-BR.yml new file mode 100644 index 000000000..a64be8851 --- /dev/null +++ b/config/locales/views/pages/pt-BR.yml @@ -0,0 +1,37 @@ +--- +pt-BR: + pages: + changelog: + title: Novidades + dashboard: + welcome: "Bem-vindo(a) de volta, %{name}" + subtitle: "Veja o que está acontecendo com suas finanças" + new: "Novo" + drag_to_reorder: "Arraste para reordenar a seção" + toggle_section: "Alternar visibilidade da seção" + net_worth_chart: + data_not_available: Dados não disponíveis para o período selecionado + title: Patrimônio Líquido + no_account_empty_state: + new_account: Nova conta + no_account_subtitle: Como nenhuma conta foi adicionada, não há dados para exibir. Adicione suas primeiras contas para começar a visualizar os dados no painel. + no_account_title: Nenhuma conta ainda + balance_sheet: + title: "Balanço Patrimonial" + no_items: "Nenhuma %{name} ainda" + add_accounts: "Adicione suas contas de %{name} para ver um detalhamento completo" + cashflow_sankey: + title: "Fluxo de Caixa" + no_data_title: "Sem dados de fluxo de caixa para este período" + no_data_description: "Adicione transações para exibir dados de fluxo de caixa ou expanda o período de tempo" + add_transaction: "Adicionar transação" + no_accounts: + title: "Nenhuma conta ainda" + description: "Adicione contas para exibir dados de patrimônio líquido" + add_account: "Adicionar conta" + outflows_donut: + title: "Saídas" + total_outflows: "Total de Saídas" + categories: "Categorias" + value: "Valor" + weight: "Peso" diff --git a/config/locales/views/password_mailer/pt-BR.yml b/config/locales/views/password_mailer/pt-BR.yml new file mode 100644 index 000000000..8509475a7 --- /dev/null +++ b/config/locales/views/password_mailer/pt-BR.yml @@ -0,0 +1,10 @@ +--- +pt-BR: + password_mailer: + password_reset: + cta: Redefinir sua senha + ignore_if_not_requested: Se você não fez esta solicitação, pode ignorar este + e-mail. + request_made: Foi feita uma solicitação para redefinir sua senha do %{product_name}. Clique no link + para redefini-la. + subject: '%{product_name}: Redefinir sua senha' diff --git a/config/locales/views/password_resets/pt-BR.yml b/config/locales/views/password_resets/pt-BR.yml new file mode 100644 index 000000000..43a94f5ea --- /dev/null +++ b/config/locales/views/password_resets/pt-BR.yml @@ -0,0 +1,12 @@ +--- +pt-BR: + password_resets: + edit: + title: Redefinir senha + new: + requested: Por favor, verifique seu e-mail para um link para redefinir sua senha. + submit: Redefinir senha + title: Redefinir senha + update: + invalid_token: Token inválido. + success: Sua senha foi redefinida. diff --git a/config/locales/views/passwords/pt-BR.yml b/config/locales/views/passwords/pt-BR.yml new file mode 100644 index 000000000..5118bce64 --- /dev/null +++ b/config/locales/views/passwords/pt-BR.yml @@ -0,0 +1,10 @@ +--- +pt-BR: + passwords: + edit: + password: Nova Senha + password_challenge: Senha Atual + submit: Redefinir Senha + title: Atualizar Senha + update: + success: Sua senha foi redefinida. diff --git a/config/locales/views/plaid_items/pt-BR.yml b/config/locales/views/plaid_items/pt-BR.yml new file mode 100644 index 000000000..729b953f7 --- /dev/null +++ b/config/locales/views/plaid_items/pt-BR.yml @@ -0,0 +1,31 @@ +--- +pt-BR: + plaid_items: + create: + success: Conta vinculada com sucesso. Por favor, aguarde a sincronização das contas. + destroy: + success: Contas agendadas para exclusão. + plaid_item: + add_new: Adicionar nova conexão + confirm_accept: Excluir instituição + confirm_body: Isso excluirá permanentemente todas as contas deste grupo e + todos os dados associados. + confirm_title: Excluir instituição? + connection_lost: Conexão perdida + connection_lost_description: Esta conexão não é mais válida. Você precisará + excluir esta conexão e adicioná-la novamente para continuar sincronizando dados. + delete: Excluir + error: Erro ocorrido durante a sincronização de dados + no_accounts_description: Não conseguimos carregar nenhuma conta desta instituição + financeira. + no_accounts_title: Nenhuma conta encontrada + requires_update: Requer re-autenticação + status: Última sincronização há %{timestamp} + status_never: Requer sincronização de dados + syncing: Sincronizando... + update: Atualizar conexão + select_existing_account: + title: "Vincular %{account_name} ao Plaid" + description: Selecione uma conta do Plaid para vincular à sua conta existente + cancel: Cancelar + link_account: Vincular conta \ No newline at end of file diff --git a/config/locales/views/properties/pt-BR.yml b/config/locales/views/properties/pt-BR.yml new file mode 100644 index 000000000..9fefcfea0 --- /dev/null +++ b/config/locales/views/properties/pt-BR.yml @@ -0,0 +1,32 @@ +--- +pt-BR: + properties: + edit: + edit: Editar %{account} + form: + address_line1: Endereço + address_line1_placeholder: Rua Principal, 123 + area: Área útil + area_placeholder: '200' + area_unit: Unidade de medida + country: País + country_placeholder: BR + locality: Cidade + locality_placeholder: São Paulo + none: Nenhum + postal_code: CEP + postal_code_placeholder: '01234-567' + region: Estado + region_placeholder: SP + subtype_prompt: Selecionar tipo de propriedade + year_built: Ano de construção + year_built_placeholder: '2000' + new: + title: Inserir detalhes da propriedade + overview: + living_area: Área Útil + market_value: Valor de Mercado + purchase_price: Preço de Compra + trend: Tendência + unknown: Desconhecido + year_built: Ano de Construção diff --git a/config/locales/views/recurring_transactions/pt-BR.yml b/config/locales/views/recurring_transactions/pt-BR.yml new file mode 100644 index 000000000..f56819954 --- /dev/null +++ b/config/locales/views/recurring_transactions/pt-BR.yml @@ -0,0 +1,45 @@ +--- +pt-BR: + recurring_transactions: + title: Transações Recorrentes + upcoming: Próximas Transações Recorrentes + projected: Previsto + recurring: Recorrente + expected_on: Previsto para %{date} + day_of_month: Dia %{day} do mês + identify_patterns: Identificar Padrões + cleanup_stale: Limpar Obsoletas + info: + title: Detecção Automática de Padrões + manual_description: Você pode identificar padrões manualmente ou limpar transações recorrentes obsoletas usando os botões acima. + automatic_description: "A identificação automática também roda após:" + triggers: + - Importações de CSV concluídas (transações, negociações, contas, etc.) + - Sincronização de qualquer provedor concluída (Plaid, SimpleFIN, etc.) + identified: Identificados %{count} padrões de transações recorrentes + cleaned_up: Limpadas %{count} transações recorrentes obsoletas + marked_inactive: Transação recorrente marcada como inativa + marked_active: Transação recorrente marcada como ativa + deleted: Transação recorrente excluída + confirm_delete: Tem certeza de que deseja excluir esta transação recorrente? + marked_as_recurring: Transação marcada como recorrente + already_exists: Já existe uma transação recorrente manual para este padrão + creation_failed: Falha ao criar transação recorrente. Verifique os detalhes e tente novamente. + unexpected_error: Ocorreu um erro inesperado ao criar a transação recorrente + amount_range: "Faixa: %{min} até %{max}" + empty: + title: Nenhuma transação recorrente encontrada + description: Clique em "Identificar Padrões" para detectar automaticamente transações recorrentes do seu histórico. + table: + merchant: Nome + amount: Valor + expected_day: Dia Previsto + next_date: Próxima Data + last_occurrence: Última Ocorrência + status: Status + actions: Ações + status: + active: Ativa + inactive: Inativa + badges: + manual: Manual \ No newline at end of file diff --git a/config/locales/views/registrations/pt-BR.yml b/config/locales/views/registrations/pt-BR.yml new file mode 100644 index 000000000..9aea20658 --- /dev/null +++ b/config/locales/views/registrations/pt-BR.yml @@ -0,0 +1,25 @@ +--- +pt-BR: + helpers: + label: + user: + invite_code: Código de Convite + submit: + user: + create: Continuar + registrations: + create: + failure: Houve um problema ao se inscrever. + invalid_invite_code: Código de convite inválido, tente novamente. + success: Você se inscreveu com sucesso. + new: + invitation_message: "%{inviter} convidou você para se juntar como %{role}" + join_family_title: Juntar-se a %{family} + role_admin: administrador + role_member: membro + submit: Criar conta + title: Criar sua conta + welcome_body: Para começar, você deve se inscrever para uma nova conta. Então você + poderá configurar configurações adicionais dentro do aplicativo. + welcome_title: Bem-vindo ao Self Hosted %{product_name}! + password_placeholder: Digite sua senha diff --git a/config/locales/views/reports/pt-BR.yml b/config/locales/views/reports/pt-BR.yml new file mode 100644 index 000000000..915199949 --- /dev/null +++ b/config/locales/views/reports/pt-BR.yml @@ -0,0 +1,126 @@ +--- +pt-BR: + reports: + index: + title: Relatórios + subtitle: Insights completos sobre sua saúde financeira + export: Exportar CSV + drag_to_reorder: "Arraste para reordenar a seção" + toggle_section: "Alternar visibilidade da seção" + periods: + monthly: Mensal + quarterly: Trimestral + ytd: Acumulado do Ano (YTD) + last_6_months: Últimos 6 Meses + custom: Período Personalizado + date_range: + from: De + to: Até + showing_period: "Exibindo dados de %{start} até %{end}" + invalid_date_range: "A data final não pode ser anterior à data inicial. As datas foram trocadas." + summary: + total_income: Receita Total + total_expenses: Despesa Total + net_savings: Economia Líquida + budget_performance: Desempenho do Orçamento + vs_previous: vs período anterior + income_minus_expenses: Receitas menos despesas + of_budget_used: do orçamento utilizado + no_budget_data: Sem dados de orçamento para este período + budget_performance: + title: Desempenho do Orçamento + spent: Gasto + budgeted: Orçado + remaining: Restante + over_by: Excedido em + suggested_daily: "%{amount} sugerido por dia para os %{days} dias restantes" + no_budgets: Nenhuma categoria de orçamento configurada para este mês + status: + good: Dentro da Meta + warning: Perto do Limite + over: Acima do Orçamento + trends: + title: Tendências e Insights + monthly_breakdown: Detalhamento Mensal + month: Mês + income: Receita + expenses: Despesas + net: Líquido + savings_rate: Taxa de Poupança + current: atual + avg_monthly_income: Média Mensal de Receita + avg_monthly_expenses: Média Mensal de Despesas + avg_monthly_savings: Média Mensal de Economia + no_data: Sem dados de tendência disponíveis + spending_patterns: Padrões de Gastos + weekday_spending: Gastos em Dias Úteis + weekend_spending: Gastos no Fim de Semana + total: Total + avg_per_transaction: Média por transação + transactions: Transações + insight_title: Insight + insight_higher_weekend: "Você gasta %{percent}% a mais por transação nos fins de semana do que em dias úteis" + insight_higher_weekday: "Você gasta %{percent}% a mais por transação em dias úteis do que nos fins de semana" + insight_similar: "Seus gastos por transação são similares em dias úteis e fins de semana" + no_spending_data: Sem dados de gastos disponíveis para este período + empty_state: + title: Sem Dados Disponíveis + description: Comece a controlar suas finanças adicionando transações ou conectando suas contas para ver relatórios completos + add_transaction: Adicionar Transação + add_account: Adicionar Conta + transactions_breakdown: + title: Detalhamento de Transações + no_transactions: Nenhuma transação encontrada para o período e filtros selecionados + filters: + title: Filtros + category: Categoria + account: Conta + tag: Tag + amount_min: Valor Mínimo + amount_max: Valor Máximo + date_range: Período + all_categories: Todas as Categorias + all_accounts: Todas as Contas + all_tags: Todas as Tags + apply: Aplicar Filtros + clear: Limpar Filtros + sort: + label: Ordenar por + date_desc: Data (Mais recente) + amount_desc: Valor (Maior para Menor) + amount_asc: Valor (Menor para Maior) + export: + label: Exportar + csv: CSV + excel: Excel + pdf: PDF + google_sheets: Abrir no Google Sheets + table: + category: Categoria + amount: Valor + type: Tipo + expense: Despesas + income: Receitas + uncategorized: Sem Categoria + transactions: transações + percentage: "% do Total" + pagination: + showing: Exibindo %{count} transações + previous: Anterior + next: Próximo + google_sheets_instructions: + title_with_key: "✅ Copiar URL para Google Sheets" + title_no_key: "⚠️ Chave de API Necessária" + ready: Sua URL CSV (com chave de API) está pronta. + steps: "Para importar no Google Sheets:\n1. Crie uma nova planilha no Google\n2. Na célula A1, insira a fórmula abaixo\n3. Pressione Enter" + security_warning: "Esta URL inclui sua chave de API. Mantenha-a segura!" + need_key: Para importar dados no Google Sheets, você precisa de uma chave de API. + step1: "Vá em Configurações → Chaves de API" + step2: "Crie uma nova chave de API com permissão de \"leitura\"" + step3: Copie a chave de API + step4: "Adicione à URL como: ?api_key=SUA_CHAVE" + example: Exemplo + then_use: Então use a URL completa com =IMPORTDATA() no Google Sheets. + open_sheets: Abrir Google Sheets + go_to_api_keys: Ir para Chaves de API + close: Entendi diff --git a/config/locales/views/sessions/pt-BR.yml b/config/locales/views/sessions/pt-BR.yml new file mode 100644 index 000000000..65691fb61 --- /dev/null +++ b/config/locales/views/sessions/pt-BR.yml @@ -0,0 +1,23 @@ +--- +pt-BR: + sessions: + create: + invalid_credentials: E-mail ou senha inválidos. + destroy: + logout_successful: Você saiu com sucesso. + openid_connect: + failed: Não foi possível autenticar via OpenID Connect. + failure: + failed: Não foi possível autenticar. + new: + email: Endereço de e-mail + email_placeholder: voce@exemplo.com + forgot_password: Esqueceu sua senha? + password: Senha + submit: Entrar + title: Entre na sua conta + password_placeholder: Digite sua senha + openid_connect: Entrar com OpenID Connect + google_auth_connect: Entrar com Google + demo_banner_title: "Modo de Demonstração Ativo" + demo_banner_message: "Este é um ambiente de demonstração. As credenciais de login foram preenchidas para sua conveniência. Por favor, não insira informações reais ou sensíveis." diff --git a/config/locales/views/settings/api_keys/pt-BR.yml b/config/locales/views/settings/api_keys/pt-BR.yml new file mode 100644 index 000000000..ac4ce9fc0 --- /dev/null +++ b/config/locales/views/settings/api_keys/pt-BR.yml @@ -0,0 +1,76 @@ +--- +pt-BR: + settings: + api_keys_controller: + success: "Sua chave de API foi criada com sucesso" + revoked_successfully: "Chave de API foi revogada com sucesso" + revoke_failed: "Falha ao revogar chave de API" + scope_descriptions: + read_accounts: "Ver Contas" + read_transactions: "Ver Transações" + read_balances: "Ver Saldos" + write_transactions: "Criar Transações" + api_keys: + show: + title: "Gerenciamento de Chave de API" + no_api_key: + title: "Criar Sua Chave de API" + heading: "Acesse os dados da sua conta programaticamente" + description: "Obtenha acesso programático aos seus dados do %{product_name} com uma chave de API segura." + what_you_can_do: "O que você pode fazer com a API:" + feature_1: "Acessar dados da sua conta programaticamente" + feature_2: "Construir integrações e aplicações personalizadas" + feature_3: "Automatizar recuperação e análise de dados" + security_note_title: "Segurança em Primeiro Lugar" + security_note: "Sua chave de API terá permissões restritas baseadas nos escopos que você selecionar. Você pode ter apenas uma chave de API ativa por vez." + create_api_key: "Criar Chave de API" + current_api_key: + title: "Sua Chave de API" + description: "Sua chave de API ativa está pronta para uso. Mantenha-a segura e nunca a compartilhe publicamente." + active: "Ativa" + key_name: "Nome" + created_at: "Criada" + last_used: "Último Uso" + expires: "Expira" + ago: "atrás" + never_used: "Nunca usada" + never_expires: "Nunca expira" + permissions: "Permissões" + usage_instructions_title: "Como usar sua chave de API" + usage_instructions: "Inclua sua chave de API no cabeçalho X-Api-Key ao fazer requisições para a API do %{product_name}:" + regenerate_key: "Criar Nova Chave" + revoke_key: "Revogar Chave" + revoke_confirmation: "Tem certeza de que deseja revogar esta chave de API? Esta ação não pode ser desfeita e desabilitará imediatamente todas as aplicações que usam esta chave." + new: + title: "Criar Chave de API" + create_new_key: "Criar Nova Chave de API" + description: "Configure sua nova chave de API com um nome descritivo e permissões apropriadas." + name_label: "Nome da Chave de API" + name_placeholder: "ex: App de Produção, Dashboard de Analytics" + name_help: "Escolha um nome descritivo para ajudar a identificar o propósito desta chave." + permissions_label: "Permissões" + permissions_help: "Selecione as permissões que sua chave de API precisa. Você sempre pode criar uma nova chave com permissões diferentes." + scope_details: + read_accounts: "Ver informações da conta, saldos e dados a nível de conta" + read_transactions: "Ver dados de transação, categorias e detalhes de transação" + read_balances: "Ver dados históricos de saldo e tendências de valor da conta" + write_transactions: "Criar e atualizar registros de transação (em breve)" + security_warning_title: "Aviso de Segurança Importante" + security_warning: "Sua chave de API será mostrada apenas uma vez após a criação. Armazene-a com segurança e nunca a compartilhe publicamente. Se você perdê-la, precisará criar uma nova." + create_key: "Criar Chave de API" + cancel: "Cancelar" + created: + title: "Chave de API Criada" + success_title: "Chave de API Criada com Sucesso" + success_description: "Sua nova chave de API está pronta para uso. Certifique-se de copiá-la agora, pois você não poderá vê-la novamente." + your_api_key: "Sua Chave de API" + key_name: "Nome" + permissions: "Permissões" + critical_warning_title: "⚠️ Crítico: Salve Sua Chave de API Agora" + critical_warning_1: "Esta é a única vez que você verá sua chave de API em texto simples." + critical_warning_2: "Copie e armazene-a com segurança em seu gerenciador de senhas ou aplicação." + critical_warning_3: "Se você perder esta chave, precisará criar uma nova." + usage_instructions_title: "Início Rápido" + usage_instructions: "Use sua chave de API incluindo-a no cabeçalho X-Api-Key:" + copy_key: "Copiar Chave de API" + continue: "Continuar para Configurações da Chave de API" diff --git a/config/locales/views/settings/hostings/pt-BR.yml b/config/locales/views/settings/hostings/pt-BR.yml new file mode 100644 index 000000000..576abb2ff --- /dev/null +++ b/config/locales/views/settings/hostings/pt-BR.yml @@ -0,0 +1,73 @@ +--- +pt-BR: + settings: + hostings: + invite_code_settings: + description: Controle como novas pessoas se cadastram na sua instância do %{product}. + email_confirmation_description: Quando ativado, os usuários devem confirmar o endereço de + e-mail ao alterá-lo. + email_confirmation_title: Exigir confirmação de e-mail + generate_tokens: Gerar novo código + generated_tokens: Códigos gerados + title: Cadastro + states: + open: Aberto + closed: Fechado + invite_only: Apenas convidados + show: + general: Configurações Gerais + financial_data_providers: Provedores de Dados Financeiros + invites: Códigos de Convite + title: Self-Hosting + danger_zone: Zona de Perigo + clear_cache: Limpar cache de dados + clear_cache_warning: Limpar o cache de dados removerá todas as taxas de câmbio, preços de ativos, saldos de contas e outros dados. Isso não excluirá contas, transações, categorias ou outros dados do usuário. + confirm_clear_cache: + title: Limpar cache de dados? + body: Tem certeza de que deseja limpar o cache de dados? Isso removerá todas as taxas de câmbio, preços de ativos, saldos de contas e outros dados. Esta ação não pode ser desfeita. + provider_selection: + title: Seleção de Provedor + description: Escolha qual serviço usar para buscar taxas de câmbio e preços de ativos. O Yahoo Finance é gratuito e não requer uma chave de API. O Twelve Data requer uma chave de API gratuita, mas pode oferecer maior cobertura de dados. + exchange_rate_provider_label: Provedor de Taxas de Câmbio + securities_provider_label: Provedor de Ativos (Preços de Ações) + env_configured_message: A seleção de provedor está desabilitada porque variáveis de ambiente (EXCHANGE_RATE_PROVIDER ou SECURITIES_PROVIDER) estão definidas. Para habilitar a seleção aqui, remova essas variáveis de ambiente da sua configuração. + providers: + twelve_data: Twelve Data + yahoo_finance: Yahoo Finance + brand_fetch_settings: + description: Insira o Client ID fornecido pelo Brand Fetch + label: Client ID + placeholder: Insira seu Client ID aqui + title: Configurações do Brand Fetch + openai_settings: + description: Insira o token de acesso e configure opcionalmente um provedor compatível com OpenAI personalizado + env_configured_message: Configurado com sucesso através de variáveis de ambiente. + access_token_label: Token de Acesso + access_token_placeholder: Insira seu token de acesso aqui + uri_base_label: URL Base da API (Opcional) + uri_base_placeholder: "https://api.openai.com/v1 (padrão)" + model_label: Modelo (Opcional) + model_placeholder: "gpt-4.1 (padrão)" + title: OpenAI + yahoo_finance_settings: + title: Yahoo Finance + description: O Yahoo Finance fornece acesso gratuito a preços de ações, taxas de câmbio e dados financeiros sem exigir uma chave de API. + status_active: O Yahoo Finance está ativo e funcionando + status_inactive: Falha na conexão com o Yahoo Finance + connection_failed: Não foi possível conectar ao Yahoo Finance + troubleshooting: Verifique sua conexão com a internet e as configurações de firewall. O Yahoo Finance pode estar temporariamente indisponível. + twelve_data_settings: + api_calls_used: "%{used} / %{limit} chamadas diárias da API usadas (%{percentage})" + description: Insira a chave de API fornecida pela Twelve Data + env_configured_message: Configurado com sucesso através da variável de ambiente TWELVE_DATA_API_KEY. + label: Chave de API + placeholder: Insira sua chave de API aqui + plan: "plano %{plan}" + title: Twelve Data + update: + failure: Valor de configuração inválido + success: Configurações atualizadas + invalid_onboarding_state: Estado de cadastro inválido + clear_cache: + cache_cleared: O cache de dados foi limpo. Isso pode levar alguns instantes para ser concluído. + not_authorized: Você não tem permissão para realizar esta ação \ No newline at end of file diff --git a/config/locales/views/settings/pt-BR.yml b/config/locales/views/settings/pt-BR.yml new file mode 100644 index 000000000..f7c681495 --- /dev/null +++ b/config/locales/views/settings/pt-BR.yml @@ -0,0 +1,112 @@ +--- +pt-BR: + settings: + ai_prompts: + show: + page_title: Prompts de IA + openai_label: OpenAI + disable_ai: Desativar Assistente de IA + prompt_instructions: Instruções do Prompt + main_system_prompt: + title: Prompt de Sistema Principal + subtitle: Instruções centrais que definem como o assistente de IA se comporta em todas as conversas + transaction_categorizer: + title: Categorizador de Transações + subtitle: A IA categoriza automaticamente suas transações com base nas suas categorias definidas + merchant_detector: + title: Detector de Estabelecimentos + subtitle: A IA identifica e enriquece dados de transações com informações do estabelecimento + billings: + show: + page_title: Cobrança + subscription_subtitle: Atualize sua assinatura e detalhes de cobrança + subscription_title: Gerenciar assinatura + preferences: + show: + country: País + currency: Moeda + date_format: Formato de data + general_subtitle: Configure suas preferências + general_title: Geral + default_period: Período Padrão + language: Idioma + page_title: Preferências + theme_dark: Escuro + theme_light: Claro + theme_subtitle: Escolha um tema preferido para o aplicativo + theme_system: Sistema + theme_title: Tema + timezone: Fuso horário + profiles: + destroy: + cannot_remove_self: Você não pode se remover da conta. + member_removal_failed: Houve um problema ao remover o membro. + member_removed: Membro foi removido com sucesso. + not_authorized: Você não está autorizado a remover membros. + show: + confirm_delete: + body: Tem certeza de que deseja excluir permanentemente sua conta? Esta ação + é irreversível. + title: Excluir conta? + confirm_reset: + body: Tem certeza de que deseja resetar sua conta? Isso excluirá todas as suas contas, categorias, comerciantes, tags e outros dados. Esta ação não pode ser desfeita. + title: Resetar conta? + confirm_remove_invitation: + body: Tem certeza de que deseja remover o convite para %{email}? + title: Remover Convite + confirm_remove_member: + body: Tem certeza de que deseja remover %{name} da sua conta? + title: Remover Membro + danger_zone_title: Zona de Perigo + delete_account: Excluir conta + delete_account_warning: Excluir sua conta removerá permanentemente todos + os seus dados e não pode ser desfeito. + reset_account: Resetar conta + reset_account_warning: Resetar sua conta excluirá todas as suas contas, categorias, comerciantes, tags e outros dados, mas manterá sua conta de usuário intacta. + email: E-mail + first_name: Primeiro Nome + household_form_input_placeholder: Digite o nome da família + household_form_label: Nome da família + household_subtitle: Convide membros da família, parceiros e outros indivíduos. Os convidados + podem fazer login na sua família e acessar suas contas compartilhadas. + household_title: Família + invitation_link: Link de convite + invite_member: Adicionar membro + last_name: Sobrenome + page_title: Conta + pending: Pendente + profile_subtitle: Personalize como você aparece no %{product_name} + profile_title: Perfil + remove_invitation: Remover Convite + remove_member: Remover Membro + save: Salvar + securities: + show: + page_title: Segurança + settings_nav: + accounts_label: Contas + api_key_label: Chave da API + billing_label: Cobrança + categories_label: Categorias + feedback_label: Feedback + general_section_title: Geral + imports_label: Importações + logout: Sair + merchants_label: Comerciantes + other_section_title: Mais + preferences_label: Preferências + profile_label: Conta + rules_label: Regras + security_label: Segurança + self_hosting_label: Auto hospedagem + tags_label: Tags + transactions_section_title: Transações + whats_new_label: Novidades + settings_nav_link_large: + next: Próximo + previous: Voltar + user_avatar_field: + accepted_formats: JPG ou PNG. Máximo 5MB. + choose: Enviar foto + choose_label: (opcional) + change: Alterar foto diff --git a/config/locales/views/settings/securities/pt-BR.yml b/config/locales/views/settings/securities/pt-BR.yml new file mode 100644 index 000000000..12563e05f --- /dev/null +++ b/config/locales/views/settings/securities/pt-BR.yml @@ -0,0 +1,12 @@ +--- +pt-BR: + settings: + securities: + show: + disable_mfa: Desabilitar 2FA + disable_mfa_confirm: Tem certeza de que deseja desabilitar a autenticação de dois fatores? + Isso tornará sua conta menos segura. + enable_mfa: Habilitar 2FA + mfa_description: Adicione uma camada extra de segurança à sua conta exigindo + um código do seu aplicativo autenticador ao fazer login + mfa_title: Autenticação de Dois Fatores diff --git a/config/locales/views/shared/pt-BR.yml b/config/locales/views/shared/pt-BR.yml new file mode 100644 index 000000000..cd14facf5 --- /dev/null +++ b/config/locales/views/shared/pt-BR.yml @@ -0,0 +1,14 @@ +--- +pt-BR: + shared: + confirm_modal: + accept: Confirmar + body_html: "

Você não poderá desfazer esta decisão

" + cancel: Cancelar + title: Tem certeza? + money_field: + label: Valor + syncing_notice: + syncing: Sincronizando dados das contas... + trend_change: + no_change: "sem alteração" diff --git a/config/locales/views/simplefin_items/pt-BR.yml b/config/locales/views/simplefin_items/pt-BR.yml new file mode 100644 index 000000000..340449e6a --- /dev/null +++ b/config/locales/views/simplefin_items/pt-BR.yml @@ -0,0 +1,60 @@ +--- +pt-BR: + simplefin_items: + new: + title: Conectar SimpleFin + setup_token: Token de configuração + setup_token_placeholder: cole seu token de configuração do SimpleFin + connect: Conectar + cancel: Cancelar + create: + success: Conexão com SimpleFin adicionada com sucesso! Suas contas aparecerão em breve enquanto sincronizam em segundo plano. + errors: + blank_token: Por favor, insira um token de configuração do SimpleFin. + invalid_token: Token de configuração inválido. Verifique se você copiou o token completo do SimpleFin Bridge. + token_compromised: O token de configuração pode estar comprometido, expirado ou já ter sido usado. Por favor, crie um novo. + create_failed: "Falha ao conectar: %{message}" + unexpected: Ocorreu um erro inesperado. Tente novamente ou contate o suporte. + destroy: + success: A conexão com SimpleFin será removida + update: + success: Conexão com SimpleFin atualizada com sucesso! Suas contas estão sendo reconectadas. + errors: + blank_token: Por favor, insira um token de configuração do SimpleFin. + invalid_token: Token de configuração inválido. Verifique se você copiou o token completo do SimpleFin Bridge. + token_compromised: O token de configuração pode estar comprometido, expirado ou já ter sido usado. Por favor, crie um novo. + update_failed: "Falha ao atualizar a conexão: %{message}" + unexpected: Ocorreu um erro inesperado. Tente novamente ou contate o suporte. + edit: + setup_token: + label: "Token de Configuração do SimpleFin:" + placeholder: Cole seu token de configuração do SimpleFin aqui... + help_text: O token deve ser uma sequência longa começando com letras e números + complete_account_setup: + all_skipped: Todas as contas foram ignoradas. Nenhuma conta foi criada. + no_accounts: Nenhuma conta para configurar. + success: Criada(s) com sucesso %{count} conta(s) SimpleFIN! Suas transações e investimentos estão sendo importados em segundo plano. + simplefin_item: + add_new: Adicionar nova conexão + confirm_accept: Excluir conexão + confirm_body: Isso excluirá permanentemente todas as contas neste grupo e todos os dados associados. + confirm_title: Excluir conexão SimpleFin? + delete: Excluir + deletion_in_progress: (exclusão em andamento...) + error: Ocorreu um erro ao sincronizar dados + no_accounts_description: Esta conexão ainda não possui contas sincronizadas. + no_accounts_title: Nenhuma conta encontrada + requires_update: Requer reautenticação + setup_needed: Novas contas prontas para configurar + setup_description: Escolha os tipos de conta para suas contas recém-importadas do SimpleFin. + setup_action: Configurar Novas Contas + status: Sincronizado pela última vez há %{timestamp} + status_never: Nunca sincronizado + status_with_summary: Sincronizado há %{timestamp} • %{summary} + syncing: Sincronizando... + update: Atualizar conexão + select_existing_account: + title: Vincular %{account_name} ao SimpleFIN + description: Selecione uma conta do SimpleFIN para vincular à sua conta existente + cancel: Cancelar + link_account: Vincular conta diff --git a/config/locales/views/subscriptions/pt-BR.yml b/config/locales/views/subscriptions/pt-BR.yml new file mode 100644 index 000000000..e90823cd4 --- /dev/null +++ b/config/locales/views/subscriptions/pt-BR.yml @@ -0,0 +1,4 @@ +--- +pt-BR: + subscriptions: + self_hosted_alert: "%{product_name} não está disponível no modo self-hosted." diff --git a/config/locales/views/tag/deletions/pt-BR.yml b/config/locales/views/tag/deletions/pt-BR.yml new file mode 100644 index 000000000..554588069 --- /dev/null +++ b/config/locales/views/tag/deletions/pt-BR.yml @@ -0,0 +1,15 @@ +--- +pt-BR: + tag: + deletions: + create: + deleted: Tag excluída + new: + delete_and_leave_uncategorized: Excluir "%{tag_name}" + delete_and_recategorize: Excluir "%{tag_name}" e atribuir nova tag + delete_tag: Excluir tag? + explanation: "%{tag_name} será removida de transações e outras entidades marcáveis. + Em vez de deixá-las sem marcação, você também pode atribuir uma nova tag + abaixo." + replacement_tag_prompt: Selecionar tag + tag: Tag diff --git a/config/locales/views/tags/pt-BR.yml b/config/locales/views/tags/pt-BR.yml new file mode 100644 index 000000000..5070286ec --- /dev/null +++ b/config/locales/views/tags/pt-BR.yml @@ -0,0 +1,23 @@ +--- +pt-BR: + tags: + create: + created: Tag criada + error: 'Erro ao criar tag: %{error}' + destroy: + deleted: Tag excluída + edit: + edit: Editar tag + form: + placeholder: Nome da tag + index: + empty: Nenhuma tag ainda + new: Nova tag + tags: Tags + new: + new: Nova tag + tag: + delete: Excluir + edit: Editar + update: + updated: Tag atualizada diff --git a/config/locales/views/trades/pt-BR.yml b/config/locales/views/trades/pt-BR.yml new file mode 100644 index 000000000..02f776800 --- /dev/null +++ b/config/locales/views/trades/pt-BR.yml @@ -0,0 +1,38 @@ +--- +pt-BR: + trades: + form: + account: Conta de transferência (opcional) + account_prompt: Buscar conta + amount: Valor + holding: Símbolo do ticker + price: Preço por ação + qty: Quantidade + submit: Adicionar transação + ticker_placeholder: AAPL + type: Tipo + header: + buy: Comprar + current_market_price_label: Preço de Mercado Atual + overview: Visão geral + purchase_price_label: Preço de Compra + purchase_qty_label: Quantidade de Compra + sell: Vender + symbol_label: Símbolo + total_return_label: Ganho/perda não realizado + new: + title: Nova transação + show: + additional: Adicional + cost_per_share_label: Custo por Ação + date_label: Data + delete: Excluir + delete_subtitle: Esta ação não pode ser desfeita + delete_title: Excluir Negociação + details: Detalhes + exclude_subtitle: Esta negociação não será incluída em relatórios e cálculos + exclude_title: Excluir das análises + note_label: Nota + note_placeholder: Adicione notas adicionais aqui... + quantity_label: Quantidade + settings: Configurações diff --git a/config/locales/views/transactions/pt-BR.yml b/config/locales/views/transactions/pt-BR.yml new file mode 100644 index 000000000..ead95f7e4 --- /dev/null +++ b/config/locales/views/transactions/pt-BR.yml @@ -0,0 +1,86 @@ +--- +pt-BR: + transactions: + form: + account: Conta + account_prompt: Selecione uma Conta + amount: Valor + category: Categoria + category_prompt: Selecione uma Categoria + date: Data + description: Descrição + description_placeholder: Descreva a transação + expense: Despesa + income: Receita + none: (nenhum) + note_label: Notas + note_placeholder: Digite uma nota + submit: Adicionar transação + tags_label: Tags + transfer: Transferência + new: + new_transaction: Nova transação + show: + account_label: Conta + amount: Valor + category_label: Categoria + date_label: Data + delete: Excluir + delete_subtitle: Isso exclui permanentemente a transação, afeta seus saldos históricos + e não pode ser desfeito. + delete_title: Excluir transação + details: Detalhes + mark_recurring: Marcar como Recorrente + mark_recurring_subtitle: Acompanhe como uma transação recorrente. A variação de valor é calculada automaticamente com base nos últimos 6 meses de transações similares. + mark_recurring_title: Transação Recorrente + merchant_label: Comerciante + name_label: Nome + nature: Tipo + none: "(nenhum)" + note_label: Notas + note_placeholder: Digite uma nota + overview: Visão geral + settings: Configurações + tags_label: Tags + uncategorized: "(sem categoria)" + header: + edit_categories: Editar categorias + edit_imports: Editar importações + edit_merchants: Editar comerciantes + edit_tags: Editar tags + import: Importar + index: + transaction: transação + transactions: transações + searches: + filters: + amount_filter: + equal_to: Igual a + greater_than: Maior que + less_than: Menor que + placeholder: '0' + badge: + expense: Despesa + income: Receita + on_or_after: em ou após %{date} + on_or_before: em ou antes de %{date} + transfer: Transferência + type_filter: + expense: Despesa + income: Receita + transfer: Transferência + menu: + account_filter: Conta + amount_filter: Valor + apply: Aplicar + cancel: Cancelar + category_filter: Categoria + clear_filters: Limpar filtros + date_filter: Data + merchant_filter: Comerciante + tag_filter: Tag + type_filter: Tipo + search: + equal_to: igual a + greater_than: maior que + less_than: menor que diff --git a/config/locales/views/transfers/pt-BR.yml b/config/locales/views/transfers/pt-BR.yml new file mode 100644 index 000000000..7460f7d90 --- /dev/null +++ b/config/locales/views/transfers/pt-BR.yml @@ -0,0 +1,31 @@ +--- +pt-BR: + transfers: + create: + success: Transferência criada + destroy: + success: Transferência removida + form: + amount: Valor + date: Data + expense: Despesa + from: De + income: Receita + select_account: Selecionar conta + submit: Criar transferência + to: Para + transfer: Transferência + new: + title: Nova transferência + show: + delete: Remover transferência + delete_subtitle: Isso remove a transferência. Não excluirá as transações + subjacentes. + delete_title: Remover transferência? + details: Detalhes + note_label: Notas + note_placeholder: Adicionar uma nota a esta transferência + overview: Visão geral + settings: Configurações + update: + success: Transferência atualizada diff --git a/config/locales/views/users/pt-BR.yml b/config/locales/views/users/pt-BR.yml new file mode 100644 index 000000000..ff41cbd78 --- /dev/null +++ b/config/locales/views/users/pt-BR.yml @@ -0,0 +1,17 @@ +--- +pt-BR: + users: + destroy: + success: Sua conta foi excluída. + update: + email_change_failed: Falha ao alterar endereço de e-mail. + email_change_initiated: Por favor, verifique seu novo endereço de e-mail para instruções de confirmação. + success: Seu perfil foi atualizado. + resend_confirmation_email: + success: Um novo e-mail de confirmação está na fila para envio. + no_pending_change: Nenhuma alteração de e-mail está pendente no momento! + reset: + success: Sua conta foi resetada. Os dados serão excluídos em segundo plano em algum tempo. + unauthorized: Você não está autorizado a realizar esta ação + reset_with_sample_data: + success: Sua conta foi resetada e os dados de exemplo estão sendo preparados. Você verá os dados de demonstração em breve. \ No newline at end of file diff --git a/config/locales/views/valuations/pt-BR.yml b/config/locales/views/valuations/pt-BR.yml new file mode 100644 index 000000000..41d90cad1 --- /dev/null +++ b/config/locales/views/valuations/pt-BR.yml @@ -0,0 +1,30 @@ +--- +pt-BR: + valuations: + form: + amount: Valor + submit: Adicionar atualização de saldo + header: + balance: Saldo + index: + change: alteração + date: data + new_entry: Nova entrada + no_valuations: Nenhuma avaliação para esta conta ainda + valuations: Valor + value: valor + new: + title: Novo saldo + show: + amount: Valor + date_label: Data + delete: Excluir + delete_subtitle: Esta ação não pode ser desfeita + delete_title: Excluir Entrada + details: Detalhes + name_label: Nome + name_placeholder: Digite um nome para esta entrada + note_label: Notas + note_placeholder: Adicione detalhes adicionais sobre esta entrada + overview: Visão geral + settings: Configurações diff --git a/config/locales/views/vehicles/pt-BR.yml b/config/locales/views/vehicles/pt-BR.yml new file mode 100644 index 000000000..da6559002 --- /dev/null +++ b/config/locales/views/vehicles/pt-BR.yml @@ -0,0 +1,25 @@ +--- +pt-BR: + vehicles: + edit: + edit: Editar %{account} + form: + make: Marca + make_placeholder: Toyota + mileage: Quilometragem + mileage_placeholder: '15000' + mileage_unit: Unidade + model: Modelo + model_placeholder: Camry + year: Ano + year_placeholder: '2023' + new: + title: Inserir detalhes do veículo + overview: + current_price: Preço Atual + make_model: Marca e Modelo + mileage: Quilometragem + purchase_price: Preço de Compra + trend: Tendência + unknown: Desconhecido + year: Ano