UNPKG

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
{ "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