{
  "meta": {
    "version": "3.1.2",
    "updated": "07.05.2026"
  },
  "common": {
    "welcome": "Добро пожаловать",
    "hello": "Привет",
    "goodbye": "До свидания",
    "yes": "Да",
    "no": "Нет",
    "save": "Сохранять",
    "cancel": "Отмена",
    "delete": "Удалить",
    "edit": "Редактировать",
    "loading": "Загрузка...",
    "offlineTitle": "Вы оффлайн",
    "offlineMessage": "Пожалуйста, проверьте подключение к Интернету",
    "tryReconnect": "Попробуйте переподключиться",
    "logout": "Выход из системы",
    "login": "Авторизоваться",
    "amount": "Количество",
    "success": "Успех",
    "error": "Ошибка",
    "warning": "Предупреждение",
    "info": "Информация:",
    "debug": "Отлаживать",
    "progress": "Прогресс:",
    "remaining": "Оставшийся:",
    "total": "Общий:",
    "completed": "7. Завершено успешно!",
    "missing": "Отсутствующий",
    "partial": "Частичный",
    "sameAsSource": "То же, что источник:",
    "formatMismatch": "Несоответствие формата:",
    "typeMismatch": "Несоответствие типа:",
    "structureMismatch": "Несоответствие структуры:",
    "invalidOption": "Неверный вариант",
    "separator": "===============================================",
    "initializationFailed": "❌ Ошибка инициализации: {error}",
    "stackTrace": "Трассировка стека: {stack}",
    "pressEnterToContinue": "Нажмите Enter, чтобы продолжить...",
    "pressEnterToReturn": "Нажмите Enter, чтобы вернуться в главное меню...",
    "stepCompleted": "Шаг '{stepName}' завершенный.",
    "stepFailed": "Шаг '{stepName}' неуспешный.",
    "runningStep": "Шаг бега: {stepName}",
    "command": "Команда: {command}",
    "startingWorkflow": "Запуск рабочего процесса...",
    "workflowCompleted": "Рабочий процесс завершен.",
    "checkReports": "Подробности смотрите в отчетах.",
    "errorExecutingCommand": "Ошибка выполнения команды: {error}",
    "genericError": "❌ Ошибка: {error}",
    "errors": {
      "errors": "Ошибки:",
      "genericError": "❌ Ошибка: {error}",
      "initializationFailed": "❌ Ошибка инициализации: {error}",
      "initializationCancelled": "❌ Инициализация отменена пользователем.",
      "translationKeyNotFound": "Ключ перевода не найден: {key}",
      "sourceDirectoryNotFound": "Исходный каталог не найден: {directory}",
      "configLoadingFailed": "Загрузка конфигурации не удалась",
      "invalidSourceDirectory": "Неверный исходный каталог: {directory}",
      "securityViolation": "Обнаружено нарушение безопасности",
      "authenticationFailed": "Аутентификация не удалась",
      "sourceEqualsI18nWarn": "⚠️ sourceDir равен i18nDir ({sourceDir}). Возвращаясь к {fallback} для сканирования источника."
    },
    "errorGeneratingStatusSummary": "Ошибка создания сводки статуса: {error}",
    "errorRunningDebugTool": "Ошибка запуска инструмента отладки '{displayName}': {error}",
    "errorReadingDebugLogs": "Ошибка чтения журналов отладки: {error}",
    "errorAnalyzingLogFile": "Ошибка анализа файла журнала: {error}",
    "errorAnalyzingTranslationKeys": "Ошибка анализа ключей перевода: {error}",
    "errorAnalyzingTranslationCompleteness": "Ошибка анализа полноты перевода: {error}",
    "analyzingTranslationCompleteness": "Анализ полноты перевода на всех языках...",
    "i18nDirectoryNotFound": "⚠️ Каталог i18n не найден: {i18nDir}",
    "translationCompletenessAnalysisFailed": "⚠️ Не удалось выполнить анализ полноты перевода: {error}",
    "failedToAnalyzeLanguage": "❌ Не удалось проанализировать язык {language}: {error}",
    "errorReadingI18nDirectory": "❌ Ошибка чтения каталога i18n:",
    "languageCompletenessTitle": "📈 ПОЛНОТА ПЕРЕВОДА ПО ЯЗЫКАМ",
    "errorAnalyzingTranslationFormat": "Ошибка анализа формата перевода: {error}",
    "errorAnalyzingTranslationType": "Ошибка анализа типа перевода: {error}",
    "errorAnalyzingTranslationStructure": "Ошибка анализа структуры перевода: {error}",
    "errorAnalyzingTranslationFormatMismatch": "Ошибка анализа несоответствия формата перевода: {error}",
    "errorAnalyzingTranslationTypeMismatch": "Ошибка анализа несоответствия типа перевода: {error}",
    "errorAnalyzingTranslationStructureMismatch": "Ошибка анализа несоответствия структуры перевода: {error}",
    "errorAnalyzingTranslationSameAsSource": "Ошибка анализа перевода, такого же, как исходный: {error}",
    "title": "Статус",
    "nextStep1": "1. Проверьте анализ использования:",
    "nextStep2": "2. Проверка перевода:",
    "nextStep3": "3. Проанализируйте полноту:",
    "nextStep4": "4. Дополните недостающие переводы:",
    "nextStep5": "5. Создать сводный отчет:",
    "nextStep6": "6. Просмотрите и доработайте переводы:",
    "generating": "Создание сводного отчета...",
    "review": "Проверка переводов...",
    "finalizing": "Завершение перевода...",
    "finalized": "Завершено успешно!",
    "warnings": "Предупреждения:",
    "completedKeys": "Готовые ключи:",
    "missingKeys": "Недостающие ключи:",
    "partialKeys": "Частичные ключи:",
    "home": "Дом",
    "settings": "Настройки",
    "startingSettings": "🎛️ Запуск командной строки настроек...",
    "confirm": "Подтверждать",
    "errorExiting": "Ошибка при выходе."
  },
  "errors": {
    "invalidOption": "❌ Неверный вариант: {option}. Пожалуйста, попробуйте еще раз.",
    "readlineClosed": "Входной поток закрыт; работает в неинтерактивном режиме.",
    "noPackageJson": "Пакет package.json не найден. Невозможно автоматически обнаружить платформу i18n.",
    "noI18nDir": "В корне проекта не найден каталог i18n.",
    "noI18nConfig": "В корне проекта не найден файл конфигурации i18n.",
    "errorReadingDebugLogs": "Ошибка чтения журналов отладки: {error}"
  },
  "scanner": {
    "help_message": "Использование сканера текста I18n: узел i18ntk-scanner.js [параметры] Параметры: --source-dir <dir>     Исходный каталог для сканирования (по умолчанию: ./src) --output <file>        Выходной файл результатов сканирования (по умолчанию: ./i18ntk-scanner-report.json) --framework <name>     Целевая платформа (реагировать, vue, angular, vanilla) --patterns <patterns>  Пользовательские шаблоны регулярных выражений (через запятую) --include-tests Включить тестовые файлы в сканирование --exclude-dirs <dirs>  Каталоги для исключения (через запятую) --help Показать эту справку Примеры: 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": "Исходный каталог для сканирования на наличие проблем i18n",
      "output_dir": "Каталог для отчетов и результатов сканирования",
      "framework": "Целевая платформа (реагировать, vue, angular, vanilla)",
      "patterns": "Пользовательские шаблоны регулярных выражений для обнаружения текста",
      "exclude": "Шаблоны файлов, которые следует исключить из сканирования",
      "output_report": "Создать подробный отчет о сканировании",
      "min_length": "Минимальная длина текста, которую следует учитывать при переводе",
      "max_length": "Максимальная длина текста, которую следует учитывать при переводе",
      "include_tests": "Включите тестовые файлы в процесс сканирования"
    },
    "starting": "🔍 Запуск сканера текста для фреймворка: {framework}",
    "sourceDirectory": "📁 Каталог сканирования: {sourceDir}",
    "frameworkDetected": "🎯 Обнаруженные рамки: {framework}",
    "scanningFiles": "📊 Сканирование {fileCount} файлы...",
    "foundTexts": "📝 Найден {textCount} тексты требующие перевода",
    "generatingReport": "📊 Формируем подробный отчет...",
    "reportSaved": "💾 Отчет о сканировании сохранен в: {reportPath}",
    "noTextsFound": "✅ Не найдено жестко закодированных английских текстов.",
    "scanComplete": "🎉 Сканирование успешно завершено!",
    "analysisTitle": "🔍 СКАН-АНАЛИЗ ПЕРЕВОДА",
    "fileSummary": "📄 {file}: {count} найдены тексты",
    "textLocation": "📍 Линия {line}: {text}",
    "foundText": "Найденный {count} потенциальные экземпляры жестко запрограммированного текста",
    "context": "📝 Контекст: {context}",
    "severity": "⚠️ Тяжесть: {severity}",
    "recommendation": "💡Рекомендация: {recommendation}",
    "welcome": {
      "title": "🎯 Добро пожаловать в Сканер текста!",
      "description": "Этот инструмент сканирует исходный код на предмет жестко закодированного текста на английском языке, который может нуждаться в переводе."
    },
    "frameworkPrompt": {
      "title": "🎯 Выберите фреймворк",
      "available": "Доступные фреймворки: React, Vue, Angular, Vanilla.",
      "description": "Введите тип платформы (или нажмите Enter для автоматического определения):",
      "input": "Рамки:"
    },
    "directoryPrompt": {
      "title": "📁 Выберите исходный каталог",
      "current": "Текущий каталог: {dir}",
      "description": "Введите каталог для сканирования (или нажмите Enter для текущего):",
      "input": "Каталог:"
    },
    "options": {
      "includeTests": "Включить тестовые файлы?",
      "excludeDirs": "Каталоги для исключения (через запятую):",
      "customPatterns": "Пользовательские шаблоны для сканирования (регулярное выражение):"
    },
    "reportGenerated": "Создан отчет о сканировании: {path}"
  },
  "fixer": {
    "help_message": "I18n Translation Fixer Использование: узел i18ntk-fixer.js [параметры] Параметры: --source-dir <dir>     Исходный каталог для сканирования (по умолчанию: ./locales) --languages <langs>    Список языков, разделенных запятыми, которые нужно исправить --markers <markers>    Маркеры, разделенные запятыми, которые следует рассматривать как непереведенные --no-backup Пропустить автоматическое создание резервной копии --help Показать эту справку Примеры: node i18ntk-fixer.js --languages ​​de,fr node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED node i18ntk-fixer.js --no-backup",
    "starting": "🚀 Начинаем исправление перевода для языков: {languages}",
    "sourceDirectory": "📁 Исходный каталог: {sourceDir}",
    "sourceLanguage": "🔤 Исходный язык: {sourceLanguage}",
    "markers": "🏷️ Маркеры для исправления: {markers}",
    "scanningLanguage": "📊 Сканирование {language}...",
    "noLanguages": "❌Не указаны языки для исправления.",
    "allComplete": "🎉Все переводы уже готовы!",
    "fullReportSaved": "📊 Полный отчет сохранен в: {reportPath}",
    "reviewReport": "Прежде чем продолжить, ознакомьтесь с отчетом.",
    "backupCreated": "💾 Резервная копия успешно создана.",
    "applyingFixes": "🔄 Внесение исправлений...",
    "fixingComplete": "✅ Исправление перевода завершено!",
    "operationCancelled": "❌ Операция отменена пользователем.",
    "analysisTitle": "🔍 АНАЛИЗ ИСПРАВЛЕНИЯ ПЕРЕВОДА",
    "analysisSeparator": "===============================================",
    "totalIssues": "Всего найдено проблем: {totalIssues}",
    "missingTranslations": "Недостающие переводы: {missing}",
    "placeholderTranslations": "Переводы заполнителей: {placeholder}",
    "noIssues": "✅Проблем не обнаружено. Все переводы завершены.",
    "detailedIssues": "📋 ПОДРОБНЫЕ ВОПРОСЫ:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ОТСУТСТВУЕТ: {source} → {new}",
    "placeholderKey": "⚠️ ЗАМЕСИТЕЛЬ: \"{target}\" → \"{new}\"",
    "moreIssues": "... и {count} больше проблем. Проверьте файл отчета для получения полной информации.",
    "confirmationTitle": "🤔 Хотите продолжить исправления?",
    "confirmationOptions": "Параметры:",
    "optionYes": "y - Да, применить все исправления",
    "optionNo": "n - Нет, отменить операцию",
    "optionShow": "s – Показать подробные проблемы",
    "choicePrompt": "Ваш выбор (да/нет/ы):",
    "nonInteractiveMode": "⚡ Обнаружен неинтерактивный режим — исправления применяются автоматически...",
    "reportGenerated": "📊 Создан отчет Fixer: {path}",
    "summary": "Краткое описание фиксера:",
    "welcome": {
      "title": "🎯 Добро пожаловать в Fixer Translation!",
      "description": "Этот инструмент поможет вам исправить неправильные переводы и заполнители в файлах локали."
    },
    "markerPrompt": {
      "title": "🏷️ Настройте маркеры-заполнители",
      "description": "Введите маркеры, обозначающие непереведенный текст (через запятую):",
      "currentDefaults": "Маркеры по умолчанию: {markers}",
      "input": "Маркеры (или нажмите Enter для значений по умолчанию):"
    },
    "languagePrompt": {
      "title": "🌍 Выберите языки для исправления",
      "available": "Доступные языки: {languages}",
      "description": "Введите языки, которые нужно исправить (через запятую) или нажмите Enter для всех:",
      "input": "Языки:",
      "noLanguages": "Языки, которые можно исправить, не найдены."
    },
    "directoryPrompt": {
      "title": "📁 Выберите каталог",
      "current": "Текущий каталог: {dir}",
      "description": "Введите каталог, содержащий файлы вашей локали (или нажмите Enter для текущего):",
      "input": "Каталог:"
    },
    "backupLocation": "Местоположение резервной копии: {dir}",
    "completed": "Исправление завершено.",
    "creatingBackup": "Создание резервной копии в {dir}...",
    "dryRunMode": "Режим сухого хода: {mode}",
    "error": "Исправление не удалось: {error}",
    "fixing": "Исправление {language}...",
    "foundLanguages": "Найденный {count} языки: {languages}",
    "languageFixed": "{language}: зафиксированный {fixed} ключ(и), пропущен {skipped}.",
    "running": "Запуск средства исправления перевода...",
    "totalFixed": "Всего фиксировано: {count}"
  },
  "autorun": {
    "stepAnalyzeTranslations": "Анализ переводов",
    "stepCompletedWithIcon": "✅ Выполнено: {stepName}",
    "stepValidateTranslations": "Проверка переводов",
    "stepRunning": "▶️ Шаг {stepNumber}/{totalSteps}: {stepName}",
    "separator": "===============================================",
    "stepFailed": "❌ Не удалось: {stepName}",
    "errorLabel": "Ошибка",
    "autoRunScriptTitle": "🧪 Автоматический запуск рабочего процесса",
    "usageTitle": "Использование",
    "runAllSteps": "Запустить: узел i18ntk-autorun.js",
    "configureSettingsFirst": "Конфигурация: i18ntk-config.json или флаги CLI.",
    "runSpecificSteps": "Используйте --steps=1,3 или --list, чтобы показать шаги.",
    "showHelp": "--help для получения дополнительной информации",
    "examplesTitle": "Примеры",
    "configExample": "узел i18ntk-autorun.js --ui-language=zh",
    "stepsExample1": "узел i18ntk-autorun.js --steps=анализировать,проверить",
    "stepsExample2": "узел i18ntk-autorun.js --list",
    "customSettingsConfiguration": "Пользовательские настройки автозапуска",
    "availableSteps": "Доступные шаги",
    "startingAutoRunWorkflow": "🚀 Запуск автоматического запуска рабочего процесса...",
    "workflowIncludesSteps": "Рабочий процесс включает в себя {count} шаги:",
    "missingRequiredFile": "Отсутствует необходимый файл: {file}",
    "workflowStopped": "Рабочий процесс остановлен из-за сбоя.",
    "workflowCompleted": "🎉Рабочий процесс завершен!",
    "successfulSteps": "Успешные шаги: {count}",
    "failedSteps": "Неудачные шаги: {count}",
    "stepInitializeProject": "Инициализировать проект",
    "stepCheckUsage": "Проверьте использование ключа",
    "stepGenerateSummary": "Создать сводный отчет",
    "runInitializationFirst": "Пожалуйста, сначала запустите инициализацию.",
    "initializationCheckPassed": "Проверка инициализации пройдена.",
    "runningStep": "Шаг бега: {stepName}",
    "commandLabel": "Команда: {command}",
    "stepCompletedWithTime": "Шаг '{stepName}' завершено в {duration}РС.",
    "stepCompleted": "Шаг '{stepName}' завершенный.",
    "stepFailedWithError": "Шаг '{stepName}'не удалось с ошибкой: {error}",
    "requiredStepFailed": "Не удалось выполнить требуемый шаг. Остановка рабочего процесса.",
    "optionalStepFailed": "Необязательный шаг не выполнен. Продолжающийся рабочий процесс.",
    "stepRequired": "(Необходимый)",
    "stepOptional": "(Необязательный)",
    "startingExecution": "Начинаем выполнение...",
    "pressEnterToContinue": "Нажмите Enter, чтобы продолжить...",
    "runningSelectedSteps": "Выполнение выбранных шагов...",
    "invalidStepNumber": "Неверный номер шага: {stepNum}",
    "executionReport": "Отчет о выполнении:",
    "requiredFailedSteps": "Не удалось выполнить необходимые шаги: {count}",
    "stepDetails": "Детали шага:",
    "reportSavedTo": "Отчет сохранен в: {path}",
    "overallStatusSuccess": "УСПЕХ",
    "overallStatusFailed": "НЕУСПЕШНЫЙ",
    "overallStatus": "Общий статус: {status}",
    "pressEnterForDefaults": "Нажмите Enter, чтобы использовать настройки по умолчанию для любого запроса.",
    "sourceDirPrompt": "Введите исходный каталог (по умолчанию: {default}):",
    "sourceLangPrompt": "Введите исходный язык (по умолчанию: {default}):",
    "targetLangsPrompt": "Введите целевые языки (через запятую, по умолчанию: {default}):",
    "translationMarkerPrompt": "Введите маркер перевода (по умолчанию: {default}):",
    "outputDirPrompt": "Введите выходной каталог для отчетов (по умолчанию: {default}):",
    "settingsUpdatedSuccessfully": "Настройки успешно обновлены!",
    "errorConfiguringSettings": "Ошибка настройки параметров: {error}",
    "configurationComplete": "Конфигурация завершена.",
    "runAutoRunCommand": "Теперь вы можете запустить команду автозапуска.",
    "configurationFailed": "Конфигурация не удалась: {error}",
    "noValidStepNumbers": "Не указаны допустимые номера шагов.",
    "autoRunFailed": "Не удалось выполнить автозапуск: {error}",
    "stepCompleteTranslations": "Полные переводы",
    "stepAnalyzeSizing": "Анализ размеров",
    "stepCompletedIcon": "✅",
    "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Шаг '{stepName}' бег...",
    "stepFailedIcon": "❌",
    "translationLoadWarning": "Предупреждение: не удалось загрузить {lang} переводы",
    "configReadError": "Ошибка чтения {file}"
  },
  "analyze": {
    "help_message": "Использование анализатора перевода I18n: узел i18ntk-analyze.js [параметры] Параметры: --source-dir <dir>     Исходный каталог для сканирования (по умолчанию: ./src) --i18n-dir <dir>       Каталог I18n (по умолчанию: ./src/locales) --output-report Создать подробный отчет --output-dir <dir>     Выходной каталог для отчетов (по умолчанию: ./reports) --help Показать эту справку Примеры: node i18ntk-analyze.js --output-report node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales node i18ntk-analyze.js --output-dir=./anaанализ --output-report",
    "source_directory": "📁 Исходный каталог: {sourceDir}",
    "i18n_directory": "🌐 Каталог I18n: {i18nDir}",
    "loading_translation_files": "📋 Загрузка файлов перевода...",
    "sourceDirectoryLabel": "📁 Каталог исходников: {sourceDir}",
    "sourceLanguageLabel": "🌍Исходный язык: {sourceLanguage}",
    "strictModeLabel": "⚙️ Строгий режим: {mode}",
    "found_translation_files_count": "✅ Найден {count} файлы перевода",
    "analyzing_translations": "🔍Анализ переводов...",
    "analysis_completed_successfully": "🎉Анализ успешно завершен!",
    "analysis_results": "📊 РЕЗУЛЬТАТЫ АНАЛИЗА",
    "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% переведено)",
    "sample_missing_keys": "Пример отсутствующих ключей:",
    "missing_key": "- {key}",
    "and_more_missing": "...и {count} более.",
    "sample_unused_keys": "Пример неиспользуемых ключей:",
    "unused_key": "- {key}",
    "and_more_unused": "...и {count} более.",
    "recommendations": "📋 РЕКОМЕНДАЦИИ",
    "add_missing_translations": "💡 Добавьте недостающие переводы, чтобы улучшить охват.",
    "remove_unused_translations": "💡 Удалите неиспользуемые переводы, чтобы сохранить ваш проект в чистоте.",
    "next_steps": "📋 ДАЛЬНЕЙШИЕ ШАГИ",
    "review_analysis_results": "1. Просмотрите результаты анализа в консоли или созданном отчете.",
    "run_with_output_report": "2. Запустите --output-report для получения подробного отчета.",
    "add_or_remove_translations": "3. Добавьте недостающие переводы или удалите неиспользуемые.",
    "rerun_analysis": "4. Повторно проведите анализ для проверки улучшений.",
    "analysis_summary": "📊 РЕЗЮМЕ АНАЛИЗА",
    "source_files_scanned": "Исходные файлы отсканированы: {fileCount}",
    "translation_files_checked": "Файлы перевода проверены: {translationFileCount}",
    "total_keys": "Всего ключей: {totalKeys}",
    "translated_keys": "Переведенные ключи: {translatedKeys}",
    "missing_keys": "Недостающие ключи: {missingKeys}",
    "unused_keys": "Неиспользуемые ключи: {unusedKeys}",
    "translation_coverage": "Охват перевода: {coverage}%",
    "analysis_passed_for_language": "✅ Анализ сдан на {language}",
    "analysis_failed_for_language": "❌ Анализ не удался {language} ({missingKeys} отсутствующий, {unusedKeys} неиспользованный)",
    "starting": "🔍 Начинаем анализ перевода...",
    "foundLanguages": "📋 Найден {count} языки для анализа: {languages}",
    "analyzing": "🔄Анализ {language}...",
    "reportTitle": "📊 ОТЧЕТ ОБ АНАЛИЗЕ ПЕРЕВОДА",
    "generated": "Сгенерировано: {timestamp}",
    "status": "Статус: {translated}/{total} ключи ({percentage}% переведено)",
    "filesAnalyzed": "Проанализированные файлы: {analyzed}/{total}",
    "keysNeedingTranslation": "Ключи, требующие перевода: {count}",
    "fileBreakdown": "📋 РАЗБИВКА ФАЙЛОВ",
    "error": "Ошибка",
    "completed": "✅ Анализ выполнен на {language}",
    "progress": "📊 Общий прогресс: {translated}/{total} обработанные языки",
    "reportSaved": "Отчет сохранен: {reportPath}",
    "summary": "📊 РЕЗЮМЕ АНАЛИЗА",
    "finished": "✅ Анализ выполнен успешно!",
    "statusFileMissing": "❌ Отсутствует файл перевода",
    "sourceKeys": "📊 Исходные ключи: {count}",
    "translation": "📊 Перевод: {translated}/{total} ({percentage}%)",
    "structure": "🗂️Состав: {status}",
    "consistent": "Последовательный",
    "inconsistent": "непоследовательный",
    "missingKeys": "Недостающие ключи: {count}",
    "extraKeys": "Дополнительные ключи: {count}",
    "issues": "⚠️ Обнаружены проблемы: {count}",
    "issueType": {
      "not_translated": "Не переведено: {count}",
      "empty_value": "Пустые значения: {count}",
      "partial_translation": "Частичные переводы: {count}",
      "format_mismatch": "Несоответствие формата: {count}",
      "type_mismatch": "Типовые несоответствия: {count}",
      "structure_mismatch": "Несоответствие структуры: {count}",
      "same_as_source": "То же, что источник: {count}"
    },
    "keysToTranslate": "📋 КЛЮЧИ ДЛЯ ПЕРЕВОДА",
    "key": "Ключ",
    "english": "Английский",
    "needsTranslation": "ТРЕБУЕТСЯ ПЕРЕВОД",
    "andMoreKeys": "...и {count} больше ключей.",
    "noLanguages": "⚠️ Целевые языки не найдены.",
    "languageStats": "{language}: {percentage}% полный ({translated}/{total} ключи)",
    "invalidReportFilePath": "Неверный путь к файлу отчета",
    "failedToWriteReportFile": "Не удалось безопасно записать файл отчета."
  },
  "complete": {
    "configLoadedSuccessfully": "Конфигурация успешно загружена",
    "configLoadingFailed": "Загрузка конфигурации не удалась",
    "sourceLanguageNotFound": "Каталог исходного языка не найден: {sourceLanguage}",
    "couldNotParseTarget": "Не удалось проанализировать целевой файл: {file}",
    "couldNotParseSource": "Не удалось разобрать исходный файл: {file}",
    "reportGenerated": "Отчет создан: {path}",
    "generateReportPrompt": "Хотите, чтобы был создан отчет?",
    "title": "🌍 ЗАВЕРШЕНИЕ ПЕРЕВОДА I18NTK",
    "separator": "=========================================================",
    "sourceDir": "📁 Исходный каталог: {sourceDir}",
    "sourceLanguage": "🌐 Исходный язык: {sourceLanguage}",
    "dryRunMode": "🧪 Режим пробного запуска — никаких изменений вноситься не будет.",
    "languages": "🌍Доступные языки: {languages}",
    "addingMissingKeys": "➕ Добавление недостающих ключей в файлы перевода...",
    "processing": "🔄Обработка {language}...",
    "addedKeys": "✅ Добавлено {count} недостающие ключи",
    "noChangesNeeded": "✅ Никаких изменений не требуется {language}",
    "summaryTitle": "📊 РЕЗЮМЕ ЗАВЕРШЕНИЯ",
    "totalChanges": "📝 Всего изменений: {totalChanges}",
    "languagesProcessed": "🌍 Обработанные языки: {languagesProcessed}",
    "missingKeysAdded": "➕ Добавлены недостающие клавиши: {missingKeysAdded}",
    "nextStepsTitle": "📋 ДАЛЬНЕЙШИЕ ШАГИ",
    "nextStep1": "1. Запустите анализ использования:",
    "nextStep2": "узел i18ntk-usage.js --output-report",
    "nextStep3": "2. Проверка перевода:",
    "nextStep4": "узел i18ntk-validate.js",
    "nextStep5": "3. Анализируйте закономерности:",
    "nextStep6": "узел i18ntk-analyze.js",
    "allKeysAvailable": "🎉 Все ключи перевода теперь доступны!",
    "runWithoutDryRun": "💡 Запустите без --dry-run, чтобы применить изменения.",
    "deletingOldReport": "🗑️ Удаление старого отчета...",
    "generatingFreshAnalysis": "📊 Создание свежего анализа использования...",
    "couldNotGenerate": "❌ Не удалось создать анализ использования.",
    "reportNotFound": "📋 Отчет об использовании не найден. Использование общих ключей...",
    "foundMissingKeys": "📋 Найден {count} недостающие ключи из анализа использования",
    "couldNotParse": "❌ Не удалось проанализировать отчет об использовании. Использование общих ключей...",
    "errorDuringCompletion": "❌ Ошибка при завершении: {error}",
    "fatalError": "❌ Неустранимая ошибка: {error}",
    "configurationValidationFailed": "Проверка конфигурации не удалась: отсутствуют обязательные поля."
  },
  "sizing": {
    "separator": "===========================================================================",
    "lineSeparator": "----------------------------------------------------------------------------------",
    "analysisStats": "{stats}",
    "sourceDirectoryLabel": "📁 Исходный каталог: {sourceDir}",
    "sourceLanguageLabel": "🌍Исходный язык: {sourceLanguage}",
    "strictModeLabel": "⚙️ Строгий режим: {mode}",
    "invalidSourceDirectoryError": "Неверный путь к исходному каталогу: {sourceDir}",
    "sourceDirectoryNotFoundError": "Исходный каталог не найден: {sourceDir}",
    "invalidOutputDirectoryError": "Неверный путь к выходному каталогу: {outputDir}",
    "invalidReportFileError": "Неверный путь к файлу отчета",
    "problematic_keys": "Проблемные клавиши: {problematicKeys}",
    "problematicKeysLabel": "Проблемные клавиши: {problematicKeys}",
    "long_translations": "Длинные переводы: {longTranslations}",
    "failedToSaveReportError": "Не удалось безопасно сохранить отчет.",
    "invalidCsvFileError": "Неверный путь к файлу CSV.",
    "failedToSaveCsvError": "Не удалось безопасно сохранить отчет CSV.",
    "fatalError": "❌ Анализ размеров не удался: {error}",
    "starting_i18n_sizing_analysis": "Начинаем анализ размеров i18n...",
    "source_directory": "Исходный каталог: {sourceDir}",
    "found_languages": "Найдено языков: {languages}",
    "analyzing_file_sizes": "Анализ размеров файлов...",
    "analyzing_translation_content": "Анализ содержания перевода...",
    "generating_size_comparisons": "Создание сравнений размеров...",
    "no_languages_found_for_comparison": "Языки для сравнения не найдены",
    "sizing_analysis_results": "Результаты анализа размеров I18n",
    "file_sizes_title": "Размеры файлов",
    "file_sizes_header": "Язык Размер (КБ) Строки Символы",
    "file_size_row": "{lang}      {sizeKB}      {lines}      {characters}",
    "language_statistics_title": "Языковая статистика",
    "language_stats_header": "Языковые клавиши Символы Средняя длина Макс. длина Пусто Длинный",
    "language_stats_row": "{lang}      {totalKeys}    {totalCharacters}    {averageKeyLength}    {maxKeyLength}    {emptyKeys}    {longKeys}",
    "size_variations_title": "Вариации размеров",
    "size_variations_header": "Язык Char Diff % Diff Проблема",
    "size_variation_row": "{lang}      {characterDifference}    {percentageDifference}%    {problematic}",
    "problematic_yes": "Да",
    "problematic_no": "Нет",
    "recommendations_title": "Рекомендации",
    "recommendation_item": "{index}. {recommendation}",
    "problematic_key_detail": "{index}. Ключ: '{key}' - Вариации: {variations}",
    "generating_detailed_report": "Создание подробного отчета...",
    "keysHaveSignificantSizeVariations": "ключи имеют значительные различия в размерах",
    "longTranslationsDetected": "${lang} имеет переводы ${data.longKeys} длиной более 100 символов – рассмотрите возможность их разделения",
    "longer": "дольше",
    "shorter": "короче",
    "review_translations": "Рассмотрите возможность просмотра {lang} переводы - они есть {percentageDifference}% {comparison} чем базовый уровень",
    "report_saved_to": "Отчет сохранен в: {reportPath}",
    "considerReviewingTranslations": "Рассмотрите возможность просмотра ${lang} переводы – они на ${data.percentageDifference} % длиннее базового уровня.",
    "csv_report_saved_to": "Отчет в формате CSV сохранен в: {csvPath}",
    "human_report_saved": "Читаемый отчет сохранен: {reportPath}",
    "folder_summary_title": "Сводка папки",
    "folder_summary_table_header": "Язык Размер (КБ) Ключи Средняя длина Всего символов",
    "folder_summary_row": "{lang}      {sizeKB}      {totalKeys}    {avgLength}    {totalChars}",
    "language_comparison_title": "Сравнение языков",
    "language_comparison_row": "{lang}: {diff} символы ({percent}%) {status}",
    "summary_stats": "📊Резюме: {totalLanguages} языки, {totalKeys} клавиши — отчеты сохраняются в {reportPath}",
    "detailedKeysDescription": "Показать подробный анализ на уровне ключей в консоли",
    "too_many_keys_warning": "⚠️ Слишком много ключей для отображения в консоли — для полного анализа проверьте файл подробного отчета.",
    "no_translation_files_found": "Файлы перевода не найдены",
    "analysis_completed": "Анализ завершен в {duration}РС",
    "analysis_failed": "Анализ не удался: {errorMessage}",
    "starting_analysis": "Начинаю анализ...",
    "found_files": "Найденный {count} файлы",
    "failed_to_parse_language_error": "Не удалось проанализировать {language} переводы: {errorMessage}",
    "recommendations": {
      "keys_have_significant_size_variations": "ключи имеют значительные различия в размерах",
      "consider_reviewing_translations": "Рассмотрите возможность просмотра {lang} переводы - они есть {percentageDifference}% {comparison} чем базовый уровень",
      "long_translations_detected": "{lang} имеет {longKeys} переводы длиннее, чем {threshold} персонажи - подумайте о том, чтобы разбить их"
    },
    "detailed_key_analysis_title": "Детальный ключевой анализ",
    "key_analysis_detail": "{lang}: {length} символы ({status}) - {translation}",
    "key_analysis_header": "Ключ: {key}",
    "status_empty": "пустой",
    "status_long": "длинный",
    "status_ok": "хорошо"
  },
  "usage": {
    "help_message": "Использование анализатора использования I18n: узел i18ntk-usage.js [параметры] Параметры: --source-dir <dir>     Исходный каталог для сканирования (по умолчанию: ./src) --i18n-dir <dir>       Каталог I18n (по умолчанию: ./src/locales) --output-report Создать подробный отчет --output-dir <dir>     Выходной каталог для отчетов (по умолчанию: ./reports) --help Показать эту справку Примеры: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
    "source_directory_thissourcedir": "📁 Исходный каталог: {sourceDir}",
    "translationCompletenessTitle": "🌍 Полнота перевода:",
    "i18n_directory_thisi18ndir": "🌐 Каталог I18n: {i18nDir}",
    "failed_to_parse_filename_error": "⚠️ Не удалось разобрать {fileName}: {errorMessage}",
    "analyzing_source_files": "🔍 Анализ исходных файлов...",
    "found_files_in_source": "📂 Найден {numFiles} файлы в исходном каталоге",
    "found_thisusedkeyssize_unique_": "🎯 Найден {usedKeysSize} уникальные используемые ключи",
    "total_key_usages_totalkeysfoun": "📊 Общее количество использований ключей: {totalKeysFound}",
    "loading_available_translation_": "📋 Загрузка доступных ключей перевода...",
    "found_thisavailablekeyssize_av": "✅ Найден {availableKeysSize} доступные ключи",
    "foundTranslationFiles": "✅ Найден {count} файлы перевода",
    "errorReadingI18nDirectory": "⚠️ Ошибка чтения каталога i18n: {error}",
    "pressEnterToReturnToMenu": "📝 Нажмите Enter, чтобы вернуться в главное меню...",
    "notTranslatedKeysTotal": "⚠️ Не переведенные ключи: {total}",
    "noSourceFilesFound": "⚠️ В исходном каталоге не найдено исходных файлов.",
    "reviewNotTranslatedKeys": "💡 Просмотр не переведенных ключей",
    "analysisCompletedSuccessfully": "🎉Анализ успешно завершен!",
    "detectedSourceDirectory": "Обнаружен исходный каталог: {sourceDir}",
    "detectedI18nDirectory": "Обнаружен каталог i18n: {i18nDir}",
    "fileInfo": "📄 {namespace}: {keys} ключи",
    "failedToAnalyzeUsage": "❌ Не удалось проанализировать использование: {error}",
    "failedToAnalyzeFile": "❌ Не удалось проанализировать файл: {error}",
    "failedToExtractKeys": "❌ Не удалось извлечь ключи из {filePath}: {error}",
    "analysisFailedError": "❌ Анализ не удался: {error}",
    "analyzerInitialized": "Анализатор инициализирован",
    "analyzerInitFailed": "Инициализация анализатора не удалась: {error}",
    "argsParsed": "Аргументы проанализированы",
    "processedFiles": "Обработано {processedFiles} из {totalFiles} файлы.",
    "argsParseFailed": "Разбор аргументов не удался: {error}",
    "translationDiscoveryError": "Ошибка обнаружения перевода: {error}",
    "fileTraversalError": "Ошибка обхода файла: {error}",
    "sourceEqualsI18nWarn": "{reason}. Анализ использования не будет сканировать файлы локали как исходный код.",
    "i18nEqualsSourceWarn": "⚠️ Каталог I18n и исходный каталог совпадают. Это может вызвать проблемы с анализом.",
    "usageAnalysisFailed": "⚠️ Анализ использования не удался: {error}",
    "translationFileParseError": "⚠️ Ошибка разбора файла перевода: {error}",
    "translationKeysLoadError": "⚠️ Ошибка загрузки ключей перевода: {error}",
    "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% переведено)",
    "missingKeysCount": "⚠️ Недостающие ключи: {count}",
    "analyzingTranslationCompleteness": "Анализ полноты перевода...",
    "unusedKeysCount": "Неиспользуемые ключи: {count}",
    "usedKeysCount": "Используемые ключи: {count}",
    "availableKeysCount": "Доступные ключи: {count}",
    "analysisResults": "Результаты анализа:",
    "i18nDirectoryNotFound": "⚠️ Каталог I18n не найден. Пожалуйста, проверьте путь.",
    "sourceDirectoryNotFound": "⚠️ Исходный каталог не найден: {dir}",
    "checkUsage": {
      "title": "🔍 АНАЛИЗ ИСПОЛЬЗОВАНИЯ I18NTK",
      "analyzing_source_files": "🔍 Анализ исходных файлов...",
      "source_directory_thissourcedir": "📁 Исходный каталог: {sourceDir}",
      "i18n_directory_thisi18ndir": "📁 каталог i18n: {i18nDir}",
      "found_files_in_source": "✅ Найден {numFiles} файлы в исходном каталоге",
      "no_source_files_found": "⚠️ В указанном каталоге не найдены исходные файлы.",
      "processedFiles": "📊 Обработано {processedFiles} из {totalFiles} файлы",
      "failedToProcessFile": "❌ Не удалось обработать",
      "found_thisusedkeyssize_unique_": "🔍 Найден {usedKeysSize} уникальные используемые ключи",
      "total_key_usages_totalkeysfoun": "📊 Общее количество использований ключей: {totalKeysFound}",
      "loading_available_translation_": "📂 Загрузка доступных ключей перевода...",
      "found_thisavailablekeyssize_av": "✅ Найден {availableKeysSize} доступные ключи",
      "message": "Анализ использования ключа перевода в вашем проекте...",
      "usage_analysis_results": "📊 РЕЗУЛЬТАТЫ АНАЛИЗА ИСПОЛЬЗОВАНИЯ",
      "source_files_scanned_thisfileu": "📁 Отсканированы исходные файлы: {fileUsageSize}",
      "available_translation_keys_thi": "✅ Доступные ключи перевода: {availableKeysSize}",
      "used_translation_keys_thisused": "🔍 Используемые ключи перевода: {usedKeysSize}",
      "dynamic_keys_detected_dynamick": "⚡ Обнаружены динамические клавиши: {dynamicKeysLength}",
      "unused_keys_unusedkeyslength": "🗑️ Неиспользуемые ключи: {unusedKeysLength}",
      "missing_keys_missingkeyslength": "❌ Недостающие ключи: {missingKeysLength}",
      "translation_completeness_title": "📈 ПОЛНОТА ПЕРЕВОДА",
      "language_completeness_stats": "{language}: {translated}/{total} ключи ({percentage}%)",
      "n_sample_unused_keys": "🗑️ ПРИМЕР НЕИСПОЛЬЗУЕМЫХ КЛЮЧЕЙ (первые 5):",
      "key": "🔑 {key}",
      "and_unusedkeyslength_5_more": "... и {count} больше неиспользуемых ключей",
      "n_sample_missing_keys": "❌ ПРИМЕР ОТСУТСТВУЮЩИХ КЛЮЧЕЙ (первые 5):",
      "and_missingkeyslength_5_more": "... и {count} еще недостающие ключи",
      "n_generating_detailed_report": "📊 Формируем подробный отчет...",
      "report_saved_reportpath": "📄 Отчет сохранен: {reportPath}",
      "n_recommendations": "💡РЕКОМЕНДАЦИИ:",
      "consider_removing_unused_trans": "🗑️ Рассмотрите возможность удаления неиспользуемых переводов, чтобы уменьшить размер пакета.",
      "add_missing_translation_keys_t": "➕ Добавьте недостающие ключи перевода для обеспечения единообразия.",
      "review_dynamic_keys_manually_t": "🔍 Проверьте динамические ключи вручную (они могут быть действительными)",
      "all_translation_keys_are_prope": "✅ Все ключи перевода используются правильно!",
      "n_next_steps": "🎯 СЛЕДУЮЩИЕ ШАГИ:",
      "2_check_the_detailed_report_fo": "2. Проверьте подробный отчет на наличие конкретных проблем.",
      "help_message": "Использование анализатора использования I18n: узел i18ntk-usage.js [параметры] Параметры: --source-dir <dir>     Исходный каталог для сканирования (по умолчанию: ./src) --i18n-dir <dir>       Каталог I18n (по умолчанию: ./src/locales) --output-report Создать подробный отчет --output-dir <dir>     Выходной каталог для отчетов (по умолчанию: ./reports) --help Показать эту справку Примеры: node i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
      "1_review_the_analysis_results": "1. Просмотрите результаты анализа в консоли или созданном отчете.",
      "2_run_with_outputreport_for_de": "2. Запустите --output-report для получения подробного отчета.",
      "3_remove_unused_keys_or_add_mi": "3. Удалите неиспользуемые ключи или добавьте недостающие ключи в исходный код.",
      "4_rerun_analysis_to_verify_imp": "4. Повторно проведите анализ для проверки улучшений.",
      "noSourceFilesFound": "Исходные файлы для анализа не найдены.",
      "i18nDirectoryNotFound": "Каталог I18n не найден: {i18nDir}",
      "noTranslationLanguagesFound": "Языки перевода не найдены.",
      "failedToAnalyzeFile": "Не удалось проанализировать файл {filePath}: {error}",
      "failedToAnalyzeLanguage": "Не удалось проанализировать язык {language}: {error}",
      "translationCompletenessAnalysisFailed": "Не удалось выполнить анализ полноты перевода: {error}",
      "n": "\\п"
    },
    "complete": {
      "configLoadedSuccessfully": "Конфигурация успешно загружена",
      "configLoadingFailed": "Загрузка конфигурации не удалась",
      "title": "🌍 ЗАВЕРШЕНИЕ ПЕРЕВОДА I18NTK",
      "separator": "=========================================================",
      "sourceDir": "📁 Исходный каталог: {sourceDir}",
      "sourceLanguage": "🌐 Исходный язык: {sourceLanguage}",
      "dryRunMode": "🧪 Режим пробного запуска — никаких изменений вноситься не будет.",
      "languages": "🌍Доступные языки: {languages}",
      "addingMissingKeys": "➕ Добавление недостающих ключей в файлы перевода...",
      "processing": "🔄Обработка {language}...",
      "addedKeys": "✅ Добавлено {count} недостающие ключи",
      "changeDetails": "📝 {file}: {key}",
      "andMore": "...и {count} более",
      "noChangesNeeded": "✅ Никаких изменений не требуется {language}",
      "summaryTitle": "📊 РЕЗЮМЕ ЗАВЕРШЕНИЯ",
      "totalChanges": "📝 Всего изменений: {totalChanges}",
      "languagesProcessed": "🌍 Обработанные языки: {languagesProcessed}",
      "missingKeysAdded": "➕ Добавлены недостающие клавиши: {missingKeysAdded}",
      "nextStepsTitle": "📋 ДАЛЬНЕЙШИЕ ШАГИ",
      "nextStep1": "1. Запустите анализ использования:",
      "nextStep2": "узел i18ntk-usage.js --output-report",
      "nextStep3": "2. Проверка перевода:",
      "nextStep4": "узел i18ntk-validate.js",
      "nextStep5": "3. Анализируйте закономерности:",
      "nextStep6": "узел i18ntk-analyze.js",
      "allKeysAvailable": "🎉 Все ключи перевода теперь доступны!",
      "runWithoutDryRun": "💡 Запустите без --dry-run, чтобы применить изменения.",
      "deletingOldReport": "🗑️ Удаление старого отчета...",
      "generatingFreshAnalysis": "📊 Создание свежего анализа использования...",
      "couldNotGenerate": "❌ Не удалось создать анализ использования.",
      "reportNotFound": "📋 Отчет об использовании не найден. Использование общих ключей...",
      "foundMissingKeys": "📋 Найден {count} недостающие ключи из анализа использования",
      "couldNotParse": "❌ Не удалось проанализировать отчет об использовании. Использование общих ключей..."
    },
    "noTranslationLanguagesFound": "Языки перевода не найдены",
    "failedToAnalyzeLanguage": "Не удалось проанализировать язык",
    "translationCompletenessAnalysisFailed": "Анализ полноты перевода не удался",
    "failedToProcessFile": "Не удалось обработать файл:",
    "failedToSaveReport": "Не удалось сохранить отчет об использовании: {error}",
    "i18nDirectoryDoesNotExist": "Каталог I18n не существует: {dir}",
    "reportSavedTo": "Отчет об использовании сохранен в: {reportPath}",
    "sourceDirectoryDoesNotExist": "Исходный каталог не существует: {dir}",
    "noSourceDirectoryConfigured": "(ничего не настроено)"
  },
  "validate": {
    "help_message": "Использование средства проверки перевода I18n: узел i18ntk-validate.js [опции] Параметры: --source-dir <dir>     Исходный каталог для сканирования (по умолчанию: ./src) --i18n-dir <dir>       Каталог I18n (по умолчанию: ./src/locales) --output-report Создать подробный отчет --output-dir <dir>     Выходной каталог для отчетов (по умолчанию: ./reports) --help Показать эту справку Примеры: node i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./analysis --output-report",
    "title": "🔍 Валидатор перевода I18n",
    "message": "Начинаем процесс проверки...",
    "sourceDirectory": "📁 Исходный каталог: {dir}",
    "sourceLanguage": "🌍Исходный язык: {sourceLanguage}",
    "strictMode": "⚙️ Строгий режим: {mode}",
    "noTargetLanguages": "Целевые языки не настроены; пропуск проверки цели. Добавьте языки через «i18ntk init --languages=de,fr».",
    "validatingLanguages": "🌍 Проверка языков: {langs}",
    "validatingLanguage": "🔍 Проверка языка: {lang}",
    "filesCount": "📄 Файлы: {count}",
    "keysCount": "🔑Ключи: {count}",
    "missingFilesCount": "📁 Отсутствующие файлы: {count}",
    "syntaxErrorsCount": "❌ Синтаксические ошибки: {count}",
    "translationPercentage": "🎯 Перевод: {percentage}% ({translated}/{total} ключи)",
    "validationSummary": "📊 РЕЗЮМЕ ПРОВЕРКИ",
    "validation_failed": "❌ Проверка не удалась: {error}",
    "totalErrors": "❌ Всего ошибок: {count}",
    "totalWarnings": "⚠️ Всего предупреждений: {count}",
    "errorsSection": "❌ ОШИБКИ",
    "warningsSection": "⚠️ ПРЕДУПРЕЖДЕНИЯ",
    "recommendationsSection": "💡 РЕКОМЕНДАЦИИ",
    "fixErrorsFirst": "1. Сначала исправьте все ошибки",
    "resolveMissingFilesAndSyntaxErrors": "1. Устраните отсутствующие файлы и синтаксические ошибки.",
    "fixStructuralInconsistencies": "2. Исправьте структурные несоответствия",
    "completeMissingTranslations": "3. Завершите недостающие переводы.",
    "rerunValidation": "4. Повторно запустите проверку, чтобы проверить исправления.",
    "addressWarnings": "Устраните предупреждения, чтобы улучшить качество",
    "reviewWarnings": "Просмотрите предупреждения и исправьте их, если необходимо.",
    "considerRunningWithStrict": "2. Рассмотрите возможность запуска с флагом --strict для более строгой проверки.",
    "allValidationsPassed": "🎉Все проверки пройдены!",
    "considerRunningUsageAnalysis": "Рассмотрите возможность проведения анализа использования: узел i18ntk-usage.js.",
    "deletedOldReport": "🗑️ Удален старый отчет о проверке.",
    "sourceDir": "📁 Исходный каталог: {sourceDir}",
    "i18nDir": "🌐 Каталог I18n: {i18nDir}",
    "loadingTranslationFiles": "📋 Загрузка файлов перевода...",
    "foundTranslationFilesCount": "✅ Найден {count} файлы перевода",
    "analyzingTranslations": "🔍Анализ переводов...",
    "validationCompletedSuccessfully": "🎉 Валидация успешно завершена!",
    "validationErrorsFound": "⚠️ Обнаружены ошибки валидации: {count}",
    "validationWarningsFound": "⚠️ Обнаружены предупреждения валидации: {count}",
    "validationPassed": "✅ Валидация прошла без ошибок",
    "validationFailed": "Проверка не удалась: {error}",
    "startingValidationProcess": "🔍Начинаем процесс проверки...",
    "validationProcessCompletedSuccessfully": "✅ Процесс валидации успешно завершен",
    "stackTrace": "Трассировка стека: {stack}",
    "authenticationFailed": "❌ Не удалось выполнить аутентификацию. Доступ запрещен.",
    "fatalValidationError": "❌ Неустранимая ошибка проверки: {error}",
    "configAccess": "Доступ к конфигурации для проверки",
    "configValidated": "Конфигурация успешно проверена",
    "configError": "Ошибка конфигурации: {error}",
    "validatorInit": "Инициализация валидатора I18n",
    "validatorInitialized": "Валидатор I18n успешно инициализирован",
    "validatorInitError": "Ошибка инициализации валидатора: {error}",
    "argsParsing": "Анализ аргументов командной строки",
    "argsParsed": "Аргументы командной строки успешно проанализированы",
    "argsParseError": "Ошибка анализа аргумента: {error}",
    "languagesScan": "Сканирование доступных языков",
    "languagesFound": "Найденный {count} языки",
    "languagesScanError": "Ошибка сканирования языка: {error}",
    "filesScan": "Найденный {count} файлы в {language}",
    "filesScanError": "Ошибка сканирования файла: {error}",
    "jsonValidated": "Синтаксис JSON проверен: {filePath}",
    "jsonValidationError": "Ошибка проверки JSON: {error}",
    "languageValidation": "Проверка языка: {language}",
    "languageValidationError": "Ошибка проверки языка: {error}",
    "fileDeleted": "Файл удален",
    "runStarted": "Запуск проверочного прогона",
    "runCompleted": "Прогон проверки успешно завершен",
    "runError": "Проверка не удалась: {error}",
    "scriptExecution": "Выполнение скрипта",
    "validationCompleted": "Проверка завершена",
    "validationError": "Ошибка проверки: {error}",
    "separator": "━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━",
    "languageHeader": "🌐 Язык: {language}",
    "validationResults": "📊 Результаты проверки",
    "noErrors": "✅ Ошибок не обнаружено",
    "noWarnings": "✅ Предупреждений не найдено",
    "summaryHeader": "📋 ОБЩЕЕ РЕЗЮМЕ",
    "progressIndicator": "⏳ Обработка...",
    "completedIndicator": "✅ Завершено",
    "errorIndicator": "❌ Ошибка",
    "warningIndicator": "⚠️ Внимание",
    "infoIndicator": "ℹ️ Информация",
    "sourceDirNotConfigured": "Исходный каталог не настроен",
    "sourceLanguageNotConfigured": "Исходный язык не настроен",
    "translationFunctionNotInitialized": "Функция перевода не инициализирована должным образом",
    "sourceLanguageDirectoryNotFound": "Каталог исходного языка не найден",
    "specifiedLanguageNotFound": "Указанный язык не найден",
    "noJsonFilesFound": "В исходном каталоге не найдены файлы JSON: {sourceDir}",
    "i18nDirectoryNotFound": "Каталог I18n не найден: {i18nDir}",
    "invalidDirectoryPaths": "Обнаружены неверные пути к каталогам",
    "invalidSampleFilePath": "Неверный путь к файлу образца",
    "failedToCreateSampleTranslationFile": "Не удалось создать образец файла перевода.",
    "invalidFilePathDetected": "Обнаружен неверный путь к файлу",
    "failedToWriteFile": "Не удалось записать файл: {filePath}",
    "invalidSourceDirectory": "Неверный исходный каталог: {sourceDir}",
    "invalidSourceLanguageDirectory": "Неверный каталог исходного языка: {sourceDir}"
  },
  "adminCli": {
    "setupPinProtectionTitle": "🔐 Настройка защиты PIN-кодом администратора",
    "setupPinProtectionDescription": "Для административных операций потребуется 4–6-значный PIN-код.",
    "enablePinProtectionPrompt": "Хотите включить защиту PIN-кодом администратора?",
    "setupCancelled": "Настройка защиты PIN-кодом администратора отменена.",
    "enterPinPrompt": "Введите 4-6-значный PIN-код:",
    "pinFormatError": "❌ПИН-код должен состоять из 4-6 цифр. Пожалуйста, попробуйте еще раз.",
    "confirmPinPrompt": "Подтвердите PIN-код:",
    "pinMismatchError": "❌ ПИН-коды не совпадают. Пожалуйста, попробуйте еще раз.",
    "pinProtectionEnabledSuccess": "✅ Защита PIN-кодом администратора успешно включена!",
    "pinRecoveryWarning": "⚠️ Запомните свой ПИН-код — в случае утери его невозможно восстановить.",
    "setupPinProtectionFailed": "❌ Не удалось настроить защиту PIN-кодом администратора.",
    "errorSettingUpPin": "❌ Ошибка при настройке PIN-кода администратора: {message}",
    "authRequiredForOperation": "🔐 Аутентификация администратора необходима для: {operation}",
    "invalidPinFormat": "❌ Неверный формат PIN-кода. PIN-код должен состоять из 4–6 цифр.",
    "authenticationSuccess": "✅ Аутентификация прошла успешно!",
    "invalidPinAttemptsRemaining": "❌ Неверный PIN-код. {remaining} попыток осталось.",
    "authenticationFailedAccessDenied": "❌ Не удалось выполнить аутентификацию. Доступ запрещен.",
    "authenticationError": "❌ Ошибка аутентификации: {message}",
    "pinProtectionNotEnabled": "Защита PIN-кодом администратора в настоящее время не включена.",
    "disablingPinProtectionTitle": "🔓 Отключение защиты PIN-кодом администратора",
    "confirmDisablePinProtection": "Вы уверены, что хотите отключить защиту PIN-кодом администратора?",
    "operationCancelled": "Операция отменена.",
    "pinProtectionDisabledSuccess": "✅ Защита PIN-кодом администратора отключена.",
    "disablePinProtectionFailed": "❌ Не удалось отключить защиту PIN-кодом администратора.",
    "errorDisablingPinProtection": "❌ Ошибка отключения защиты администратора: {message}",
    "adminProtectionStatusTitle": "🔐 Статус защиты администратора",
    "statusEnabled": "Статус: ✅ ВКЛЮЧЕНО",
    "protectionDetails": "Защита: для операций администратора требуется 4–6-значный PIN-код.",
    "lockoutDetails": "Блокировка: 3 неудачные попытки = блокировка на 15 минут.",
    "statusDisabled": "Статус: ❌ ОТКЛЮЧЕН",
    "noAuthRequired": "Защита: аутентификация не требуется.",
    "unprotectedRisk": "Риск: административные операции незащищены.",
    "errorCheckingAdminStatus": "❌ Ошибка проверки статуса администратора: {message}",
    "authRequired": "🔐 Требуется аутентификация администратора.",
    "invalidPin": "❌ Неверный PIN-код.",
    "authSuccess": "✅ Аутентификация прошла успешно!",
    "adminPinSetupCli": "admin_pin_setup_cli",
    "adminAuthFailedCli": "admin_auth_failed_cli",
    "adminAuthDisabledCli": "admin_auth_disabled_cli",
    "protectedAccess": "Защищенный доступ: для конфиденциальных операций требуется проверка подлинности администратора.",
    "enterPin": "Введите PIN-код администратора:",
    "accessGranted": "Доступ предоставлен."
  },
  "adminPin": {
    "setup_title": "🔐 Настройка PIN-кода администратора",
    "setup_separator": "=========================================================",
    "setup_description": "Создайте 4–6-значный PIN-код для доступа администратора к конфиденциальным настройкам.",
    "required_for_title": "Этот PIN-код потребуется для:",
    "required_for_1": "• Изменение настроек безопасности.",
    "required_for_2": "• Изменение расширенных конфигураций.",
    "required_for_3": "• Доступ к инструментам отладки.",
    "required_for_4": "• Сброс настроек",
    "setup_note": "💡 Примечание. При вводе вы увидите звездочки (*) — это всего лишь маскирующие символы.",
    "setup_digits_only": "В качестве PIN-кода принимаются только цифры 0–9.",
    "invalid_pin_length": "❌ Неверный PIN-код. Должно состоять из 4–6 цифр (только цифры 0–9).",
    "invalid_pin_example": "Пример: 1234 или 567890.",
    "pins_do_not_match": "❌ ПИН-коды не совпадают.",
    "setup_success": "✅ PIN-код администратора успешно установлен!",
    "setup_warning": "⚠️ Храните этот PIN-код в безопасности. В случае утери его невозможно восстановить.",
    "setup_error": "❌ Ошибка установки PIN-кода:",
    "session_expired": "⏰ Сеанс администратора истек из-за неактивности.",
    "no_pin_set_setting_up": "⚠️ PIN-код администратора не установлен. Настройка PIN-кода...",
    "no_pin_configured_access_denied": "⚠️ PIN-код администратора не настроен. Доступ запрещен.",
    "use_admin_settings_to_set_pin": "💡 Сначала используйте настройки администратора, чтобы настроить PIN-код.",
    "locked_out": "🔒 Доступ администратора заблокирован из-за слишком большого количества неудачных попыток.",
    "wait_before_retry": "Пожалуйста, подождите 5 минут, прежде чем повторить попытку.",
    "access_granted": "✅Доступ администратора предоставлен.",
    "incorrect_pin": "❌ Неправильный ПИН-код. {attempts} попыток осталось.",
    "verify_pin_error": "❌ Ошибка проверки PIN-кода:",
    "already_configured": "✅ PIN-код администратора уже настроен.",
    "optional_setup_title": "🔐 Настройка PIN-кода администратора (необязательно)",
    "optional_setup_description": "Защита PIN-кодом администратора повышает безопасность таких конфиденциальных операций, как:",
    "setup_prompt": "Хотите установить PIN-код администратора? (да/нет):",
    "skipping_setup": "⏭️ Пропуск установки PIN-кода администратора. Вы можете настроить это позже в настройках.",
    "setup_prompt_error": "❌ Ошибка во время запроса на установку PIN-кода:",
    "protectedAccess": "Защищенный доступ: для конфиденциальных операций требуется проверка подлинности администратора.",
    "enterPin": "Введите PIN-код администратора:",
    "accessGranted": "Доступ предоставлен.",
    "invalidPin": "❌ Неверный PIN-код. Пожалуйста, попробуйте еще раз.",
    "weak_pin_warning": "⚠️ ВНИМАНИЕ: этот PIN-код кажется слабым или распространенным.",
    "weak_pin_suggestion": "💡 Рассмотрите возможность использования более надежного PIN-кода с разными цифрами.",
    "use_anyway_prompt": "Введите «да», чтобы использовать его в любом случае, или нажмите Enter, чтобы выбрать другой PIN-код:",
    "enter_new_pin": "Введите новый PIN-код администратора (4–6 цифр):",
    "confirm_pin": "Подтвердите PIN-код администратора:",
    "not_set": "Не установлено",
    "pin_display_mask": "####"
  },
  "debug": {
    "title": "🔧 Инструменты отладки",
    "separator": "=========================================================",
    "mainDebuggerSystemDiagnostics": "1. Диагностика системы",
    "_consoleTranslationsCheck": "// 2. Проверка трансляции консоли",
    "_exportMissingKeys": "// 3. Экспорт отсутствующих ключей перевода",
    "_replaceHardcodedConsole": "// 4. Замена жестко запрограммированных строк консоли",
    "_consoleKeyChecker": "// 5. Проверка ключей консоли",
    "debugLogs": "2. Журналы отладки",
    "backToMainMenu": "0. Вернуться в главное меню.",
    "selectOption": "Выберите инструмент отладки:",
    "runningDebugTool": "Бег {displayName}...",
    "debugToolNotFound": "❌ Инструмент отладки не найден: {toolName}",
    "errorRunningDebugTool": "Ошибка запуска инструмента отладки '{displayName}': {error}",
    "recentDebugLogs": "📄 Последние журналы отладки",
    "noDebugLogsFound": "❌ Журналы отладки не найдены.",
    "debugLogsDirectoryNotFound": "❌ Каталог журналов отладки не найден.",
    "selectLogPrompt": "Выберите файл журнала для просмотра (1-{count}):",
    "invalidChoiceSelectRange": "Неверный выбор. Пожалуйста, выберите из доступного диапазона.",
    "contentOf": "📄 Содержание {filename}:",
    "pressEnterToContinue": "Нажмите Enter, чтобы продолжить..."
  },
  "detect_language_mismatches": {
    "tool_title": "🔍 Инструмент обнаружения языковых несоответствий",
    "separator": "====================================",
    "analyzing_file": "📄 Анализируем {language}.json...",
    "error_analyzing_file": "❌ Анализ ошибок {filename}: {errorMessage}",
    "results_title": "📊 РЕЗУЛЬТАТЫ ОБНАРУЖЕНИЯ ЯЗЫКОВОГО НЕСООТВЕТСТВИЯ",
    "results_separator": "======================================",
    "summary_title": "📋 РЕЗЮМЕ:",
    "total_files_analyzed": "Всего проанализировано файлов: {totalFiles}",
    "files_with_mismatches": "Файлы с несоответствиями: {filesWithMismatches}",
    "total_mismatches_found": "Всего найдено несоответствий: {totalMismatches}",
    "no_mismatches_found": "✅ Языковых несоответствий не обнаружено! Все переводы сделаны на правильных языках.",
    "detailed_results_title": "🔍ДЕТАЛЬНЫЕ РЕЗУЛЬТАТЫ:",
    "file_mismatch_header": "📄 {filename} ({language})",
    "mismatches_count": "Найденный {count} несоответствие(я):",
    "mismatch_details": "{index}. Ключ: {key}",
    "mismatch_value": "Ценить: \"{value}\"",
    "mismatch_issue": "Проблема: {description}",
    "recommendations_title": "💡РЕКОМЕНДАЦИИ:",
    "recommendation_1": "1. Просмотрите и переведите все записи, отмеченные [ПЕРЕВЕСТИ].",
    "recommendation_2": "2. Замените языковые префиксы (например, [DE], [FR]) правильными переводами.",
    "recommendation_3": "3. Переведите английский текст на соответствующий целевой язык.",
    "recommendation_4": "4. Используйте эквиваленты на родном языке для всего текста, обращенного к пользователю.",
    "recommendation_5": "5. Запустите этот инструмент еще раз после внесения исправлений, чтобы проверить исправления.",
    "detailed_report_saved": "📄 Подробный отчет сохранен в: {reportPath}",
    "error_saving_report": "❌ Ошибка сохранения отчета: {errorMessage}",
    "auto_fix_mode": "🔧 Режим автоисправления {dryRun}",
    "auto_fix_separator": "====================================",
    "fixed_file": "✅ Исправлено {filename}",
    "auto_fix_summary_title": "📊 Краткое описание автоисправления:",
    "total_fixes_applied": "Всего исправлений: {count}",
    "preview_fixes_title": "🔍Предварительный просмотр исправлений:",
    "fix_details": "{file}: {key}      Старый: \"{old}\"      Новый: \"{new}\"",
    "more_fixes": "... и {count} больше исправлений",
    "run_with_apply_fixes": "💡 Запустите --apply, чтобы применить эти исправления.",
    "error_general": "❌ Ошибка:",
    "mainDebuggerSystemDiagnostics": "Главный отладчик/диагностика системы",
    "exportMissingKeys": "Экспортировать недостающие ключи",
    "replaceHardcodedConsole": "Заменить жестко закодированную консоль",
    "consoleKeyChecker": "Проверка ключей консоли",
    "debugLogs": "Журналы отладки",
    "backToMainMenu": "Вернуться в главное меню",
    "invalidChoiceSelectRange": "❌ Неверный выбор. Пожалуйста, выберите номер в отображаемом диапазоне.",
    "runningDebugTool": "Запуск инструмента отладки: {displayName}",
    "debugToolNotFound": "Инструмент отладки '{toolName}' не найдено.",
    "recentDebugLogs": "Последние журналы отладки",
    "noDebugLogsFound": "Журналы отладки не найдены.",
    "logEntry": "Запись в журнале: {timestamp} - {message}",
    "debugLogsDirectoryNotFound": "Каталог журналов отладки не найден."
  },
  "help": {
    "title": "📊 ПОМОЩЬ В УПРАВЛЕНИИ I18NTK",
    "usage": "Использование: узел main/manage/index.js [опции]",
    "interactiveMode": "💡 Используйте: node main/manage/index.js --command=<command> для прямого исполнения",
    "showHelp": "📖 Используйте: node main/manage/index.js --help для доступных команд.",
    "availableCommands": "📖 Доступные команды:",
    "initProject": "🚀 Инициализировать новые языки",
    "analyzeTranslations": "🔍 Анализировать переводы",
    "validateTranslations": "✅ Проверка переводов",
    "checkUsage": "📊 Проверьте использование ключа",
    "initCommand": "init — инициализировать новые языки",
    "analyzeCommand": "анализировать - анализировать переводы",
    "validateCommand": "validate - Проверить переводы",
    "usageCommand": "использование — проверка использования ключа.",
    "sizingCommand": "калибровка - Анализ размеров",
    "completeCommand": "Complete – Полные переводы (100% покрытие)",
    "summaryCommand": "резюме - Показать статус проекта",
    "debugCommand": "debug - Отладка проблем с переводом",
    "scannerCommand": "сканер - Сканировать ключи",
    "translateCommand": "Translate — автоматически переводить файлы локали",
    "menu": {
      "pressEnterToContinue": "Нажмите Enter, чтобы продолжить...",
      "title": "🌐 МЕНЮ УПРАВЛЕНИЯ I18NTK",
      "description": "Интерактивное меню для управления интернационализацией",
      "exit": "🚪 Выход"
    },
    "commands": {
      "init": "init — инициализировать новые языки",
      "analyze": "анализировать - анализировать переводы",
      "validate": "validate - Проверить переводы",
      "usage": "использование — проверка использования ключа.",
      "sizing": "калибровка - Анализ размеров",
      "complete": "Complete – Полные переводы (100% покрытие)",
      "summary": "резюме - Показать статус проекта",
      "debug": "debug - Отладка проблем с переводом"
    },
    "options": {
      "sourceDir": "--source-dir <dir>     Исходный каталог для анализа",
      "output": "--выход <file>        Выходной файл отчета",
      "verbose": "--verbose, -v Показать подробную информацию",
      "keepReports": "--keep-reports Сохранить существующие отчеты",
      "deleteReports": "--delete-reports Удалить существующие отчеты",
      "help": "--help, -h Показать эту справку"
    },
    "examples": {
      "title": "Примеры:",
      "example1": "узел i18ntk-manage.js",
      "example2": "узел i18ntk-manage.js --source-dir ./locales",
      "example3": "узел i18ntk-manage.js --output summary-report.txt",
      "example4": "узел i18ntk-manage.js --verbose",
      "example5": "узел i18ntk-manage.js --source-dir ./locales --output report.json"
    },
    "features": {
      "initProject": "🚀 Инициализировать новые языки",
      "analyzeTranslations": "🔍 Анализировать переводы",
      "validateTranslations": "✅ Проверка переводов",
      "checkUsage": "📊 Проверьте использование ключа",
      "completeTranslations": "🎯 Полные переводы (100% покрытие)",
      "showSizing": "📏 Анализ размеров",
      "runWorkflow": "🔄 Запуск полного рабочего процесса",
      "showStatus": "📋 Показать статус проекта",
      "deleteReports": "🗑️ Удалить все отчеты",
      "changeLanguage": "🌍 Изменить язык пользовательского интерфейса",
      "settings": "⚙️ Настройки",
      "showHelp": "❓Помощь",
      "debugTools": "🔧 Инструменты отладки"
    },
    "messages": {
      "selectOption": "Выберите вариант:",
      "invalidOption": "Неверный вариант. Пожалуйста, попробуйте еще раз.",
      "operationCompleted": "✅Операция завершена успешно!",
      "pressEnter": "Нажмите Enter, чтобы продолжить...",
      "goodbye": "👋До свидания!",
      "unknownCommand": "Неизвестная команда: {command}",
      "nonInteractive": "⚠️ Обнаружен неинтерактивный режим. Меню отображается только для справки."
    },
    "i18n_helper": {
      "translation_file_not_found": "Файл перевода не найден: {translationFile}",
      "error_loading_translations": "Ошибка при загрузке переводов: {errorMessage}",
      "translation_not_found": "Перевод не найден для ключа: {key}",
      "translation_key_not_string": "Ключ перевода не преобразуется в строку: {key}",
      "error_reading_locales_directory": "Ошибка чтения каталога локалей: {errorMessage}"
    }
  },
  "init": {
    "initializationTitle": "🚀 Набор инструментов управления i18n — Инициализация проекта",
    "initializationCancelled": "🚫 Инициализация отменена пользователем.",
    "sourceDirectoryLabel": "📁 Каталог исходников: {dir}",
    "requiredTitle": "Требуется инициализация",
    "requiredBody": "Этот проект необходимо инициализировать перед запуском этой команды.",
    "promptRunNow": "Хотите запустить инициализацию сейчас? (да/нет):",
    "sourceLanguageLabel": "🌍Исходный язык: {language}",
    "detectedI18nFrameworks": "🔍 Обнаружены фреймворки i18n: {frameworks}",
    "pinMustBe4Digits": "🔐ПИН-код должен состоять из 4 цифр.",
    "existingDirectoriesFound": "📁 Обнаружены существующие каталоги переводов:",
    "useExistingDirectoryPrompt": "Вы хотите использовать существующий каталог? (да/нет)",
    "selectDirectoryPrompt": "Выберите каталог, введя номер (или выберите «Создать новый каталог»).",
    "enterNewDirectoryName": "Введите имя для вашего нового каталога переводов",
    "createdNewDirectory": "✅ Создан новый каталог: {dir}",
    "directoryAlreadyExists": "⚠️ Каталог уже существует: {dir}",
    "invalidDirectoryName": "❌ Указано неверное имя каталога.",
    "usingExistingDirectory": "Использование существующего каталога: {dir}",
    "adminPinSetupOptional": "🔐 Установка PIN-кода администратора необязательна (рекомендуется в целях безопасности)",
    "adminPinSeparator": "------------------------------",
    "adminPinDescription1": "PIN-код администратора: 4-значный номер для безопасного доступа.",
    "adminPinDescription2": "Оставьте поле пустым, чтобы пропустить настройку PIN-кода.",
    "adminPinDescription3": "Если вы установите PIN-код, он потребуется для всех будущих безопасных действий.",
    "adminPinDescription4": "Шифрование AES-256-GCM используется для безопасного хранения PIN-кода.",
    "adminPinSetupPrompt": "Введите PIN-код администратора (4 цифры) или оставьте поле пустым, чтобы пропустить:",
    "skippingAdminPinSetup": "Пропуск установки PIN-кода администратора...",
    "settingUpAdminPin": "🔐 Настройка PIN-кода администратора...",
    "enterAdminPin": "Введите PIN-код администратора:",
    "confirmAdminPin": "Подтвердите PIN-код администратора:",
    "pinMismatch": "PIN-коды не совпадают. Пожалуйста, попробуйте еще раз.",
    "adminPinSetupSuccess": "🔐 Установка PIN-кода администратора выполнена успешно!",
    "adminPinSetupFailure": "🔐 Не удалось настроить PIN-код администратора. Пожалуйста, попробуйте еще раз.",
    "adminProtectionEnabled": "🔐 Включена защита администратора. Все действия требуют аутентификации по PIN-коду.",
    "adminProtectionDisabled": "🔐 Защита администратора отключена. Все действия теперь доступны без ПИН-кода.",
    "autoDetectedI18nDirectory": "Автоматически обнаруженный каталог i18n: {directory}",
    "initializingProject": "⚙️ Инициализация конфигурации проекта...",
    "createdSampleTranslationFile": "✅ Создан образец файла перевода: {file}",
    "languageSelectionTitle": "🌐 Языковая конфигурация",
    "available": "Доступный",
    "defaultLanguages": "📝 Языки по умолчанию: {languages}",
    "enterLanguageCodes": "🎯 Введите коды целевых языков (через запятую, например, de, es, fr, ru):",
    "targetLanguages": "🌍 Целевые языки",
    "foundSourceFiles": "📄 Найден {count} исходные файлы для анализа",
    "processingLanguage": "🔄 Язык обработки: {language}",
    "fileProcessingResult": "✅ Обработано {file}: {translated}/{total} ключи ({percentage}%)",
    "overallProgress": "📊 Общий прогресс: {translated}/{total} ключи обработаны({percentage}%)",
    "initializationSummaryTitle": "📋 Сводка инициализации",
    "languageSummary": "{icon} {name} ({code}): {percentage}% полный",
    "languageFiles": "📄 Файлы: {count}",
    "languageKeys": "🔤Ключи: {translated}/{total}",
    "languageMissing": "⚠️ Не хватает: {count}",
    "initializationCompletedSuccessfully": "🎉 Инициализация проекта успешно завершена!",
    "nextStepsTitle": "🚀 Следующие шаги",
    "nextStep1": "1. Просмотрите сгенерированные файлы перевода в каталоге locales/.",
    "nextStep2": "2. Добавьте переводы для каждого целевого языка.",
    "nextStep3": "3. Снова запустите npm run i18ntk, чтобы проверить переводы.",
    "detectedFrameworks": "✅ Обнаруженные фреймворки i18n: {frameworks}",
    "setup": {
      "title": "Настраивать",
      "question": "Вопрос по настройке",
      "opt_single": "Один файл",
      "opt_modular": "Модульный",
      "opt_existing": "Существующий",
      "choice_prompt": "Выберите вариант:",
      "opt_confirm": "Подтверждать",
      "opt_cancel": "Отмена",
      "apply_all_prompt": "Применить эту структуру ко всем языкам? (да/нет):",
      "per_language_intro": "Вы выбрали настройку языков по отдельности. Вот доступные языки:",
      "available_languages": "Доступные языки: {languages}",
      "include_prompt": "Введите через запятую коды языков, которые необходимо включить (например, «de,fr,es»):"
    },
    "warnings": {
      "noPackageJson": "Пакет package.json не найден. Невозможно автоматически обнаружить платформу i18n."
    },
    "errorsPackageJsonRead": "Ошибка чтения package.json: {error}",
    "errorsNoFramework": "Платформа i18n не обнаружена. Пожалуйста, установите его или укажите вручную.",
    "suggestions": {
      "noFramework": "Платформа i18n не обнаружена. Рассмотрите возможность использования одного из следующих вариантов:",
      "installFramework": "Чтобы установить фреймворк, запустите: npm install <имя-пакета>"
    },
    "frameworks": {
      "react": "- Реагировать i18next (реагировать-i18next)",
      "vue": "- Вуэ i18n (вью-i18n)",
      "i18next": "- i18next (i18next)",
      "nuxt": "- Нукст i18n (@nuxtjs/i18n)",
      "svelte": "- Стройный i18n (стройный-i18n)"
    },
    "continueWithoutI18nPrompt": "Платформа i18n не обнаружена. Хотите продолжить без него? (да/нет):",
    "detectedI18nFramework": "Обнаруженная платформа i18n: {frameworks}",
    "existingDirectoryItem": "{index}. {location}",
    "usingExistingStructure": "Используя существующую структуру: {dir}",
    "creatingSourceDirectory": "Создание исходного каталога: {dir}",
    "creatingSourceLanguageDirectory": "Создание каталога исходного языка: {dir}",
    "errors": {
      "errorExecutingCommand": "Ошибка выполнения команды: {error}",
      "sourceDirectoryNotFound": "Исходный каталог не найден: {dir}",
      "sourceLanguageDirectoryNotFound": "Каталог исходного языка не найден: {dir}",
      "noJsonFilesInSourceDirectory": "В исходном каталоге не найдены файлы JSON: {dir}",
      "invalidFilePathDetected": "Обнаружен неверный путь к файлу",
      "initializationFailed": "Инициализация не удалась: {error}",
      "noFramework": "Платформа i18n не обнаружена. Продолжайте использовать общий режим.",
      "packageJsonRead": "Ошибка чтения package.json."
    },
    "processingFile": "Обработка {file} для {language}...",
    "fileAlreadyExistsMerging": "Файл {file} уже существует. Объединение новых ключей.",
    "createdNewFile": "Создал новый файл: {file}",
    "updatedFile": "Обновленный файл: {file}",
    "skippingExcludedFile": "Пропуск {file} для {language} как то это исключено.",
    "continuingWithoutAdminPin": "Продолжение без настройки PIN-кода администратора.",
    "createdSourceLanguageDirectory": "Создан каталог исходного языка: {dir}",
    "errorSettingUpAdminPin": "Ошибка при настройке PIN-кода администратора: {error}",
    "noTargetLanguagesSpecified": "Целевые языки не указаны.",
    "translationFilesCreatedWarning": "Файлы перевода были созданы с заполнителями; проверка перед использованием в производстве.",
    "warningCannotReadSourceDir": "Предупреждение: невозможно прочитать исходный каталог {dir}: {error}",
    "warningInvalidLanguageCodes": "Внимание: неверные коды языков игнорируются: {languages}",
    "warningProceedingWithoutFramework": "Продолжаем без обнаружения платформы i18n.",
    "backup": {
      "title": "Настройки резервного копирования",
      "description": "Резервное копирование отключено по умолчанию, чтобы избежать рекурсии резервного копирования и загрязнения репозитория.",
      "enablePrompt": "Включить автоматическое резервное копирование? (да/нет):",
      "keepPrompt": "Сколько резервных копий должно сохраняться автоматически (1–3, по умолчанию 1):"
    },
    "completionSummaryTitle": "Итоги завершения",
    "completionSummaryBasicTitle": "Краткое описание завершения (базовое)",
    "totalChanges": "Всего изменений: {count}",
    "languagesProcessed": "Обработанные языки: {count}",
    "missingKeysAdded": "Добавлены недостающие ключи: {count}",
    "reportPrompt": "Хотите, чтобы был создан отчет? (Да/Нет):",
    "reportGenerated": "Отчет создан: {reportPath}",
    "reportFailed": "Не удалось создать отчет: {error}",
    "completionError": "Ошибка при завершении: {error}",
    "optimize": {
      "title": "Оптимизация размера пакета",
      "preview": "Выполняется предпросмотр оптимизации локалей...",
      "reduceTip": "Можно уменьшить размер пакета, выбрав только нужные языки.",
      "prompt": "Запустить интерактивную оптимизацию сейчас? (д/Н): ",
      "starting": "Запуск интерактивной оптимизации локалей...",
      "completed": "Оптимизация пакета завершена.",
      "later": "Оптимизацию локалей можно запустить позже:",
      "unavailable": "Не удалось предложить оптимизацию локалей: {error}"
    }
  },
  "language": {
    "title": "🌍 Изменить язык",
    "separator": "=========================================================",
    "current": "Текущий язык: {language}",
    "available": "Доступные языки:",
    "languageOption": "{index}. {displayName}{current}",
    "backToMainMenu": "Вернуться в главное меню",
    "prompt": "Выберите язык (0-8):",
    "cancelled": "Изменение языка отменено.",
    "invalid": "Неверный выбор. Пожалуйста, попробуйте еще раз.",
    "changed": "Язык изменен на: {language}",
    "changeFailed": "Не удалось изменить язык: {error}",
    "pressEnterToContinue": "Нажмите Enter, чтобы продолжить..."
  },
  "maintainLanguagePurity": {
    "workflow_title": "🚀 Рабочий процесс поддержания чистоты языка",
    "step1_title": "📊 ШАГ 1: Первоначальная оценка чистоты языка",
    "step2_title": "🔧 ШАГ 2. Обнаружение и автоматическое исправление языковых несоответствий",
    "step3_title": "🌐 ШАГ 3. Примените автоматический перевод",
    "step4_title": "✅ ШАГ 4: Окончательная оценка чистоты языка",
    "workflow_error": "❌ Ошибка рабочего процесса: {errorMessage}",
    "running_initial_validation": "Выполнение начальной проверки чистоты языка...",
    "initial_assessment_complete": "✅ Первоначальная оценка завершена: {count} обнаружены нарушения",
    "initial_assessment_warnings": "⚠️ Первоначальная оценка завершена с предупреждениями.",
    "detecting_fixing_mismatches": "Обнаружение и исправление языковых несоответствий...",
    "detection_complete_applying_fixes": "Обнаружение завершено. Применение автоисправлений...",
    "mismatch_fixes_complete": "✅ Исправлены языковые несоответствия: {count} исправления применены",
    "mismatch_fixes_warnings": "⚠️ Исправлены несоответствия языков, дополнены предупреждениями.",
    "applying_automatic_translations": "Применение автоматического перевода...",
    "translation_preview_complete": "Предварительный просмотр перевода завершен. Применение переводов..."
  },
  "menu": {
    "title": "🌐 МЕНЮ УПРАВЛЕНИЯ I18NTK",
    "separator": "=========================================================",
    "options": {
      "init": "🚀 Инициализировать новые языки",
      "analyze": "🔍 Анализировать переводы",
      "validate": "✅ Проверка переводов",
      "usage": "📊 Проверьте использование ключа",
      "complete": "🎯 Полные переводы (100% покрытие)",
      "sizing": "📏 Анализ размеров",
      "fix": "🛠️ Исправьте переводы заполнителей.",
      "scanner": "🔍 Сканирование на наличие проблем с i18n",
      "translate": "🌐 Автоматический перевод",
      "workflow": "🔄 Запуск полного рабочего процесса",
      "status": "📋 Показать статус проекта",
      "delete": "🗑️ Удалить все отчеты",
      "language": "🌍 Изменить язык пользовательского интерфейса",
      "settings": "⚙️ Настройки",
      "help": "❓Помощь",
      "debug": "🔧 Инструменты отладки",
      "exit": "🚪 Выход"
    },
    "update": "📦 Пакет обновлений",
    "goodbye": "👋До свидания!",
    "invalidChoice": "Неверный выбор. Пожалуйста, выберите 0–15.",
    "returning": "Возврат в главное меню...",
    "invalidOption": "Неверный вариант. Пожалуйста, попробуйте еще раз.",
    "nonInteractiveModeWarning": "Обнаружен неинтерактивный режим. Меню отображается только для справки.",
    "useDirectExecution": "Используйте: node main/manage/index.js --command=<command> для непосредственного исполнения.",
    "useHelpForCommands": "Используйте: node main/manage/index.js --help для доступных команд.",
    "returnToMainMenu": "Нажмите Enter, чтобы вернуться в главное меню.",
    "pressEnterToContinue": "Нажмите Enter, чтобы продолжить...",
    "selectOptionPrompt": "Выберите вариант:",
    "selectDebugToolPrompt": "Выберите инструмент отладки:",
    "selectLogPrompt": "Выберите файл журнала (1-{count}):",
    "autoDetectedI18nDirectory": "Автоматически обнаруженный каталог i18n: {directory}",
    "executingCommand": "Выполнение команды: {command}",
    "unknownCommand": "Неизвестная команда: {command}",
    "languageOption": "{index}. {displayName}{current}",
    "debugTools": {
      "1": "Анализ файла журнала",
      "2": "Анализ использования ключей перевода",
      "3": "Анализ полноты перевода",
      "4": "Анализ формата перевода",
      "5": "Анализ типов перевода",
      "6": "Анализ структуры перевода"
    },
    "native_translations": {
      "exact_translation_found": "✅ {keyPath}: {value}",
      "no_exact_translation": "⚠️ Нет точного перевода слова '{keyPath}', найдены похожие ключи:",
      "similar_key": "- {key} ({similarity}% соответствовать)",
      "processing_language_files": "🔄Обработка {count} языковые файлы...",
      "file_not_found": "⚠️ Файл не найден: {file}",
      "processing_translations": "🌍Обработка {code} переводы...",
      "backup_created": "📋 Резервная копия создана: {filename}",
      "error_parsing_json": "❌ Разбор ошибок {code}.json: {errorMessage}",
      "existing_keys_found": "📊 {code}: Найденный {count} существующие ключи",
      "error_writing_json": "❌ Ошибка написания {code}.json: {errorMessage}",
      "translations_replaced": "📊 {code}: {count} переводы заменены",
      "translation_replacement_complete": "✅ Замена перевода завершена!",
      "total_replacements": "📊 Всего замен: {count}",
      "dry_run_mode": "⚠️ РЕЖИМ «СУХОЙ ЗАПУСК» — файлы не были изменены.",
      "tool_title": "🌍 Собственный заменитель перевода v1.9.1",
      "tool_separator": "=====================================",
      "dry_run_warning": "⚠️ Запуск в режиме DRY RUN – никакие файлы не будут изменены.",
      "error_during_replacement": "❌ Ошибка при замене перевода:"
    }
  },
  "config": {
    "dirFallbackWarning": "⚠️ Каталог {dir} не найдено. С использованием {fallback}.",
    "dirInvalidError": "❌ Неверный каталог: {dir}"
  },
  "operations": {
    "completed": "✅Операция завершена успешно!",
    "deleteReportsTitle": "🗑️ Удаление отчетов и журналов",
    "scanningForFiles": "🔍 Сканирование файлов для удаления...",
    "noFilesFoundToDelete": "✅ Не найдено файлов для удаления.",
    "availableDirectories": "📁 Доступные каталоги:",
    "allDirectories": "Все каталоги",
    "andMore": "и многое другое...",
    "cancelOption": "Отмена",
    "cancelReportOption": "Отмена/возврат в меню",
    "invalidSelection": "❌ Неверный выбор.",
    "foundFilesInSelectedDirectories": "📊 Найден {count} файлы в выбранных каталогах:",
    "deletionOptions": "🗑️ Варианты удаления:",
    "deleteAllFiles": "Удалить все файлы",
    "keepLast3Files": "Сохранять последние 3 файла (по дате)",
    "keepLast5Files": "Сохранять последние 5 файлов (по дате)",
    "noFilesToDelete": "✅ Нет файлов для удаления.",
    "filesToDeleteCount": "📋 Файлы для удаления: {count}",
    "filesToKeepCount": "📋 Файлы, которые нужно сохранить: {count}",
    "confirmDeletion": "⚠️ Вы уверены, что хотите удалить эти файлы? (да/нет):",
    "deletedFile": "✅ Удалено: {filename}",
    "failedToDeleteFile": "❌ Не удалось удалить {filename}: {error}",
    "cancelled": "❌Операция отменена.",
    "init": {
      "title": "🚀 Инициализировать новый язык"
    },
    "usage": {
      "title": "📊 Проверьте использование ключа",
      "noUsedKeysHint": "Нашел переводы, но не использовал в исходном коде. Проверьте --source-dir и TranslationPatterns."
    },
    "analyze": {
      "title": "🔍 Анализировать переводы"
    },
    "validate": {
      "title": "✅ Проверка переводов"
    },
    "settings": {
      "title": "⚙️ Управление настройками",
      "separator": "========================================================="
    },
    "complete": {
      "deletingOldReport": "🗑️ Удаление старого отчета об использовании для нового анализа.",
      "generatingFreshAnalysis": "🔄 Проведение свежего анализа использования...",
      "couldNotGenerate": "⚠️ Не удалось создать анализ использования. Использование часто отсутствующих ключей.",
      "reportNotFound": "⚠️ Отчет об использовании не найден. Создание свежего анализа...",
      "foundMissingKeys": "🔍 Найден {count} недостающие ключи из анализа использования",
      "couldNotParse": "⚠️ Не удалось проанализировать отчет об использовании. Использование часто отсутствующих ключей.",
      "title": "🎯 ВЫПОЛНЕНИЕ ПЕРЕВОДОВ",
      "separator": "=========================================================",
      "sourceDir": "📁 Исходный каталог: {sourceDir}",
      "sourceLanguage": "🔤 Исходный язык: {sourceLanguage}",
      "dryRunMode": "🧪 РЕЖИМ «СУХОЙ ЗАПУСК» — файлы не будут изменены.",
      "languages": "🎯 Целевые языки: {languages}",
      "addingMissingKeys": "➕ Добавление недостающих ключей в файлы перевода...",
      "processing": "🔄Обработка {language}...",
      "addedKeys": "✅ Добавлено {count} ключи",
      "changeDetails": "📝 {file}: {key}",
      "noChangesNeeded": "✅ Никаких изменений не требуется {language}",
      "summaryTitle": "📊 РЕЗЮМЕ ЗАВЕРШЕНИЯ",
      "totalChanges": "📝 Всего изменений: {totalChanges}",
      "languagesProcessed": "🌐 Обработанные языки: {languagesProcessed}",
      "missingKeysAdded": "➕ Добавлены недостающие клавиши: {missingKeysAdded}",
      "nextStepsTitle": "📋 ДАЛЬНЕЙШИЕ ШАГИ",
      "nextStep1": "1. Запустите анализ использования:",
      "nextStep2": "2. Проверка перевода:",
      "nextStep3": "3. Проанализируйте полноту:",
      "allKeysAvailable": "🎉 Все ключи перевода теперь доступны!",
      "runWithoutDryRun": "💡 Запустите без --dry-run, чтобы применить изменения.",
      "pressEnterToContinue": "Нажмите Enter, чтобы продолжить..."
    },
    "updatePackage": {
      "title": "📦 Обновление пакета i18n-toolkit",
      "description": "Это обновит пакет i18n-toolkit до последней версии, доступной на npm.",
      "command": "Команда для запуска",
      "confirm": "Вы уверены, что хотите продолжить обновление? (да/нет):",
      "updating": "Обновление пакета... Это может занять некоторое время.",
      "success": "✅ i18n-toolkit успешно обновлен!",
      "error": "❌ Не удалось обновить i18n-toolkit.",
      "cancelled": "❌ Обновление отменено."
    }
  },
  "security": {
    "pathValidationFailed": "path_validation_failed",
    "invalidInputType": "инвалид_вход_тип",
    "pathTraversalAttempt": "path_traversal_attempt",
    "pathValidated": "✅ Путь успешно подтвержден",
    "pathValidationError": "путь_проверка_ошибка",
    "fileTooLarge": "Безопасность: Файл слишком большой: {filePath}",
    "fileReadError": "Безопасность: Ошибка чтения файла: {errorMessage}",
    "contentTooLargeForFile": "Безопасность: Содержимое слишком велико для файла: {filePath}",
    "fileWriteError": "Безопасность: Ошибка записи файла: {errorMessage}",
    "jsonStringTooLarge": "Безопасность: строка JSON слишком велика.",
    "jsonParseError": "Безопасность: ошибка анализа JSON: {errorMessage}",
    "inputContainsDisallowedCharacters": "Безопасность: ввод содержит запрещенные символы.",
    "unknownCommandArgument": "Безопасность: Неизвестный аргумент команды: {key}",
    "unknown_command_argument": "Безопасность: Неизвестный аргумент команды: {key}",
    "unknownConfigKey": "Безопасность: Неизвестный ключ конфигурации: {key}",
    "unknown_config_key": "Безопасность: Неизвестный ключ конфигурации: {key}",
    "securityAlert": "[ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ] {timestamp}: {event}",
    "contentTooLarge": "Безопасность: Содержимое слишком велико для файла: {validatedPath}",
    "inputDisallowedCharacters": "Безопасность: ввод содержит запрещенные символы.",
    "unknownCommandArg": "Неизвестный аргумент команды",
    "logMessage": "[БЕЗОПАСНОСТЬ {level}] {timestamp}: {event}",
    "alertMessage": "[ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ] {timestamp}: {event}",
    "securityWarning": "[ПРЕДУПРЕЖДЕНИЕ БЕЗОПАСНОСТИ] {timestamp}: {event}",
    "json_parse_error": "Безопасность: ошибка анализа JSON: {errorMessage}",
    "file_too_large": "Файл слишком большой",
    "file_read_error": "Ошибка чтения файла",
    "content_too_large_for_file": "Содержимое слишком велико для файла",
    "file_write_error": "Ошибка записи файла",
    "json_string_too_large": "Строка Json слишком велика",
    "recursion_detected": "Рекурсия обнаружена в {operation}",
    "operation_timeout": "Тайм-аут операции: {operation}",
    "operation_error": "Ошибка операции в {operation}: {error}",
    "directory_read_error": "Ошибка чтения каталога: {errorMessage}",
    "security_alert": "Оповещение безопасности"
  },
  "settings-cli": {
    "settings": {
      "mainMenu": {
        "title": "Главное меню:",
        "uiSettings": "Настройки пользовательского интерфейса",
        "uiSettingsDesc": "Параметры языка, темы и интерфейса",
        "directorySettings": "Настройки каталога",
        "directorySettingsDesc": "Пути к исходному и выходному каталогу",
        "scriptDirectorySettings": "Настройки каталога скриптов",
        "scriptDirectorySettingsDesc": "Пути к каталогам для отдельных операций скрипта",
        "processingSettings": "Настройки обработки",
        "processingSettingsDesc": "Размер пакета, параллелизм и производительность",
        "advancedSettings": "Расширенные настройки",
        "advancedSettingsDesc": "Проверка, регистрация и экспертные параметры",
        "viewAllSettings": "Просмотреть все настройки",
        "viewAllSettingsDesc": "Отобразить текущую конфигурацию",
        "importExport": "Импорт/Экспорт",
        "importExportDesc": "Резервное копирование и восстановление настроек",
        "resetToDefaults": "Сброс к настройкам по умолчанию",
        "resetToDefaultsDesc": "Восстановить заводские настройки",
        "reportBug": "Сообщить об ошибке",
        "reportBugDesc": "Отправьте отчет о проблеме на GitHub",
        "saveChanges": "Сохранить изменения",
        "saveChangesDesc": "Сохранить текущие настройки в файл",
        "updatePackage": "Обновить пакет",
        "updatePackageDesc": "Обновите пакет i18n-toolkit через npm.",
        "help": "Помощь",
        "helpDesc": "Показать подробную справочную информацию",
        "quit": "Покидать",
        "quitDesc": "Выйти из настроек (с приглашением сохранить, если необходимо)",
        "unsavedChangesWarning": "⚠️ У вас есть несохраненные изменения.",
        "saveChangesBeforeQuit": "Хотите сохранить изменения перед выходом? (да/нет):",
        "selectOption": "Выберите вариант:",
        "goodbyeMessage": "Спасибо за использование менеджера настроек i18n!"
      },
      "goodbyeMessage": "Спасибо за использование менеджера настроек i18n!",
      "relativePathHint": "Используйте относительные пути из этого каталога (например, ./src/i18n/locales).",
      "currentDirectory": "Текущий каталог проекта"
    },
    "settings_manager": {
      "error_loading_settings": "❌ Ошибка загрузки настроек:",
      "error_saving_settings": "❌ Ошибка сохранения настроек:",
      "error_setting_value": "❌ Ошибка настройки значения:",
      "missing_required_setting": "❌ Отсутствуют необходимые настройки: {prop}",
      "invalid_language": "❌ Недопустимый язык: {language}",
      "invalid_source_language": "❌ Неверный исходный язык: {sourceLanguage}",
      "default_languages_must_be_array": "❌ defaultLanguages ​​должен быть массивом",
      "invalid_date_format": "❌ Неверный формат даты: {dateFormat}. Допустимые форматы: {validFormats}",
      "invalid_time_format": "❌ Неверный формат времени: {timeFormat}. Допустимые форматы: {validFormats}",
      "notifications_types_must_be_object": "❌ Notifications.types должен быть объектом",
      "exclude_files_must_be_array": "❌ ExcludeFiles должен быть массивом",
      "exclude_dirs_must_be_array": "❌ ExcludeDirs должен быть массивом",
      "include_extensions_must_be_array": "❌ includeExtensions должен быть массивом",
      "invalid_batch_size": "❌ Неверный размер партии. Должно быть положительное число",
      "invalid_max_concurrent_files": "❌ Недопустимое максимальное количество одновременных файлов. Должно быть положительное число",
      "invalid_sizing_threshold": "❌ Неверный порог размера. Должно быть положительное число",
      "invalid_timeout": "❌ Неверный тайм-аут. Должно быть не менее 1000 мс.",
      "invalid_sizing_format": "❌ Неверный формат размера: {sizingFormat}. Допустимые форматы: {validFormats}",
      "error_validating_settings": "❌ Ошибка проверки настроек:",
      "backup_created": "📋 Резервная копия создана: {backupPath}",
      "error_creating_backup": "❌ Ошибка создания резервной копии:",
      "language_not_supported": "Язык '{language}' не поддерживается. Доступный: {availableLanguages}",
      "ui_language_set": "🌍 Язык пользовательского интерфейса установлен на: {language}"
    }
  },
  "settings": {
    "title": "⚙️ Управление настройками",
    "separator": "=========================================================",
    "goodbyeMessage": "Спасибо за использование менеджера настроек i18ntk!",
    "relativePathHint": "Используйте относительные пути из этого каталога (например, ./src/i18n/locales).",
    "currentDirectory": "Текущий каталог проекта",
    "startingSettings": "Начальные настройки:",
    "pin": "ПРИКОЛОТЬ:",
    "reportBug": {
      "title": "Сообщить об ошибке",
      "description": "Сообщайте о любых проблемах или ошибках, с которыми вы столкнулись",
      "guidance": "Чтобы эффективно сообщать о проблемах:",
      "checkLogs": "1. Проверьте журналы отладки в каталоге вашего проекта.",
      "documentIssue": "2. Задокументируйте проблему, указав шаги по ее воспроизведению.",
      "contactSupport": "3. Обратитесь к своему системному администратору или в службу поддержки.",
      "completed": "Отображается руководство по отчетам об ошибках",
      "instructions": "Следуйте приведенным выше инструкциям, чтобы сообщить об ошибке."
    },
    "mainMenu": {
      "title": "Главное меню:",
      "uiSettings": "Настройки пользовательского интерфейса",
      "uiSettingsDesc": "Параметры языка, темы и интерфейса",
      "directorySettings": "Настройки каталога",
      "directorySettingsDesc": "Пути к исходному и выходному каталогу",
      "processingSettings": "Настройки обработки",
      "processingSettingsDesc": "Размер пакета, параллелизм и производительность",
      "advancedSettings": "Расширенные настройки",
      "advancedSettingsDesc": "Проверка, регистрация и экспертные параметры",
      "viewAllSettings": "Просмотреть все настройки",
      "viewAllSettingsDesc": "Отобразить текущую конфигурацию",
      "importExport": "Импорт/Экспорт",
      "updatePackage": "Обновить пакет",
      "updatePackageDesc": "Обновите пакет i18n-toolkit через npm.",
      "importExportDesc": "Резервное копирование и восстановление настроек",
      "resetToDefaults": "Сброс к настройкам по умолчанию",
      "resetToDefaultsDesc": "Восстановить заводские настройки",
      "reportBug": "Сообщить об ошибке",
      "reportBugDesc": "Отправьте отчет о проблеме на GitHub",
      "saveChanges": "Сохранить изменения",
      "saveChangesDesc": "Сохранить текущие настройки в файл",
      "help": "Помощь",
      "helpDesc": "Показать подробную справочную информацию",
      "quit": "Покидать",
      "quitDesc": "Выйти из настроек (с приглашением сохранить, если необходимо)",
      "unsavedChangesWarning": "⚠️ У вас есть несохраненные изменения.",
      "saveChangesBeforeQuit": "Хотите сохранить изменения перед выходом? (да/нет):",
      "selectOption": "Выберите вариант:",
      "goodbyeMessage": "Спасибо за использование менеджера настроек i18n!",
      "selectSettingPrompt": "Выберите настройку для редактирования (или «b», чтобы вернуться):",
      "enterNewValue": "Введите новое значение:",
      "updatedSuccessfully": "{setting} обновлено успешно!",
      "scriptDirectorySettings": "Настройки каталога скриптов",
      "scriptDirectoryDesc": "Укажите собственные каталоги для каждого скрипта",
      "scriptDirectorySettingsDesc": "Вы можете установить собственные каталоги для каждого сценария. Если не установлено, будут использоваться глобальные настройки.",
      "currentDirectory": "Текущий каталог проекта",
      "securitySettings": "Настройки безопасности",
      "securitySettingsDesc": "PIN-код администратора и другие параметры безопасности",
      "backupSettings": "Настройки резервного копирования",
      "backupSettingsDesc": "Резервное копирование и восстановление настроек конфигурации",
      "autoTranslate": "Автоперевод",
      "autoTranslateDesc": "Настройка плейсхолдеров, параллелизма, пакетов и отчетов"
    },
    "updatePackage": {
      "title": "Обновить пакет",
      "description": "Обновите пакет i18n-toolkit через npm.",
      "command": "обновление npm i18ntk -g",
      "success": "Обновление завершено успешно.",
      "failed": "Обновление не удалось.",
      "prompt": "Хотите обновить пакет сейчас? (да/нет):",
      "promptDesc": "Примечание. Это обновит пакет i18ntk до последней версии.",
      "confirm": "й",
      "cancelled": "Обновление отменено.",
      "error": "Не удалось обновить пакет",
      "updating": "Обновление пакета..."
    },
    "admin": {
      "selectOption": "Выберите вариант:",
      "updateSuccess": "PIN-код администратора успешно обновлен!",
      "updateFailed": "Не удалось обновить PIN-код администратора.",
      "protectionRemoved": "Защита PIN-кодом администратора удалена.",
      "configSuccess": "PIN-код администратора успешно настроен!",
      "configFailed": "Не удалось настроить PIN-код администратора.",
      "setupPinPrompt": "Хотите установить PIN-код администратора? (да/нет):",
      "pinUpdatedSuccess": "PIN-код администратора успешно обновлен!",
      "pinUpdatedFailed": "Не удалось обновить PIN-код администратора.",
      "pinRemoved": "Защита PIN-кодом администратора удалена.",
      "pinConfiguredSuccess": "PIN-код администратора успешно настроен!",
      "pinConfiguredFailed": "Не удалось настроить PIN-код администратора.",
      "accessDenied": "❌ Доступ запрещен. Возврат в меню.",
      "setupPin": "🔐 Настройка PIN-кода администратора...",
      "setupFailed": "❌ Не удалось настроить PIN-код администратора. Настройка не изменена.",
      "pinConfigured": "📌 PIN-код администратора в настоящее время настроен.",
      "options": "Параметры:",
      "changePin": "1) Изменить существующий PIN-код",
      "removePin": "2) Снимите защиту PIN-кодом.",
      "cancel": "3) Отмена",
      "verifyCurrentPin": "🔐 Сначала проверьте текущий PIN-код:",
      "settingNewPin": "🔄 Установка нового PIN-кода...",
      "verifyToRemove": "🔐 Подтвердите текущий PIN-код, чтобы снять защиту:",
      "noPinConfigured": "🔓 В настоящее время PIN-код администратора не настроен.",
      "pinBenefits": "Установка PIN-кода администратора повысит безопасность для:",
      "benefitSecurity": "• Изменение настроек безопасности.",
      "benefitAdvanced": "• Изменение расширенных конфигураций.",
      "benefitDebug": "• Доступ к инструментам отладки.",
      "benefitReset": "• Сброс настроек",
      "setupCancelled": "⏭️ Установка PIN-кода администратора отменена.",
      "operationCancelled": "❌Операция отменена.",
      "startingSettings": "🎛️ Запуск командной строки настроек...",
      "authRequired": "🔒 Аутентификация администратора необходима для: {label}",
      "pinSetupTitle": "Настройка PIN-кода администратора",
      "browserOpenFailed": "Не удалось автоматически открыть браузер.",
      "manualVisit": "Пожалуйста, посетите вручную: {url}",
      "browserOpened": "✅ Браузер успешно открылся!"
    },
    "importExport": {
      "title": "Настройки импорта/экспорта",
      "export": "Экспорт настроек",
      "import": "Импортировать настройки",
      "backup": "Создать резервную копию",
      "enterFilename": "Введите имя файла (или нажмите Enter по умолчанию):",
      "exportSuccess": "Настройки экспортированы в {file}",
      "exportFailed": "Не удалось экспортировать настройки: {error}",
      "importFilename": "Введите имя файла для импорта:",
      "fileNotFound": "Файл не найден.",
      "invalidFormat": "Неверный формат файла настроек.",
      "confirmImport": "Это заменит все текущие настройки. Продолжать? (да/нет):",
      "importSuccess": "Настройки успешно импортированы.",
      "importFailed": "Не удалось импортировать настройки: {error}",
      "backupSuccess": "Резервная копия создана: {file}",
      "backupFailed": "Не удалось создать резервную копию: {error}",
      "exportFilenamePrompt": "Введите имя файла экспорта:",
      "importConfirm": "Импортировать этот файл настроек? (да/нет):",
      "importFilenamePrompt": "Введите имя файла импорта:",
      "manageBackups": "Управление резервными копиями",
      "restore": "Восстановить настройки"
    },
    "selectOption": "Выберите вариант:",
    "resetToDefaultsTitle": "Сброс настроек к значениям по умолчанию",
    "resetWarning1": "⚠️ Это сбросит ВСЕ настройки на значения по умолчанию.",
    "resetWarning2": "Это действие невозможно отменить.",
    "resetConfirm": "Вы уверены, что хотите продолжить? (да/нет):",
    "resetSuccess": "Настройки успешно сброшены до значений по умолчанию.",
    "resetFailed": "Не удалось сбросить настройки: {error}",
    "resetDone": "Настройки успешно сброшены до значений по умолчанию.",
    "resetScriptDirsDone": "Каталоги сценариев успешно сброшены до системных значений по умолчанию.",
    "saveSuccess": "Настройки успешно сохранены.",
    "saveFailed": "Не удалось сохранить настройки.",
    "saveError": "Указаны неверные настройки",
    "pressEnter": "Нажмите Enter, чтобы продолжить...",
    "initFailed": "Не удалось инициализировать настройки: {error}",
    "invalidValueFormat": "Неверный формат значения.",
    "help": {
      "title": "Справка по настройкам",
      "navigationTitle": "Навигация",
      "navigation1": "1. Общие настройки — настройка языка пользовательского интерфейса, темы и основных настроек.",
      "navigation2": "2. Настройки каталога. Установите исходный и выходной каталоги для файлов перевода.",
      "navigation3": "3. Настройки обработки. Настройка размера пакета, параллельного выполнения и параметров производительности.",
      "navigation4": "4. Расширенные настройки — доступ к параметрам проверки, ведения журнала и экспертной конфигурации.",
      "categoriesTitle": "Категории настроек",
      "categoryUI": "• Настройки пользовательского интерфейса: язык интерфейса, цветовая тема и настройки отображения.",
      "categoryDirectory": "• Настройки каталога: расположение исходных файлов и каталоги выходных отчетов.",
      "categoryProcessing": "• Настройки обработки: пакетная обработка, ограничения файлов и настройка производительности.",
      "categoryAdvanced": "• Расширенные настройки: режим отладки, ведение журнала аудита и параметры безопасности.",
      "envVarsTitle": "Переменные среды",
      "envVar1": "• I18N_SOURCE_DIR: переопределить путь к исходному каталогу по умолчанию.",
      "envVar2": "• I18N_OUTPUT_DIR: переопределить путь к выходному каталогу по умолчанию.",
      "envVar3": "• I18N_DEBUG: включить режим отладки (истина/ложь).",
      "cliUsageTitle": "Примеры использования CLI",
      "cliUsage1": "• npx i18ntk --settings: открыть интерактивное меню настроек.",
      "cliUsage2": "• npx i18ntk --settings --lang de: открыть настройки на немецком языке.",
      "cliUsage3": "• npx i18ntk --reset-settings: сброс всех настроек до значений по умолчанию.",
      "navigation": "Используйте цифровые клавиши для выбора параметров, «b» для возврата назад.",
      "editing": "Введите новые значения при появлении запроса или нажмите Enter, чтобы сохранить текущие значения.",
      "saving": "Используйте 's', чтобы сохранить изменения перед выходом.",
      "reset": "Используйте опцию 7, чтобы сбросить все настройки к значениям по умолчанию."
    },
    "categories": {
      "uiSettings": "Настройки пользовательского интерфейса",
      "directorySettings": "Настройки каталога",
      "processingSettings": "Настройки обработки",
      "advancedSettings": "Расширенные настройки",
      "scriptDirectorySettings": "Настройки каталога скриптов",
      "securitySettings": "Настройки безопасности",
      "autoTranslate": "Настройки автоперевода"
    },
    "security": {
      "title": "🔐 Настройки безопасности",
      "description": "Настройка защиты PIN-кодом администратора и параметров безопасности",
      "currentPin": "Текущий PIN-код:",
      "pinConfigured": "✅ Настроен",
      "pinNotConfigured": "❌ Не настроено",
      "pinDisplay": "PIN-отображение:",
      "menu": {
        "enableDisable": "1) Включить/отключить PIN-код администратора",
        "setupChange": "2) Настройка/изменение PIN-кода администратора",
        "sessionTimeout": "3) Тайм-аут сеанса",
        "maxAttempts": "4) Максимальное количество неудачных попыток",
        "lockoutDuration": "5) Продолжительность блокировки",
        "back": "б) Вернуться в главное меню"
      },
      "prompts": {
        "enablePin": "Включить защиту PIN-кодом администратора? (да/нет):",
        "disablePin": "Отключить защиту PIN-кодом администратора? (да/нет):",
        "enterTimeout": "Введите тайм-аут сеанса (минуты):",
        "enterMaxAttempts": "Введите максимальное количество неудачных попыток:",
        "enterLockoutDuration": "Введите продолжительность блокировки (минуты):"
      },
      "messages": {
        "pinEnabled": "Защита PIN-кодом администратора включена",
        "pinDisabled": "Защита PIN-кодом администратора отключена",
        "timeoutUpdated": "Тайм-аут сеанса обновлен до {minutes} минуты",
        "maxAttemptsUpdated": "Максимальное количество неудачных попыток обновлено до {attempts}",
        "lockoutDurationUpdated": "Продолжительность блокировки обновлена ​​до {minutes} минуты"
      }
    },
    "fields": {
      "backup.enabled": {
        "label": "Enable Backup",
        "description": "Enable automatic backup of settings",
        "help": "Enable/disable backup feature"
      },
      "backup.singleFileMode": {
        "label": "Single File Mode",
        "description": "Use single file for backups",
        "help": "Backup settings in a single file"
      },
      "backup.singleBackupFile": {
        "label": "Backup File Path",
        "description": "Path to the backup file",
        "help": "Path to the single backup file"
      },
      "backup.retentionDays": {
        "label": "Retention Period",
        "description": "Days to keep backup files",
        "help": "Number of days to retain old backup files"
      },
      "backup.maxBackups": {
        "label": "Maximum Backups",
        "description": "Maximum backup files to keep",
        "help": "Maximum number of backup files to keep"
      },
      "backup.confirm": {
        "label": "Confirm Backup",
        "description": "Require confirmation for backup operations",
        "help": "Confirm backup operation"
      },
      "i18nDir": {
        "label": "Каталог I18n",
        "description": "Каталог, содержащий файлы перевода",
        "current": "Текущий: {value}",
        "help": "Путь к папке с файлами перевода"
      },
      "projectRoot": {
        "label": "Корень проекта",
        "description": "Корневой каталог проекта",
        "current": "Текущий: {value}",
        "help": "Путь к корневому каталогу проекта"
      },
      "checkUsage": {
        "usage_analysis_failed": "Анализ использования не удался",
        "usage_analysis_success": "Анализ использования успешен",
        "usage_analysis_complete": "Анализ использования завершен",
        "usage_analysis_in_progress": "Выполняется анализ использования",
        "usage_analysis_started": "Анализ использования начат",
        "usage_analysis_skipped": "Анализ использования пропущен"
      },
      "language": {
        "label": "Язык интерфейса",
        "description": "Язык пользовательского интерфейса",
        "current": "Текущий: {value}",
        "help": "Выберите предпочитаемый язык интерфейса"
      },
      "scriptDirectories": {
        "analyzeLabel": "Анализ каталогов сценариев",
        "analyzeHelp": "Анализ каталогов сценариев на наличие проблем",
        "completeLabel": "Полные каталоги установки",
        "initLabel": "Инициализируйте каталоги сценариев",
        "manageLabel": "Управление каталогами сценариев",
        "sizingLabel": "Изменение размера каталогов сценариев",
        "summaryLabel": "Каталоги сводных отчетов",
        "usageLabel": "Каталоги отчетов об использовании",
        "validateLabel": "Проверка каталогов сценариев"
      },
      "theme": {
        "label": "Цветовая тема",
        "description": "Предпочтение темы пользовательского интерфейса",
        "current": "Текущий: {value}",
        "help": "Выбирайте между светлыми и темными темами"
      },
      "dateFormat": {
        "label": "Формат даты",
        "description": "Формат отображения дат",
        "current": "Текущий: {value}",
        "help": "Выберите способ отображения дат в отчетах"
      },
      "notifications": {
        "enabled": {
          "label": "Включить уведомления",
          "description": "Показать уведомления на рабочем столе",
          "current": "Текущий: {value}",
          "help": "Включить уведомления на рабочем столе о завершенных операциях"
        }
      },
      "sourceDir": {
        "label": "Исходный каталог",
        "description": "Каталог, содержащий файлы перевода",
        "current": "Текущий: {value}",
        "help": "Путь к каталогу с исходными файлами перевода"
      },
      "sourceLanguage": {
        "label": "Исходный язык",
        "description": "Основной язык для переводов",
        "current": "Текущий: {value}",
        "help": "Основной язык, используемый в качестве источника для переводов"
      },
      "outputDir": {
        "label": "Выходной каталог",
        "description": "Каталог для сформированных отчетов",
        "current": "Текущий: {value}",
        "help": "Куда будут сохраняться отчеты и обработанные файлы"
      },
      "batchSize": {
        "label": "Размер партии",
        "description": "Количество обработанных изделий в партии",
        "current": "Текущий: {value}",
        "help": "Сколько файлов обрабатывать в каждом пакете"
      },
      "maxConcurrentFiles": {
        "label": "Максимальное количество одновременных файлов",
        "description": "Максимальное количество файлов, обрабатываемых одновременно",
        "current": "Текущий: {value}",
        "help": "Максимальное количество файлов для одновременной обработки"
      },
      "sizingThreshold": {
        "label": "Порог определения размера (%)",
        "description": "Порог для предупреждений об изменении размера",
        "current": "Текущий: {value}%",
        "help": "Процентный порог для обнаружения несоответствия размеров"
      },
      "strictMode": {
        "label": "Режим строгой проверки",
        "description": "Включить строгий режим проверки",
        "current": "Текущий: {value}",
        "help": "Включить строгую проверку файлов перевода"
      },
      "enableAuditLog": {
        "label": "Включить журнал аудита",
        "description": "Отслеживайте все изменения перевода",
        "current": "Текущий: {value}",
        "help": "Регистрируйте все изменения, внесенные в файлы перевода."
      },
      "backupBeforeChanges": {
        "label": "Автоматическое резервное копирование",
        "description": "Создавайте резервные копии перед изменениями",
        "current": "Текущий: {value}",
        "help": "Автоматически создавать резервные копии перед внесением изменений."
      },
      "advanced_maxConcurrentFiles": {
        "label": "Максимальное количество одновременных файлов",
        "description": "Максимальное количество файлов, обрабатываемых одновременно",
        "current": "Текущий: {value}",
        "help": "Максимальное количество файлов для одновременной обработки"
      },
      "advanced_strictMode": {
        "label": "Режим строгой проверки",
        "description": "Включить строгий режим проверки",
        "current": "Текущий: {value}",
        "help": "Включить строгую проверку файлов перевода"
      },
      "adminPinEnabled": {
        "label": "Защита PIN-кодом администратора",
        "description": "Включить аутентификацию по PIN-коду администратора для конфиденциальных настроек",
        "current": "Текущий: {value}",
        "help": "Требовать PIN-код администратора для изменения безопасности и дополнительных настроек"
      },
      "sessionTimeout": {
        "label": "Тайм-аут сеанса",
        "description": "Тайм-аут сеанса администратора в минутах",
        "current": "Текущий: {value} минуты",
        "help": "Как долго сеансы администрирования остаются активными, прежде чем потребуется повторная аутентификация"
      },
      "maxFailedAttempts": {
        "label": "Макс. неудачных попыток",
        "description": "Максимальное количество неудачных попыток ввода PIN-кода до блокировки",
        "current": "Текущий: {value} попытки",
        "help": "Количество неудачных попыток ввода PIN-кода, разрешенных до временной блокировки"
      },
      "lockoutDuration": {
        "label": "Продолжительность блокировки",
        "description": "Продолжительность блокировки после неудачных попыток",
        "current": "Текущий: {value} минуты",
        "help": "Как долго система остается заблокированной после максимального количества неудачных попыток"
      },
      "scriptDirectories_analyze": {
        "label": "Анализ каталогов сценариев",
        "description": "Пользовательские каталоги для сценария анализа",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария анализа. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_complete": {
        "label": "Полные каталоги установки",
        "description": "Пользовательские каталоги для полного сценария установки",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для полного сценария установки. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_init": {
        "label": "Инициализируйте каталоги сценариев",
        "description": "Пользовательские каталоги для инициализации скрипта",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария инициализации. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_manage": {
        "label": "Управление каталогами сценариев",
        "description": "Пользовательские каталоги для управления скриптом",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария управления. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_sizing": {
        "label": "Изменение размера каталогов сценариев",
        "description": "Пользовательские каталоги для изменения размера скрипта",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария изменения размера. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_summary": {
        "label": "Каталоги сводных отчетов",
        "description": "Пользовательские каталоги для скрипта сводного отчета",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария сводного отчета. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_usage": {
        "label": "Каталоги отчетов об использовании",
        "description": "Пользовательские каталоги для сценария отчета об использовании",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария отчета об использовании. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "scriptDirectories_validate": {
        "label": "Проверка каталогов сценариев",
        "description": "Пользовательские каталоги для проверки скрипта",
        "current": "Текущий: {value}",
        "help": "Укажите собственный исходный каталог для сценария проверки. Оставьте пустым, чтобы использовать глобальные настройки."
      },
      "security_adminPinEnabled": {
        "label": "Защита PIN-кодом администратора",
        "description": "Включить аутентификацию по PIN-коду администратора для конфиденциальных настроек",
        "current": "Текущий: {value}",
        "help": "Требовать PIN-код администратора для изменения безопасности и дополнительных настроек"
      },
      "fields": {
        "adminPinEnabled": {
          "label": "Защита PIN-кодом администратора",
          "description": "Включить аутентификацию по PIN-коду администратора для конфиденциальных настроек",
          "help": "Требовать PIN-код администратора для изменения безопасности и дополнительных настроек"
        }
      },
      "security_pinProtection_enabled": {
        "label": "Защита PIN-кодом",
        "description": "Включить защиту PIN-кодом для конфиденциальных настроек",
        "current": "Текущий: {value}",
        "help": "Требовать PIN-код для изменения безопасности и дополнительных настроек"
      },
      "pinProtection_configure": {
        "label": "Настройка сценариев, защищенных PIN-кодом",
        "description": "Настройте, какие сценарии требуют защиты PIN-кодом",
        "help": "Выберите отдельные сценарии, требующие аутентификации по PIN-коду."
      },
      "pinProtection_debugMenu": {
        "label": "Меню инструментов отладки",
        "description": "Требовать PIN-код для меню инструментов отладки",
        "current": "Текущий: {value}",
        "help": "Включить защиту PIN-кодом для доступа к инструментам отладки"
      },
      "pinProtection_deleteReports": {
        "label": "Удалить отчеты",
        "description": "Требовать PIN-код для удаления отчетов",
        "current": "Текущий: {value}",
        "help": "Включить защиту PIN-кодом для удаления отчетов"
      },
      "pinProtection_summaryReports": {
        "label": "Сводные отчеты",
        "description": "Требовать PIN-код для сводных отчетов",
        "current": "Текущий: {value}",
        "help": "Включить защиту PIN-кодом для создания сводных отчетов"
      },
      "pinProtection_settingsMenu": {
        "label": "Меню настроек",
        "description": "Требовать PIN-код для меню настроек",
        "current": "Текущий: {value}",
        "help": "Включить защиту PIN-кодом для доступа к настройкам"
      },
      "pinProtection_initScript": {
        "label": "Инициализировать скрипт",
        "description": "Требовать PIN-код для инициализации сценария",
        "current": "Текущий: {value}",
        "help": "Включите защиту PIN-кодом для запуска сценария инициализации."
      },
      "pinProtection_resetDefaults": {
        "label": "Сбросить защиту PIN-кода",
        "description": "Сбросьте все настройки защиты PIN-кодом до значений по умолчанию.",
        "help": "Сброс всех индивидуальных защитных PIN-кодов сценариев до значений по умолчанию."
      },
      "removeUiLanguages": {
        "label": "Удалить языки пользовательского интерфейса",
        "description": "Удалите языки пользовательского интерфейса, которые не установлены.",
        "help": "Удалите языки пользовательского интерфейса, которые не установлены в системе."
      },
      "${helperKey}": {
        "help": "Помощь"
      },
      "backup": {
        "enabled": {
          "label": "Включить резервное копирование",
          "description": "Включить автоматическое резервное копирование настроек",
          "help": "Включить/отключить функцию резервного копирования"
        },
        "singleFileMode": {
          "label": "Режим одного файла",
          "description": "Используйте один файл для резервного копирования",
          "help": "Резервное копирование настроек в одном файле"
        },
        "singleBackupFile": {
          "label": "Путь к файлу резервной копии",
          "description": "Путь к файлу резервной копии",
          "help": "Путь к одному файлу резервной копии"
        },
        "retentionDays": {
          "label": "Срок хранения",
          "description": "Дни хранения файлов резервных копий",
          "help": "Количество дней для хранения старых файлов резервных копий"
        },
        "maxBackups": {
          "label": "Максимальное количество резервных копий",
          "description": "Максимальное количество файлов резервных копий, которые можно сохранить",
          "help": "Максимальное количество сохраняемых файлов резервных копий"
        },
        "confirm": {
          "label": "Подтвердить резервное копирование",
          "description": "Требовать подтверждения для операций резервного копирования",
          "help": "Подтвердите операцию резервного копирования"
        }
      },
      "reports_format": {
        "label": "Формат отчета",
        "help": "Выберите markdown для читаемых отчетов, json для автоматизации или text для простых журналов."
      },
      "autoTranslate_placeholderMode": {
        "label": "Режим плейсхолдеров",
        "help": "Как обрабатывать строки с плейсхолдерами при автопереводе."
      },
      "autoTranslate_concurrency": {
        "label": "Одновременные запросы перевода",
        "help": "Максимум одновременных запросов к провайдеру. Google поддерживает до 100 в i18ntk; DeepL и LibreTranslate ограничены ниже."
      },
      "autoTranslate_batchSize": {
        "label": "Текстовых сегментов на пакет",
        "help": "Сколько текстовых сегментов планируется в один пакет."
      },
      "autoTranslate_progressInterval": {
        "label": "Интервал прогресса",
        "help": "Число готовых сегментов между обновлениями прогресса."
      },
      "autoTranslate_retryCount": {
        "label": "Повторы",
        "help": "Максимум повторов для сбойного запроса."
      },
      "autoTranslate_retryDelay": {
        "label": "Задержка повтора (мс)",
        "help": "Базовая задержка повтора в миллисекундах."
      },
      "autoTranslate_timeout": {
        "label": "Тайм-аут запроса (мс)",
        "help": "Тайм-аут запроса к провайдеру перевода."
      },
      "autoTranslate_dryRunFirst": {
        "label": "Сначала предпросмотр",
        "help": "Показать, что будет переведено, до записи файлов."
      },
      "autoTranslate_onlyMissingOrEnglish": {
        "label": "Только отсутствующие или английские ключи",
        "help": "Сохранять уже переведенные целевые значения и переводить только пустые, маркеры, копии исходника или вероятно английские значения."
      },
      "autoTranslate_reportStdout": {
        "label": "Печатать отчет в терминал",
        "help": "Выводить отчет после перевода в stdout."
      },
      "autoTranslate_bom": {
        "label": "Писать UTF-8 BOM",
        "help": "Записывать JSON-файлы с UTF-8 BOM."
      },
      "autoTranslate_protectionEnabled": {
        "label": "Защита брендов, ключей и значений",
        "help": "Включить защищенные термины, ключи, значения и шаблоны."
      },
      "autoTranslate_protectionFile": {
        "label": "JSON-файл защиты",
        "help": "JSON-файл проекта с правилами защиты автоперевода."
      },
      "autoTranslate_promptProtectionSetup": {
        "label": "Спрашивать о создании файла защиты",
        "help": "Спрашивать при первом запуске автоперевода."
      },
      "autoTranslate_promptProtectionUpdate": {
        "label": "Спрашивать о бновлении правил защиты",
        "help": "Спрашивать перед переводами из меню."
      }
    },
    "actions": {
      "editSetting": "Редактировать {setting}:",
      "settingUpdated": "✅ {setting} обновлено успешно!",
      "invalidValue": "❌ Недопустимое значение. Пожалуйста, попробуйте еще раз.",
      "pressEnter": "Нажмите Enter, чтобы продолжить...",
      "backToMenu": "Вернуться в главное меню",
      "saveSuccess": "✅ Настройки успешно сохранены!",
      "saveFailed": "❌ Не удалось сохранить настройки: {error}",
      "resetConfirm": "Вы уверены, что хотите сбросить все настройки к значениям по умолчанию? (да/нет):",
      "resetSuccess": "✅ Настройки успешно сброшены до значений по умолчанию!",
      "importSuccess": "✅ Настройки успешно импортированы!",
      "exportSuccess": "✅ Настройки успешно экспортированы!",
      "fileNotFound": "❌ Файл не найден: {path}",
      "invalidFormat": "❌ Неверный формат файла настроек.",
      "pinProtectionUpdated": "✅ Защита PIN-кодом для {script} обновлено успешно!",
      "pinProtectionReset": "✅ Все настройки защиты PIN-кодом сброшены до значений по умолчанию!",
      "pinProtectionConfigure": "Настройка защиты PIN-кодом для отдельных сценариев",
      "pinProtectionSelectScript": "Выберите скрипт для включения защиты PIN-кодом:",
      "pinProtectionCurrentStatus": "Текущий статус: {status}",
      "pinProtectionEnabled": "Включено",
      "pinProtectionDisabled": "Неполноценный",
      "pinProtectionToggle": "Переключить защиту PIN-кодом",
      "pinProtectionResetAll": "Сбросить все к настройкам по умолчанию",
      "pinProtectionBack": "Вернуться к настройкам безопасности"
    },
    "themes": {
      "light": "Свет",
      "dark": "Темный",
      "system": "Система"
    },
    "languages": {
      "en": "Английский",
      "de": "немецкий",
      "es": "испанский",
      "fr": "Французский",
      "ru": "Русский",
      "ja": "японский",
      "zh": "китайский",
      "it": "Итальянский",
      "pt": "Португальский",
      "nl": "Голландский",
      "pl": "Польский",
      "sv": "Шведский",
      "uk": "Украинский",
      "cs": "Чешский",
      "tr": "Турецкий",
      "ko": "Корейский",
      "ar": "Арабский",
      "hi": "Хинди",
      "th": "Тайский",
      "vi": "Вьетнамский",
      "he": "Иврит",
      "el": "Греческий",
      "hu": "Венгерский"
    },
    "viewAll": {
      "title": "Просмотреть все настройки"
    },
    "current": "Текущий",
    "back": "Вернуться в главное меню",
    "selectSettingPrompt": "Выберите настройку для редактирования (или b для возврата, r для сброса):",
    "invalidOption": "Неверный вариант.",
    "editing": "Редактирование",
    "enterNewValue": "Введите новое значение (или нажмите Enter, чтобы сохранить текущее значение, введите «по умолчанию», чтобы использовать системное значение по умолчанию):",
    "validOptions": "Допустимые варианты",
    "updatedSuccessfully": "обновлено успешно!",
    "noHelp": "Для этого параметра нет помощи.",
    "resetScriptDirectories": "Сброс к значениям по умолчанию",
    "resetScriptDirectoriesTitle": "Сбросить каталоги сценариев к значениям по умолчанию",
    "resetScriptDirectoriesWarning1": "Это приведет к сбросу всех конфигураций каталогов сценариев к системным значениям по умолчанию.",
    "resetScriptDirectoriesWarning2": "Все пользовательские пути к каталогам будут очищены. Это действие невозможно отменить.",
    "resetScriptDirectoriesConfirm": "Вы уверены, что хотите сбросить все каталоги сценариев до значений по умолчанию? (да/нет):",
    "backup": {
      "title": "Настройки резервного копирования",
      "description": "Резервное копирование текущих настроек в файл",
      "confirm": "Вы уверены, что хотите сделать резервную копию текущих настроек? (да/нет):",
      "success": "✅ Настройки успешно сохранены в {backupFile}",
      "failed": "❌ Не удалось выполнить резервное копирование настроек: {error}",
      "enabled": "Включить резервное копирование",
      "enabledHelp": "Включить/отключить функцию резервного копирования",
      "singleFileMode": "Режим одного файла",
      "singleFileModeHelp": "Резервное копирование настроек в одном файле",
      "singleBackupFile": "Один файл резервной копии",
      "singleBackupFileHelp": "Путь к одному файлу резервной копии",
      "retentionDays": "Дни хранения",
      "retentionDaysHelp": "Количество дней для хранения старых файлов резервных копий",
      "maxBackups": "Максимальное количество резервных копий",
      "maxBackupsHelp": "Максимальное количество сохраняемых файлов резервных копий",
      "confirmHelp": "Подтвердите операцию резервного копирования",
      "confirmYes": "Да",
      "confirmNo": "Нет"
    },
    "validation": {
      "valid": "Действительный",
      "validatingPaths": "Проверка настроенных путей...",
      "validationComplete": "Проверка пути завершена: {valid}/{total} действительный."
    }
  },
  "summary": {
    "separator": "=========================================================",
    "configurationTitle": "🔧 Конфигурация:",
    "sourceLanguage": "Исходный язык: {sourceLanguage}",
    "supportedExtensions": "Поддерживаемые расширения: {extensions}",
    "excludedFiles": "Исключенные файлы: {files}",
    "reportContent": "{report}",
    "fatalError": "❌ Неустранимая ошибка: {error}",
    "helpTitle": "📊 ГЕНЕРАТОР СВОДНЫХ ОТЧЕТОВ I18NTK",
    "helpDescription": "Анализирует структуру папок i18n и создает подробный сводный отчет, включающий ключевую статистику, анализ структуры файлов и проверки.",
    "helpUsage": "Использование: узел i18ntk-summary.js [варианты]",
    "helpOptions": "--source-dir <dir>     Исходный каталог для анализа",
    "helpSourceDir": "--source-dir <dir>     Исходный каталог для анализа",
    "helpOutput": "--выход <file>        Выходной файл отчета",
    "helpVerbose": "--verbose, -v Показать подробную информацию",
    "helpKeepReports": "--keep-reports Сохранить существующие отчеты",
    "helpDeleteReports": "--delete-reports Удалить существующие отчеты",
    "helpHelp": "--help, -h Показать эту справку",
    "helpExamples": "Примеры:",
    "helpExample1": "узел i18ntk-summary.js",
    "helpExample2": "узел i18ntk-summary.js --source-dir ./locales",
    "helpExample3": "узел i18ntk-summary.js --output summary-report.txt",
    "helpExample4": "узел i18ntk-summary.js --verbose",
    "helpExample5": "узел i18ntk-summary.js --source-dir ./locales --output report.json",
    "couldNotReadFile": "⚠️ Не удалось прочитать файл: {filePath}",
    "couldNotParseJSFile": "⚠️ Не удалось разобрать файл JS/TS: {filePath}",
    "errorReadingFile": "⚠️ Ошибка чтения файла. {filePath}: {error}",
    "analyzingFolder": "🔍 Анализ структуры папок...",
    "noLanguageDirectoriesFound": "❌ В указанном исходном каталоге не найдены языковые каталоги.",
    "foundLanguages": "✅ Найден {count} языки: {languages}",
    "referenceLanguageFiles": "📁 Язык ссылки'{language}' имеет {count} файлы",
    "analyzingLanguage": "🌍 Анализ языка: {language}",
    "keysInFiles": "📊 Найден {keys} ключи через {files} файлы",
    "checkingInconsistentKeys": "🔍 Проверка несовместимости ключей на разных языках...",
    "generatingSummaryReport": "📝 Создание сводного отчета...",
    "reportTitle": "📊 ОБЩИЙ ОТЧЕТ I18NTK",
    "generated": "Сгенерировано: {timestamp}",
    "sourceDirectory": "Исходный каталог: {dir}",
    "overview": "📈 ОБЗОР",
    "languagesCount": "Языки: {count}",
    "totalFiles": "Всего файлов: {count}",
    "totalKeys": "Всего ключей: {count}",
    "avgKeysPerLanguage": "Среднее количество ключей на язык: {count}",
    "languagesBreakdown": "🌍 РАЗБИВКА ЯЗЫКОВ",
    "languageBreakdown": "{language}: {files} файлы, {keys} ключи",
    "fileStructure": "📁 СТРУКТУРА ФАЙЛА",
    "fileKeys": "{file}: {keys} ключи",
    "missingInLanguages": "⚠️ Не хватает: {languages}",
    "issuesFound": "❌ НАЙДЕНЫ ПРОБЛЕМЫ",
    "missingFiles": "📁 Отсутствующие файлы:",
    "emptyFiles": "📄 Пустые файлы:",
    "malformedFiles": "⚠️ Неверные файлы:",
    "duplicateKeys": "🔑Дубликаты ключей:",
    "inconsistentKeys": "🔍 Несовместимые ключи:",
    "missingKeys": "Отсутствующий: {keys}{more}",
    "extraKeys": "Дополнительный: {keys}{more}",
    "noIssuesFound": "✅ ПРОБЛЕМ НЕ НАЙДЕНО",
    "allFilesConsistent": "Все файлы перевода одинаковы для разных языков.",
    "recommendations": "💡 РЕКОМЕНДАЦИИ",
    "createMissingFiles": "• Создать недостающие файлы перевода.",
    "addContentToEmptyFiles": "• Добавляйте контент в пустые файлы перевода.",
    "fixMalformedFiles": "• Исправление неправильных файлов JSON/JS.",
    "removeDuplicateKeys": "• Удаление дубликатов ключей из файлов.",
    "synchronizeKeys": "• Синхронизировать ключи на всех языках.",
    "splitLargeFiles": "• Рассмотрите возможность разделения больших файлов на более мелкие пространства имен.",
    "addMoreLanguages": "• Рассмотрите возможность добавления дополнительных языков.",
    "nextSteps": "🎯 СЛЕДУЮЩИЕ ШАГИ",
    "nextStep1": "1. Устраните все проблемы, указанные выше.",
    "nextStep2": "2. Запустите проверку, чтобы обеспечить согласованность",
    "nextStep3": "3. Рассмотрите возможность использования i18ntk-validate для детальной проверки.",
    "nextStep4": "4. Рекомендуется регулярный мониторинг.",
    "couldNotFindI18nDirectory": "❌ Не удалось найти каталог i18n. Пожалуйста, укажите --source-dir.",
    "sourceDirectoryDoesNotExist": "❌ Исходный каталог не существует: {dir}",
    "i18nSummaryReportGenerator": "📊 Генератор сводных отчетов I18N",
    "analysisComplete": "✅ Анализ завершен",
    "analyzedLanguages": "📊 Анализируемые языки: {count}",
    "processedFiles": "📁 Обработанные файлы: {count}",
    "foundTranslationKeys": "🔑 Найдены ключи перевода: {count}",
    "foundIssues": "❌ Найден {count} проблемы",
    "noIssuesConsole": "✅ Проблем не обнаружено - все файлы соответствуют друг другу!",
    "errorDuringAnalysis": "❌ Ошибка при анализе: {error}",
    "usageReportTitle": "📊 ОТЧЕТ ОБ ИСПОЛЬЗОВАНИИ I18NTK",
    "usageReportGenerated": "Сгенерировано: {timestamp}",
    "usageReportSourceDir": "Исходный каталог: {sourceDir}",
    "usageReportI18nDir": "Каталог I18n: {i18nDir}",
    "usageReportSummary": "📈 РЕЗЮМЕ",
    "usageReportSourceFilesScanned": "Исходные файлы отсканированы: {count}",
    "usageReportTranslationFilesFound": "Найдены файлы перевода: {count}",
    "usageReportAvailableKeys": "Доступные ключи перевода: {count}",
    "usageReportUsedKeys": "Используемые ключи перевода: {count}",
    "usageReportDynamicKeys": "Ключи динамического перевода: {count}",
    "usageReportUnusedKeys": "Неиспользуемые ключи перевода: {count}",
    "usageReportMissingKeys": "Отсутствуют ключи перевода: {count}",
    "usageReportNotTranslatedKeys": "Не переведенные ключи: {count}",
    "usageReportTranslationCompleteness": "🌍 ПОЛНОТА ПЕРЕВОДА",
    "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
    "usageReportNotTranslatedInLanguage": "Не переведено: {count} ключи",
    "usageReportTranslationFilesDiscovered": "📁 ФАЙЛЫ ПЕРЕВОДА",
    "usageReportFileInfo": "{relativePath} (пространство имен: {namespace}, тип: {type})",
    "usageReportUnusedTranslationKeys": "🗑️ НЕИСПОЛЬЗУЕМЫЕ КЛЮЧИ ПЕРЕВОДА",
    "usageReportUnusedKeysDescription": "Эти ключи существуют в файлах перевода, но не используются в исходном коде:",
    "usageReportUnusedKey": "• {key}",
    "usageReportMoreUnusedKeys": "... и {count} больше неиспользуемых ключей",
    "usageReportMissingTranslationKeys": "❌ ОТСУТСТВУЮТ КЛЮЧИ ПЕРЕВОДА",
    "usageReportMissingKeysDescription": "Эти ключи используются в исходном коде, но отсутствуют в файлах перевода:",
    "usageReportMissingKey": "• {key}",
    "usageReportUsedIn": "Используется в: {filePath}",
    "usageReportMoreFiles": "... и {count} больше файлов",
    "usageReportDynamicTranslationKeys": "⚡ КЛЮЧИ ДИНАМИЧЕСКОГО ПЕРЕВОДА",
    "usageReportDynamicKeysDescription": "Эти ключи используются динамически (создаются во время выполнения):",
    "usageReportDynamicKey": "• {key}",
    "usageReportFileUsageBreakdown": "📊 РАЗБИВКА ИСПОЛЬЗОВАНИЯ ФАЙЛОВ",
    "usageReportFileUsage": "{filePath}: {count} ключи",
    "status": {
      "generating": "⏳ Генерация...",
      "completed": "✅ Завершено"
    },
    "help": {
      "usage": "Использование: узел main/manage/index.js [опции]",
      "interactiveMode": "💡 Используйте: node main/manage/index.js --command=<command> для прямого исполнения",
      "initProject": "🚀 Инициализировать новые языки",
      "analyzeTranslations": "🔍 Анализировать переводы",
      "validateTranslations": "✅ Проверка переводов",
      "checkUsage": "📊 Проверьте использование ключа",
      "showHelp": "📖 Используйте: node main/manage/index.js --help для доступных команд.",
      "availableCommands": "📖 Доступные команды:",
      "initCommand": "init — инициализировать новые языки",
      "analyzeCommand": "анализировать - анализировать переводы",
      "validateCommand": "validate - Проверить переводы",
      "usageCommand": "использование — проверка использования ключа.",
      "sizingCommand": "калибровка - Анализ размеров",
      "completeCommand": "Complete – Полные переводы (100% покрытие)",
      "summaryCommand": "резюме - Показать статус проекта",
      "scannerCommand": "сканер — сканирование на наличие проблем с i18n",
      "translateCommand": "Translate — автоматически переводить файлы локали",
      "debugCommand": "debug - Отладка проблем с переводом"
    },
    "test_complete_system": {
      "starting_test": "🧪 Начинаем полную проверку системы",
      "separator": "=",
      "testing_ui_translations": "📝 Тестирование переводов пользовательского интерфейса...",
      "testing_settings_manager": "⚙️ Менеджер настроек тестирования...",
      "testing_main_scripts": "🔧 Тестирование основных скриптов...",
      "checking_translation_consistency": "🌐 Проверка согласованности перевода...",
      "non_critical_missing_keys": "ℹ️ {file}: {count} некритическое отсутствие ключей",
      "extra_keys": "ℹ️ {file}: {count} дополнительные ключи",
      "generating_report": "📊 Создание отчета...",
      "final_test_report_title": "📋 ОКОНЧАТЕЛЬНЫЙ ОТЧЕТ ИСПЫТАНИЙ",
      "passed": "✅ Пройдено: {passed}",
      "failed": "❌ Не удалось: {failed}",
      "warnings": "⚠️ Предупреждения: {warnings}",
      "missing_translations_title": "🔍 Отсутствующие переводы ({count}):",
      "missing_translation_key": "- {key}",
      "missing_translations_more": "... и {count} более",
      "errors_title": "❌ Ошибки:",
      "error_message": "- {error}",
      "overall_status": "📊 Общий статус: {status}",
      "success_message": "✅ {message}",
      "failure_message": "❌ {message}",
      "failure_error_message": "{errorMessage}",
      "warning_message": "⚠️  {message}",
      "test_runner_failed": "❌ Тестовый запуск не пройден:",
      "recommendations": {
        "add_missing_translation_keys": "Добавьте недостающие ключи перевода для обеспечения единообразия.",
        "fix_failing_scripts": "Исправьте ошибочные сценарии перед развертыванием",
        "review_warning_messages": "Просмотрите и устраните предупреждающие сообщения",
        "system_ready_for_deployment": "Система готова к развертыванию"
      },
      "hardcodedTexts": {
        "addMissingTranslationKeys": "Добавьте недостающие ключи перевода для обеспечения единообразия.",
        "fixFailingScripts": "Исправьте ошибочные сценарии перед развертыванием",
        "reviewWarningMessages": "Просмотрите и устраните предупреждающие сообщения",
        "systemReadyForDeployment": "Система готова к развертыванию"
      }
    },
    "testConsoleI18n": {
      "found_target_file": "Найден целевой файл: {fileName}",
      "scanning_files_for_console_statements": "Сканирование файлов на предмет консольных операторов...",
      "found_javascript_files": "Найденный {count} Файлы JavaScript.",
      "console_i18n_analysis_results": "Результаты консольного анализа I18n",
      "total_console_statements": "Всего консольных операторов: {count}",
      "translated_statements": "Переведенные утверждения: {count}",
      "hardcoded_statements": "Жестко закодированные утверждения: {count}",
      "translation_coverage": "Охват перевода: {percentage}%",
      "coverage_by_file": "Покрытие по файлам:",
      "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
      "hardcoded_console_statements": "Жестко запрограммированные операторы консоли:",
      "file_header": "Файл: {file}",
      "line_statement": "Линия {line}: {statement}",
      "suggested_key": "Предлагаемый ключ: {key}",
      "suggested_replacement": "Предлагаемая замена: {replacement}",
      "recommendations": "Рекомендации:",
      "recommendation_1": "1. Замените жестко запрограммированные строки вызовами i18n.t().",
      "recommendation_2": "2. Добавьте новые ключи в соответствующие файлы JSON перевода.",
      "recommendation_3": "3. Убедитесь, что все сообщения консоли ориентированы на пользователя и требуют перевода.",
      "recommendation_4": "4. Используйте литералы шаблона или конкатенацию строк для динамических сообщений, передавая переменные в i18n.t().",
      "translation_keys_to_add": "Предлагаемые ключи перевода для добавления:",
      "add_keys_instruction": "Скопируйте следующую структуру JSON в файлы перевода:",
      "perfect_translation_coverage": "Идеальное покрытие перевода!",
      "all_statements_using_translation": "Все операторы консоли используют систему перевода.",
      "i18n_console_translation_checker": "Средство проверки перевода консоли I18n",
      "script_description_line1": "Этот скрипт сканирует все файлы JavaScript на наличие операторов консоли.",
      "script_description_line2": "и проверяет, используют ли они систему перевода.",
      "analysis_completed_in_duration": "Анализ завершен в {duration} секунды.",
      "report_saved_to_path": "Отчет сохранен в: {path}",
      "found_hardcoded_messages": "Найденный {count} жестко запрограммированные сообщения. Выход с кодом ошибки 1.",
      "all_console_messages_use_translation": "Все сообщения консоли используют перевод. Выход с кодом 0.",
      "consoleTranslationsCheck": "Проверка переводов консоли"
    },
    "translate_mismatches": {
      "title": "🌐 Помощник по переводу {dryRun}",
      "separator": "====================================",
      "processing_file": "📄 Обработка {language}.json...",
      "translation_summary_title": "📊 Краткое описание перевода:",
      "total_translations_applied": "Всего примененных переводов: {totalTranslations}",
      "run_with_apply_instruction": "💡 Чтобы применить эти переводы, запустите --apply.",
      "no_translation_mappings": "⚠️ Сопоставления переводов недоступны для {language}",
      "translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
      "saved_translations": "💾 Сохранено {count} переводы на {filename}",
      "found_translatable_items": "🔍 Найден {count} переводимые предметы",
      "no_automatic_translations": "✨ Автоматические переводы недоступны.",
      "error_processing_file": "❌ Обработка ошибок {filename}: {errorMessage}",
      "coverage_report_title": "📊 Отчет об охвате переводов",
      "coverage_report_separator": "==============================",
      "file_header": "📄 {filename}:",
      "total_keys": "Всего ключей: {total}",
      "translated_keys": "Переведено: {translated}",
      "untranslated_markers": "Непереведенные маркеры: {untranslated}",
      "contains_english": "Содержит английский: {hasEnglish}",
      "coverage_percentage": "Охват: {coverage}%",
      "error_general": "❌ Ошибка:",
      "use_help": "Используйте --help для получения информации об использовании."
    },
    "cleaningUpReportFiles": "Очистка старых файлов отчетов...",
    "couldNotDelete": "Не удалось удалить {file}: {error}",
    "deletedOldReportFiles": "Удалено {count} старые файлы отчета.",
    "errorCleaningUpReports": "Ошибка очистки отчетов: {error}",
    "noOldReportFilesToDelete": "Нет старых файлов отчетов для удаления.",
    "reportFilesPreserved": "Файлы отчетов сохранены.",
    "reportSaveFailed": "Не удалось сохранить отчет в: {reportPath}",
    "reportSaved": "Отчет сохранен в: {reportPath}"
  },
  "ui": {
    "autoDetectedI18nDirectory": "Автоматически обнаруженный каталог i18n: {path}",
    "executingCommand": "Выполнение команды: {command}",
    "unknownCommand": "Неизвестная команда: {command}",
    "errorExecutingCommand": "Ошибка выполнения команды: {error}",
    "errorLoadingTranslationFile": "Ошибка загрузки файла перевода для '{language}': {error}",
    "errorSavingLanguagePreference": "Ошибка сохранения языковых настроек: {error}",
    "noActiveReadlineInterface": "Нет активного интерфейса Readline",
    "uiLanguageUpdated": "Язык пользовательского интерфейса обновлен до: {language}",
    "selectOptionPrompt": "Выберите вариант:",
    "pressEnterToReturn": "Нажмите Enter, чтобы вернуться в главное меню...",
    "detectedSourceDirectory": "Обнаружен исходный каталог: {sourceDir}",
    "detectedI18nDirectory": "Обнаружен каталог i18n: {directory}",
    "toolkitTitle": "i18ntk — набор инструментов управления корпоративным i18n",
    "versionInfo": "Версия: {version}",
    "releaseDate": "Дата выпуска: {date}",
    "maintainer": "Сопровождающий: {maintainer}",
    "nodeVersion": "Node.js: {version}",
    "license": "Лицензия: {license}",
    "whatsNew": "✨ Что нового в версии v{version}:",
    "changeItem": "{change}",
    "documentation": "📚 Документация: {url}",
    "issues": "🐛 Проблемы: {url}",
    "versionInfoUnavailable": "информация о версии i18ntk недоступна",
    "versionInfoError": "Ошибка: {error}"
  },
  "validateLanguagePurity": {
    "phrase_debug_tools": "инструменты отладки",
    "phrase_settings": "настройки",
    "phrase_configuration": "конфигурация",
    "phrase_invalid_choice": "неверный выбор",
    "phrase_please_select": "пожалуйста, выберите",
    "phrase_back_to_main_menu": "вернуться в главное меню",
    "phrase_error": "ошибка",
    "phrase_warning": "предупреждение",
    "phrase_success": "успех",
    "phrase_failed": "неуспешный",
    "phrase_loading": "загрузка",
    "phrase_saving": "экономия",
    "phrase_full_system_debug": "полная отладка системы",
    "phrase_configuration_debug": "отладка конфигурации",
    "phrase_translation_debug": "отладка перевода",
    "phrase_performance_debug": "отладка производительности",
    "phrase_admin_pin_setup": "настройка PIN-кода администратора",
    "phrase_enter_admin_pin": "введите пин-код администратора",
    "phrase_confirm_admin_pin": "подтвердить PIN-код администратора",
    "phrase_authentication_failed": "аутентификация не удалась",
    "phrase_access_denied": "доступ запрещен",
    "phrase_security_log": "журнал безопасности",
    "language_german": "немецкий",
    "language_french": "Французский",
    "language_spanish": "испанский",
    "language_russian": "Русский",
    "language_japanese": "японский",
    "language_chinese": "китайский",
    "validator_title": "🔍 Валидатор чистоты языка",
    "validating_file": "📄 Проверка {language}.json({name})...",
    "valid_file_message": "✅ Действителен – нарушений чистоты языка нет.",
    "invalid_file_message": "❌ Недействительно – {count} обнаружены нарушения",
    "no_validation_rules": "Для языка не определены правила проверки: {language}",
    "error_reading_file": "Ошибка чтения файла: {errorMessage}",
    "issue_forbidden_marker": "Содержит запрещенный маркер: {marker}",
    "issue_english_phrase": "Содержит английскую фразу: \"{phrase}\"",
    "issue_english_words": "Содержит английские слова: {words}",
    "issue_missing_cyrillic": "Длинный текст должен содержать символы кириллицы для русского языка.",
    "issue_missing_japanese": "Длинный текст должен содержать японские символы.",
    "issue_missing_chinese": "Длинный текст должен содержать китайские иероглифы.",
    "summary_title": "📊 РЕЗЮМЕ ПРОВЕРКИ",
    "overall_results_header": "📋 Общие результаты:",
    "total_files_validated": "Всего проверенных файлов: {count}",
    "valid_files": "Действительные файлы: {count}",
    "invalid_files": "Неверные файлы: {count}",
    "total_violations": "Всего нарушений: {count}",
    "violations_by_file_header": "❌ НАРУШЕНИЯ ПО ФАЙЛУ:"
  },
  "workflow": {
    "title": "Управление рабочим процессом",
    "description": "Управляйте рабочими процессами i18n.",
    "select_workflow_file": "Выберите файл рабочего процесса для запуска:",
    "no_workflow_files": "В каталоге рабочих процессов не найдены файлы рабочих процессов.",
    "invalid_selection": "Неверный выбор. Введите номер, соответствующий файлу рабочего процесса.",
    "workflow_execution_started": "Запуск рабочего процесса: {workflowName}",
    "workflow_execution_completed": "Рабочий процесс завершен: {workflowName}",
    "workflow_execution_failed": "Рабочий процесс не выполнен: {workflowName} - {error}",
    "workflow_cancelled": "Выполнение рабочего процесса отменено.",
    "press_enter_to_continue": "Нажмите Enter, чтобы продолжить!",
    "starting": "🚀Начинаем рабочий процесс...",
    "completed": "✅Рабочий процесс успешно завершен!",
    "checkReports": "📄 Подробности смотрите в отчетах.",
    "exitingCompleted": "📝Рабочий процесс завершен. Выход...",
    "summary": {
      "title": "📋 ОБЗОР РАБОЧЕГО ПРОЦЕССА",
      "separator": "===================",
      "completedAt": "🕐 Рабочий процесс завершен по адресу: {timestamp}",
      "initialViolations": "📊Первоначальные нарушения: {count}",
      "finalViolations": "📉 Итоговые нарушения: {count}",
      "totalFixes": "🔧 Всего внесено исправлений: {count}",
      "improvement": "📈 Улучшение: {percentage}%",
      "stepResults": "📝 РЕЗУЛЬТАТЫ ШАГА:",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "Нарушения: {count}",
      "fixesApplied": "Исправления: {count}",
      "nextSteps": "💡СЛЕДУЮЩИЕ ШАГИ:",
      "congratulations": "🎉Поздравляем! Все файлы локали теперь имеют идеальную языковую чистоту!",
      "cicdIntegration": "✅ Рассмотрите возможность интеграции валидатора в ваш конвейер CI/CD.",
      "automatedChecks": "✅ Настройте автоматические проверки новых переводов",
      "greatProgress": "🎯 Отличный прогресс! Большинство проблем решено.",
      "manualReview": "🔍 Просмотрите оставшиеся нарушения вручную",
      "addMappings": "🌐 Рассмотрите возможность добавления дополнительных сопоставлений перевода для крайних случаев.",
      "goodProgress": "📈 Достигнут хороший прогресс, но нужно еще поработать.",
      "expandMappings": "🔧 Расширьте сопоставления автоматического перевода.",
      "professionalReview": "👥 Рассмотрите возможность ручной проверки сложных переводов.",
      "runAgain": "🔄 Запустите рабочий процесс снова после добавления дополнительных сопоставлений.",
      "limitedProgress": "⚠️ Ограниченный прогресс. Может потребоваться ручное вмешательство.",
      "reviewMappings": "🔍 Просмотрите сопоставления переводов и добавьте недостающие.",
      "professionalServices": "👥 Рассмотрите услуги профессионального перевода",
      "checkIssues": "🔧 Проверьте наличие систематических проблем в файлах локали.",
      "success": "✅",
      "warning": "⚠️"
    }
  },
  "consoleI18nTester": {
    "found_target_file": "Найден целевой файл",
    "scanning_files_for_console_statements": "Сканирование файлов на предмет консольных операторов",
    "found_javascript_files": "Найдены файлы JavaScript",
    "console_i18n_analysis_results": "Результаты консольного анализа i18n",
    "total_console_statements": "Всего консольных операторов",
    "translated_statements": "Переведенные заявления",
    "hardcoded_statements": "Жестко закодированные утверждения",
    "translation_coverage": "Охват перевода",
    "coverage_by_file": "Покрытие по файлам",
    "file_coverage_stats": "Статистика покрытия файлов",
    "hardcoded_console_statements": "Жестко запрограммированные консольные операторы",
    "file_header": "Заголовок файла",
    "line_statement": "Оператор строки",
    "suggested_key": "Предлагаемый ключ",
    "suggested_replacement": "Предлагаемая замена",
    "recommendations": "Рекомендации",
    "recommendation_1": "Рекомендация 1",
    "recommendation_2": "Рекомендация 2",
    "recommendation_3": "Рекомендация 3",
    "recommendation_4": "Рекомендация 4",
    "translation_keys_to_add": "Ключи перевода для добавления",
    "add_keys_instruction": "Инструкция по добавлению ключей",
    "perfect_translation_coverage": "Идеальное покрытие перевода",
    "all_statements_using_translation": "Все утверждения с использованием перевода",
    "i18n_console_translation_checker": "Проверка перевода консоли I18n",
    "script_description_line1": "Строка описания скрипта1",
    "script_description_line2": "Строка описания скрипта 2",
    "analysis_completed_in_duration": "Анализ завершен в срок",
    "report_saved_to_path": "Отчет сохранен в папке",
    "found_hardcoded_messages": "Найдены жестко закодированные сообщения",
    "all_console_messages_use_translation": "Все сообщения консоли используют перевод"
  },
  "exportTranslations": {
    "createdDirectory": "Созданный каталог",
    "foundFiles": "Найденные файлы",
    "createdTemplate": "Созданный шаблон",
    "skippedExisting": "Пропущено существующее",
    "title": "Заголовок",
    "creatingTemplates": "Создание шаблонов",
    "summary": "Краткое содержание",
    "summaryLanguages": "Языки сводки",
    "summaryFilesPerLanguage": "Сводные файлы по языкам",
    "summaryTotalFiles": "Сводное общее количество файлов",
    "success": "Успех",
    "location": "Расположение",
    "nextSteps": "Следующие шаги"
  },
  "dashboard": {
    "title": "Заголовок",
    "overview": "Обзор"
  },
  "auth": {
    "title": "Заголовок",
    "email": "Электронная почта",
    "password": "Пароль",
    "signIn": "Войти",
    "forgotPassword": "Забыли пароль",
    "signUp": "Зарегистрироваться"
  },
  "checkUsage": {
    "usage_analysis_failed": "Анализ использования не удался."
  },
  "completeTranslations": {
    "warning_could_not_parse_filepa": "Внимание: не удалось проанализировать путь к файлу: {filePath}"
  },
  "pressEnterToContinue": "Нажмите Enter, чтобы продолжить...",
  "status": {
    "exitingCompleted": "Рабочий процесс завершен. Выход..."
  },
  "prompt": {
    "yesTokens": [
      "да",
      "д",
      "y",
      "yes"
    ],
    "noTokens": [
      "н",
      "нет",
      "n",
      "no"
    ]
  },
  "translate": {
    "title": "Автоперевод",
    "sourceDirectory": {
      "title": "Каталог исходной локали",
      "currentProject": "Текущий проект: {dir}",
      "accepted": "Можно указать абсолютный путь или путь относительно текущего проекта.",
      "localeRootExample": "./locales  (затем выберите исходный язык: en)",
      "folderHint": "Папка может содержать JSON-файлы напрямую или языковые папки, например ./locales/en.",
      "defaultNotFound": "Каталог по умолчанию не найден: {dir}",
      "enterExisting": "Введите существующий каталог с JSON-файлами локалей.",
      "directoryNotFound": "Каталог не найден: {dir}",
      "enterFolderExample": "Введите существующую папку, например ./locales/en.",
      "notDirectory": "Это не каталог: {dir}",
      "using": "Используется исходный каталог: {dir}",
      "noJsonDirect": "JSON-файлы напрямую не найдены: {dir}",
      "usingLanguageFolder": "Используется папка исходного языка: {dir}",
      "noJsonWithLanguageFolder": "JSON-файлы не найдены: {dir}\nТакже проверена папка исходного языка: {languageDir}",
      "noJson": "JSON-файлы не найдены: {dir}"
    },
    "targetLanguages": {
      "title": "Целевые языки",
      "allConfigured": "a) Все настроенные целевые языки: {languages}",
      "noneConfigured": "a) Все настроенные целевые языки: нет",
      "enterCodes": "Или введите один или несколько кодов языка через запятую или пробел.",
      "sourceExcluded": "Исходный язык \"{lang}\" будет исключен автоматически.",
      "noneSelected": "Не выбраны допустимые целевые языки. Отмена.",
      "configureHint": "Настройте defaultLanguages в .i18ntk-config или введите коды вручную.",
      "selected": "Целевые языки: {languages}"
    },
    "protection": {
      "title": "Защищенные термины и ключи"
    },
    "common": {
      "default": "По умолчанию: {value}",
      "examples": "Примеры:",
      "exampleValue": "Пример: {value}",
      "examplesInline": "Примеры: {examples}",
      "pressEnterDefault": "Нажмите Enter, чтобы использовать значение по умолчанию.",
      "usingDefault": "Используется по умолчанию: {value}"
    },
    "sourceLanguage": {
      "title": "Код исходного языка",
      "hint": "Он должен совпадать с языком значений в исходных JSON.",
      "using": "Исходный язык: {lang}",
      "invalid": "Недопустимый код языка. Используйте 2+ символа (напр. en, de, fr)."
    },
    "files": {
      "title": "Какие файлы перевести?",
      "all": "a) Все JSON-файлы ({count}: {files})",
      "choicePrompt": "Выбор [a/all или номер файла]: ",
      "invalidChoice": "Недопустимый выбор. Отмена."
    },
    "dryRun": {
      "previewFor": "Предпросмотр для \"{lang}\"..."
    },
    "confirm": {
      "proceed": "Продолжить реальный перевод?",
      "yesNoPrompt": "[д]а / [н]ет: ",
      "cancelled": "Перевод отменен."
    },
    "run": {
      "translatingTo": "Перевод на \"{lang}\"...",
      "failedFor": "Ошибка для \"{lang}\": {error}"
    },
    "summary": {
      "title": "Сводка:",
      "complete": "Перевод завершен!"
    },
    "nonInteractive": {
      "useDirect": "Неинтерактивный режим. Используйте прямую CLI:"
    },
    "errors": {
      "sourceDirectoryNotFound": "Каталог исходной локали не найден: {dir}"
    }
  }
}
