{
  "meta": {
    "version": "4.7.0",
    "updated": "2026-07-07",
    "lang": "uk"
  },
  "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": "🎛️ Запуск налаштувань CLI...",
    "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) --вихід <file>        Вихідний файл для результатів сканування (за замовчуванням: ./i18ntk-scanner-report.json) --framework <name>     Фреймворк для націлювання (react, vue, angular, vanilla) -- шаблони <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": "Цільовий фреймворк (react, 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": "🎯 Ласкаво просимо до Text Scanner!",
      "description": "Цей інструмент сканує вихідний код на наявність жорстко закодованого англійського тексту, який може потребувати перекладу."
    },
    "frameworkPrompt": {
      "title": "🎯 Виберіть Framework",
      "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: вузол i18ntk-fixer.js [параметри] Параметри: --source-dir <dir>     Вихідний каталог для сканування (за замовчуванням: ./locales) --мови <langs>    Розділений комами список мов для виправлення --markers <markers>    Розділені комами маркери розглядати як неперекладені --no-backup Пропустити автоматичне створення резервної копії --help Показати цю довідку Приклади: node i18ntk-fixer.js --languages ​​de,fr node i18ntk-fixer.js --source-dir=./locales --markers НЕ_ПЕРЕКЛАДЕНО 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": "📋 DETAILED ISSUES:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ ВІДСУТНІ: {source} → {new}",
    "placeholderKey": "⚠️ ЗАПОВНЮВАЧ: \"{target}\" → \"{new}\"",
    "moreIssues": "... і {count} more issues. Перевірте файл звіту для повної інформації.",
    "confirmationTitle": "🤔 Ви хочете продовжити ці виправлення?",
    "confirmationOptions": "Опції:",
    "optionYes": "y - Так, застосувати всі виправлення",
    "optionNo": "n - Ні, скасувати операцію",
    "optionShow": "s - Показати докладні проблеми",
    "choicePrompt": "Ваш вибір (y/n/s):",
    "nonInteractiveMode": "⚡ Виявлено неінтерактивний режим - автоматичне застосування виправлень...",
    "reportGenerated": "📊 Створено звіт Fixer: {path}",
    "summary": "Підсумок фіксатора:",
    "welcome": {
      "title": "🎯 Ласкаво просимо до Translation Fixer!",
      "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=analyze,validate",
    "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": "SUCCESS",
    "overallStatusFailed": "FAILED",
    "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=./analysis --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": "📊 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": "📋 NEXT STEPS",
    "review_analysis_results": "1. Перегляньте результати аналізу в консолі або створений звіт.",
    "run_with_output_report": "2. Запустіть з --output-report для детального звіту.",
    "add_or_remove_translations": "3. Додайте відсутні переклади або видаліть невикористані.",
    "rerun_analysis": "4. Повторно запустіть аналіз, щоб перевірити покращення.",
    "analysis_summary": "📊 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": "📊 ANALYSIS 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": "📋 NEXT STEPS",
    "nextStep1": "1. Виконайте аналіз використання:",
    "nextStep2": "вузол i18ntk-usage.js --вихідний звіт",
    "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 USAGE ANALYSIS",
      "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": "📊 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": "🎯 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": "\\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": "📋 NEXT STEPS",
      "nextStep1": "1. Виконайте аналіз використання:",
      "nextStep2": "вузол i18ntk-usage.js --вихідний звіт",
      "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": "❌ ERRORS",
    "warningsSection": "⚠️  WARNINGS",
    "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": "📋 OVERALL SUMMARY",
    "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": "Введіть PIN-код із 4-6 цифр:",
    "pinFormatError": "❌ ПІН має складатися з 4-6 цифр. Спробуйте ще раз.",
    "confirmPinPrompt": "Підтвердьте PIN-код:",
    "pinMismatchError": "❌ PIN-коди не збігаються. Спробуйте ще раз.",
    "pinProtectionEnabledSuccess": "✅ Захист PIN-кодом адміністратора успішно ввімкнено!",
    "pinRecoveryWarning": "⚠️ Запам’ятайте свій PIN-код – у разі втрати його неможливо відновити.",
    "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": "Створіть PIN-код із 4–6 цифр для доступу адміністратора до конфіденційних налаштувань.",
    "required_for_title": "Цей PIN-код знадобиться для:",
    "required_for_1": "• Зміна параметрів безпеки",
    "required_for_2": "• Зміна розширених конфігурацій",
    "required_for_3": "• Доступ до інструментів налагодження",
    "required_for_4": "• Скидання налаштувань",
    "setup_note": "💡 Примітка: під час введення тексту ви побачите зірочки (*) — це лише маскувальні символи.",
    "setup_digits_only": "Лише цифри 0-9 приймаються як цифри PIN-коду.",
    "invalid_pin_length": "❌ Недійсний PIN-код. Має бути 4-6 цифр (тільки цифри 0-9).",
    "invalid_pin_example": "Приклад: 1234 або 567890",
    "pins_do_not_match": "❌ PIN-коди не збігаються.",
    "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": "❌ Неправильний 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": "📋 SUMMARY:",
    "total_files_analyzed": "Загальна кількість проаналізованих файлів: {totalFiles}",
    "files_with_mismatches": "Файли з невідповідностями: {filesWithMismatches}",
    "total_mismatches_found": "Загальна кількість знайдених невідповідностей: {totalMismatches}",
    "no_mismatches_found": "✅ Мовних розбіжностей не знайдено! Здається, що всі переклади виконано на правильних мовах.",
    "detailed_results_title": "🔍 DETAILED RESULTS:",
    "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": "usage - Перевірте використання ключа",
    "sizingCommand": "розмір - аналіз розмірів",
    "completeCommand": "complete - Повний переклад (100% покриття)",
    "summaryCommand": "резюме - Показати статус проекту",
    "debugCommand": "debug - налагоджувати проблеми перекладу",
    "scannerCommand": "сканер - пошук ключів",
    "translateCommand": "translate - автоматично перекладає файли локалі",
    "menu": {
      "pressEnterToContinue": "Натисніть Enter, щоб продовжити...",
      "title": "🌐 МЕНЮ КЕРУВАННЯ I18NTK",
      "description": "Інтерактивне меню для управління інтернаціоналізацією",
      "exit": "вихід"
    },
    "commands": {
      "init": "init - Ініціалізація нових мов",
      "analyze": "аналізувати - аналізувати переклади",
      "validate": "validate - Перевірити переклади",
      "usage": "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 Management Toolkit - Ініціалізація проекту",
    "initializationCancelled": "🚫 Ініціалізацію скасовано користувачем.",
    "sourceDirectoryLabel": "📁 Вихідний каталог: {dir}",
    "requiredTitle": "Потрібна ініціалізація",
    "requiredBody": "Цей проект необхідно ініціалізувати перед виконанням цієї команди.",
    "promptRunNow": "Бажаєте запустити ініціалізацію зараз? (так/ні):",
    "sourceLanguageLabel": "🌍 Мова оригіналу: {language}",
    "detectedI18nFrameworks": "🔍 Виявлено рамки i18n: {frameworks}",
    "pinMustBe4Digits": "🔐 PIN-код має складатися з 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": "🔐 Захист адміністратора вимкнено. Тепер усі дії доступні без PIN-коду.",
    "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 framework(s): {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": "- React i18next (react-i18next)",
      "vue": "- Vue i18n (vue-i18n)",
      "i18next": "- i18next (і18наступний)",
      "nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
      "svelte": "- Свелте i18n (svelte-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 framework.",
    "backup": {
      "title": "Налаштування резервного копіювання",
      "description": "Резервне копіювання вимкнено за замовчуванням, щоб уникнути рекурсії резервного копіювання та забруднення репо.",
      "enablePrompt": "Увімкнути автоматичне резервне копіювання? (так/ні):",
      "keepPrompt": "Скільки резервних копій потрібно зберігати автоматично (1-3, за замовчуванням 1):"
    },
    "completionSummaryTitle": "Резюме завершення",
    "completionSummaryBasicTitle": "Підсумок завершення (базовий)",
    "totalChanges": "Всього змін: {count}",
    "languagesProcessed": "Оброблені мови: {count}",
    "missingKeysAdded": "Додано відсутні ключі: {count}",
    "reportPrompt": "Бажаєте створити звіт? (Y/n):",
    "reportGenerated": "Звіт створено: {reportPath}",
    "reportFailed": "Не вдалося створити звіт: {error}",
    "completionError": "Помилка під час завершення: {error}",
    "optimize": {
      "title": "Оптимізація розміру упаковки",
      "preview": "Виконується попередній перегляд оптимізації локалі...",
      "reduceTip": "Ви можете зменшити розмір пакета, вибравши лише ті мови, які вам потрібні.",
      "prompt": "Бажаєте запустити інтерактивну оптимізацію зараз? (y/n):",
      "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": "📋 NEXT STEPS",
      "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": "path_validation_error",
    "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": "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": "🎛️ Запуск налаштувань CLI...",
      "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: увімкнути режим налагодження (true/false)",
      "cliUsageTitle": "Приклади використання CLI",
      "cliUsage1": "• npx i18ntk --settings: відкрити інтерактивне меню налаштувань",
      "cliUsage2": "• npx i18ntk --settings --lang de: відкрити налаштування німецькою мовою",
      "cliUsage3": "• npx i18ntk --reset-settings: скинути всі налаштування до значень за замовчуванням",
      "navigation": "Використовуйте цифрові клавіші, щоб вибрати параметри, «b», щоб повернутися",
      "editing": "Введіть нові значення, коли буде запропоновано, або натисніть Enter, щоб зберегти поточні",
      "saving": "Використовуйте '', щоб зберегти зміни перед виходом",
      "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": "b) Повернення до головного меню"
      },
      "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": "Довідка"
      },
      "reports_format": {
        "label": "Формат звіту",
        "help": "Виберіть уцінку для читабельних звітів, json для автоматизації або текст для простих журналів."
      },
      "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."
      },
      "autoTranslate_protectionEnabled": {
        "label": "Захистіть терміни бренду, ключі, цінності",
        "help": "Увімкнути редаговані користувачем захищені терміни, ключі, значення та шаблони."
      },
      "autoTranslate_protectionFile": {
        "label": "Файл JSON захисту",
        "help": "Файл JSON проекту, що містить правила захисту автоматичного перекладу."
      },
      "autoTranslate_promptProtectionSetup": {
        "label": "Попросити створити файл захисту",
        "help": "Попросити створити файл захисту під час першого запуску автоматичного перекладу."
      },
      "autoTranslate_promptProtectionUpdate": {
        "label": "Попросити оновити правила захисту",
        "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": "Підтвердьте операцію резервного копіювання"
        }
      }
    },
    "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, щоб зберегти поточне, введіть «default», щоб використовувати стандартне значення системи):",
    "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 SUMMARY REPORT",
    "generated": "Створено: {timestamp}",
    "sourceDirectory": "Вихідний каталог: {dir}",
    "overview": "📈 OVERVIEW",
    "languagesCount": "мови: {count}",
    "totalFiles": "Всього файлів: {count}",
    "totalKeys": "Всього ключів: {count}",
    "avgKeysPerLanguage": "Середня кількість ключів на мову: {count}",
    "languagesBreakdown": "🌍 МОВНИЙ ПОРУШЕННЯ",
    "languageBreakdown": "{language}: {files} файли, {keys} ключі",
    "fileStructure": "📁 СТРУКТУРА ФАЙЛУ",
    "fileKeys": "{file}: {keys} ключі",
    "missingInLanguages": "⚠️ Відсутні в: {languages}",
    "issuesFound": "❌ ISSUES FOUND",
    "missingFiles": "📁 Відсутні файли:",
    "emptyFiles": "📄 Порожні файли:",
    "malformedFiles": "⚠️ Несправні файли:",
    "duplicateKeys": "🔑 Дублікати ключів:",
    "inconsistentKeys": "🔍 Невідповідні ключі:",
    "missingKeys": "Відсутні: {keys}{more}",
    "extraKeys": "Додатково: {keys}{more}",
    "noIssuesFound": "✅ NO ISSUES FOUND",
    "allFilesConsistent": "Усі файли перекладу узгоджені для всіх мов.",
    "recommendations": "💡 РЕКОМЕНДАЦІЇ",
    "createMissingFiles": "• Створити відсутні файли перекладу",
    "addContentToEmptyFiles": "• Додайте вміст до порожніх файлів перекладу",
    "fixMalformedFiles": "• Виправте неправильні файли JSON/JS",
    "removeDuplicateKeys": "• Видалення дублікатів ключів із файлів",
    "synchronizeKeys": "• Синхронізація клавіш усіма мовами",
    "splitLargeFiles": "• Подумайте про розділення великих файлів на менші простори імен",
    "addMoreLanguages": "• Розгляньте можливість додавання інших мов",
    "nextSteps": "🎯 NEXT STEPS",
    "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 USAGE REPORT",
    "usageReportGenerated": "Створено: {timestamp}",
    "usageReportSourceDir": "Вихідний каталог: {sourceDir}",
    "usageReportI18nDir": "Каталог I18n: {i18nDir}",
    "usageReportSummary": "📈 SUMMARY",
    "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": "usage - Перевірте використання ключа",
      "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": "📋 FINAL TEST REPORT",
      "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 - Enterprise i18n Management Toolkit",
    "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": "введіть 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": "📋 WORKFLOW SUMMARY",
      "separator": "===================",
      "completedAt": "🕐 Робочий процес завершено о: {timestamp}",
      "initialViolations": "📊 Початкові порушення: {count}",
      "finalViolations": "📉 Остаточні порушення: {count}",
      "totalFixes": "🔧 Усього застосованих виправлень: {count}",
      "improvement": "📈 Покращення: {percentage}%",
      "stepResults": "📝 STEP RESULTS:",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "Порушення: {count}",
      "fixesApplied": "Застосовані виправлення: {count}",
      "nextSteps": "💡 NEXT STEPS:",
      "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": [
      "р",
      "так"
    ],
    "noTokens": [
      "п",
      "немає"
    ]
  },
  "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}"
    },
    "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/все або номер файлу]:",
      "invalidChoice": "Невірний вибір. Переривання."
    },
    "dryRun": {
      "previewFor": "Попередній перегляд для \"{lang}\"..."
    },
    "confirm": {
      "proceed": "Продовжити фактичний переклад?",
      "yesNoPrompt": "[y]es / [n]no:",
      "cancelled": "Переклад скасовано."
    },
    "run": {
      "translatingTo": "Перекладаючи на \"{lang}\"...",
      "failedFor": "Помилка для \"{lang}\": {error}"
    },
    "summary": {
      "title": "Резюме:",
      "complete": "Переклад завершено!"
    },
    "nonInteractive": {
      "useDirect": "Неінтерактивний режим. Замість цього використовуйте прямий CLI:"
    },
    "errors": {
      "sourceDirectoryNotFound": "Каталог вихідної мови не знайдено: {dir}"
    }
  }
}
