i18ntk
Version:
i18n Tool Kit - Zero-dependency internationalization toolkit for setup, scanning, analysis, validation, auto translation, fixing, reporting, and runtime translation loading.
772 lines • 212 kB
JSON
{
"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": "❌ Не вдалося вимкнути захист