i18ntk
Version:
i18n Tool Kit - Zero-dependency internationalization toolkit for setup, scanning, analysis, validation, auto translation, fixing, reporting, and runtime translation loading.
757 lines • 161 kB
JSON
{
"meta": {
"version": "4.7.0",
"updated": "2026-07-07",
"lang": "pt"
},
"common": {
"welcome": "Bem-vindo",
"hello": "Olá",
"goodbye": "Adeus",
"yes": "Sim",
"no": "Não",
"save": "Salvar",
"cancel": "Cancelar",
"delete": "Excluir",
"edit": "Editar",
"loading": "Carregando...",
"offlineTitle": "Você está off-line",
"offlineMessage": "Verifique sua conexão com a Internet",
"tryReconnect": "Tente se reconectar",
"logout": "Sair",
"login": "Conecte-se",
"amount": "Quantia",
"success": "Sucesso",
"error": "Erro",
"warning": "Aviso",
"info": "Informações:",
"debug": "Depurar",
"progress": "Progresso:",
"remaining": "Restante:",
"total": "Total:",
"completed": "7. Concluído com sucesso!",
"missing": "Ausente",
"partial": "Parcial",
"sameAsSource": "Igual à fonte:",
"formatMismatch": "Incompatibilidade de formato:",
"typeMismatch": "Incompatibilidade de tipo:",
"structureMismatch": "Incompatibilidade de estrutura:",
"invalidOption": "Opção inválida",
"separator": "==================================================",
"initializationFailed": "❌ Falha na inicialização: {error}",
"stackTrace": "Rastreamento de pilha: {stack}",
"pressEnterToContinue": "Pressione Enter para continuar...",
"pressEnterToReturn": "Pressione Enter para retornar ao menu principal...",
"stepCompleted": "Etapa '{stepName}' completou.",
"stepFailed": "Etapa '{stepName}' fracassado.",
"runningStep": "Etapa de execução: {stepName}",
"command": "Comando: {command}",
"startingWorkflow": "Iniciando fluxo de trabalho...",
"workflowCompleted": "Fluxo de trabalho concluído.",
"checkReports": "Verifique os relatórios para obter detalhes.",
"errorExecutingCommand": "Erro ao executar o comando: {error}",
"genericError": "❌ Erro: {error}",
"errors": {
"errors": "Erros:",
"genericError": "❌ Erro: {error}",
"initializationFailed": "❌ Falha na inicialização: {error}",
"initializationCancelled": "❌ Inicialização cancelada pelo usuário.",
"translationKeyNotFound": "Chave de tradução não encontrada: {key}",
"sourceDirectoryNotFound": "Diretório de origem não encontrado: {directory}",
"configLoadingFailed": "Falha no carregamento da configuração",
"invalidSourceDirectory": "Diretório de origem inválido: {directory}",
"securityViolation": "Violação de segurança detectada",
"authenticationFailed": "Falha na autenticação",
"sourceEqualsI18nWarn": "⚠️ sourceDir é igual a i18nDir ({sourceDir}). Caindo de volta para {fallback} para digitalização de origem."
},
"errorGeneratingStatusSummary": "Erro ao gerar resumo de status: {error}",
"errorRunningDebugTool": "Erro ao executar a ferramenta de depuração '{displayName}': {error}",
"errorReadingDebugLogs": "Erro ao ler logs de depuração: {error}",
"errorAnalyzingLogFile": "Erro ao analisar o arquivo de log: {error}",
"errorAnalyzingTranslationKeys": "Erro ao analisar chaves de tradução: {error}",
"errorAnalyzingTranslationCompleteness": "Erro ao analisar a conclusão da tradução: {error}",
"analyzingTranslationCompleteness": "Analisando a integridade da tradução em todos os idiomas...",
"i18nDirectoryNotFound": "⚠️ diretório i18n não encontrado: {i18nDir}",
"translationCompletenessAnalysisFailed": "⚠️ Falha na análise de integridade da tradução: {error}",
"failedToAnalyzeLanguage": "❌ Falha ao analisar o idioma {language}: {error}",
"errorReadingI18nDirectory": "❌ Erro ao ler o diretório i18n:",
"languageCompletenessTitle": "📈 INTEGRIDADE DA TRADUÇÃO POR LÍNGUA",
"errorAnalyzingTranslationFormat": "Erro ao analisar o formato da tradução: {error}",
"errorAnalyzingTranslationType": "Erro ao analisar o tipo de tradução: {error}",
"errorAnalyzingTranslationStructure": "Erro ao analisar a estrutura da tradução: {error}",
"errorAnalyzingTranslationFormatMismatch": "Erro ao analisar incompatibilidade de formato de tradução: {error}",
"errorAnalyzingTranslationTypeMismatch": "Erro ao analisar incompatibilidade de tipo de tradução: {error}",
"errorAnalyzingTranslationStructureMismatch": "Erro ao analisar incompatibilidade de estrutura de tradução: {error}",
"errorAnalyzingTranslationSameAsSource": "Erro ao analisar a tradução igual à fonte: {error}",
"title": "Status",
"nextStep1": "1. Verifique a análise de uso:",
"nextStep2": "2. Valide as traduções:",
"nextStep3": "3. Analise a integridade:",
"nextStep4": "4. Complete as traduções que faltam:",
"nextStep5": "5. Gere relatório resumido:",
"nextStep6": "6. Revise e finalize as traduções:",
"generating": "Gerando relatório resumido...",
"review": "Revendo traduções...",
"finalizing": "Finalizando traduções...",
"finalized": "Finalizado com sucesso!",
"warnings": "Avisos:",
"completedKeys": "Chaves concluídas:",
"missingKeys": "Chaves ausentes:",
"partialKeys": "Chaves parciais:",
"home": "Lar",
"settings": "Configurações",
"startingSettings": "🎛️ Iniciando Configurações CLI...",
"confirm": "Confirmar",
"errorExiting": "Erro ao sair."
},
"errors": {
"invalidOption": "❌ Opção inválida: {option}. Por favor, tente novamente.",
"readlineClosed": "O fluxo de entrada está fechado; rodando em modo não interativo.",
"noPackageJson": "Nenhum pacote.json encontrado. Não é possível detectar automaticamente a estrutura i18n.",
"noI18nDir": "Nenhum diretório i18n encontrado na raiz do projeto.",
"noI18nConfig": "Nenhum arquivo de configuração i18n encontrado na raiz do projeto.",
"errorReadingDebugLogs": "Erro ao ler logs de depuração: {error}"
},
"scanner": {
"help_message": "Uso do scanner de texto I18n: node i18ntk-scanner.js [opções] Opções: --source-dir <dir> Diretório de origem para verificar (padrão: ./src) --output <file> Arquivo de saída para resultados de verificação (padrão: ./i18ntk-scanner-report.json) --framework <name> Estrutura para destino (react, vue, angular, vanilla) --patterns <patterns> Padrões regex personalizados (separados por vírgula) --include-tests Inclui arquivos de teste na varredura --exclude-dirs <dirs> Diretórios a serem excluídos (separados por vírgula) --help Mostrar esta ajuda Exemplos: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
"help_options": {
"source_dir": "Diretório de origem para verificar problemas do i18n",
"output_dir": "Diretório para relatórios e resultados de verificação",
"framework": "Estrutura de destino (react, vue, angular, vanilla)",
"patterns": "Padrões regex personalizados para detecção de texto",
"exclude": "Padrões de arquivo a serem excluídos da verificação",
"output_report": "Gere relatório de verificação detalhado",
"min_length": "Comprimento mínimo do texto a considerar para tradução",
"max_length": "Comprimento máximo do texto a considerar para tradução",
"include_tests": "Incluir arquivos de teste no processo de digitalização"
},
"starting": "🔍 Iniciando o scanner de texto para estrutura: {framework}",
"sourceDirectory": "📁 Diretório de digitalização: {sourceDir}",
"frameworkDetected": "🎯 Estrutura detectada: {framework}",
"scanningFiles": "📊 Digitalização {fileCount} arquivos...",
"foundTexts": "📝 Encontrado {textCount} textos que requerem tradução",
"generatingReport": "📊 Gerando relatório detalhado...",
"reportSaved": "💾 Relatório de digitalização salvo em: {reportPath}",
"noTextsFound": "✅ Nenhum texto codificado em inglês encontrado",
"scanComplete": "🎉 Digitalização concluída com sucesso!",
"analysisTitle": "🔍 ANÁLISE DE VARREDURA DE TRADUÇÃO",
"fileSummary": "📄 {file}: {count} textos encontrados",
"textLocation": "📍Linha {line}: {text}",
"foundText": "Encontrado {count} possíveis instâncias de texto codificadas",
"context": "📝 Contexto: {context}",
"severity": "⚠️ Gravidade: {severity}",
"recommendation": "💡 Recomendação: {recommendation}",
"welcome": {
"title": "🎯 Bem-vindo ao Scanner de Texto!",
"description": "Esta ferramenta verifica seu código-fonte em busca de texto em inglês codificado que possa precisar de tradução."
},
"frameworkPrompt": {
"title": "🎯 Selecione Estrutura",
"available": "Estruturas disponíveis: react, vue, angular, vanilla",
"description": "Insira o tipo de estrutura (ou pressione Enter para detecção automática):",
"input": "Estrutura:"
},
"directoryPrompt": {
"title": "📁 Selecione o diretório de origem",
"current": "Diretório atual: {dir}",
"description": "Digite o diretório a ser verificado (ou pressione Enter para o atual):",
"input": "Diretório:"
},
"options": {
"includeTests": "Incluir arquivos de teste?",
"excludeDirs": "Diretórios a serem excluídos (separados por vírgula):",
"customPatterns": "Padrões personalizados para procurar (regex):"
},
"reportGenerated": "Relatório de verificação gerado: {path}"
},
"fixer": {
"help_message": "Uso do I18n Translation Fixer: node i18ntk-fixer.js [opções] Opções: --source-dir <dir> Diretório de origem para verificar (padrão: ./locales) --idiomas <langs> Lista separada por vírgulas de idiomas para corrigir --markers <markers> Marcadores separados por vírgula para tratar como não traduzidos --no-backup Ignorar a criação automática de backup --help Mostrar esta ajuda Exemplos: node i18ntk-fixer.js --languages de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
"starting": "🚀 Iniciando correção de tradução para idiomas: {languages}",
"sourceDirectory": "📁 Diretório de origem: {sourceDir}",
"sourceLanguage": "🔤 Idioma de origem: {sourceLanguage}",
"markers": "🏷️ Marcadores para corrigir: {markers}",
"scanningLanguage": "📊 Digitalização {language}...",
"noLanguages": "❌ Nenhum idioma especificado para correção.",
"allComplete": "🎉 Todas as traduções já estão completas!",
"fullReportSaved": "📊 Relatório completo salvo em: {reportPath}",
"reviewReport": "Revise o relatório antes de prosseguir.",
"backupCreated": "💾 Backup criado com sucesso.",
"applyingFixes": "🔄 Aplicando correções...",
"fixingComplete": "✅ Correção da tradução concluída!",
"operationCancelled": "❌ Operação cancelada pelo usuário.",
"analysisTitle": "🔍 ANÁLISE DE FIXAÇÃO DE TRADUÇÃO",
"analysisSeparator": "==================================================",
"totalIssues": "Total de problemas encontrados: {totalIssues}",
"missingTranslations": "Traduções ausentes: {missing}",
"placeholderTranslations": "Traduções de espaço reservado: {placeholder}",
"noIssues": "✅ Nenhum problema encontrado. Todas as traduções estão completas.",
"detailedIssues": "📋 DETAILED ISSUES:",
"detailedSeparator": "--------------------------------------------------",
"filePath": "📄 {file} → {path}",
"missingKey": "❌FALTA: {source} → {new}",
"placeholderKey": "⚠️ LUGAR: \"{target}\" → \"{new}\"",
"moreIssues": "... e {count} mais questões. Verifique o arquivo do relatório para obter detalhes completos.",
"confirmationTitle": "🤔 Quer prosseguir com essas correções?",
"confirmationOptions": "Opções:",
"optionYes": "y - Sim, aplique todas as correções",
"optionNo": "n - Não, cancelar operação",
"optionShow": "s - Mostrar problemas detalhados",
"choicePrompt": "Sua escolha (s/n/s):",
"nonInteractiveMode": "⚡ Modo não interativo detectado - aplicando correções automaticamente...",
"reportGenerated": "📊 Relatório do fixador gerado: {path}",
"summary": "Resumo do fixador:",
"welcome": {
"title": "🎯 Bem-vindo ao Fixador de Tradução!",
"description": "Esta ferramenta irá ajudá-lo a corrigir traduções quebradas e espaços reservados em seus arquivos de localidade."
},
"markerPrompt": {
"title": "🏷️ Configurar marcadores de espaço reservado",
"description": "Insira os marcadores que indicam texto não traduzido (separados por vírgula):",
"currentDefaults": "Marcadores padrão: {markers}",
"input": "Marcadores (ou pressione Enter para padrões):"
},
"languagePrompt": {
"title": "🌍 Selecione os idiomas para corrigir",
"available": "Idiomas disponíveis: {languages}",
"description": "Insira os idiomas a serem corrigidos (separados por vírgula) ou pressione Enter para todos:",
"input": "Idiomas:",
"noLanguages": "Nenhum idioma encontrado para correção."
},
"directoryPrompt": {
"title": "📁 Selecione Diretório",
"current": "Diretório atual: {dir}",
"description": "Insira o diretório que contém seus arquivos de localidade (ou pressione Enter para atual):",
"input": "Diretório:"
},
"backupLocation": "Local de backup: {dir}",
"completed": "Correção concluída.",
"creatingBackup": "Criando backup em {dir}...",
"dryRunMode": "Modo de funcionamento a seco: {mode}",
"error": "Falha no fixador: {error}",
"fixing": "Consertando {language}...",
"foundLanguages": "Encontrado {count} idiomas: {languages}",
"languageFixed": "{language}: fixo {fixed} chave(s), ignorada {skipped}.",
"running": "Executando o corretor de tradução...",
"totalFixed": "Total fixo: {count}"
},
"autorun": {
"stepAnalyzeTranslations": "Analisar traduções",
"stepCompletedWithIcon": "✅ Concluído: {stepName}",
"stepValidateTranslations": "Validar traduções",
"stepRunning": "▶️ Passo {stepNumber}/{totalSteps}: {stepName}",
"separator": "==================================================",
"stepFailed": "❌ Falha: {stepName}",
"errorLabel": "Erro",
"autoRunScriptTitle": "🧪 Fluxo de trabalho de execução automática",
"usageTitle": "Uso",
"runAllSteps": "Execute: nó i18ntk-autorun.js",
"configureSettingsFirst": "Configuração: sinalizadores i18ntk-config.json ou CLI",
"runSpecificSteps": "Use --steps=1,3 ou --list para mostrar as etapas",
"showHelp": "--help para mais informações",
"examplesTitle": "Exemplos",
"configExample": "nó i18ntk-autorun.js --ui-linguagem=zh",
"stepsExample1": "nó i18ntk-autorun.js --steps=analisar,validar",
"stepsExample2": "nó i18ntk-autorun.js --list",
"customSettingsConfiguration": "Configurações personalizadas de execução automática",
"availableSteps": "Etapas disponíveis",
"startingAutoRunWorkflow": "🚀 Iniciando fluxo de trabalho de execução automática...",
"workflowIncludesSteps": "O fluxo de trabalho inclui {count} passos:",
"missingRequiredFile": "Arquivo obrigatório ausente: {file}",
"workflowStopped": "O fluxo de trabalho foi interrompido devido a uma falha.",
"workflowCompleted": "🎉 Fluxo de trabalho concluído!",
"successfulSteps": "Etapas bem-sucedidas: {count}",
"failedSteps": "Etapas com falha: {count}",
"stepInitializeProject": "Inicializar projeto",
"stepCheckUsage": "Verifique o uso da chave",
"stepGenerateSummary": "Gerar relatório resumido",
"runInitializationFirst": "Execute a inicialização primeiro.",
"initializationCheckPassed": "Verificação de inicialização aprovada.",
"runningStep": "Etapa de execução: {stepName}",
"commandLabel": "Comando: {command}",
"stepCompletedWithTime": "Etapa '{stepName}'concluído em {duration}EM.",
"stepCompleted": "Etapa '{stepName}' completou.",
"stepFailedWithError": "Etapa '{stepName}'falhou com erro: {error}",
"requiredStepFailed": "A etapa necessária falhou. Parando o fluxo de trabalho.",
"optionalStepFailed": "Falha na etapa opcional. Fluxo de trabalho contínuo.",
"stepRequired": "(Obrigatório)",
"stepOptional": "(Opcional)",
"startingExecution": "Iniciando a execução...",
"pressEnterToContinue": "Pressione Enter para continuar...",
"runningSelectedSteps": "Executando etapas selecionadas...",
"invalidStepNumber": "Número de etapa inválido: {stepNum}",
"executionReport": "Relatório de Execução:",
"requiredFailedSteps": "As etapas necessárias falharam: {count}",
"stepDetails": "Detalhes da etapa:",
"reportSavedTo": "Relatório salvo em: {path}",
"overallStatusSuccess": "SUCCESS",
"overallStatusFailed": "FAILED",
"overallStatus": "Estado geral: {status}",
"pressEnterForDefaults": "Pressione Enter para usar as configurações padrão para qualquer prompt.",
"sourceDirPrompt": "Insira o diretório de origem (padrão: {default}):",
"sourceLangPrompt": "Insira o idioma de origem (padrão: {default}):",
"targetLangsPrompt": "Insira os idiomas de destino (separados por vírgula, padrão: {default}):",
"translationMarkerPrompt": "Insira o marcador de tradução (padrão: {default}):",
"outputDirPrompt": "Insira o diretório de saída para relatórios (padrão: {default}):",
"settingsUpdatedSuccessfully": "Configurações atualizadas com sucesso!",
"errorConfiguringSettings": "Erro ao definir configurações: {error}",
"configurationComplete": "Configuração concluída.",
"runAutoRunCommand": "Agora você pode executar o comando de execução automática.",
"configurationFailed": "Falha na configuração: {error}",
"noValidStepNumbers": "Nenhum número de etapa válido foi fornecido.",
"autoRunFailed": "Falha na execução automática: {error}",
"stepCompleteTranslations": "Traduções completas",
"stepAnalyzeSizing": "Analisar Dimensionamento",
"stepCompletedIcon": "✅",
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Etapa '{stepName}' correndo...",
"stepFailedIcon": "❌",
"translationLoadWarning": "Aviso: não foi possível carregar {lang} traduções",
"configReadError": "Erro ao ler {file}"
},
"analyze": {
"help_message": "Uso do Analisador de Tradução I18n: node i18ntk-analyze.js [opções] Opções: --source-dir <dir> Diretório de origem para verificar (padrão: ./src) --i18n-dir <dir> Diretório I18n (padrão: ./src/locales) --output-report Gera relatório detalhado --output-dir <dir> Diretório de saída para relatórios (padrão: ./reports) --help Mostrar esta ajuda Exemplos: node i18ntk-analyze.js --output-report node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales node i18ntk-analyze.js --output-dir=./análise --output-report",
"source_directory": "📁 Diretório de origem: {sourceDir}",
"i18n_directory": "🌐 Diretório I18n: {i18nDir}",
"loading_translation_files": "📋 Carregando arquivos de tradução...",
"sourceDirectoryLabel": "📁 Diretório de fontes: {sourceDir}",
"sourceLanguageLabel": "🌍 Idioma de origem: {sourceLanguage}",
"strictModeLabel": "⚙️ Modo Estrito: {mode}",
"found_translation_files_count": "✅ Encontrado {count} arquivos de tradução",
"analyzing_translations": "🔍 Analisando traduções...",
"analysis_completed_successfully": "🎉 Análise concluída com sucesso!",
"analysis_results": "📊 ANALYSIS RESULTS",
"language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% traduzido)",
"sample_missing_keys": "Exemplo de chaves ausentes:",
"missing_key": "- {key}",
"and_more_missing": "...e {count} mais.",
"sample_unused_keys": "Exemplos de chaves não utilizadas:",
"unused_key": "- {key}",
"and_more_unused": "...e {count} mais.",
"recommendations": "📋 RECOMENDAÇÕES",
"add_missing_translations": "💡 Adicione traduções ausentes para melhorar a cobertura.",
"remove_unused_translations": "💡 Remova traduções não utilizadas para manter seu projeto limpo.",
"next_steps": "📋 NEXT STEPS",
"review_analysis_results": "1. Revise os resultados da análise no console ou no relatório gerado.",
"run_with_output_report": "2. Execute com --output-report para obter um relatório detalhado.",
"add_or_remove_translations": "3. Adicione traduções ausentes ou remova as não utilizadas.",
"rerun_analysis": "4. Execute novamente a análise para verificar as melhorias.",
"analysis_summary": "📊 ANALYSIS SUMMARY",
"source_files_scanned": "Arquivos de origem verificados: {fileCount}",
"translation_files_checked": "Arquivos de tradução verificados: {translationFileCount}",
"total_keys": "Chaves totais: {totalKeys}",
"translated_keys": "Chaves traduzidas: {translatedKeys}",
"missing_keys": "Chaves ausentes: {missingKeys}",
"unused_keys": "Chaves não utilizadas: {unusedKeys}",
"translation_coverage": "Cobertura de tradução: {coverage}%",
"analysis_passed_for_language": "✅ Análise aprovada para {language}",
"analysis_failed_for_language": "❌ Falha na análise para {language} ({missingKeys} ausente, {unusedKeys} não utilizado)",
"starting": "🔍 Iniciando análise de tradução...",
"foundLanguages": "📋 Encontrado {count} idiomas para analisar: {languages}",
"analyzing": "🔄 Analisando {language}...",
"reportTitle": "📊 RELATÓRIO DE ANÁLISE DE TRADUÇÃO",
"generated": "Gerado: {timestamp}",
"status": "Status: {translated}/{total} chaves ({percentage}% traduzido)",
"filesAnalyzed": "Arquivos analisados: {analyzed}/{total}",
"keysNeedingTranslation": "Chaves que precisam de tradução: {count}",
"fileBreakdown": "📋 DESCRIÇÃO DE ARQUIVOS",
"error": "Erro",
"completed": "✅ Análise concluída para {language}",
"progress": "📊 Progresso geral: {translated}/{total} idiomas processados",
"reportSaved": "Relatório salvo: {reportPath}",
"summary": "📊 ANALYSIS SUMMARY",
"finished": "✅ Análise concluída com sucesso!",
"statusFileMissing": "❌ Arquivo de tradução ausente",
"sourceKeys": "📊 Chaves de origem: {count}",
"translation": "📊 Tradução: {translated}/{total} ({percentage}%)",
"structure": "🗂️ Estrutura: {status}",
"consistent": "Consistente",
"inconsistent": "Inconsistente",
"missingKeys": "Chaves ausentes: {count}",
"extraKeys": "Chaves extras: {count}",
"issues": "⚠️ Problemas encontrados: {count}",
"issueType": {
"not_translated": "Não traduzido: {count}",
"empty_value": "Valores vazios: {count}",
"partial_translation": "Traduções parciais: {count}",
"format_mismatch": "Incompatibilidades de formato: {count}",
"type_mismatch": "Incompatibilidades de tipo: {count}",
"structure_mismatch": "Incompatibilidades de estrutura: {count}",
"same_as_source": "Igual à fonte: {count}"
},
"keysToTranslate": "📋 CHAVES PARA TRADUZIR",
"key": "Chave",
"english": "Inglês",
"needsTranslation": "PRECISA DE TRADUÇÃO",
"andMoreKeys": "...e {count} mais chaves.",
"noLanguages": "⚠️ Nenhum idioma de destino encontrado.",
"languageStats": "{language}: {percentage}% completo ({translated}/{total} chaves)",
"invalidReportFilePath": "Caminho de arquivo de relatório inválido",
"failedToWriteReportFile": "Falha ao gravar o arquivo de relatório com segurança"
},
"complete": {
"configLoadedSuccessfully": "Configuração carregada com sucesso",
"configLoadingFailed": "Falha no carregamento da configuração",
"sourceLanguageNotFound": "Diretório do idioma de origem não encontrado: {sourceLanguage}",
"couldNotParseTarget": "Não foi possível analisar o arquivo de destino: {file}",
"couldNotParseSource": "Não foi possível analisar o arquivo de origem: {file}",
"reportGenerated": "Relatório gerado: {path}",
"generateReportPrompt": "Gostaria de gerar um relatório?",
"title": "🌍 CONCLUSÃO DA TRADUÇÃO I18NTK",
"separator": "============================================================",
"sourceDir": "📁 Diretório de origem: {sourceDir}",
"sourceLanguage": "🌐 Idioma de origem: {sourceLanguage}",
"dryRunMode": "🧪 Modo de teste - nenhuma alteração será feita",
"languages": "🌍 Idiomas disponíveis: {languages}",
"addingMissingKeys": "➕ Adicionando chaves ausentes aos arquivos de tradução...",
"processing": "🔄 Processamento {language}...",
"addedKeys": "✅ Adicionado {count} chaves faltando",
"noChangesNeeded": "✅ Não são necessárias alterações para {language}",
"summaryTitle": "📊 RESUMO DA CONCLUSÃO",
"totalChanges": "📝 Mudanças totais: {totalChanges}",
"languagesProcessed": "🌍 Idiomas processados: {languagesProcessed}",
"missingKeysAdded": "➕ Chaves ausentes adicionadas: {missingKeysAdded}",
"nextStepsTitle": "📋 NEXT STEPS",
"nextStep1": "1. Execute a análise de uso:",
"nextStep2": "nó i18ntk-usage.js --output-report",
"nextStep3": "2. Valide as traduções:",
"nextStep4": "nó i18ntk-validate.js",
"nextStep5": "3. Analise padrões:",
"nextStep6": "nó i18ntk-analyze.js",
"allKeysAvailable": "🎉 Todas as chaves de tradução já estão disponíveis!",
"runWithoutDryRun": "💡 Execute sem --dry-run para aplicar as alterações",
"deletingOldReport": "🗑️ Excluindo relatório antigo...",
"generatingFreshAnalysis": "📊 Gerando novas análises de uso...",
"couldNotGenerate": "❌ Não foi possível gerar análise de uso",
"reportNotFound": "📋 Relatório de uso não encontrado. Usando chaves comuns...",
"foundMissingKeys": "📋 Encontrado {count} faltando chaves na análise de uso",
"couldNotParse": "❌ Não foi possível analisar o relatório de uso. Usando chaves comuns...",
"errorDuringCompletion": "❌ Erro durante a conclusão: {error}",
"fatalError": "❌ Erro fatal: {error}",
"configurationValidationFailed": "Falha na validação da configuração: campos obrigatórios ausentes"
},
"sizing": {
"separator": "================================================================================",
"lineSeparator": "--------------------------------------------------------------------------------",
"analysisStats": "{stats}",
"sourceDirectoryLabel": "📁 Diretório de origem: {sourceDir}",
"sourceLanguageLabel": "🌍 Idioma de origem: {sourceLanguage}",
"strictModeLabel": "⚙️ Modo estrito: {mode}",
"invalidSourceDirectoryError": "Caminho do diretório de origem inválido: {sourceDir}",
"sourceDirectoryNotFoundError": "Diretório de origem não encontrado: {sourceDir}",
"invalidOutputDirectoryError": "Caminho do diretório de saída inválido: {outputDir}",
"invalidReportFileError": "Caminho de arquivo de relatório inválido",
"problematic_keys": "Chaves problemáticas: {problematicKeys}",
"problematicKeysLabel": "Chaves problemáticas: {problematicKeys}",
"long_translations": "Traduções longas: {longTranslations}",
"failedToSaveReportError": "Falha ao salvar o relatório com segurança",
"invalidCsvFileError": "Caminho de arquivo CSV inválido",
"failedToSaveCsvError": "Falha ao salvar o relatório CSV com segurança",
"fatalError": "❌ Falha na análise de dimensionamento: {error}",
"starting_i18n_sizing_analysis": "Iniciando a análise de dimensionamento do i18n...",
"source_directory": "Diretório de origem: {sourceDir}",
"found_languages": "Idiomas encontrados: {languages}",
"analyzing_file_sizes": "Analisando tamanhos de arquivo...",
"analyzing_translation_content": "Analisando o conteúdo da tradução...",
"generating_size_comparisons": "Gerando comparações de tamanho...",
"no_languages_found_for_comparison": "Nenhum idioma encontrado para comparação",
"sizing_analysis_results": "Resultados da análise de dimensionamento I18n",
"file_sizes_title": "Tamanhos de arquivo",
"file_sizes_header": "Caracteres de linhas de tamanho de idioma (KB)",
"file_size_row": "{lang} {sizeKB} {lines} {characters}",
"language_statistics_title": "Estatísticas de idioma",
"language_stats_header": "Chaves de idioma Caracteres Comprimento médio Comprimento máximo Vazio Longo",
"language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
"size_variations_title": "Variações de tamanho",
"size_variations_header": "Diferença de caracteres de idioma % Diff problemática",
"size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
"problematic_yes": "Sim",
"problematic_no": "Não",
"recommendations_title": "Recomendações",
"recommendation_item": "{index}. {recommendation}",
"problematic_key_detail": "{index}. Chave: '{key}' - Variações: {variations}",
"generating_detailed_report": "Gerando relatório detalhado...",
"keysHaveSignificantSizeVariations": "as chaves têm variações significativas de tamanho",
"longTranslationsDetected": "${lang} tem traduções de ${data.longKeys} com mais de 100 caracteres - considere dividi-las",
"longer": "mais longo",
"shorter": "mais curto",
"review_translations": "Considere revisar {lang} traduções - eles são {percentageDifference}% {comparison} do que a linha de base",
"report_saved_to": "Relatório salvo em: {reportPath}",
"considerReviewingTranslations": "Considere revisar ${lang} traduções - elas são ${data.percentageDifference}% maiores que a linha de base",
"csv_report_saved_to": "Relatório CSV salvo em: {csvPath}",
"human_report_saved": "Relatório legível salvo: {reportPath}",
"folder_summary_title": "Resumo da pasta",
"folder_summary_table_header": "Tamanho do idioma (KB) Chaves Comprimento médio Total de caracteres",
"folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
"language_comparison_title": "Comparação de idiomas",
"language_comparison_row": "{lang}: {diff} caracteres ({percent}%) {status}",
"summary_stats": "📊 Resumo: {totalLanguages} línguas, {totalKeys} chaves - Relatórios salvos em {reportPath}",
"detailedKeysDescription": "Mostrar análise detalhada em nível de chave no console",
"too_many_keys_warning": "⚠️ Muitas chaves para exibir no console - verifique o arquivo de relatório detalhado para análise completa",
"no_translation_files_found": "Nenhum arquivo de tradução encontrado",
"analysis_completed": "Análise concluída em {duration}EM",
"analysis_failed": "Falha na análise: {errorMessage}",
"starting_analysis": "Iniciando análise...",
"found_files": "Encontrado {count} arquivos",
"failed_to_parse_language_error": "Falha ao analisar {language} traduções: {errorMessage}",
"recommendations": {
"keys_have_significant_size_variations": "as chaves têm variações significativas de tamanho",
"consider_reviewing_translations": "Considere revisar {lang} traduções - eles são {percentageDifference}% {comparison} do que a linha de base",
"long_translations_detected": "{lang} tem {longKeys} traduções mais longo que {threshold} personagens - considere dividi-los"
},
"detailed_key_analysis_title": "Análise detalhada da chave",
"key_analysis_detail": "{lang}: {length} caracteres ({status}) - {translation}",
"key_analysis_header": "Chave: {key}",
"status_empty": "vazio",
"status_long": "longo",
"status_ok": "OK"
},
"usage": {
"help_message": "Uso do Analisador de Uso I18n: nó i18ntk-usage.js [opções] Opções: --source-dir <dir> Diretório de origem para verificar (padrão: ./src) --i18n-dir <dir> Diretório I18n (padrão: ./src/locales) --output-report Gera relatório detalhado --output-dir <dir> Diretório de saída para relatórios (padrão: ./reports) --help Mostrar esta ajuda Exemplos: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./análise --output-report",
"source_directory_thissourcedir": "📁 Diretório de origem: {sourceDir}",
"translationCompletenessTitle": "🌍 Completude da tradução:",
"i18n_directory_thisi18ndir": "🌐 Diretório I18n: {i18nDir}",
"failed_to_parse_filename_error": "⚠️ Falha ao analisar {fileName}: {errorMessage}",
"analyzing_source_files": "🔍 Analisando arquivos de origem...",
"found_files_in_source": "📂 Encontrado {numFiles} arquivos no diretório de origem",
"found_thisusedkeyssize_unique_": "🎯 Encontrado {usedKeysSize} chaves usadas exclusivas",
"total_key_usages_totalkeysfoun": "📊 Total de usos principais: {totalKeysFound}",
"loading_available_translation_": "📋 Carregando chaves de tradução disponíveis...",
"found_thisavailablekeyssize_av": "✅ Encontrado {availableKeysSize} chaves disponíveis",
"foundTranslationFiles": "✅ Encontrado {count} arquivos de tradução",
"errorReadingI18nDirectory": "⚠️ Erro ao ler o diretório i18n: {error}",
"pressEnterToReturnToMenu": "📝 Pressione Enter para retornar ao menu principal...",
"notTranslatedKeysTotal": "⚠️ Chaves não traduzidas: {total}",
"noSourceFilesFound": "⚠️ Nenhum arquivo de origem encontrado no diretório de origem.",
"reviewNotTranslatedKeys": "💡 Revise as chaves não traduzidas",
"analysisCompletedSuccessfully": "🎉 Análise concluída com sucesso!",
"detectedSourceDirectory": "Diretório de origem detectado: {sourceDir}",
"detectedI18nDirectory": "Diretório i18n detectado: {i18nDir}",
"fileInfo": "📄 {namespace}: {keys} chaves",
"failedToAnalyzeUsage": "❌ Falha ao analisar o uso: {error}",
"failedToAnalyzeFile": "❌ Falha ao analisar arquivo: {error}",
"failedToExtractKeys": "❌ Falha ao extrair chaves de {filePath}: {error}",
"analysisFailedError": "❌ Falha na análise: {error}",
"analyzerInitialized": "Analisador inicializado",
"analyzerInitFailed": "Falha na inicialização do analisador: {error}",
"argsParsed": "Argumentos analisados",
"processedFiles": "Processado {processedFiles} de {totalFiles} arquivos.",
"argsParseFailed": "Falha na análise do argumento: {error}",
"translationDiscoveryError": "Erro de descoberta de tradução: {error}",
"fileTraversalError": "Erro de passagem de arquivo: {error}",
"sourceEqualsI18nWarn": "{reason}. A análise de uso não verificará os arquivos de localidade como código-fonte.",
"i18nEqualsSourceWarn": "⚠️ O diretório I18n e o diretório de origem são iguais. Isso pode causar problemas com a análise.",
"usageAnalysisFailed": "⚠️ Falha na análise de uso: {error}",
"translationFileParseError": "⚠️ Erro de análise do arquivo de tradução: {error}",
"translationKeysLoadError": "⚠️ Erro ao carregar chaves de tradução: {error}",
"languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% traduzido)",
"missingKeysCount": "⚠️ Chaves faltantes: {count}",
"analyzingTranslationCompleteness": "Analisando a integridade da tradução...",
"unusedKeysCount": "Chaves não utilizadas: {count}",
"usedKeysCount": "Chaves usadas: {count}",
"availableKeysCount": "Chaves disponíveis: {count}",
"analysisResults": "Resultados da análise:",
"i18nDirectoryNotFound": "⚠️ Diretório I18n não encontrado. Por favor, verifique o caminho.",
"sourceDirectoryNotFound": "⚠️ Diretório de origem não encontrado: {dir}",
"checkUsage": {
"title": "🔍 I18NTK USAGE ANALYSIS",
"analyzing_source_files": "🔍 Analisando arquivos de origem...",
"source_directory_thissourcedir": "📁 Diretório de origem: {sourceDir}",
"i18n_directory_thisi18ndir": "📁 diretório i18n: {i18nDir}",
"found_files_in_source": "✅ Encontrado {numFiles} arquivos no diretório de origem",
"no_source_files_found": "⚠️ Nenhum arquivo de origem encontrado no diretório especificado",
"processedFiles": "📊 Processado {processedFiles} de {totalFiles} arquivos",
"failedToProcessFile": "❌ Falha ao processar",
"found_thisusedkeyssize_unique_": "🔍 Encontrado {usedKeysSize} chaves usadas exclusivas",
"total_key_usages_totalkeysfoun": "📊 Total de usos principais: {totalKeysFound}",
"loading_available_translation_": "📂 Carregando chaves de tradução disponíveis...",
"found_thisavailablekeyssize_av": "✅ Encontrado {availableKeysSize} chaves disponíveis",
"message": "Analisando o uso da chave de tradução em seu projeto...",
"usage_analysis_results": "📊 USAGE ANALYSIS RESULTS",
"source_files_scanned_thisfileu": "📁 Arquivos de origem verificados: {fileUsageSize}",
"available_translation_keys_thi": "✅ Chaves de tradução disponíveis: {availableKeysSize}",
"used_translation_keys_thisused": "🔍 Chaves de tradução usadas: {usedKeysSize}",
"dynamic_keys_detected_dynamick": "⚡ Chaves dinâmicas detectadas: {dynamicKeysLength}",
"unused_keys_unusedkeyslength": "🗑️ Chaves não utilizadas: {unusedKeysLength}",
"missing_keys_missingkeyslength": "❌ Chaves faltantes: {missingKeysLength}",
"translation_completeness_title": "📈 INTEGRIDADE DA TRADUÇÃO",
"language_completeness_stats": "{language}: {translated}/{total} chaves ({percentage}%)",
"n_sample_unused_keys": "🗑️ AMOSTRA DE CHAVES NÃO UTILIZADAS (5 primeiras):",
"key": "🔑 {key}",
"and_unusedkeyslength_5_more": "... e {count} mais chaves não utilizadas",
"n_sample_missing_keys": "❌ AMOSTRA DE CHAVES FALTANTES (5 primeiras):",
"and_missingkeyslength_5_more": "... e {count} mais chaves perdidas",
"n_generating_detailed_report": "📊 Gerando relatório detalhado...",
"report_saved_reportpath": "📄 Relatório salvo: {reportPath}",
"n_recommendations": "💡 RECOMENDAÇÕES:",
"consider_removing_unused_trans": "🗑️ Considere remover traduções não utilizadas para reduzir o tamanho do pacote",
"add_missing_translation_keys_t": "➕ Adicione chaves de tradução ausentes para manter a consistência",
"review_dynamic_keys_manually_t": "🔍 Revise as chaves dinâmicas manualmente (elas podem ser válidas)",
"all_translation_keys_are_prope": "✅ Todas as chaves de tradução são usadas corretamente!",
"n_next_steps": "🎯 NEXT STEPS:",
"2_check_the_detailed_report_fo": "2. Verifique o relatório detalhado para questões específicas",
"help_message": "Uso do Analisador de Uso I18n: nó i18ntk-usage.js [opções] Opções: --source-dir <dir> Diretório de origem para verificar (padrão: ./src) --i18n-dir <dir> Diretório I18n (padrão: ./src/locales) --output-report Gera relatório detalhado --output-dir <dir> Diretório de saída para relatórios (padrão: ./reports) --help Mostrar esta ajuda Exemplos: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./análise --output-report",
"1_review_the_analysis_results": "1. Revise os resultados da análise no console ou no relatório gerado.",
"2_run_with_outputreport_for_de": "2. Execute com --output-report para obter um relatório detalhado.",
"3_remove_unused_keys_or_add_mi": "3. Remova chaves não utilizadas ou adicione chaves ausentes ao seu código-fonte.",
"4_rerun_analysis_to_verify_imp": "4. Execute novamente a análise para verificar as melhorias.",
"noSourceFilesFound": "Nenhum arquivo de origem encontrado para análise.",
"i18nDirectoryNotFound": "Diretório I18n não encontrado: {i18nDir}",
"noTranslationLanguagesFound": "Nenhum idioma de tradução encontrado.",
"failedToAnalyzeFile": "Falha ao analisar o arquivo {filePath}: {error}",
"failedToAnalyzeLanguage": "Falha ao analisar o idioma {language}: {error}",
"translationCompletenessAnalysisFailed": "Falha na análise de integridade da tradução: {error}",
"n": "\\n"
},
"complete": {
"configLoadedSuccessfully": "Configuração carregada com sucesso",
"configLoadingFailed": "Falha no carregamento da configuração",
"title": "🌍 CONCLUSÃO DA TRADUÇÃO I18NTK",
"separator": "============================================================",
"sourceDir": "📁 Diretório de origem: {sourceDir}",
"sourceLanguage": "🌐 Idioma de origem: {sourceLanguage}",
"dryRunMode": "🧪 Modo de teste - nenhuma alteração será feita",
"languages": "🌍 Idiomas disponíveis: {languages}",
"addingMissingKeys": "➕ Adicionando chaves ausentes aos arquivos de tradução...",
"processing": "🔄 Processamento {language}...",
"addedKeys": "✅ Adicionado {count} chaves faltando",
"changeDetails": "📝 {file}: {key}",
"andMore": "...e {count} mais",
"noChangesNeeded": "✅ Não são necessárias alterações para {language}",
"summaryTitle": "📊 RESUMO DA CONCLUSÃO",
"totalChanges": "📝 Mudanças totais: {totalChanges}",
"languagesProcessed": "🌍 Idiomas processados: {languagesProcessed}",
"missingKeysAdded": "➕ Chaves ausentes adicionadas: {missingKeysAdded}",
"nextStepsTitle": "📋 NEXT STEPS",
"nextStep1": "1. Execute a análise de uso:",
"nextStep2": "nó i18ntk-usage.js --output-report",
"nextStep3": "2. Valide as traduções:",
"nextStep4": "nó i18ntk-validate.js",
"nextStep5": "3. Analise padrões:",
"nextStep6": "nó i18ntk-analyze.js",
"allKeysAvailable": "🎉 Todas as chaves de tradução já estão disponíveis!",
"runWithoutDryRun": "💡 Execute sem --dry-run para aplicar as alterações",
"deletingOldReport": "🗑️ Excluindo relatório antigo...",
"generatingFreshAnalysis": "📊 Gerando novas análises de uso...",
"couldNotGenerate": "❌ Não foi possível gerar análise de uso",
"reportNotFound": "📋 Relatório de uso não encontrado. Usando chaves comuns...",
"foundMissingKeys": "📋 Encontrado {count} faltando chaves na análise de uso",
"couldNotParse": "❌ Não foi possível analisar o relatório de uso. Usando chaves comuns..."
},
"noTranslationLanguagesFound": "Nenhum idioma de tradução encontrado",
"failedToAnalyzeLanguage": "Falha ao analisar o idioma",
"translationCompletenessAnalysisFailed": "Falha na análise de integridade da tradução",
"failedToProcessFile": "Falha ao processar o arquivo:",
"failedToSaveReport": "Falha ao salvar o relatório de uso: {error}",
"i18nDirectoryDoesNotExist": "O diretório I18n não existe: {dir}",
"reportSavedTo": "Relatório de uso salvo em: {reportPath}",
"sourceDirectoryDoesNotExist": "O diretório de origem não existe: {dir}",
"noSourceDirectoryConfigured": "(nenhum configurado)"
},
"validate": {
"help_message": "Uso do validador de tradução I18n: nó i18ntk-validate.js [opções] Opções: --source-dir <dir> Diretório de origem para verificar (padrão: ./src) --i18n-dir <dir> Diretório I18n (padrão: ./src/locales) --output-report Gera relatório detalhado --output-dir <dir> Diretório de saída para relatórios (padrão: ./reports) --help Mostrar esta ajuda Exemplos: node i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./análise --output-report",
"title": "🔍 Validador de tradução I18n",
"message": "Iniciando processo de validação...",
"sourceDirectory": "📁 Diretório de origem: {dir}",
"sourceLanguage": "🌍 Idioma de origem: {sourceLanguage}",
"strictMode": "⚙️ Modo estrito: {mode}",
"noTargetLanguages": "Nenhum idioma de destino configurado; ignorando a validação de destino. Adicione idiomas através de \"i18ntk init --languages=de,fr\".",
"validatingLanguages": "🌍 Validando idiomas: {langs}",
"validatingLanguage": "🔍 Validando o idioma: {lang}",
"filesCount": "📄 Arquivos: {count}",
"keysCount": "🔑 Chaves: {count}",
"missingFilesCount": "📁 Arquivos ausentes: {count}",
"syntaxErrorsCount": "❌ Erros de sintaxe: {count}",
"translationPercentage": "🎯 Tradução: {percentage}% ({translated}/{total} chaves)",
"validationSummary": "📊 RESUMO DE VALIDAÇÃO",
"validation_failed": "❌ Falha na validação: {error}",
"totalErrors": "❌ Erros totais: {count}",
"totalWarnings": "⚠️ Avisos totais: {count}",
"errorsSection": "❌ ERRORS",
"warningsSection": "⚠️ WARNINGS",
"recommendationsSection": "💡 RECOMENDAÇÕES",
"fixErrorsFirst": "1. Corrija todos os erros primeiro",
"resolveMissingFilesAndSyntaxErrors": "1. Resolva arquivos ausentes e erros de sintaxe",
"fixStructuralInconsistencies": "2. Corrija inconsistências estruturais",
"completeMissingTranslations": "3. Complete as traduções que faltam",
"rerunValidation": "4. Execute novamente a validação para verificar as correções",
"addressWarnings": "Aborde os avisos para melhorar a qualidade",
"reviewWarnings": "Revise os avisos e corrija quando apropriado",
"considerRunningWithStrict": "2. Considere executar com o sinalizador --strict para uma validação mais rigorosa",
"allValidationsPassed": "🎉 Todas as validações foram aprovadas!",
"considerRunningUsageAnalysis": "Considere executar a análise de uso: nó i18ntk-usage.js",
"deletedOldReport": "🗑️ Relatório de validação antigo excluído",
"sourceDir": "📁 Diretório de origem: {sourceDir}",
"i18nDir": "🌐 Diretório I18n: {i18nDir}",
"loadingTranslationFiles": "📋 Carregando arquivos de tradução...",
"foundTranslationFilesCount": "✅ Encontrado {count} arquivos de tradução",
"analyzingTranslations": "🔍 Analisando traduções...",
"validationCompletedSuccessfully": "🎉 Validação concluída com sucesso!",
"validationErrorsFound": "⚠️ Erros de validação encontrados: {count}",
"validationWarningsFound": "⚠️ Avisos de validação encontrados: {count}",
"validationPassed": "✅ Validação aprovada sem erros",
"validationFailed": "Falha na validação: {error}",
"startingValidationProcess": "🔍 Iniciando processo de validação...",
"validationProcessCompletedSuccessfully": "✅ Processo de validação concluído com sucesso",
"stackTrace": "Rastreamento de pilha: {stack}",
"authenticationFailed": "❌ Falha na autenticação. Acesso negado.",
"fatalValidationError": "❌ Erro fatal de validação: {error}",
"configAccess": "Acessando a configuração para validação",
"configValidated": "Configuração validada com sucesso",
"configError": "Erro de configuração: {error}",
"validatorInit": "Inicializando o validador I18n",
"validatorInitialized": "Validador I18n inicializado com sucesso",
"validatorInitError": "Erro de inicialização do validador: {error}",
"argsParsing": "Analisando argumentos de linha de comando",
"argsParsed": "Argumentos de linha de comando analisados com sucesso",
"argsParseError": "Erro de análise de argumento: {error}",
"languagesScan": "Verificando os idiomas disponíveis",
"languagesFound": "Encontrado {count} idiomas",
"languagesScanError": "Erro de verificação de idioma: {error}",
"filesScan": "Encontrado {count} arquivos em {language}",
"filesScanError": "Erro de verificação de arquivo: {error}",
"jsonValidated": "Sintaxe JSON validada: {filePath}",
"jsonValidationError": "Erro de validação JSON: {error}",
"languageValidation": "Validando o idioma: {language}",
"languageValidationError": "Erro de validação de idioma: {error}",
"fileDeleted": "Arquivo excluído",
"runStarted": "Iniciando execução de validação",
"runCompleted": "Execução de validação concluída com sucesso",
"runError": "Falha na execução de validação: {error}",
"scriptExecution": "Execução de script",
"validationCompleted": "Validação concluída",
"validationError": "Erro de validação: {error}",
"separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
"languageHeader": "🌐 Idioma: {language}",
"validationResults": "📊 Resultados de validação",
"noErrors": "✅ Nenhum erro encontrado",
"noWarnings": "✅ Nenhum aviso encontrado",
"summaryHeader": "📋 OVERALL SUMMARY",
"progressIndicator": "⏳ Processando...",
"completedIndicator": "✅ Concluído",
"errorIndicator": "❌ Erro",
"warningIndicator": "⚠️ Aviso",
"infoIndicator": "ℹ️ Informações",
"sourceDirNotConfigured": "Diretório de origem não configurado",
"sourceLanguageNotConfigured": "Idioma de origem não configurado",
"translationFunctionNotInitialized": "Função de tradução não inicializada corretamente",
"sourceLanguageDirectoryNotFound": "Diretório do idioma de origem não encontrado",
"specifiedLanguageNotFound": "Idioma especificado não encontrado",
"noJsonFilesFound": "Nenhum arquivo JSON encontrado no diretório de origem: {sourceDir}",
"i18nDirectoryNotFound": "Diretório I18n não encontrado: {i18nDir}",
"invalidDirectoryPaths": "Caminhos de diretório inválidos detectados",
"invalidSampleFilePath": "Caminho de arquivo de amostra inválido",
"failedToCreateSampleTranslationFile": "Falha ao criar arquivo de tradução de amostra",
"invalidFilePathDetected": "Caminho de arquivo inválido detectado",
"failedToWriteFile": "Falha ao gravar o arquivo: {filePath}",
"invalidSourceDirectory": "Diretório de origem inválido: {sourceDir}",
"invalidSourceLanguageDirectory": "Diretório do idioma de origem inválido: {sourceDir}"
},
"adminCli": {
"setupPinProtectionTitle": "🔐 Configurando a proteção do PIN do administrador",
"setupPinProtectionDescription": "Isso exigirá um PIN de 4 a 6 dígitos para operações administrativas.",
"enablePinProtectionPrompt": "Deseja ativar a proteção do PIN do administrador?",
"setupCancelled": "A configuração da proteção do PIN do administrador foi cancelada.",
"enterPinPrompt": "Insira um PIN de 4 a 6 dígitos:",
"pinFormatError": "❌ O PIN deve ter de 4 a 6 dígitos. Por favor, tente novamente.",
"confirmPinPrompt": "Confirmar PIN:",
"pinMismatchError": "❌ Os PINs não correspondem. Por favor, tente novamente.",
"pinProtectionEnabl