chore(i18n): auto-update translations via LLM
This commit is contained in:
@@ -41,6 +41,161 @@
|
||||
"about.story_heading": "Nossa História",
|
||||
"about.story_p1": "O DocuElevate foi criado com um objetivo em mente: simplificar e agilizar o gerenciamento de documentos para todos, seja você uma pequena startup ou uma grande empresa.",
|
||||
"about.story_p2": "Nós aproveitamos o poder de provedores de IA plugáveis (OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Portkey e mais) para extração de metadados e refinamento de texto, integramos perfeitamente com Dropbox, Nextcloud e Paperless NGX para armazenamento e indexação, aproveitamos o Azure Document Intelligence para OCR e até usamos Gotenberg para conversões de arquivo para PDF.",
|
||||
"admin_files.admin_only_badge": "Apenas Admin",
|
||||
"admin_files.aria_breadcrumb": "Caminho",
|
||||
"admin_files.badge_delta_detected": "Delta detectado",
|
||||
"admin_files.badge_duplicate": "dup",
|
||||
"admin_files.badge_in_db": "no DB",
|
||||
"admin_files.badge_on_disk": "no disco",
|
||||
"admin_files.breadcrumb_workdir": "diretório de trabalho",
|
||||
"admin_files.btn_download": "Baixar",
|
||||
"admin_files.col_actions": "Ações",
|
||||
"admin_files.col_db": "DB",
|
||||
"admin_files.col_health": "Saúde",
|
||||
"admin_files.col_id": "ID",
|
||||
"admin_files.col_ingested": "Ingerido",
|
||||
"admin_files.col_local_filename": "nome_arquivo_local",
|
||||
"admin_files.col_missing_paths": "Caminhos ausentes",
|
||||
"admin_files.col_modified": "Modificado",
|
||||
"admin_files.col_name": "Nome",
|
||||
"admin_files.col_original_file_path": "caminho_arquivo_original",
|
||||
"admin_files.col_original_filename": "Nome do Arquivo Original",
|
||||
"admin_files.col_path_relative": "Caminho (relativo ao diretório de trabalho)",
|
||||
"admin_files.col_processed_file_path": "caminho_arquivo_processado",
|
||||
"admin_files.col_size": "Tamanho",
|
||||
"admin_files.delta_detected_detail": "Encontrados {orphan_count} arquivo(s) órfão(s) no disco sem registro no DB, e {ghost_count} registro(s) no DB com arquivos faltando no disco.",
|
||||
"admin_files.delta_detected_title": "Delta detectado.",
|
||||
"admin_files.empty_database": "Nenhum registro de arquivo encontrado no banco de dados.",
|
||||
"admin_files.empty_directory": "Este diretório está vazio.",
|
||||
"admin_files.ghost_records_desc": "(no DB, arquivo(s) faltando no disco)",
|
||||
"admin_files.ghost_records_heading": "Registros fantasmas",
|
||||
"admin_files.heading": "Gerenciador de Arquivos",
|
||||
"admin_files.health_missing": "Faltando",
|
||||
"admin_files.health_ok": "OK",
|
||||
"admin_files.legend_file_exists": "Arquivo existe no disco",
|
||||
"admin_files.legend_file_missing": "Arquivo faltando do disco",
|
||||
"admin_files.legend_found_in_db": "Encontrado no DB",
|
||||
"admin_files.legend_not_in_db": "Não está no DB (órfão)",
|
||||
"admin_files.legend_path_not_set": "Caminho não definido",
|
||||
"admin_files.no_delta": "Nenhum delta encontrado — sistema de arquivos e banco de dados estão em sincronia.",
|
||||
"admin_files.no_ghost_records": "Nenhum registro fantasma encontrado.",
|
||||
"admin_files.no_orphan_files": "Nenhum arquivo órfão encontrado.",
|
||||
"admin_files.orphan_files_desc": "(no disco, sem registro no DB)",
|
||||
"admin_files.orphan_files_heading": "Arquivos órfãos",
|
||||
"admin_files.page_title": "Gerenciador de Arquivos – Admin",
|
||||
"admin_files.status_in_db": "No DB",
|
||||
"admin_files.status_orphan": "Órfão",
|
||||
"admin_files.tab_database": "Registros do Banco de Dados",
|
||||
"admin_files.tab_filesystem": "Sistema de Arquivos",
|
||||
"admin_files.tab_reconcile": "Conciliar",
|
||||
"admin_plans.aria_delete_plan": "Excluir {name}",
|
||||
"admin_plans.aria_edit_plan": "Editar {name}",
|
||||
"admin_plans.aria_feature_n": "Funcionalidade {n}",
|
||||
"admin_plans.aria_move_down": "Mover {name} para baixo",
|
||||
"admin_plans.aria_move_up": "Mover {name} para cima",
|
||||
"admin_plans.aria_remove_feature_n": "Remover funcionalidade {n}",
|
||||
"admin_plans.btn_add_feature": "Adicionar Funcionalidade",
|
||||
"admin_plans.btn_add_plan": "Adicionar Plano",
|
||||
"admin_plans.btn_cancel": "Cancelar",
|
||||
"admin_plans.btn_create": "Criar Plano",
|
||||
"admin_plans.btn_delete": "Excluir",
|
||||
"admin_plans.btn_edit": "Editar",
|
||||
"admin_plans.btn_restore_defaults": "Restaurar Padrões",
|
||||
"admin_plans.btn_restore_defaults_title": "Restaurar todos os quatro planos padrão (somente se ainda não houver planos)",
|
||||
"admin_plans.btn_restoring": "Restaurando\u000002026",
|
||||
"admin_plans.btn_save_changes": "Salvar Alterações",
|
||||
"admin_plans.btn_save_order": "Salvar Ordem",
|
||||
"admin_plans.btn_saving": "Salvando\u000002026",
|
||||
"admin_plans.btn_stripe_setup": "Configuração do Stripe",
|
||||
"admin_plans.btn_stripe_setup_title": "Abra o Assistente de Configuração do Stripe para configurar chaves da API e sincronizar planos",
|
||||
"admin_plans.col_actions": "Ações",
|
||||
"admin_plans.col_active": "Ativo",
|
||||
"admin_plans.col_monthly": "Mensal",
|
||||
"admin_plans.col_monthly_limit": "Limite Mensal",
|
||||
"admin_plans.col_order": "Ordem",
|
||||
"admin_plans.col_overage_pct": "Excesso %",
|
||||
"admin_plans.col_plan": "Plano",
|
||||
"admin_plans.col_yearly": "Anual",
|
||||
"admin_plans.coming_soon": "Em breve",
|
||||
"admin_plans.featured_badge": "Destaque",
|
||||
"admin_plans.field_active": "Ativo",
|
||||
"admin_plans.field_allow_overage": "Permitir Cobrança por Excesso",
|
||||
"admin_plans.field_api_access": "Acesso à API",
|
||||
"admin_plans.field_badge_text": "Texto do Distintivo",
|
||||
"admin_plans.field_buffer": "Buffer:",
|
||||
"admin_plans.field_cta_text": "Texto do Botão CTA",
|
||||
"admin_plans.field_docs_month": "Docs / Mês",
|
||||
"admin_plans.field_featured": "Destaque / Destacado",
|
||||
"admin_plans.field_lifetime_docs": "Docs Vitalícios",
|
||||
"admin_plans.field_mailboxes": "Caixas de Email",
|
||||
"admin_plans.field_max_file_size": "Tamanho Máximo do Arquivo (MB)",
|
||||
"admin_plans.field_name": "Nome",
|
||||
"admin_plans.field_ocr_pages": "Páginas OCR / Mês",
|
||||
"admin_plans.field_overage_doc_price": "Preço adicional / doc ($)",
|
||||
"admin_plans.field_overage_ocr_price": "Preço adicional / página OCR ($)",
|
||||
"admin_plans.field_plan_id": "ID do Plano",
|
||||
"admin_plans.field_price_monthly": "Preço Mensal ($)",
|
||||
"admin_plans.field_price_yearly": "Preço Anual ($)",
|
||||
"admin_plans.field_sort_order": "Ordem de Classificação",
|
||||
"admin_plans.field_storage_dests": "Destinos de Armazenamento",
|
||||
"admin_plans.field_stripe_monthly": "ID de Preço Stripe (mensal)",
|
||||
"admin_plans.field_stripe_yearly": "ID de Preço Stripe (anual)",
|
||||
"admin_plans.field_tagline": "Slogan",
|
||||
"admin_plans.field_trial_days": "Dias de Teste",
|
||||
"admin_plans.free_label": "Gratuito",
|
||||
"admin_plans.heading": "Designer de Planos",
|
||||
"admin_plans.hint_features": "Esses pontos aparecem no cartão da página de preços para este plano.",
|
||||
"admin_plans.hint_plan_id": "Slug em letras minúsculas, não pode ser alterado após a criação.",
|
||||
"admin_plans.hint_zero_unlimited": "Digite 0 para ilimitado.",
|
||||
"admin_plans.js_delete_confirm": "Excluir plano \"{id}\"? Isso não pode ser desfeito.",
|
||||
"admin_plans.js_delete_failed": "Exclusão falhou",
|
||||
"admin_plans.js_failed_load": "Falha ao carregar planos",
|
||||
"admin_plans.js_order_saved": "Pedido salvo!",
|
||||
"admin_plans.js_plan_created": "Plano criado!",
|
||||
"admin_plans.js_plan_deleted": "Plano \"{id}\" excluído.",
|
||||
"admin_plans.js_plan_updated": "Plano atualizado!",
|
||||
"admin_plans.js_reorder_failed": "Reordenação falhou",
|
||||
"admin_plans.js_save_failed": "Salvamento falhou",
|
||||
"admin_plans.js_seed_confirm": "Semear os quatro planos padrão? Isso não faz nada se os planos já existirem.",
|
||||
"admin_plans.js_seed_failed": "Semear falhou",
|
||||
"admin_plans.js_yearly_enter": "Digite o preço anual para mostrar as economias",
|
||||
"admin_plans.js_yearly_save": "Economize {pct}% em relação ao mensal",
|
||||
"admin_plans.loading": "Carregando planos\u0002026",
|
||||
"admin_plans.modal_close_aria": "Fechar modal",
|
||||
"admin_plans.modal_create_title": "Adicionar Plano",
|
||||
"admin_plans.modal_edit_title_prefix": "Editar Plano: ",
|
||||
"admin_plans.no_plans_intro": "Ainda não há planos. Clique",
|
||||
"admin_plans.no_plans_suffix": "para semear os quatro planos embutidos.",
|
||||
"admin_plans.overage_0pct": "0% (exato)",
|
||||
"admin_plans.overage_100pct": "100%",
|
||||
"admin_plans.overage_50pct": "50%",
|
||||
"admin_plans.overage_announce": "→ anunciar",
|
||||
"admin_plans.overage_buffer_body_prefix": "O buffer de excesso é",
|
||||
"admin_plans.overage_buffer_body_suffix": "Anunciamos X docs/mês, mas aplicamos apenas em",
|
||||
"admin_plans.overage_buffer_formula": "X × (1 + buffer%)",
|
||||
"admin_plans.overage_buffer_invisible": "invisível para os usuários",
|
||||
"admin_plans.overage_buffer_tail": "docs. Por exemplo, um plano de 150-doc/mês com um buffer de 20% aplica em 180 docs. Isso evita cortes abruptos no limite exato anunciado, proporcionando aos usuários uma aterrissagem suave.",
|
||||
"admin_plans.overage_buffer_title": "Sobre o Buffer de Excesso",
|
||||
"admin_plans.overage_docs": "docs,",
|
||||
"admin_plans.overage_docs_end": "docs",
|
||||
"admin_plans.overage_enforce_at": "aplicar em",
|
||||
"admin_plans.page_title": "Designer de Planos — Admin DocuElevate",
|
||||
"admin_plans.section_basic_info": "Informações Básicas",
|
||||
"admin_plans.section_display": "Exibição",
|
||||
"admin_plans.section_features": "Lista de Recursos",
|
||||
"admin_plans.section_overage": "Designer de Excesso",
|
||||
"admin_plans.section_pricing": "Preços",
|
||||
"admin_plans.section_stripe": "Integração com Stripe",
|
||||
"admin_plans.section_volume": "Limites de Volume",
|
||||
"admin_plans.status_active": "Ativo",
|
||||
"admin_plans.status_inactive": "Inativo",
|
||||
"admin_plans.stripe_desc_after": "para criá-los automaticamente. Planos gratuitos não precisam de IDs de Preço do Stripe.",
|
||||
"admin_plans.stripe_desc_before": "Insira os IDs de Preço do Stripe para este plano, ou use o",
|
||||
"admin_plans.stripe_wizard_aria": "Abrir Assistente de Configuração do Stripe em uma nova aba",
|
||||
"admin_plans.stripe_wizard_link": "Assistente do Stripe",
|
||||
"admin_plans.stripe_wizard_text": "Assistente de Configuração do Stripe",
|
||||
"admin_plans.subheading": "Gerencie os planos de assinatura exibidos na página pública de preços.",
|
||||
"admin_plans.table_aria_label": "Planos de assinatura",
|
||||
"admin_users.add_user_profile_btn": "Adicionar Perfil de Usuário",
|
||||
"admin_users.admin_only_badge": "Apenas Admin",
|
||||
"admin_users.btn_password": "Senha",
|
||||
@@ -1222,6 +1377,9 @@
|
||||
"profile.contact_email_label": "E-mail de Contato / Notificação",
|
||||
"profile.contact_email_placeholder": "voce@exemplo.com",
|
||||
"profile.current_password": "Senha Atual",
|
||||
"profile.default_document_language_auto": "Usar padrão do sistema",
|
||||
"profile.default_document_language_hint": "Documentos em outros idiomas são traduzidos automaticamente para este idioma. Deixe em branco para usar o padrão do sistema (Inglês).",
|
||||
"profile.default_document_language_label": "Idioma Padrão do Documento",
|
||||
"profile.dismiss": "Dispensar",
|
||||
"profile.display_name_hint": "Deixe em branco para usar seu nome de usuário ou e-mail da conta.",
|
||||
"profile.display_name_label": "Nome de Exibição",
|
||||
@@ -1549,6 +1707,21 @@
|
||||
"terms.s6_p3_mid": ". Para informações sobre licenciamento, consulte nosso",
|
||||
"terms.s6_p3_post": ".",
|
||||
"terms.s6_p3_pre": "Para informações sobre como usamos cookies, consulte nosso",
|
||||
"translation.copied": "Copiado!",
|
||||
"translation.copy": "Copiar",
|
||||
"translation.default_language_version": "Versão do Idioma Padrão",
|
||||
"translation.detected_language": "Idioma detectado",
|
||||
"translation.hide_text": "Ocultar texto",
|
||||
"translation.load_translation": "Carregar tradução",
|
||||
"translation.no_translation": "Nenhuma tradução disponível ainda \u00100 pode estar em processamento",
|
||||
"translation.select_language": "Selecionar idioma\u00100",
|
||||
"translation.select_target": "Por favor, selecione um idioma de destino.",
|
||||
"translation.show_text": "Mostrar texto",
|
||||
"translation.translate_btn": "Traduzir",
|
||||
"translation.translate_to": "Traduzir para Outro Idioma",
|
||||
"translation.translated_to": "Traduzido para",
|
||||
"translation.translating": "Traduzindo\u00100",
|
||||
"translation.translation_failed": "Falha na tradução",
|
||||
"upload.browse_button": "Navegar por Arquivos",
|
||||
"upload.button_processing": "Processando...",
|
||||
"upload.camera_button": "Tirar Foto / Escanear Documento",
|
||||
|
||||
Reference in New Issue
Block a user