i18ntk 4.7.0 → 4.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -1
- package/README.md +15 -4
- package/main/i18ntk-ui.js +35 -30
- package/main/i18ntk-usage.js +2 -2
- package/main/i18ntk-validate.js +1 -1
- package/main/manage/commands/ValidateCommand.js +1 -1
- package/main/manage/index.js +52 -47
- package/main/manage/managers/LanguageMenu.js +3 -1
- package/main/manage/services/ConfigurationService.js +1 -1
- package/main/manage/services/FrameworkDetectionService.js +1 -1
- package/main/manage/services/UsageService.js +2 -2
- package/package.json +11 -7
- package/settings/settings-manager.js +19 -3
- package/ui-locales/ar.json +2636 -0
- package/ui-locales/cs.json +2636 -0
- package/ui-locales/de.json +17 -1
- package/ui-locales/el.json +2636 -0
- package/ui-locales/en.json +17 -1
- package/ui-locales/es.json +17 -1
- package/ui-locales/fr.json +17 -1
- package/ui-locales/he.json +2636 -0
- package/ui-locales/hi.json +2636 -0
- package/ui-locales/hu.json +2636 -0
- package/ui-locales/it.json +2636 -0
- package/ui-locales/ja.json +17 -1
- package/ui-locales/ko.json +2636 -0
- package/ui-locales/nl.json +2636 -0
- package/ui-locales/pl.json +2636 -0
- package/ui-locales/pt.json +2636 -0
- package/ui-locales/ru.json +17 -1
- package/ui-locales/sv.json +2636 -0
- package/ui-locales/th.json +2636 -0
- package/ui-locales/tr.json +2636 -0
- package/ui-locales/uk.json +2636 -0
- package/ui-locales/vi.json +2636 -0
- package/ui-locales/zh.json +17 -1
- package/utils/config-helper.js +2 -2
- package/utils/config-manager.js +3 -4
- package/utils/env-manager.js +1 -1
- package/utils/locale-optimizer.js +1 -1
|
@@ -0,0 +1,2636 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"version": "4.7.0",
|
|
4
|
+
"updated": "2026-07-07",
|
|
5
|
+
"lang": "uk"
|
|
6
|
+
},
|
|
7
|
+
"common": {
|
|
8
|
+
"welcome": "Ласкаво просимо",
|
|
9
|
+
"hello": "Привіт",
|
|
10
|
+
"goodbye": "до побачення",
|
|
11
|
+
"yes": "так",
|
|
12
|
+
"no": "немає",
|
|
13
|
+
"save": "зберегти",
|
|
14
|
+
"cancel": "Скасувати",
|
|
15
|
+
"delete": "Видалити",
|
|
16
|
+
"edit": "Редагувати",
|
|
17
|
+
"loading": "Завантаження...",
|
|
18
|
+
"offlineTitle": "Ви офлайн",
|
|
19
|
+
"offlineMessage": "Перевірте підключення до Інтернету",
|
|
20
|
+
"tryReconnect": "Спробуйте повторно підключитися",
|
|
21
|
+
"logout": "Вийти",
|
|
22
|
+
"login": "Логін",
|
|
23
|
+
"amount": "Сума",
|
|
24
|
+
"success": "Успіх",
|
|
25
|
+
"error": "Помилка",
|
|
26
|
+
"warning": "УВАГА",
|
|
27
|
+
"info": "Інформація:",
|
|
28
|
+
"debug": "Налагодження",
|
|
29
|
+
"progress": "Прогрес:",
|
|
30
|
+
"remaining": "Залишилося:",
|
|
31
|
+
"total": "Всього:",
|
|
32
|
+
"completed": "7. Виконано успішно!",
|
|
33
|
+
"missing": "Відсутня",
|
|
34
|
+
"partial": "Частковий",
|
|
35
|
+
"sameAsSource": "Те саме, що джерело:",
|
|
36
|
+
"formatMismatch": "Невідповідність формату:",
|
|
37
|
+
"typeMismatch": "Невідповідність типу:",
|
|
38
|
+
"structureMismatch": "Невідповідність структури:",
|
|
39
|
+
"invalidOption": "Недійсний варіант",
|
|
40
|
+
"separator": "==================================================",
|
|
41
|
+
"initializationFailed": "❌ Помилка ініціалізації: {error}",
|
|
42
|
+
"stackTrace": "Трасування стека: {stack}",
|
|
43
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити...",
|
|
44
|
+
"pressEnterToReturn": "Натисніть Enter, щоб повернутися до головного меню...",
|
|
45
|
+
"stepCompleted": "Крок '{stepName}' завершено.",
|
|
46
|
+
"stepFailed": "Крок '{stepName}' не вдалося.",
|
|
47
|
+
"runningStep": "Крок бігу: {stepName}",
|
|
48
|
+
"command": "Команда: {command}",
|
|
49
|
+
"startingWorkflow": "Початок робочого процесу...",
|
|
50
|
+
"workflowCompleted": "Робочий процес завершено.",
|
|
51
|
+
"checkReports": "Перевірте звіти для отримання деталей.",
|
|
52
|
+
"errorExecutingCommand": "Помилка виконання команди: {error}",
|
|
53
|
+
"genericError": "❌ Помилка: {error}",
|
|
54
|
+
"errors": {
|
|
55
|
+
"errors": "Помилки:",
|
|
56
|
+
"genericError": "❌ Помилка: {error}",
|
|
57
|
+
"initializationFailed": "❌ Помилка ініціалізації: {error}",
|
|
58
|
+
"initializationCancelled": "❌ Ініціалізацію скасовано користувачем.",
|
|
59
|
+
"translationKeyNotFound": "Ключ перекладу не знайдено: {key}",
|
|
60
|
+
"sourceDirectoryNotFound": "Вихідний каталог не знайдено: {directory}",
|
|
61
|
+
"configLoadingFailed": "Помилка завантаження конфігурації",
|
|
62
|
+
"invalidSourceDirectory": "Недійсний вихідний каталог: {directory}",
|
|
63
|
+
"securityViolation": "Виявлено порушення безпеки",
|
|
64
|
+
"authenticationFailed": "Помилка автентифікації",
|
|
65
|
+
"sourceEqualsI18nWarn": "⚠️ sourceDir дорівнює i18nDir ({sourceDir}). Повертаючись до {fallback} для сканування джерела."
|
|
66
|
+
},
|
|
67
|
+
"errorGeneratingStatusSummary": "Помилка створення підсумку статусу: {error}",
|
|
68
|
+
"errorRunningDebugTool": "Помилка запуску інструмента налагодження '{displayName}': {error}",
|
|
69
|
+
"errorReadingDebugLogs": "Помилка читання журналів налагодження: {error}",
|
|
70
|
+
"errorAnalyzingLogFile": "Помилка аналізу файлу журналу: {error}",
|
|
71
|
+
"errorAnalyzingTranslationKeys": "Помилка аналізу ключів перекладу: {error}",
|
|
72
|
+
"errorAnalyzingTranslationCompleteness": "Помилка аналізу повноти перекладу: {error}",
|
|
73
|
+
"analyzingTranslationCompleteness": "Аналіз повноти перекладу всіма мовами...",
|
|
74
|
+
"i18nDirectoryNotFound": "⚠️ Каталог i18n не знайдено: {i18nDir}",
|
|
75
|
+
"translationCompletenessAnalysisFailed": "⚠️ Помилка аналізу повноти перекладу: {error}",
|
|
76
|
+
"failedToAnalyzeLanguage": "❌ Не вдалося проаналізувати мову {language}: {error}",
|
|
77
|
+
"errorReadingI18nDirectory": "❌ Помилка читання каталогу i18n:",
|
|
78
|
+
"languageCompletenessTitle": "📈 ПОВНОТА ПЕРЕКЛАДУ ПО МОВІ",
|
|
79
|
+
"errorAnalyzingTranslationFormat": "Помилка аналізу формату перекладу: {error}",
|
|
80
|
+
"errorAnalyzingTranslationType": "Помилка аналізу типу перекладу: {error}",
|
|
81
|
+
"errorAnalyzingTranslationStructure": "Помилка аналізу структури перекладу: {error}",
|
|
82
|
+
"errorAnalyzingTranslationFormatMismatch": "Помилка аналізу невідповідності формату перекладу: {error}",
|
|
83
|
+
"errorAnalyzingTranslationTypeMismatch": "Помилка аналізу невідповідності типу перекладу: {error}",
|
|
84
|
+
"errorAnalyzingTranslationStructureMismatch": "Помилка аналізу невідповідності структури перекладу: {error}",
|
|
85
|
+
"errorAnalyzingTranslationSameAsSource": "Помилка аналізу перекладу збігається з джерелом: {error}",
|
|
86
|
+
"title": "Статус",
|
|
87
|
+
"nextStep1": "1. Перевірте аналіз використання:",
|
|
88
|
+
"nextStep2": "2. Перевірте переклади:",
|
|
89
|
+
"nextStep3": "3. Проаналізуйте повноту:",
|
|
90
|
+
"nextStep4": "4. Доповніть відсутні переклади:",
|
|
91
|
+
"nextStep5": "5. Створіть підсумковий звіт:",
|
|
92
|
+
"nextStep6": "6. Перегляньте та завершіть переклади:",
|
|
93
|
+
"generating": "Створення підсумкового звіту...",
|
|
94
|
+
"review": "Перегляд перекладів...",
|
|
95
|
+
"finalizing": "Завершення перекладів...",
|
|
96
|
+
"finalized": "Успішно завершено!",
|
|
97
|
+
"warnings": "Попередження:",
|
|
98
|
+
"completedKeys": "Готові ключі:",
|
|
99
|
+
"missingKeys": "Відсутні ключі:",
|
|
100
|
+
"partialKeys": "Часткові ключі:",
|
|
101
|
+
"home": "додому",
|
|
102
|
+
"settings": "Налаштування",
|
|
103
|
+
"startingSettings": "🎛️ Запуск налаштувань CLI...",
|
|
104
|
+
"confirm": "Підтвердити",
|
|
105
|
+
"errorExiting": "Помилка під час виходу."
|
|
106
|
+
},
|
|
107
|
+
"errors": {
|
|
108
|
+
"invalidOption": "❌ Недійсний параметр: {option}. Спробуйте ще раз.",
|
|
109
|
+
"readlineClosed": "Вхідний потік закрито; працює в неінтерактивному режимі.",
|
|
110
|
+
"noPackageJson": "Не знайдено package.json. Неможливо автоматично визначити структуру i18n.",
|
|
111
|
+
"noI18nDir": "У корені проекту не знайдено каталогу i18n.",
|
|
112
|
+
"noI18nConfig": "Не знайдено файлу конфігурації i18n у корені проекту.",
|
|
113
|
+
"errorReadingDebugLogs": "Помилка читання журналів налагодження: {error}"
|
|
114
|
+
},
|
|
115
|
+
"scanner": {
|
|
116
|
+
"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",
|
|
117
|
+
"help_options": {
|
|
118
|
+
"source_dir": "Вихідний каталог для сканування на наявність проблем i18n",
|
|
119
|
+
"output_dir": "Каталог для звітів і результатів сканування",
|
|
120
|
+
"framework": "Цільовий фреймворк (react, vue, angular, vanilla)",
|
|
121
|
+
"patterns": "Спеціальні шаблони регулярних виразів для виявлення тексту",
|
|
122
|
+
"exclude": "Шаблони файлів, які потрібно виключити зі сканування",
|
|
123
|
+
"output_report": "Створіть докладний звіт про сканування",
|
|
124
|
+
"min_length": "Мінімальна довжина тексту для перекладу",
|
|
125
|
+
"max_length": "Максимальна довжина тексту для перекладу",
|
|
126
|
+
"include_tests": "Включити тестові файли в процес сканування"
|
|
127
|
+
},
|
|
128
|
+
"starting": "🔍 Запуск текстового сканера для фреймворку: {framework}",
|
|
129
|
+
"sourceDirectory": "📁 Каталог сканування: {sourceDir}",
|
|
130
|
+
"frameworkDetected": "🎯 Виявлений фреймворк: {framework}",
|
|
131
|
+
"scanningFiles": "📊 Сканування {fileCount} файли...",
|
|
132
|
+
"foundTexts": "📝 Знайдено {textCount} тексти, що потребують перекладу",
|
|
133
|
+
"generatingReport": "📊 Створення детального звіту...",
|
|
134
|
+
"reportSaved": "💾 Звіт про сканування збережено в: {reportPath}",
|
|
135
|
+
"noTextsFound": "✅ Жорстко закодованих англійських текстів не знайдено",
|
|
136
|
+
"scanComplete": "🎉 Сканування успішно завершено!",
|
|
137
|
+
"analysisTitle": "🔍 АНАЛІЗ СКАНУВАННЯ ПЕРЕКЛАДУ",
|
|
138
|
+
"fileSummary": "📄 {file}: {count} знайдено текстів",
|
|
139
|
+
"textLocation": "📍 Лінія {line}: {text}",
|
|
140
|
+
"foundText": "знайдено {count} потенційні екземпляри жорстко закодованого тексту",
|
|
141
|
+
"context": "📝 Контекст: {context}",
|
|
142
|
+
"severity": "⚠️ Серйозність: {severity}",
|
|
143
|
+
"recommendation": "💡 Рекомендація: {recommendation}",
|
|
144
|
+
"welcome": {
|
|
145
|
+
"title": "🎯 Ласкаво просимо до Text Scanner!",
|
|
146
|
+
"description": "Цей інструмент сканує вихідний код на наявність жорстко закодованого англійського тексту, який може потребувати перекладу."
|
|
147
|
+
},
|
|
148
|
+
"frameworkPrompt": {
|
|
149
|
+
"title": "🎯 Виберіть Framework",
|
|
150
|
+
"available": "Доступні фреймворки: react, vue, angular, vanilla",
|
|
151
|
+
"description": "Введіть тип рамки (або натисніть Enter для автоматичного визначення):",
|
|
152
|
+
"input": "Рамки:"
|
|
153
|
+
},
|
|
154
|
+
"directoryPrompt": {
|
|
155
|
+
"title": "📁 Виберіть вихідний каталог",
|
|
156
|
+
"current": "Поточний каталог: {dir}",
|
|
157
|
+
"description": "Введіть каталог для сканування (або натисніть Enter для поточного):",
|
|
158
|
+
"input": "каталог:"
|
|
159
|
+
},
|
|
160
|
+
"options": {
|
|
161
|
+
"includeTests": "Включити тестові файли?",
|
|
162
|
+
"excludeDirs": "Каталоги для виключення (розділені комами):",
|
|
163
|
+
"customPatterns": "Спеціальні шаблони для сканування (регулярний вираз):"
|
|
164
|
+
},
|
|
165
|
+
"reportGenerated": "Створено звіт про сканування: {path}"
|
|
166
|
+
},
|
|
167
|
+
"fixer": {
|
|
168
|
+
"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",
|
|
169
|
+
"starting": "🚀 Початок виправлення перекладу для мов: {languages}",
|
|
170
|
+
"sourceDirectory": "📁 Вихідний каталог: {sourceDir}",
|
|
171
|
+
"sourceLanguage": "🔤 Мова оригіналу: {sourceLanguage}",
|
|
172
|
+
"markers": "🏷️ Маркери для виправлення: {markers}",
|
|
173
|
+
"scanningLanguage": "📊 Сканування {language}...",
|
|
174
|
+
"noLanguages": "❌ Не вказано мови для виправлення.",
|
|
175
|
+
"allComplete": "🎉 Усі переклади вже готові!",
|
|
176
|
+
"fullReportSaved": "📊 Повний звіт збережено в: {reportPath}",
|
|
177
|
+
"reviewReport": "Перш ніж продовжити, перегляньте звіт.",
|
|
178
|
+
"backupCreated": "💾 Резервну копію створено успішно.",
|
|
179
|
+
"applyingFixes": "🔄 Застосування виправлень...",
|
|
180
|
+
"fixingComplete": "✅ Виправлення перекладу завершено!",
|
|
181
|
+
"operationCancelled": "❌ Операцію скасовано користувачем.",
|
|
182
|
+
"analysisTitle": "🔍 АНАЛІЗ ВИПРАВЛЕННЯ ПЕРЕКЛАДУ",
|
|
183
|
+
"analysisSeparator": "==================================================",
|
|
184
|
+
"totalIssues": "Усього знайдено проблем: {totalIssues}",
|
|
185
|
+
"missingTranslations": "Відсутні переклади: {missing}",
|
|
186
|
+
"placeholderTranslations": "Переклади заповнювачів: {placeholder}",
|
|
187
|
+
"noIssues": "✅ Проблем не виявлено. Усі переклади виконано.",
|
|
188
|
+
"detailedIssues": "📋 DETAILED ISSUES:",
|
|
189
|
+
"detailedSeparator": "--------------------------------------------------",
|
|
190
|
+
"filePath": "📄 {file} → {path}",
|
|
191
|
+
"missingKey": "❌ ВІДСУТНІ: {source} → {new}",
|
|
192
|
+
"placeholderKey": "⚠️ ЗАПОВНЮВАЧ: \"{target}\" → \"{new}\"",
|
|
193
|
+
"moreIssues": "... і {count} more issues. Перевірте файл звіту для повної інформації.",
|
|
194
|
+
"confirmationTitle": "🤔 Ви хочете продовжити ці виправлення?",
|
|
195
|
+
"confirmationOptions": "Опції:",
|
|
196
|
+
"optionYes": "y - Так, застосувати всі виправлення",
|
|
197
|
+
"optionNo": "n - Ні, скасувати операцію",
|
|
198
|
+
"optionShow": "s - Показати докладні проблеми",
|
|
199
|
+
"choicePrompt": "Ваш вибір (y/n/s):",
|
|
200
|
+
"nonInteractiveMode": "⚡ Виявлено неінтерактивний режим - автоматичне застосування виправлень...",
|
|
201
|
+
"reportGenerated": "📊 Створено звіт Fixer: {path}",
|
|
202
|
+
"summary": "Підсумок фіксатора:",
|
|
203
|
+
"welcome": {
|
|
204
|
+
"title": "🎯 Ласкаво просимо до Translation Fixer!",
|
|
205
|
+
"description": "Цей інструмент допоможе вам виправити несправні переклади та заповнювачі у файлах локалізації."
|
|
206
|
+
},
|
|
207
|
+
"markerPrompt": {
|
|
208
|
+
"title": "🏷️ Налаштувати маркери заповнювачів",
|
|
209
|
+
"description": "Введіть маркери, які позначають неперекладений текст (через кому):",
|
|
210
|
+
"currentDefaults": "Стандартні маркери: {markers}",
|
|
211
|
+
"input": "Маркери (або натисніть Enter для стандартних значень):"
|
|
212
|
+
},
|
|
213
|
+
"languagePrompt": {
|
|
214
|
+
"title": "🌍 Виберіть мови для виправлення",
|
|
215
|
+
"available": "Доступні мови: {languages}",
|
|
216
|
+
"description": "Введіть мови, які потрібно виправити (через кому) або натисніть Enter для всіх:",
|
|
217
|
+
"input": "мови:",
|
|
218
|
+
"noLanguages": "Не знайдено мов для виправлення."
|
|
219
|
+
},
|
|
220
|
+
"directoryPrompt": {
|
|
221
|
+
"title": "📁 Виберіть каталог",
|
|
222
|
+
"current": "Поточний каталог: {dir}",
|
|
223
|
+
"description": "Введіть каталог, що містить файли вашої мови (або натисніть Enter для поточного):",
|
|
224
|
+
"input": "каталог:"
|
|
225
|
+
},
|
|
226
|
+
"backupLocation": "Розташування резервної копії: {dir}",
|
|
227
|
+
"completed": "Виправлення завершено.",
|
|
228
|
+
"creatingBackup": "Створення резервної копії в {dir}...",
|
|
229
|
+
"dryRunMode": "Режим сухого ходу: {mode}",
|
|
230
|
+
"error": "Помилка фіксатора: {error}",
|
|
231
|
+
"fixing": "Закріплення {language}...",
|
|
232
|
+
"foundLanguages": "знайдено {count} мови: {languages}",
|
|
233
|
+
"languageFixed": "{language}: виправлено {fixed} ключ(и), пропущено {skipped}.",
|
|
234
|
+
"running": "Запуск засобу виправлення перекладу...",
|
|
235
|
+
"totalFixed": "Всього виправлено: {count}"
|
|
236
|
+
},
|
|
237
|
+
"autorun": {
|
|
238
|
+
"stepAnalyzeTranslations": "Проаналізуйте переклади",
|
|
239
|
+
"stepCompletedWithIcon": "✅ Виконано: {stepName}",
|
|
240
|
+
"stepValidateTranslations": "Перевірте переклади",
|
|
241
|
+
"stepRunning": "▶️ Крок {stepNumber}/{totalSteps}: {stepName}",
|
|
242
|
+
"separator": "==================================================",
|
|
243
|
+
"stepFailed": "❌ Не вдалося: {stepName}",
|
|
244
|
+
"errorLabel": "Помилка",
|
|
245
|
+
"autoRunScriptTitle": "🧪 Автоматичний запуск робочого процесу",
|
|
246
|
+
"usageTitle": "Використання",
|
|
247
|
+
"runAllSteps": "Запустіть: вузол i18ntk-autorun.js",
|
|
248
|
+
"configureSettingsFirst": "Конфігурація: i18ntk-config.json або прапорці CLI",
|
|
249
|
+
"runSpecificSteps": "Використовуйте --steps=1,3 або --list, щоб показати кроки",
|
|
250
|
+
"showHelp": "--help для отримання додаткової інформації",
|
|
251
|
+
"examplesTitle": "Приклади",
|
|
252
|
+
"configExample": "вузол i18ntk-autorun.js --ui-language=zh",
|
|
253
|
+
"stepsExample1": "вузол i18ntk-autorun.js --steps=analyze,validate",
|
|
254
|
+
"stepsExample2": "вузол i18ntk-autorun.js --list",
|
|
255
|
+
"customSettingsConfiguration": "Спеціальні налаштування автозапуску",
|
|
256
|
+
"availableSteps": "Доступні кроки",
|
|
257
|
+
"startingAutoRunWorkflow": "🚀 Запуск процесу автоматичного запуску...",
|
|
258
|
+
"workflowIncludesSteps": "Робочий процес включає {count} кроки:",
|
|
259
|
+
"missingRequiredFile": "Відсутній необхідний файл: {file}",
|
|
260
|
+
"workflowStopped": "Робочий процес зупинено через збій.",
|
|
261
|
+
"workflowCompleted": "🎉 Робочий процес завершено!",
|
|
262
|
+
"successfulSteps": "Успішні кроки: {count}",
|
|
263
|
+
"failedSteps": "Невдалі дії: {count}",
|
|
264
|
+
"stepInitializeProject": "Ініціалізація проекту",
|
|
265
|
+
"stepCheckUsage": "Перевірте використання ключа",
|
|
266
|
+
"stepGenerateSummary": "Створити зведений звіт",
|
|
267
|
+
"runInitializationFirst": "Спочатку запустіть ініціалізацію.",
|
|
268
|
+
"initializationCheckPassed": "Перевірку ініціалізації пройдено.",
|
|
269
|
+
"runningStep": "Крок бігу: {stepName}",
|
|
270
|
+
"commandLabel": "Команда: {command}",
|
|
271
|
+
"stepCompletedWithTime": "Крок '{stepName}' завершено в {duration}РС.",
|
|
272
|
+
"stepCompleted": "Крок '{stepName}' завершено.",
|
|
273
|
+
"stepFailedWithError": "Крок '{stepName}' не вдалося з помилкою: {error}",
|
|
274
|
+
"requiredStepFailed": "Необхідний крок не виконано. Зупинка робочого процесу.",
|
|
275
|
+
"optionalStepFailed": "Помилка додаткового кроку. Постійний робочий процес.",
|
|
276
|
+
"stepRequired": "(обов'язково)",
|
|
277
|
+
"stepOptional": "(необов'язково)",
|
|
278
|
+
"startingExecution": "Початок виконання...",
|
|
279
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити...",
|
|
280
|
+
"runningSelectedSteps": "Виконання вибраних кроків...",
|
|
281
|
+
"invalidStepNumber": "Недійсний номер кроку: {stepNum}",
|
|
282
|
+
"executionReport": "Звіт про виконання:",
|
|
283
|
+
"requiredFailedSteps": "Необхідні кроки не виконано: {count}",
|
|
284
|
+
"stepDetails": "Деталі кроку:",
|
|
285
|
+
"reportSavedTo": "Звіт збережено в: {path}",
|
|
286
|
+
"overallStatusSuccess": "SUCCESS",
|
|
287
|
+
"overallStatusFailed": "FAILED",
|
|
288
|
+
"overallStatus": "Загальний статус: {status}",
|
|
289
|
+
"pressEnterForDefaults": "Натисніть Enter, щоб використовувати налаштування за замовчуванням для будь-якого запиту.",
|
|
290
|
+
"sourceDirPrompt": "Введіть вихідний каталог (за замовчуванням: {default}):",
|
|
291
|
+
"sourceLangPrompt": "Введіть вихідну мову (за замовчуванням: {default}):",
|
|
292
|
+
"targetLangsPrompt": "Введіть цільові мови (через кому, за замовчуванням: {default}):",
|
|
293
|
+
"translationMarkerPrompt": "Введіть маркер перекладу (за замовчуванням: {default}):",
|
|
294
|
+
"outputDirPrompt": "Введіть вихідний каталог для звітів (за замовчуванням: {default}):",
|
|
295
|
+
"settingsUpdatedSuccessfully": "Налаштування успішно оновлено!",
|
|
296
|
+
"errorConfiguringSettings": "Помилка налаштування параметрів: {error}",
|
|
297
|
+
"configurationComplete": "Налаштування завершено.",
|
|
298
|
+
"runAutoRunCommand": "Тепер ви можете запустити команду автозапуску.",
|
|
299
|
+
"configurationFailed": "Помилка конфігурації: {error}",
|
|
300
|
+
"noValidStepNumbers": "Не надано дійсних номерів кроків.",
|
|
301
|
+
"autoRunFailed": "Помилка автоматичного запуску: {error}",
|
|
302
|
+
"stepCompleteTranslations": "Повні переклади",
|
|
303
|
+
"stepAnalyzeSizing": "Проаналізуйте розміри",
|
|
304
|
+
"stepCompletedIcon": "✅",
|
|
305
|
+
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Крок '{stepName}'біжить...",
|
|
306
|
+
"stepFailedIcon": "❌",
|
|
307
|
+
"translationLoadWarning": "Попередження: не вдалося завантажити {lang} переклади",
|
|
308
|
+
"configReadError": "Помилка читання {file}"
|
|
309
|
+
},
|
|
310
|
+
"analyze": {
|
|
311
|
+
"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",
|
|
312
|
+
"source_directory": "📁 Вихідний каталог: {sourceDir}",
|
|
313
|
+
"i18n_directory": "🌐 Каталог I18n: {i18nDir}",
|
|
314
|
+
"loading_translation_files": "📋 Завантаження файлів перекладу...",
|
|
315
|
+
"sourceDirectoryLabel": "📁 Вихідний каталог: {sourceDir}",
|
|
316
|
+
"sourceLanguageLabel": "🌍 Мова оригіналу: {sourceLanguage}",
|
|
317
|
+
"strictModeLabel": "⚙️ Строгий режим: {mode}",
|
|
318
|
+
"found_translation_files_count": "✅ Знайдено {count} файли перекладу",
|
|
319
|
+
"analyzing_translations": "🔍 Аналізуємо переклади...",
|
|
320
|
+
"analysis_completed_successfully": "🎉 Аналіз успішно завершено!",
|
|
321
|
+
"analysis_results": "📊 ANALYSIS RESULTS",
|
|
322
|
+
"language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% перекладено)",
|
|
323
|
+
"sample_missing_keys": "Зразок відсутніх ключів:",
|
|
324
|
+
"missing_key": "- {key}",
|
|
325
|
+
"and_more_missing": "...і {count} більше.",
|
|
326
|
+
"sample_unused_keys": "Зразки невикористаних ключів:",
|
|
327
|
+
"unused_key": "- {key}",
|
|
328
|
+
"and_more_unused": "...і {count} більше.",
|
|
329
|
+
"recommendations": "📋 РЕКОМЕНДАЦІЇ",
|
|
330
|
+
"add_missing_translations": "💡 Додайте відсутні переклади, щоб покращити покриття.",
|
|
331
|
+
"remove_unused_translations": "💡 Видаліть невикористані переклади, щоб ваш проект був чистим.",
|
|
332
|
+
"next_steps": "📋 NEXT STEPS",
|
|
333
|
+
"review_analysis_results": "1. Перегляньте результати аналізу в консолі або створений звіт.",
|
|
334
|
+
"run_with_output_report": "2. Запустіть з --output-report для детального звіту.",
|
|
335
|
+
"add_or_remove_translations": "3. Додайте відсутні переклади або видаліть невикористані.",
|
|
336
|
+
"rerun_analysis": "4. Повторно запустіть аналіз, щоб перевірити покращення.",
|
|
337
|
+
"analysis_summary": "📊 ANALYSIS SUMMARY",
|
|
338
|
+
"source_files_scanned": "Відскановані вихідні файли: {fileCount}",
|
|
339
|
+
"translation_files_checked": "Перевірено файли перекладу: {translationFileCount}",
|
|
340
|
+
"total_keys": "Всього ключів: {totalKeys}",
|
|
341
|
+
"translated_keys": "Перекладені ключі: {translatedKeys}",
|
|
342
|
+
"missing_keys": "Відсутні ключі: {missingKeys}",
|
|
343
|
+
"unused_keys": "Невикористані ключі: {unusedKeys}",
|
|
344
|
+
"translation_coverage": "Покриття перекладу: {coverage}%",
|
|
345
|
+
"analysis_passed_for_language": "✅Аналіз пройдено {language}",
|
|
346
|
+
"analysis_failed_for_language": "❌ Не вдалося виконати аналіз {language} ({missingKeys} відсутній, {unusedKeys} невикористаний)",
|
|
347
|
+
"starting": "🔍 Початок аналізу перекладу...",
|
|
348
|
+
"foundLanguages": "📋 Знайдено {count} мови для аналізу: {languages}",
|
|
349
|
+
"analyzing": "🔄 Аналізуємо {language}...",
|
|
350
|
+
"reportTitle": "📊 ЗВІТ ПРО АНАЛІЗ ПЕРЕКЛАДУ",
|
|
351
|
+
"generated": "Створено: {timestamp}",
|
|
352
|
+
"status": "Статус: {translated}/{total} ключі ({percentage}% перекладено)",
|
|
353
|
+
"filesAnalyzed": "Проаналізовано файли: {analyzed}/{total}",
|
|
354
|
+
"keysNeedingTranslation": "Ключі потребують перекладу: {count}",
|
|
355
|
+
"fileBreakdown": "📋 РОЗБІК ФАЙЛУ",
|
|
356
|
+
"error": "Помилка",
|
|
357
|
+
"completed": "✅ Аналіз виконано для {language}",
|
|
358
|
+
"progress": "📊 Загальний прогрес: {translated}/{total} оброблених мов",
|
|
359
|
+
"reportSaved": "Звіт збережено: {reportPath}",
|
|
360
|
+
"summary": "📊 ANALYSIS SUMMARY",
|
|
361
|
+
"finished": "✅ Аналіз успішно завершено!",
|
|
362
|
+
"statusFileMissing": "❌ Відсутній файл перекладу",
|
|
363
|
+
"sourceKeys": "📊 Ключі вихідних кодів: {count}",
|
|
364
|
+
"translation": "📊 Переклад: {translated}/{total} ({percentage}%)",
|
|
365
|
+
"structure": "🗂️ Структура: {status}",
|
|
366
|
+
"consistent": "Послідовний",
|
|
367
|
+
"inconsistent": "Непослідовний",
|
|
368
|
+
"missingKeys": "Відсутні ключі: {count}",
|
|
369
|
+
"extraKeys": "Додаткові ключі: {count}",
|
|
370
|
+
"issues": "⚠️ Знайдено проблеми: {count}",
|
|
371
|
+
"issueType": {
|
|
372
|
+
"not_translated": "Не перекладено: {count}",
|
|
373
|
+
"empty_value": "Порожні значення: {count}",
|
|
374
|
+
"partial_translation": "Часткові переклади: {count}",
|
|
375
|
+
"format_mismatch": "Невідповідність формату: {count}",
|
|
376
|
+
"type_mismatch": "Типові невідповідності: {count}",
|
|
377
|
+
"structure_mismatch": "Невідповідності структури: {count}",
|
|
378
|
+
"same_as_source": "Те саме, що джерело: {count}"
|
|
379
|
+
},
|
|
380
|
+
"keysToTranslate": "📋 КЛЮЧІ ДЛЯ ПЕРЕКЛАДУ",
|
|
381
|
+
"key": "ключ",
|
|
382
|
+
"english": "англійська",
|
|
383
|
+
"needsTranslation": "ПОТРЕБУЄ ПЕРЕКЛАДУ",
|
|
384
|
+
"andMoreKeys": "...і {count} більше ключів.",
|
|
385
|
+
"noLanguages": "⚠️ Цільові мови не знайдено.",
|
|
386
|
+
"languageStats": "{language}: {percentage}% виконано ({translated}/{total} ключі)",
|
|
387
|
+
"invalidReportFilePath": "Недійсний шлях до файлу звіту",
|
|
388
|
+
"failedToWriteReportFile": "Не вдалося безпечно записати файл звіту"
|
|
389
|
+
},
|
|
390
|
+
"complete": {
|
|
391
|
+
"configLoadedSuccessfully": "Конфігурація успішно завантажена",
|
|
392
|
+
"configLoadingFailed": "Помилка завантаження конфігурації",
|
|
393
|
+
"sourceLanguageNotFound": "Каталог вихідної мови не знайдено: {sourceLanguage}",
|
|
394
|
+
"couldNotParseTarget": "Не вдалося проаналізувати цільовий файл: {file}",
|
|
395
|
+
"couldNotParseSource": "Не вдалося проаналізувати вихідний файл: {file}",
|
|
396
|
+
"reportGenerated": "Звіт створено: {path}",
|
|
397
|
+
"generateReportPrompt": "Бажаєте створити звіт?",
|
|
398
|
+
"title": "🌍 I18NTK ЗАВЕРШЕННЯ ПЕРЕКЛАДУ",
|
|
399
|
+
"separator": "============================================================",
|
|
400
|
+
"sourceDir": "📁 Вихідний каталог: {sourceDir}",
|
|
401
|
+
"sourceLanguage": "🌐 Мова оригіналу: {sourceLanguage}",
|
|
402
|
+
"dryRunMode": "🧪 Режим сухого ходу - жодних змін не буде",
|
|
403
|
+
"languages": "🌍 Доступні мови: {languages}",
|
|
404
|
+
"addingMissingKeys": "➕ Додавання відсутніх ключів до файлів перекладу...",
|
|
405
|
+
"processing": "🔄 Обробка {language}...",
|
|
406
|
+
"addedKeys": "✅ Додано {count} відсутні ключі",
|
|
407
|
+
"noChangesNeeded": "✅ Ніяких змін не потрібно {language}",
|
|
408
|
+
"summaryTitle": "📊 ПІДСУМКИ ЗАВЕРШЕННЯ",
|
|
409
|
+
"totalChanges": "📝 Загальні зміни: {totalChanges}",
|
|
410
|
+
"languagesProcessed": "🌍 Оброблені мови: {languagesProcessed}",
|
|
411
|
+
"missingKeysAdded": "➕ Додано відсутні ключі: {missingKeysAdded}",
|
|
412
|
+
"nextStepsTitle": "📋 NEXT STEPS",
|
|
413
|
+
"nextStep1": "1. Виконайте аналіз використання:",
|
|
414
|
+
"nextStep2": "вузол i18ntk-usage.js --вихідний звіт",
|
|
415
|
+
"nextStep3": "2. Перевірте переклади:",
|
|
416
|
+
"nextStep4": "вузол i18ntk-validate.js",
|
|
417
|
+
"nextStep5": "3. Проаналізуйте шаблони:",
|
|
418
|
+
"nextStep6": "вузол i18ntk-analyze.js",
|
|
419
|
+
"allKeysAvailable": "🎉 Усі ключі перекладу тепер доступні!",
|
|
420
|
+
"runWithoutDryRun": "💡 Запустіть без --dry-run, щоб застосувати зміни",
|
|
421
|
+
"deletingOldReport": "🗑️ Видалення старого звіту...",
|
|
422
|
+
"generatingFreshAnalysis": "📊 Створення нового аналізу використання...",
|
|
423
|
+
"couldNotGenerate": "❌ Не вдалося створити аналіз використання",
|
|
424
|
+
"reportNotFound": "📋 Звіт про використання не знайдено. Використання загальних ключів...",
|
|
425
|
+
"foundMissingKeys": "📋 Знайдено {count} відсутні ключі в аналізі використання",
|
|
426
|
+
"couldNotParse": "❌ Не вдалося проаналізувати звіт про використання. Використання загальних ключів...",
|
|
427
|
+
"errorDuringCompletion": "❌ Помилка під час завершення: {error}",
|
|
428
|
+
"fatalError": "❌ Фатальна помилка: {error}",
|
|
429
|
+
"configurationValidationFailed": "Помилка перевірки конфігурації: відсутні обов’язкові поля"
|
|
430
|
+
},
|
|
431
|
+
"sizing": {
|
|
432
|
+
"separator": "================================================================================",
|
|
433
|
+
"lineSeparator": "--------------------------------------------------------------------------------",
|
|
434
|
+
"analysisStats": "{stats}",
|
|
435
|
+
"sourceDirectoryLabel": "📁 Вихідний каталог: {sourceDir}",
|
|
436
|
+
"sourceLanguageLabel": "🌍 Мова оригіналу: {sourceLanguage}",
|
|
437
|
+
"strictModeLabel": "⚙️ Суворий режим: {mode}",
|
|
438
|
+
"invalidSourceDirectoryError": "Недійсний шлях вихідного каталогу: {sourceDir}",
|
|
439
|
+
"sourceDirectoryNotFoundError": "Вихідний каталог не знайдено: {sourceDir}",
|
|
440
|
+
"invalidOutputDirectoryError": "Недійсний вихідний шлях каталогу: {outputDir}",
|
|
441
|
+
"invalidReportFileError": "Недійсний шлях до файлу звіту",
|
|
442
|
+
"problematic_keys": "Проблемні ключі: {problematicKeys}",
|
|
443
|
+
"problematicKeysLabel": "Проблемні ключі: {problematicKeys}",
|
|
444
|
+
"long_translations": "Довгі переклади: {longTranslations}",
|
|
445
|
+
"failedToSaveReportError": "Не вдалося безпечно зберегти звіт",
|
|
446
|
+
"invalidCsvFileError": "Недійсний шлях до файлу CSV",
|
|
447
|
+
"failedToSaveCsvError": "Не вдалося безпечно зберегти звіт CSV",
|
|
448
|
+
"fatalError": "❌ Помилка аналізу розміру: {error}",
|
|
449
|
+
"starting_i18n_sizing_analysis": "Початок аналізу розмірів i18n...",
|
|
450
|
+
"source_directory": "Вихідний каталог: {sourceDir}",
|
|
451
|
+
"found_languages": "Знайдені мови: {languages}",
|
|
452
|
+
"analyzing_file_sizes": "Аналіз розмірів файлів...",
|
|
453
|
+
"analyzing_translation_content": "Аналіз вмісту перекладу...",
|
|
454
|
+
"generating_size_comparisons": "Порівняння розмірів...",
|
|
455
|
+
"no_languages_found_for_comparison": "Не знайдено мов для порівняння",
|
|
456
|
+
"sizing_analysis_results": "Результати аналізу розмірів I18n",
|
|
457
|
+
"file_sizes_title": "Розміри файлів",
|
|
458
|
+
"file_sizes_header": "Мова Розмір (КБ) Рядки Символи",
|
|
459
|
+
"file_size_row": "{lang} {sizeKB} {lines} {characters}",
|
|
460
|
+
"language_statistics_title": "Мовна статистика",
|
|
461
|
+
"language_stats_header": "Мовні ключі Символи Середня довжина Макс. довжина Порожній Довгий",
|
|
462
|
+
"language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
|
|
463
|
+
"size_variations_title": "Варіації розміру",
|
|
464
|
+
"size_variations_header": "Мова Char Diff % Diff Проблематична",
|
|
465
|
+
"size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
|
|
466
|
+
"problematic_yes": "так",
|
|
467
|
+
"problematic_no": "немає",
|
|
468
|
+
"recommendations_title": "Рекомендації",
|
|
469
|
+
"recommendation_item": "{index}. {recommendation}",
|
|
470
|
+
"problematic_key_detail": "{index}. Ключ: '{key}' - Варіації: {variations}",
|
|
471
|
+
"generating_detailed_report": "Створення детального звіту...",
|
|
472
|
+
"keysHaveSignificantSizeVariations": "ключі мають значні варіації розміру",
|
|
473
|
+
"longTranslationsDetected": "${lang} має переклади ${data.longKeys}, які довші за 100 символів - розбийте їх на частини",
|
|
474
|
+
"longer": "довше",
|
|
475
|
+
"shorter": "коротше",
|
|
476
|
+
"review_translations": "Подумайте про перегляд {lang} переклади - вони є {percentageDifference}% {comparison} ніж базовий рівень",
|
|
477
|
+
"report_saved_to": "Звіт збережено в: {reportPath}",
|
|
478
|
+
"considerReviewingTranslations": "Подумайте про перегляд ${lang} переклади – вони на ${data.percentageDifference}% довші за базову лінію",
|
|
479
|
+
"csv_report_saved_to": "Звіт CSV збережено в: {csvPath}",
|
|
480
|
+
"human_report_saved": "Читабельний звіт збережено: {reportPath}",
|
|
481
|
+
"folder_summary_title": "Резюме папки",
|
|
482
|
+
"folder_summary_table_header": "Мова Розмір (КБ) Ключі Середня довжина Загальна кількість символів",
|
|
483
|
+
"folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
|
|
484
|
+
"language_comparison_title": "Мовне порівняння",
|
|
485
|
+
"language_comparison_row": "{lang}: {diff} символи ({percent}%) {status}",
|
|
486
|
+
"summary_stats": "📊 Підсумок: {totalLanguages} мови, {totalKeys} ключі - Звіти зберігаються в {reportPath}",
|
|
487
|
+
"detailedKeysDescription": "Показати детальний аналіз рівня ключів у консолі",
|
|
488
|
+
"too_many_keys_warning": "⚠️ Забагато клавіш для відображення в консолі - перевірте файл детального звіту для повного аналізу",
|
|
489
|
+
"no_translation_files_found": "Файлів перекладу не знайдено",
|
|
490
|
+
"analysis_completed": "Аналіз завершено в {duration}РС",
|
|
491
|
+
"analysis_failed": "Аналіз не виконано: {errorMessage}",
|
|
492
|
+
"starting_analysis": "Початок аналізу...",
|
|
493
|
+
"found_files": "знайдено {count} файли",
|
|
494
|
+
"failed_to_parse_language_error": "Не вдалося розібрати {language} переклади: {errorMessage}",
|
|
495
|
+
"recommendations": {
|
|
496
|
+
"keys_have_significant_size_variations": "ключі мають значні варіації розміру",
|
|
497
|
+
"consider_reviewing_translations": "Подумайте про перегляд {lang} переклади - вони є {percentageDifference}% {comparison} ніж базовий рівень",
|
|
498
|
+
"long_translations_detected": "{lang} має {longKeys} переклади довші ніж {threshold} символи - подумайте про те, щоб розбити їх"
|
|
499
|
+
},
|
|
500
|
+
"detailed_key_analysis_title": "Детальний аналіз ключів",
|
|
501
|
+
"key_analysis_detail": "{lang}: {length} символи ({status}) - {translation}",
|
|
502
|
+
"key_analysis_header": "ключ: {key}",
|
|
503
|
+
"status_empty": "порожній",
|
|
504
|
+
"status_long": "довго",
|
|
505
|
+
"status_ok": "добре"
|
|
506
|
+
},
|
|
507
|
+
"usage": {
|
|
508
|
+
"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",
|
|
509
|
+
"source_directory_thissourcedir": "📁 Вихідний каталог: {sourceDir}",
|
|
510
|
+
"translationCompletenessTitle": "🌍 Повнота перекладу:",
|
|
511
|
+
"i18n_directory_thisi18ndir": "🌐 Каталог I18n: {i18nDir}",
|
|
512
|
+
"failed_to_parse_filename_error": "⚠️ Не вдалося проаналізувати {fileName}: {errorMessage}",
|
|
513
|
+
"analyzing_source_files": "🔍 Аналіз вихідних файлів...",
|
|
514
|
+
"found_files_in_source": "📂 Знайдено {numFiles} файлів у вихідному каталозі",
|
|
515
|
+
"found_thisusedkeyssize_unique_": "🎯 Знайдено {usedKeysSize} унікальні використані ключі",
|
|
516
|
+
"total_key_usages_totalkeysfoun": "📊 Загальна кількість ключових використань: {totalKeysFound}",
|
|
517
|
+
"loading_available_translation_": "📋 Завантаження доступних ключів перекладу...",
|
|
518
|
+
"found_thisavailablekeyssize_av": "✅ Знайдено {availableKeysSize} доступні ключі",
|
|
519
|
+
"foundTranslationFiles": "✅ Знайдено {count} файли перекладу",
|
|
520
|
+
"errorReadingI18nDirectory": "⚠️ Помилка читання каталогу i18n: {error}",
|
|
521
|
+
"pressEnterToReturnToMenu": "📝 Натисніть Enter, щоб повернутися до головного меню...",
|
|
522
|
+
"notTranslatedKeysTotal": "⚠️ Неперекладені ключі: {total}",
|
|
523
|
+
"noSourceFilesFound": "⚠️ У вихідному каталозі не знайдено вихідних файлів.",
|
|
524
|
+
"reviewNotTranslatedKeys": "💡 Перегляньте неперекладені ключі",
|
|
525
|
+
"analysisCompletedSuccessfully": "🎉 Аналіз успішно завершено!",
|
|
526
|
+
"detectedSourceDirectory": "Виявлений вихідний каталог: {sourceDir}",
|
|
527
|
+
"detectedI18nDirectory": "Виявлено каталог i18n: {i18nDir}",
|
|
528
|
+
"fileInfo": "📄 {namespace}: {keys} ключі",
|
|
529
|
+
"failedToAnalyzeUsage": "❌ Не вдалося проаналізувати використання: {error}",
|
|
530
|
+
"failedToAnalyzeFile": "❌ Не вдалося проаналізувати файл: {error}",
|
|
531
|
+
"failedToExtractKeys": "❌ Не вдалося отримати ключі з {filePath}: {error}",
|
|
532
|
+
"analysisFailedError": "❌ Аналіз не вдалося: {error}",
|
|
533
|
+
"analyzerInitialized": "Аналізатор ініціалізовано",
|
|
534
|
+
"analyzerInitFailed": "Помилка ініціалізації аналізатора: {error}",
|
|
535
|
+
"argsParsed": "Розібрані аргументи",
|
|
536
|
+
"processedFiles": "Оброблено {processedFiles} з {totalFiles} файли.",
|
|
537
|
+
"argsParseFailed": "Помилка аналізу аргументу: {error}",
|
|
538
|
+
"translationDiscoveryError": "Помилка виявлення перекладу: {error}",
|
|
539
|
+
"fileTraversalError": "Помилка проходження файлу: {error}",
|
|
540
|
+
"sourceEqualsI18nWarn": "{reason}. Аналіз використання не скануватиме файли локалі як вихідний код.",
|
|
541
|
+
"i18nEqualsSourceWarn": "⚠️ Каталог I18n і вихідний каталог однакові. Це може спричинити проблеми з аналізом.",
|
|
542
|
+
"usageAnalysisFailed": "⚠️ Помилка аналізу використання: {error}",
|
|
543
|
+
"translationFileParseError": "⚠️ Помилка аналізу файлу перекладу: {error}",
|
|
544
|
+
"translationKeysLoadError": "⚠️ Помилка завантаження ключів перекладу: {error}",
|
|
545
|
+
"languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% перекладено)",
|
|
546
|
+
"missingKeysCount": "⚠️ Відсутні ключі: {count}",
|
|
547
|
+
"analyzingTranslationCompleteness": "Аналіз повноти перекладу...",
|
|
548
|
+
"unusedKeysCount": "Невикористані ключі: {count}",
|
|
549
|
+
"usedKeysCount": "Використані ключі: {count}",
|
|
550
|
+
"availableKeysCount": "Доступні ключі: {count}",
|
|
551
|
+
"analysisResults": "Результати аналізу:",
|
|
552
|
+
"i18nDirectoryNotFound": "⚠️ Каталог I18n не знайдено. Будь ласка, перевірте шлях.",
|
|
553
|
+
"sourceDirectoryNotFound": "⚠️ Вихідний каталог не знайдено: {dir}",
|
|
554
|
+
"checkUsage": {
|
|
555
|
+
"title": "🔍 I18NTK USAGE ANALYSIS",
|
|
556
|
+
"analyzing_source_files": "🔍 Аналіз вихідних файлів...",
|
|
557
|
+
"source_directory_thissourcedir": "📁 Вихідний каталог: {sourceDir}",
|
|
558
|
+
"i18n_directory_thisi18ndir": "📁 Каталог i18n: {i18nDir}",
|
|
559
|
+
"found_files_in_source": "✅ Знайдено {numFiles} файлів у вихідному каталозі",
|
|
560
|
+
"no_source_files_found": "⚠️ У вказаному каталозі не знайдено вихідних файлів",
|
|
561
|
+
"processedFiles": "📊 Оброблено {processedFiles} з {totalFiles} файли",
|
|
562
|
+
"failedToProcessFile": "❌ Не вдалося обробити",
|
|
563
|
+
"found_thisusedkeyssize_unique_": "🔍 Знайдено {usedKeysSize} унікальні використані ключі",
|
|
564
|
+
"total_key_usages_totalkeysfoun": "📊 Загальна кількість ключових використань: {totalKeysFound}",
|
|
565
|
+
"loading_available_translation_": "📂 Завантаження доступних ключів перекладу...",
|
|
566
|
+
"found_thisavailablekeyssize_av": "✅ Знайдено {availableKeysSize} доступні ключі",
|
|
567
|
+
"message": "Аналіз використання ключа перекладу у вашому проекті...",
|
|
568
|
+
"usage_analysis_results": "📊 USAGE ANALYSIS RESULTS",
|
|
569
|
+
"source_files_scanned_thisfileu": "📁 Відскановані вихідні файли: {fileUsageSize}",
|
|
570
|
+
"available_translation_keys_thi": "✅ Доступні ключі перекладу: {availableKeysSize}",
|
|
571
|
+
"used_translation_keys_thisused": "🔍 Використані ключі перекладу: {usedKeysSize}",
|
|
572
|
+
"dynamic_keys_detected_dynamick": "⚡ Виявлено динамічні ключі: {dynamicKeysLength}",
|
|
573
|
+
"unused_keys_unusedkeyslength": "🗑️ Невикористані ключі: {unusedKeysLength}",
|
|
574
|
+
"missing_keys_missingkeyslength": "❌ Відсутні ключі: {missingKeysLength}",
|
|
575
|
+
"translation_completeness_title": "📈 ПОВНОТА ПЕРЕКЛАДУ",
|
|
576
|
+
"language_completeness_stats": "{language}: {translated}/{total} ключі ({percentage}%)",
|
|
577
|
+
"n_sample_unused_keys": "🗑️ ЗРАЗКИ НЕВИКОРИСТАНИХ КЛЮЧІВ (перші 5):",
|
|
578
|
+
"key": "🔑 {key}",
|
|
579
|
+
"and_unusedkeyslength_5_more": "... і {count} більше невикористаних ключів",
|
|
580
|
+
"n_sample_missing_keys": "❌ ЗРАЗКИ ВІДСУТНИХ КЛЮЧІВ (перші 5):",
|
|
581
|
+
"and_missingkeyslength_5_more": "... і {count} більше відсутніх ключів",
|
|
582
|
+
"n_generating_detailed_report": "📊 Створення детального звіту...",
|
|
583
|
+
"report_saved_reportpath": "📄 Звіт збережено: {reportPath}",
|
|
584
|
+
"n_recommendations": "💡 РЕКОМЕНДАЦІЇ:",
|
|
585
|
+
"consider_removing_unused_trans": "🗑️ Подумайте про видалення невикористаних перекладів, щоб зменшити розмір пакета",
|
|
586
|
+
"add_missing_translation_keys_t": "➕ Додайте відсутні ключі перекладу, щоб зберегти узгодженість",
|
|
587
|
+
"review_dynamic_keys_manually_t": "🔍 Перегляньте динамічні ключі вручну (вони можуть бути дійсними)",
|
|
588
|
+
"all_translation_keys_are_prope": "✅ Усі ключі перекладу використовуються правильно!",
|
|
589
|
+
"n_next_steps": "🎯 NEXT STEPS:",
|
|
590
|
+
"2_check_the_detailed_report_fo": "2. Перевірте докладний звіт щодо конкретних питань",
|
|
591
|
+
"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",
|
|
592
|
+
"1_review_the_analysis_results": "1. Перегляньте результати аналізу в консолі або створений звіт.",
|
|
593
|
+
"2_run_with_outputreport_for_de": "2. Запустіть з --output-report для детального звіту.",
|
|
594
|
+
"3_remove_unused_keys_or_add_mi": "3. Видаліть невикористовувані ключі або додайте відсутні ключі до вихідного коду.",
|
|
595
|
+
"4_rerun_analysis_to_verify_imp": "4. Повторно запустіть аналіз, щоб перевірити покращення.",
|
|
596
|
+
"noSourceFilesFound": "Не знайдено вихідних файлів для аналізу.",
|
|
597
|
+
"i18nDirectoryNotFound": "Каталог I18n не знайдено: {i18nDir}",
|
|
598
|
+
"noTranslationLanguagesFound": "Не знайдено мов перекладу.",
|
|
599
|
+
"failedToAnalyzeFile": "Не вдалося проаналізувати файл {filePath}: {error}",
|
|
600
|
+
"failedToAnalyzeLanguage": "Не вдалося проаналізувати мову {language}: {error}",
|
|
601
|
+
"translationCompletenessAnalysisFailed": "Помилка аналізу повноти перекладу: {error}",
|
|
602
|
+
"n": "\\n"
|
|
603
|
+
},
|
|
604
|
+
"complete": {
|
|
605
|
+
"configLoadedSuccessfully": "Конфігурація успішно завантажена",
|
|
606
|
+
"configLoadingFailed": "Помилка завантаження конфігурації",
|
|
607
|
+
"title": "🌍 I18NTK ЗАВЕРШЕННЯ ПЕРЕКЛАДУ",
|
|
608
|
+
"separator": "============================================================",
|
|
609
|
+
"sourceDir": "📁 Вихідний каталог: {sourceDir}",
|
|
610
|
+
"sourceLanguage": "🌐 Мова оригіналу: {sourceLanguage}",
|
|
611
|
+
"dryRunMode": "🧪 Режим сухого ходу - жодних змін не буде",
|
|
612
|
+
"languages": "🌍 Доступні мови: {languages}",
|
|
613
|
+
"addingMissingKeys": "➕ Додавання відсутніх ключів до файлів перекладу...",
|
|
614
|
+
"processing": "🔄 Обробка {language}...",
|
|
615
|
+
"addedKeys": "✅ Додано {count} відсутні ключі",
|
|
616
|
+
"changeDetails": "📝 {file}: {key}",
|
|
617
|
+
"andMore": "...і {count} більше",
|
|
618
|
+
"noChangesNeeded": "✅ Ніяких змін не потрібно {language}",
|
|
619
|
+
"summaryTitle": "📊 ПІДСУМКИ ЗАВЕРШЕННЯ",
|
|
620
|
+
"totalChanges": "📝 Загальні зміни: {totalChanges}",
|
|
621
|
+
"languagesProcessed": "🌍 Оброблені мови: {languagesProcessed}",
|
|
622
|
+
"missingKeysAdded": "➕ Додано відсутні ключі: {missingKeysAdded}",
|
|
623
|
+
"nextStepsTitle": "📋 NEXT STEPS",
|
|
624
|
+
"nextStep1": "1. Виконайте аналіз використання:",
|
|
625
|
+
"nextStep2": "вузол i18ntk-usage.js --вихідний звіт",
|
|
626
|
+
"nextStep3": "2. Перевірте переклади:",
|
|
627
|
+
"nextStep4": "вузол i18ntk-validate.js",
|
|
628
|
+
"nextStep5": "3. Проаналізуйте шаблони:",
|
|
629
|
+
"nextStep6": "вузол i18ntk-analyze.js",
|
|
630
|
+
"allKeysAvailable": "🎉 Усі ключі перекладу тепер доступні!",
|
|
631
|
+
"runWithoutDryRun": "💡 Запустіть без --dry-run, щоб застосувати зміни",
|
|
632
|
+
"deletingOldReport": "🗑️ Видалення старого звіту...",
|
|
633
|
+
"generatingFreshAnalysis": "📊 Створення нового аналізу використання...",
|
|
634
|
+
"couldNotGenerate": "❌ Не вдалося створити аналіз використання",
|
|
635
|
+
"reportNotFound": "📋 Звіт про використання не знайдено. Використання загальних ключів...",
|
|
636
|
+
"foundMissingKeys": "📋 Знайдено {count} відсутні ключі в аналізі використання",
|
|
637
|
+
"couldNotParse": "❌ Не вдалося проаналізувати звіт про використання. Використання загальних ключів..."
|
|
638
|
+
},
|
|
639
|
+
"noTranslationLanguagesFound": "Мови перекладу не знайдено",
|
|
640
|
+
"failedToAnalyzeLanguage": "Не вдалося проаналізувати мову",
|
|
641
|
+
"translationCompletenessAnalysisFailed": "Помилка аналізу повноти перекладу",
|
|
642
|
+
"failedToProcessFile": "Не вдалося обробити файл:",
|
|
643
|
+
"failedToSaveReport": "Не вдалося зберегти звіт про використання: {error}",
|
|
644
|
+
"i18nDirectoryDoesNotExist": "Каталог I18n не існує: {dir}",
|
|
645
|
+
"reportSavedTo": "Звіт про використання збережено в: {reportPath}",
|
|
646
|
+
"sourceDirectoryDoesNotExist": "Вихідний каталог не існує: {dir}",
|
|
647
|
+
"noSourceDirectoryConfigured": "(не налаштовано)"
|
|
648
|
+
},
|
|
649
|
+
"validate": {
|
|
650
|
+
"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",
|
|
651
|
+
"title": "🔍 Перевірка перекладу I18n",
|
|
652
|
+
"message": "Початок процесу перевірки...",
|
|
653
|
+
"sourceDirectory": "📁 Вихідний каталог: {dir}",
|
|
654
|
+
"sourceLanguage": "🌍 Мова оригіналу: {sourceLanguage}",
|
|
655
|
+
"strictMode": "⚙️ Суворий режим: {mode}",
|
|
656
|
+
"noTargetLanguages": "Цільові мови не налаштовано; пропуск перевірки цілі. Додайте мови за допомогою \"i18ntk init --languages=de,fr\".",
|
|
657
|
+
"validatingLanguages": "🌍 Перевірка мов: {langs}",
|
|
658
|
+
"validatingLanguage": "🔍 Мова перевірки: {lang}",
|
|
659
|
+
"filesCount": "📄 Файли: {count}",
|
|
660
|
+
"keysCount": "🔑 Ключі: {count}",
|
|
661
|
+
"missingFilesCount": "📁 Відсутні файли: {count}",
|
|
662
|
+
"syntaxErrorsCount": "❌ Синтаксичні помилки: {count}",
|
|
663
|
+
"translationPercentage": "🎯 Переклад: {percentage}% ({translated}/{total} ключі)",
|
|
664
|
+
"validationSummary": "📊 РЕЗЮМЕ ПЕРЕВІРКИ",
|
|
665
|
+
"validation_failed": "❌ Помилка перевірки: {error}",
|
|
666
|
+
"totalErrors": "❌ Всього помилок: {count}",
|
|
667
|
+
"totalWarnings": "⚠️ Сумарні попередження: {count}",
|
|
668
|
+
"errorsSection": "❌ ERRORS",
|
|
669
|
+
"warningsSection": "⚠️ WARNINGS",
|
|
670
|
+
"recommendationsSection": "💡 РЕКОМЕНДАЦІЇ",
|
|
671
|
+
"fixErrorsFirst": "1. Спочатку виправте всі помилки",
|
|
672
|
+
"resolveMissingFilesAndSyntaxErrors": "1. Виправте відсутні файли та синтаксичні помилки",
|
|
673
|
+
"fixStructuralInconsistencies": "2. Виправте структурні невідповідності",
|
|
674
|
+
"completeMissingTranslations": "3. Доповніть відсутні переклади",
|
|
675
|
+
"rerunValidation": "4. Перезапустіть перевірку, щоб перевірити виправлення",
|
|
676
|
+
"addressWarnings": "Звертайте увагу на попередження, щоб покращити якість",
|
|
677
|
+
"reviewWarnings": "Перегляньте попередження та виправте, якщо потрібно",
|
|
678
|
+
"considerRunningWithStrict": "2. Розгляньте можливість запуску з прапорцем --strict для суворішої перевірки",
|
|
679
|
+
"allValidationsPassed": "🎉 Усі перевірки пройшли!",
|
|
680
|
+
"considerRunningUsageAnalysis": "Спробуйте запустити аналіз використання: вузол i18ntk-usage.js",
|
|
681
|
+
"deletedOldReport": "🗑️ Видалено старий звіт перевірки",
|
|
682
|
+
"sourceDir": "📁 Вихідний каталог: {sourceDir}",
|
|
683
|
+
"i18nDir": "🌐 Каталог I18n: {i18nDir}",
|
|
684
|
+
"loadingTranslationFiles": "📋 Завантаження файлів перекладу...",
|
|
685
|
+
"foundTranslationFilesCount": "✅ Знайдено {count} файли перекладу",
|
|
686
|
+
"analyzingTranslations": "🔍 Аналізуємо переклади...",
|
|
687
|
+
"validationCompletedSuccessfully": "🎉 Перевірку успішно завершено!",
|
|
688
|
+
"validationErrorsFound": "⚠️ Знайдено помилки перевірки: {count}",
|
|
689
|
+
"validationWarningsFound": "⚠️ Знайдено попередження перевірки: {count}",
|
|
690
|
+
"validationPassed": "✅ Перевірка пройшла без помилок",
|
|
691
|
+
"validationFailed": "Помилка перевірки: {error}",
|
|
692
|
+
"startingValidationProcess": "🔍 Початок процесу перевірки...",
|
|
693
|
+
"validationProcessCompletedSuccessfully": "✅ Процес перевірки успішно завершено",
|
|
694
|
+
"stackTrace": "Трасування стека: {stack}",
|
|
695
|
+
"authenticationFailed": "❌ Помилка автентифікації. Доступ заборонено.",
|
|
696
|
+
"fatalValidationError": "❌ Критична помилка перевірки: {error}",
|
|
697
|
+
"configAccess": "Доступ до конфігурації для перевірки",
|
|
698
|
+
"configValidated": "Конфігурація успішно перевірена",
|
|
699
|
+
"configError": "Помилка конфігурації: {error}",
|
|
700
|
+
"validatorInit": "Ініціалізація валідатора I18n",
|
|
701
|
+
"validatorInitialized": "Валідатор I18n успішно ініціалізовано",
|
|
702
|
+
"validatorInitError": "Помилка ініціалізації валідатора: {error}",
|
|
703
|
+
"argsParsing": "Розбір аргументів командного рядка",
|
|
704
|
+
"argsParsed": "Аргументи командного рядка проаналізовано успішно",
|
|
705
|
+
"argsParseError": "Помилка аналізу аргументу: {error}",
|
|
706
|
+
"languagesScan": "Сканування доступних мов",
|
|
707
|
+
"languagesFound": "знайдено {count} мови",
|
|
708
|
+
"languagesScanError": "Помилка сканування мови: {error}",
|
|
709
|
+
"filesScan": "знайдено {count} файли в {language}",
|
|
710
|
+
"filesScanError": "Помилка сканування файлу: {error}",
|
|
711
|
+
"jsonValidated": "Перевірено синтаксис JSON: {filePath}",
|
|
712
|
+
"jsonValidationError": "Помилка перевірки JSON: {error}",
|
|
713
|
+
"languageValidation": "Мова перевірки: {language}",
|
|
714
|
+
"languageValidationError": "Помилка підтвердження мови: {error}",
|
|
715
|
+
"fileDeleted": "Файл видалено",
|
|
716
|
+
"runStarted": "Початок перевірки",
|
|
717
|
+
"runCompleted": "Перевірка успішно завершена",
|
|
718
|
+
"runError": "Помилка перевірки: {error}",
|
|
719
|
+
"scriptExecution": "Виконання сценарію",
|
|
720
|
+
"validationCompleted": "Перевірку завершено",
|
|
721
|
+
"validationError": "Помилка підтвердження: {error}",
|
|
722
|
+
"separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
|
|
723
|
+
"languageHeader": "🌐 Мова: {language}",
|
|
724
|
+
"validationResults": "📊 Результати перевірки",
|
|
725
|
+
"noErrors": "✅ Помилок не виявлено",
|
|
726
|
+
"noWarnings": "✅ Попереджень не знайдено",
|
|
727
|
+
"summaryHeader": "📋 OVERALL SUMMARY",
|
|
728
|
+
"progressIndicator": "⏳ Обробка...",
|
|
729
|
+
"completedIndicator": "✅ Виконано",
|
|
730
|
+
"errorIndicator": "❌ Помилка",
|
|
731
|
+
"warningIndicator": "⚠️ Попередження",
|
|
732
|
+
"infoIndicator": "ℹ️ Інформація",
|
|
733
|
+
"sourceDirNotConfigured": "Вихідний каталог не налаштовано",
|
|
734
|
+
"sourceLanguageNotConfigured": "Вихідна мова не налаштована",
|
|
735
|
+
"translationFunctionNotInitialized": "Функція перекладу не ініціалізована належним чином",
|
|
736
|
+
"sourceLanguageDirectoryNotFound": "Каталог вихідної мови не знайдено",
|
|
737
|
+
"specifiedLanguageNotFound": "Вказана мова не знайдена",
|
|
738
|
+
"noJsonFilesFound": "У вихідному каталозі не знайдено файлів JSON: {sourceDir}",
|
|
739
|
+
"i18nDirectoryNotFound": "Каталог I18n не знайдено: {i18nDir}",
|
|
740
|
+
"invalidDirectoryPaths": "Виявлено недійсні шляхи до каталогу",
|
|
741
|
+
"invalidSampleFilePath": "Недійсний шлях до файлу зразка",
|
|
742
|
+
"failedToCreateSampleTranslationFile": "Не вдалося створити зразок файлу перекладу",
|
|
743
|
+
"invalidFilePathDetected": "Виявлено недійсний шлях до файлу",
|
|
744
|
+
"failedToWriteFile": "Не вдалося записати файл: {filePath}",
|
|
745
|
+
"invalidSourceDirectory": "Недійсний вихідний каталог: {sourceDir}",
|
|
746
|
+
"invalidSourceLanguageDirectory": "Недійсний каталог вихідної мови: {sourceDir}"
|
|
747
|
+
},
|
|
748
|
+
"adminCli": {
|
|
749
|
+
"setupPinProtectionTitle": "🔐 Налаштування захисту PIN-кодом адміністратора",
|
|
750
|
+
"setupPinProtectionDescription": "Для адміністративних операцій потрібен 4-6-значний PIN-код.",
|
|
751
|
+
"enablePinProtectionPrompt": "Бажаєте ввімкнути захист PIN-кодом адміністратора?",
|
|
752
|
+
"setupCancelled": "Налаштування захисту PIN-кодом адміністратора скасовано.",
|
|
753
|
+
"enterPinPrompt": "Введіть PIN-код із 4-6 цифр:",
|
|
754
|
+
"pinFormatError": "❌ ПІН має складатися з 4-6 цифр. Спробуйте ще раз.",
|
|
755
|
+
"confirmPinPrompt": "Підтвердьте PIN-код:",
|
|
756
|
+
"pinMismatchError": "❌ PIN-коди не збігаються. Спробуйте ще раз.",
|
|
757
|
+
"pinProtectionEnabledSuccess": "✅ Захист PIN-кодом адміністратора успішно ввімкнено!",
|
|
758
|
+
"pinRecoveryWarning": "⚠️ Запам’ятайте свій PIN-код – у разі втрати його неможливо відновити.",
|
|
759
|
+
"setupPinProtectionFailed": "❌ Не вдалося налаштувати захист PIN-кодом адміністратора.",
|
|
760
|
+
"errorSettingUpPin": "❌ Помилка налаштування PIN-коду адміністратора: {message}",
|
|
761
|
+
"authRequiredForOperation": "🔐 Автентифікація адміністратора потрібна для: {operation}",
|
|
762
|
+
"invalidPinFormat": "❌ Недійсний формат PIN-коду. PIN-код має містити 4-6 цифр.",
|
|
763
|
+
"authenticationSuccess": "✅ Автентифікація успішна!",
|
|
764
|
+
"invalidPinAttemptsRemaining": "❌ Недійсний PIN-код. {remaining} залишилося спроб.",
|
|
765
|
+
"authenticationFailedAccessDenied": "❌ Помилка автентифікації. Доступ заборонено.",
|
|
766
|
+
"authenticationError": "❌ Помилка автентифікації: {message}",
|
|
767
|
+
"pinProtectionNotEnabled": "Захист PIN-кодом адміністратора наразі не ввімкнено.",
|
|
768
|
+
"disablingPinProtectionTitle": "🔓 Вимкнення захисту PIN-кодом адміністратора",
|
|
769
|
+
"confirmDisablePinProtection": "Ви впевнені, що бажаєте вимкнути захист PIN-кодом адміністратора?",
|
|
770
|
+
"operationCancelled": "Операцію скасовано.",
|
|
771
|
+
"pinProtectionDisabledSuccess": "✅ Захист PIN-кодом адміністратора вимкнено.",
|
|
772
|
+
"disablePinProtectionFailed": "❌ Не вдалося вимкнути захист PIN-кодом адміністратора.",
|
|
773
|
+
"errorDisablingPinProtection": "❌ Помилка вимкнення захисту адміністратора: {message}",
|
|
774
|
+
"adminProtectionStatusTitle": "🔐 Статус захисту адміністратора",
|
|
775
|
+
"statusEnabled": "Статус: ✅ ВКЛЮЧЕНО",
|
|
776
|
+
"protectionDetails": "Захист: для операцій адміністратора потрібен 4-6-значний PIN-код",
|
|
777
|
+
"lockoutDetails": "Блокування: 3 невдалі спроби = 15 хвилин блокування",
|
|
778
|
+
"statusDisabled": "Статус: ❌ ВИМКНЕНО",
|
|
779
|
+
"noAuthRequired": "Захист: аутентифікація не потрібна",
|
|
780
|
+
"unprotectedRisk": "Ризик: адміністративні операції незахищені",
|
|
781
|
+
"errorCheckingAdminStatus": "❌ Помилка перевірки статусу адміністратора: {message}",
|
|
782
|
+
"authRequired": "🔐 Потрібна автентифікація адміністратора.",
|
|
783
|
+
"invalidPin": "❌ Недійсний PIN-код.",
|
|
784
|
+
"authSuccess": "✅ Автентифікація успішна!",
|
|
785
|
+
"adminPinSetupCli": "admin_pin_setup_cli",
|
|
786
|
+
"adminAuthFailedCli": "admin_auth_failed_cli",
|
|
787
|
+
"adminAuthDisabledCli": "admin_auth_disabled_cli",
|
|
788
|
+
"protectedAccess": "Захищений доступ: для конфіденційних операцій потрібна автентифікація адміністратора.",
|
|
789
|
+
"enterPin": "Введіть PIN адміністратора:",
|
|
790
|
+
"accessGranted": "Доступ надано."
|
|
791
|
+
},
|
|
792
|
+
"adminPin": {
|
|
793
|
+
"setup_title": "🔐 Налаштування PIN-коду адміністратора",
|
|
794
|
+
"setup_separator": "============================================================",
|
|
795
|
+
"setup_description": "Створіть PIN-код із 4–6 цифр для доступу адміністратора до конфіденційних налаштувань.",
|
|
796
|
+
"required_for_title": "Цей PIN-код знадобиться для:",
|
|
797
|
+
"required_for_1": "• Зміна параметрів безпеки",
|
|
798
|
+
"required_for_2": "• Зміна розширених конфігурацій",
|
|
799
|
+
"required_for_3": "• Доступ до інструментів налагодження",
|
|
800
|
+
"required_for_4": "• Скидання налаштувань",
|
|
801
|
+
"setup_note": "💡 Примітка: під час введення тексту ви побачите зірочки (*) — це лише маскувальні символи.",
|
|
802
|
+
"setup_digits_only": "Лише цифри 0-9 приймаються як цифри PIN-коду.",
|
|
803
|
+
"invalid_pin_length": "❌ Недійсний PIN-код. Має бути 4-6 цифр (тільки цифри 0-9).",
|
|
804
|
+
"invalid_pin_example": "Приклад: 1234 або 567890",
|
|
805
|
+
"pins_do_not_match": "❌ PIN-коди не збігаються.",
|
|
806
|
+
"setup_success": "✅ PIN адміністратора встановлено успішно!",
|
|
807
|
+
"setup_warning": "⚠️ Зберігайте цей PIN-код у безпеці. У разі втрати його неможливо відновити.",
|
|
808
|
+
"setup_error": "❌ Помилка налаштування PIN-коду:",
|
|
809
|
+
"session_expired": "⏰ Сеанс адміністратора закінчився через бездіяльність.",
|
|
810
|
+
"no_pin_set_setting_up": "⚠️ PIN-код адміністратора не встановлено. Налаштування PIN-коду...",
|
|
811
|
+
"no_pin_configured_access_denied": "⚠️ Не налаштовано PIN-код адміністратора. Доступ заборонено.",
|
|
812
|
+
"use_admin_settings_to_set_pin": "💡 Скористайтеся налаштуваннями адміністратора, щоб спочатку встановити PIN-код.",
|
|
813
|
+
"locked_out": "🔒 Доступ адміністратора заблоковано через забагато невдалих спроб.",
|
|
814
|
+
"wait_before_retry": "Зачекайте 5 хвилин, перш ніж повторити спробу.",
|
|
815
|
+
"access_granted": "✅ Доступ адміністратора надано.",
|
|
816
|
+
"incorrect_pin": "❌ Неправильний PIN-код. {attempts} залишилося спроб.",
|
|
817
|
+
"verify_pin_error": "❌ Помилка перевірки PIN-коду:",
|
|
818
|
+
"already_configured": "✅ PIN адміністратора вже налаштовано.",
|
|
819
|
+
"optional_setup_title": "🔐 Налаштування PIN-коду адміністратора (необов’язково)",
|
|
820
|
+
"optional_setup_description": "Захист PIN-кодом адміністратора забезпечує безпеку конфіденційних операцій, таких як:",
|
|
821
|
+
"setup_prompt": "Бажаєте встановити PIN-код адміністратора? (так/ні):",
|
|
822
|
+
"skipping_setup": "⏭️ Пропуск налаштування PIN-коду адміністратора. Ви можете налаштувати це пізніше в налаштуваннях.",
|
|
823
|
+
"setup_prompt_error": "❌ Помилка під час запиту встановлення PIN-коду:",
|
|
824
|
+
"protectedAccess": "Захищений доступ: для конфіденційних операцій потрібна автентифікація адміністратора.",
|
|
825
|
+
"enterPin": "Введіть PIN адміністратора:",
|
|
826
|
+
"accessGranted": "Доступ надано.",
|
|
827
|
+
"invalidPin": "❌ Недійсний PIN-код. Спробуйте ще раз.",
|
|
828
|
+
"weak_pin_warning": "⚠️ ПОПЕРЕДЖЕННЯ: цей PIN-код виглядає слабким або звичайним.",
|
|
829
|
+
"weak_pin_suggestion": "💡 Спробуйте використовувати надійніший PIN-код із різноманітними цифрами.",
|
|
830
|
+
"use_anyway_prompt": "Введіть «так», щоб усе одно використовувати, або натисніть Enter, щоб вибрати інший PIN-код:",
|
|
831
|
+
"enter_new_pin": "Введіть новий PIN адміністратора (4-6 цифр):",
|
|
832
|
+
"confirm_pin": "Підтвердьте PIN адміністратора:",
|
|
833
|
+
"not_set": "Не встановлено",
|
|
834
|
+
"pin_display_mask": "####"
|
|
835
|
+
},
|
|
836
|
+
"debug": {
|
|
837
|
+
"title": "🔧 Інструменти налагодження",
|
|
838
|
+
"separator": "============================================================",
|
|
839
|
+
"mainDebuggerSystemDiagnostics": "1. Діагностика системи",
|
|
840
|
+
"_consoleTranslationsCheck": "// 2. Перевірка перекладів консолі",
|
|
841
|
+
"_exportMissingKeys": "// 3. Експортувати відсутні ключі перекладу",
|
|
842
|
+
"_replaceHardcodedConsole": "// 4. Замінити жорстко закодовані рядки консолі",
|
|
843
|
+
"_consoleKeyChecker": "// 5. Перевірка ключів консолі",
|
|
844
|
+
"debugLogs": "2. Журнали налагодження",
|
|
845
|
+
"backToMainMenu": "0. Повернення до головного меню",
|
|
846
|
+
"selectOption": "Виберіть засіб налагодження:",
|
|
847
|
+
"runningDebugTool": "Біг {displayName}...",
|
|
848
|
+
"debugToolNotFound": "❌ Інструмент налагодження не знайдено: {toolName}",
|
|
849
|
+
"errorRunningDebugTool": "Помилка запуску інструмента налагодження '{displayName}': {error}",
|
|
850
|
+
"recentDebugLogs": "📄 Останні журнали налагодження",
|
|
851
|
+
"noDebugLogsFound": "❌ Журнали налагодження не знайдено.",
|
|
852
|
+
"debugLogsDirectoryNotFound": "❌ Каталог журналів налагодження не знайдено.",
|
|
853
|
+
"selectLogPrompt": "Виберіть файл журналу для перегляду (1-{count}):",
|
|
854
|
+
"invalidChoiceSelectRange": "Невірний вибір. Будь ласка, виберіть із доступного асортименту.",
|
|
855
|
+
"contentOf": "📄 Зміст {filename}:",
|
|
856
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити..."
|
|
857
|
+
},
|
|
858
|
+
"detect_language_mismatches": {
|
|
859
|
+
"tool_title": "🔍 Інструмент виявлення невідповідності мови",
|
|
860
|
+
"separator": "=====================================",
|
|
861
|
+
"analyzing_file": "📄 Аналізуємо {language}.json...",
|
|
862
|
+
"error_analyzing_file": "❌ Помилка аналізу {filename}: {errorMessage}",
|
|
863
|
+
"results_title": "📊 РЕЗУЛЬТАТИ ВИЯВЛЕННЯ МОВНОЇ НЕЗПІДПАДНОСТІ",
|
|
864
|
+
"results_separator": "========================================",
|
|
865
|
+
"summary_title": "📋 SUMMARY:",
|
|
866
|
+
"total_files_analyzed": "Загальна кількість проаналізованих файлів: {totalFiles}",
|
|
867
|
+
"files_with_mismatches": "Файли з невідповідностями: {filesWithMismatches}",
|
|
868
|
+
"total_mismatches_found": "Загальна кількість знайдених невідповідностей: {totalMismatches}",
|
|
869
|
+
"no_mismatches_found": "✅ Мовних розбіжностей не знайдено! Здається, що всі переклади виконано на правильних мовах.",
|
|
870
|
+
"detailed_results_title": "🔍 DETAILED RESULTS:",
|
|
871
|
+
"file_mismatch_header": "📄 {filename} ({language})",
|
|
872
|
+
"mismatches_count": "знайдено {count} невідповідність(и):",
|
|
873
|
+
"mismatch_details": "{index}. ключ: {key}",
|
|
874
|
+
"mismatch_value": "Значення: \"{value}\"",
|
|
875
|
+
"mismatch_issue": "Випуск: {description}",
|
|
876
|
+
"recommendations_title": "💡 РЕКОМЕНДАЦІЇ:",
|
|
877
|
+
"recommendation_1": "1. Перегляньте та перекладіть усі записи, позначені [ПЕРЕКЛАДАТИ]",
|
|
878
|
+
"recommendation_2": "2. Замініть мовні префікси (наприклад, [DE], [FR]) відповідними перекладами",
|
|
879
|
+
"recommendation_3": "3. Перекладіть англійський текст на відповідну цільову мову",
|
|
880
|
+
"recommendation_4": "4. Використовуйте еквіваленти рідною мовою для всього тексту, який відкриває користувач",
|
|
881
|
+
"recommendation_5": "5. Запустіть цей інструмент знову після внесення виправлень, щоб перевірити виправлення",
|
|
882
|
+
"detailed_report_saved": "📄 Детальний звіт збережено в: {reportPath}",
|
|
883
|
+
"error_saving_report": "❌ Помилка збереження звіту: {errorMessage}",
|
|
884
|
+
"auto_fix_mode": "🔧 Режим автовиправлення {dryRun}",
|
|
885
|
+
"auto_fix_separator": "=====================================",
|
|
886
|
+
"fixed_file": "✅ Виправлено {filename}",
|
|
887
|
+
"auto_fix_summary_title": "📊 Підсумок автовиправлення:",
|
|
888
|
+
"total_fixes_applied": "Усього застосованих виправлень: {count}",
|
|
889
|
+
"preview_fixes_title": "🔍 Попередній перегляд виправлень:",
|
|
890
|
+
"fix_details": "{file}: {key} Старий: \"{old}\"Новий:\"{new}\"",
|
|
891
|
+
"more_fixes": "... і {count} більше виправлень",
|
|
892
|
+
"run_with_apply_fixes": "💡 Запустіть за допомогою --apply, щоб застосувати ці виправлення",
|
|
893
|
+
"error_general": "❌ Помилка:",
|
|
894
|
+
"mainDebuggerSystemDiagnostics": "Основний налагоджувач / Діагностика системи",
|
|
895
|
+
"exportMissingKeys": "Експортувати відсутні ключі",
|
|
896
|
+
"replaceHardcodedConsole": "Замініть жорстко закодовану консоль",
|
|
897
|
+
"consoleKeyChecker": "Перевірка ключів консолі",
|
|
898
|
+
"debugLogs": "Журнали налагодження",
|
|
899
|
+
"backToMainMenu": "Назад до головного меню",
|
|
900
|
+
"invalidChoiceSelectRange": "❌ Невірний вибір. Будь ласка, виберіть число в межах відображеного діапазону.",
|
|
901
|
+
"runningDebugTool": "Запуск інструмента налагодження: {displayName}",
|
|
902
|
+
"debugToolNotFound": "Інструмент налагодження '{toolName}' не знайдено.",
|
|
903
|
+
"recentDebugLogs": "Останні журнали налагодження",
|
|
904
|
+
"noDebugLogsFound": "Журнали налагодження не знайдено.",
|
|
905
|
+
"logEntry": "Запис у журналі: {timestamp} - {message}",
|
|
906
|
+
"debugLogsDirectoryNotFound": "Каталог журналів налагодження не знайдено."
|
|
907
|
+
},
|
|
908
|
+
"help": {
|
|
909
|
+
"title": "📊 ДОПОМОГА В УПРАВЛІННІ I18NTK",
|
|
910
|
+
"usage": "Використання: вузол main/manage/index.js [параметри]",
|
|
911
|
+
"interactiveMode": "💡 Використовуйте: node main/manage/index.js --command=<command> для безпосереднього виконання",
|
|
912
|
+
"showHelp": "📖 Використовуйте: node main/manage/index.js --help для доступних команд",
|
|
913
|
+
"availableCommands": "📖 Доступні команди:",
|
|
914
|
+
"initProject": "🚀 Ініціалізація нових мов",
|
|
915
|
+
"analyzeTranslations": "🔍 Аналізуйте переклади",
|
|
916
|
+
"validateTranslations": "✅ Перевірте переклади",
|
|
917
|
+
"checkUsage": "📊 Перевірте використання ключа",
|
|
918
|
+
"initCommand": "init - Ініціалізація нових мов",
|
|
919
|
+
"analyzeCommand": "аналізувати - аналізувати переклади",
|
|
920
|
+
"validateCommand": "validate - Перевірити переклади",
|
|
921
|
+
"usageCommand": "usage - Перевірте використання ключа",
|
|
922
|
+
"sizingCommand": "розмір - аналіз розмірів",
|
|
923
|
+
"completeCommand": "complete - Повний переклад (100% покриття)",
|
|
924
|
+
"summaryCommand": "резюме - Показати статус проекту",
|
|
925
|
+
"debugCommand": "debug - налагоджувати проблеми перекладу",
|
|
926
|
+
"scannerCommand": "сканер - пошук ключів",
|
|
927
|
+
"translateCommand": "translate - автоматично перекладає файли локалі",
|
|
928
|
+
"menu": {
|
|
929
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити...",
|
|
930
|
+
"title": "🌐 МЕНЮ КЕРУВАННЯ I18NTK",
|
|
931
|
+
"description": "Інтерактивне меню для управління інтернаціоналізацією",
|
|
932
|
+
"exit": "вихід"
|
|
933
|
+
},
|
|
934
|
+
"commands": {
|
|
935
|
+
"init": "init - Ініціалізація нових мов",
|
|
936
|
+
"analyze": "аналізувати - аналізувати переклади",
|
|
937
|
+
"validate": "validate - Перевірити переклади",
|
|
938
|
+
"usage": "usage - Перевірте використання ключа",
|
|
939
|
+
"sizing": "розмір - аналіз розмірів",
|
|
940
|
+
"complete": "complete - Повний переклад (100% покриття)",
|
|
941
|
+
"summary": "резюме - Показати статус проекту",
|
|
942
|
+
"debug": "debug - налагоджувати проблеми перекладу"
|
|
943
|
+
},
|
|
944
|
+
"options": {
|
|
945
|
+
"sourceDir": "--source-dir <dir> Вихідний каталог для аналізу",
|
|
946
|
+
"output": "-- вихід <file> Вихідний файл для звіту",
|
|
947
|
+
"verbose": "--verbose, -v Показати детальну інформацію",
|
|
948
|
+
"keepReports": "--keep-reports Зберігати існуючі звіти",
|
|
949
|
+
"deleteReports": "--delete-reports Видалити існуючі звіти",
|
|
950
|
+
"help": "--help, -h Показати цю довідку"
|
|
951
|
+
},
|
|
952
|
+
"examples": {
|
|
953
|
+
"title": "приклади:",
|
|
954
|
+
"example1": "вузол i18ntk-manage.js",
|
|
955
|
+
"example2": "вузол i18ntk-manage.js --source-dir ./locales",
|
|
956
|
+
"example3": "вузол i18ntk-manage.js --output summary-report.txt",
|
|
957
|
+
"example4": "вузол i18ntk-manage.js --verbose",
|
|
958
|
+
"example5": "вузол i18ntk-manage.js --source-dir ./locales --output report.json"
|
|
959
|
+
},
|
|
960
|
+
"features": {
|
|
961
|
+
"initProject": "🚀 Ініціалізація нових мов",
|
|
962
|
+
"analyzeTranslations": "🔍 Аналізуйте переклади",
|
|
963
|
+
"validateTranslations": "✅ Перевірте переклади",
|
|
964
|
+
"checkUsage": "📊 Перевірте використання ключа",
|
|
965
|
+
"completeTranslations": "🎯 Повні переклади (100% покриття)",
|
|
966
|
+
"showSizing": "📏 Проаналізуйте розміри",
|
|
967
|
+
"runWorkflow": "🔄 Запустіть повний робочий процес",
|
|
968
|
+
"showStatus": "📋 Показати статус проекту",
|
|
969
|
+
"deleteReports": "🗑️ Видалити всі звіти",
|
|
970
|
+
"changeLanguage": "🌍 Змінити мову інтерфейсу",
|
|
971
|
+
"settings": "⚙️ Налаштування",
|
|
972
|
+
"showHelp": "❓ Допомога",
|
|
973
|
+
"debugTools": "🔧 Інструменти налагодження"
|
|
974
|
+
},
|
|
975
|
+
"messages": {
|
|
976
|
+
"selectOption": "Виберіть варіант:",
|
|
977
|
+
"invalidOption": "Недійсний варіант. Спробуйте ще раз.",
|
|
978
|
+
"operationCompleted": "✅ Операція завершена успішно!",
|
|
979
|
+
"pressEnter": "Натисніть Enter, щоб продовжити...",
|
|
980
|
+
"goodbye": "👋 До побачення!",
|
|
981
|
+
"unknownCommand": "Невідома команда: {command}",
|
|
982
|
+
"nonInteractive": "⚠️ Виявлено неінтерактивний режим. Меню показано лише для довідки."
|
|
983
|
+
},
|
|
984
|
+
"i18n_helper": {
|
|
985
|
+
"translation_file_not_found": "Файл перекладу не знайдено: {translationFile}",
|
|
986
|
+
"error_loading_translations": "Помилка завантаження перекладів: {errorMessage}",
|
|
987
|
+
"translation_not_found": "Переклад не знайдено для ключа: {key}",
|
|
988
|
+
"translation_key_not_string": "Ключ перекладу не перетворюється на рядок: {key}",
|
|
989
|
+
"error_reading_locales_directory": "Помилка читання каталогу локалей: {errorMessage}"
|
|
990
|
+
}
|
|
991
|
+
},
|
|
992
|
+
"init": {
|
|
993
|
+
"initializationTitle": "🚀 i18n Management Toolkit - Ініціалізація проекту",
|
|
994
|
+
"initializationCancelled": "🚫 Ініціалізацію скасовано користувачем.",
|
|
995
|
+
"sourceDirectoryLabel": "📁 Вихідний каталог: {dir}",
|
|
996
|
+
"requiredTitle": "Потрібна ініціалізація",
|
|
997
|
+
"requiredBody": "Цей проект необхідно ініціалізувати перед виконанням цієї команди.",
|
|
998
|
+
"promptRunNow": "Бажаєте запустити ініціалізацію зараз? (так/ні):",
|
|
999
|
+
"sourceLanguageLabel": "🌍 Мова оригіналу: {language}",
|
|
1000
|
+
"detectedI18nFrameworks": "🔍 Виявлено рамки i18n: {frameworks}",
|
|
1001
|
+
"pinMustBe4Digits": "🔐 PIN-код має складатися з 4 цифр.",
|
|
1002
|
+
"existingDirectoriesFound": "📁 Знайдено існуючі каталоги перекладів:",
|
|
1003
|
+
"useExistingDirectoryPrompt": "Бажаєте використовувати існуючий каталог? (да/не)",
|
|
1004
|
+
"selectDirectoryPrompt": "Виберіть каталог, ввівши номер (або виберіть «Створити новий каталог»)",
|
|
1005
|
+
"enterNewDirectoryName": "Введіть назву вашого нового каталогу перекладів",
|
|
1006
|
+
"createdNewDirectory": "✅ Створено новий каталог: {dir}",
|
|
1007
|
+
"directoryAlreadyExists": "⚠️ Каталог вже існує: {dir}",
|
|
1008
|
+
"invalidDirectoryName": "❌ Надано недійсну назву каталогу.",
|
|
1009
|
+
"usingExistingDirectory": "Використання наявного каталогу: {dir}",
|
|
1010
|
+
"adminPinSetupOptional": "🔐 Налаштування PIN-коду адміністратора необов’язкове (рекомендовано для безпеки)",
|
|
1011
|
+
"adminPinSeparator": "------------------------------",
|
|
1012
|
+
"adminPinDescription1": "PIN адміністратора: 4-значний номер для безпечного доступу",
|
|
1013
|
+
"adminPinDescription2": "Залиште поле порожнім, щоб пропустити налаштування PIN-коду",
|
|
1014
|
+
"adminPinDescription3": "Якщо ви встановите PIN-код, він знадобиться для всіх майбутніх безпечних дій.",
|
|
1015
|
+
"adminPinDescription4": "Шифрування AES-256-GCM використовується для безпечного зберігання PIN-коду.",
|
|
1016
|
+
"adminPinSetupPrompt": "Введіть PIN адміністратора (4 цифри) або залиште поле порожнім, щоб пропустити:",
|
|
1017
|
+
"skippingAdminPinSetup": "Пропуск налаштування PIN-коду адміністратора...",
|
|
1018
|
+
"settingUpAdminPin": "🔐 Налаштування PIN-коду адміністратора...",
|
|
1019
|
+
"enterAdminPin": "Введіть PIN адміністратора:",
|
|
1020
|
+
"confirmAdminPin": "Підтвердьте PIN адміністратора:",
|
|
1021
|
+
"pinMismatch": "PIN-коди не збігаються. Спробуйте ще раз.",
|
|
1022
|
+
"adminPinSetupSuccess": "🔐 PIN-код адміністратора встановлено!",
|
|
1023
|
+
"adminPinSetupFailure": "🔐 Не вдалося встановити PIN-код адміністратора. Спробуйте ще раз.",
|
|
1024
|
+
"adminProtectionEnabled": "🔐 Захист адміністратора ввімкнено. Усі дії потребують автентифікації за допомогою PIN-коду.",
|
|
1025
|
+
"adminProtectionDisabled": "🔐 Захист адміністратора вимкнено. Тепер усі дії доступні без PIN-коду.",
|
|
1026
|
+
"autoDetectedI18nDirectory": "Автоматично визначений каталог i18n: {directory}",
|
|
1027
|
+
"initializingProject": "⚙️ Ініціалізація конфігурації проекту...",
|
|
1028
|
+
"createdSampleTranslationFile": "✅ Створено приклад файлу перекладу: {file}",
|
|
1029
|
+
"languageSelectionTitle": "🌐 Конфігурація мови",
|
|
1030
|
+
"available": "в наявності",
|
|
1031
|
+
"defaultLanguages": "📝 Мови за замовчуванням: {languages}",
|
|
1032
|
+
"enterLanguageCodes": "🎯 Введіть коди цільової мови (через кому, наприклад de, es, fr, ru):",
|
|
1033
|
+
"targetLanguages": "🌍 Цільові мови",
|
|
1034
|
+
"foundSourceFiles": "📄 Знайдено {count} вихідні файли для аналізу",
|
|
1035
|
+
"processingLanguage": "🔄 Мова обробки: {language}",
|
|
1036
|
+
"fileProcessingResult": "✅ Оброблено {file}: {translated}/{total} ключі ({percentage}%)",
|
|
1037
|
+
"overallProgress": "📊 Загальний прогрес: {translated}/{total} ключі оброблені ({percentage}%)",
|
|
1038
|
+
"initializationSummaryTitle": "📋 Підсумок ініціалізації",
|
|
1039
|
+
"languageSummary": "{icon} {name} ({code}): {percentage}% виконано",
|
|
1040
|
+
"languageFiles": "📄 Файли: {count}",
|
|
1041
|
+
"languageKeys": "🔤 Ключі: {translated}/{total}",
|
|
1042
|
+
"languageMissing": "⚠️ Відсутні: {count}",
|
|
1043
|
+
"initializationCompletedSuccessfully": "🎉 Ініціалізацію проекту успішно завершено!",
|
|
1044
|
+
"nextStepsTitle": "🚀 Наступні кроки",
|
|
1045
|
+
"nextStep1": "1. Перегляньте згенеровані файли перекладу у вашому каталозі locales/",
|
|
1046
|
+
"nextStep2": "2. Додайте переклади для кожної цільової мови",
|
|
1047
|
+
"nextStep3": "3. Знову запустіть «npm run i18ntk», щоб перевірити переклади",
|
|
1048
|
+
"detectedFrameworks": "✅ Виявлено i18n framework(s): {frameworks}",
|
|
1049
|
+
"setup": {
|
|
1050
|
+
"title": "Налаштування",
|
|
1051
|
+
"question": "Питання налаштування",
|
|
1052
|
+
"opt_single": "Один файл",
|
|
1053
|
+
"opt_modular": "Модульний",
|
|
1054
|
+
"opt_existing": "Існуючий",
|
|
1055
|
+
"choice_prompt": "Виберіть варіант:",
|
|
1056
|
+
"opt_confirm": "Підтвердити",
|
|
1057
|
+
"opt_cancel": "Скасувати",
|
|
1058
|
+
"apply_all_prompt": "Застосувати цю структуру до всіх мов? (так/ні):",
|
|
1059
|
+
"per_language_intro": "Ви вибрали індивідуальне налаштування мов. Ось доступні мови:",
|
|
1060
|
+
"available_languages": "Доступні мови: {languages}",
|
|
1061
|
+
"include_prompt": "Введіть коди мов, розділені комами (наприклад, «de,fr,es»):"
|
|
1062
|
+
},
|
|
1063
|
+
"warnings": {
|
|
1064
|
+
"noPackageJson": "Не знайдено package.json. Неможливо автоматично визначити структуру i18n."
|
|
1065
|
+
},
|
|
1066
|
+
"errorsPackageJsonRead": "Помилка читання package.json: {error}",
|
|
1067
|
+
"errorsNoFramework": "Фреймворк i18n не виявлено. Будь ласка, встановіть його або вкажіть вручну.",
|
|
1068
|
+
"suggestions": {
|
|
1069
|
+
"noFramework": "Фреймворк i18n не виявлено. Розгляньте можливість використання одного з наступного:",
|
|
1070
|
+
"installFramework": "Щоб установити фреймворк, виконайте: npm install <назва-пакета>"
|
|
1071
|
+
},
|
|
1072
|
+
"frameworks": {
|
|
1073
|
+
"react": "- React i18next (react-i18next)",
|
|
1074
|
+
"vue": "- Vue i18n (vue-i18n)",
|
|
1075
|
+
"i18next": "- i18next (і18наступний)",
|
|
1076
|
+
"nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
|
|
1077
|
+
"svelte": "- Свелте i18n (svelte-i18n)"
|
|
1078
|
+
},
|
|
1079
|
+
"continueWithoutI18nPrompt": "Фреймворк i18n не виявлено. Ви хочете продовжити без нього? (так/ні):",
|
|
1080
|
+
"detectedI18nFramework": "Виявлена структура i18n: {frameworks}",
|
|
1081
|
+
"existingDirectoryItem": "{index}. {location}",
|
|
1082
|
+
"usingExistingStructure": "Використовуючи існуючу структуру: {dir}",
|
|
1083
|
+
"creatingSourceDirectory": "Створення вихідного каталогу: {dir}",
|
|
1084
|
+
"creatingSourceLanguageDirectory": "Створення каталогу вихідної мови: {dir}",
|
|
1085
|
+
"errors": {
|
|
1086
|
+
"errorExecutingCommand": "Помилка виконання команди: {error}",
|
|
1087
|
+
"sourceDirectoryNotFound": "Вихідний каталог не знайдено: {dir}",
|
|
1088
|
+
"sourceLanguageDirectoryNotFound": "Каталог вихідної мови не знайдено: {dir}",
|
|
1089
|
+
"noJsonFilesInSourceDirectory": "У вихідному каталозі не знайдено файлів JSON: {dir}",
|
|
1090
|
+
"invalidFilePathDetected": "Виявлено недійсний шлях до файлу",
|
|
1091
|
+
"initializationFailed": "Помилка ініціалізації: {error}",
|
|
1092
|
+
"noFramework": "Фреймворк i18n не виявлено. Продовжте загальний режим.",
|
|
1093
|
+
"packageJsonRead": "Помилка читання package.json."
|
|
1094
|
+
},
|
|
1095
|
+
"processingFile": "Обробка {file} для {language}...",
|
|
1096
|
+
"fileAlreadyExistsMerging": "Файл {file} вже існує. Об'єднання нових ключів.",
|
|
1097
|
+
"createdNewFile": "Створено новий файл: {file}",
|
|
1098
|
+
"updatedFile": "Оновлений файл: {file}",
|
|
1099
|
+
"skippingExcludedFile": "Пропуск {file} для {language} як це виключено.",
|
|
1100
|
+
"continuingWithoutAdminPin": "Продовження без встановлення PIN-коду адміністратора.",
|
|
1101
|
+
"createdSourceLanguageDirectory": "Створено каталог вихідної мови: {dir}",
|
|
1102
|
+
"errorSettingUpAdminPin": "Помилка налаштування PIN-коду адміністратора: {error}",
|
|
1103
|
+
"noTargetLanguagesSpecified": "Цільові мови не вказано.",
|
|
1104
|
+
"translationFilesCreatedWarning": "Файли перекладу були створені з заповнювачами; огляд перед використанням у виробництві.",
|
|
1105
|
+
"warningCannotReadSourceDir": "Попередження: неможливо прочитати вихідний каталог {dir}: {error}",
|
|
1106
|
+
"warningInvalidLanguageCodes": "Попередження: ігноруються недійсні мовні коди: {languages}",
|
|
1107
|
+
"warningProceedingWithoutFramework": "Продовження без виявлення i18n framework.",
|
|
1108
|
+
"backup": {
|
|
1109
|
+
"title": "Налаштування резервного копіювання",
|
|
1110
|
+
"description": "Резервне копіювання вимкнено за замовчуванням, щоб уникнути рекурсії резервного копіювання та забруднення репо.",
|
|
1111
|
+
"enablePrompt": "Увімкнути автоматичне резервне копіювання? (так/ні):",
|
|
1112
|
+
"keepPrompt": "Скільки резервних копій потрібно зберігати автоматично (1-3, за замовчуванням 1):"
|
|
1113
|
+
},
|
|
1114
|
+
"completionSummaryTitle": "Резюме завершення",
|
|
1115
|
+
"completionSummaryBasicTitle": "Підсумок завершення (базовий)",
|
|
1116
|
+
"totalChanges": "Всього змін: {count}",
|
|
1117
|
+
"languagesProcessed": "Оброблені мови: {count}",
|
|
1118
|
+
"missingKeysAdded": "Додано відсутні ключі: {count}",
|
|
1119
|
+
"reportPrompt": "Бажаєте створити звіт? (Y/n):",
|
|
1120
|
+
"reportGenerated": "Звіт створено: {reportPath}",
|
|
1121
|
+
"reportFailed": "Не вдалося створити звіт: {error}",
|
|
1122
|
+
"completionError": "Помилка під час завершення: {error}",
|
|
1123
|
+
"optimize": {
|
|
1124
|
+
"title": "Оптимізація розміру упаковки",
|
|
1125
|
+
"preview": "Виконується попередній перегляд оптимізації локалі...",
|
|
1126
|
+
"reduceTip": "Ви можете зменшити розмір пакета, вибравши лише ті мови, які вам потрібні.",
|
|
1127
|
+
"prompt": "Бажаєте запустити інтерактивну оптимізацію зараз? (y/n):",
|
|
1128
|
+
"starting": "Початок інтерактивної оптимізації мови...",
|
|
1129
|
+
"completed": "Оптимізацію пакета завершено.",
|
|
1130
|
+
"later": "Ви можете запустити оптимізацію локалі пізніше за допомогою:",
|
|
1131
|
+
"unavailable": "Не вдалося запропонувати оптимізацію мови: {error}"
|
|
1132
|
+
}
|
|
1133
|
+
},
|
|
1134
|
+
"language": {
|
|
1135
|
+
"title": "🌍 Змінити мову",
|
|
1136
|
+
"separator": "============================================================",
|
|
1137
|
+
"current": "Поточна мова: {language}",
|
|
1138
|
+
"available": "Доступні мови:",
|
|
1139
|
+
"languageOption": "{index}. {displayName}{current}",
|
|
1140
|
+
"backToMainMenu": "Назад до головного меню",
|
|
1141
|
+
"prompt": "Виберіть мову (0-8):",
|
|
1142
|
+
"cancelled": "Зміну мови скасовано.",
|
|
1143
|
+
"invalid": "Невірний вибір. Спробуйте ще раз.",
|
|
1144
|
+
"changed": "Мову змінено на: {language}",
|
|
1145
|
+
"changeFailed": "Не вдалося змінити мову: {error}",
|
|
1146
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити..."
|
|
1147
|
+
},
|
|
1148
|
+
"maintainLanguagePurity": {
|
|
1149
|
+
"workflow_title": "🚀 Робочий процес підтримки чистоти мови",
|
|
1150
|
+
"step1_title": "📊 КРОК 1: Початкова оцінка чистоти мови",
|
|
1151
|
+
"step2_title": "🔧 КРОК 2: виявлення та автоматичне виправлення мовних невідповідностей",
|
|
1152
|
+
"step3_title": "🌐 КРОК 3: Застосуйте автоматичний переклад",
|
|
1153
|
+
"step4_title": "✅ КРОК 4: остаточне оцінювання чистоти мови",
|
|
1154
|
+
"workflow_error": "❌ Помилка робочого процесу: {errorMessage}",
|
|
1155
|
+
"running_initial_validation": "Виконується початкова перевірка чистоти мови...",
|
|
1156
|
+
"initial_assessment_complete": "✅ Початкова оцінка завершена: {count} виявлені порушення",
|
|
1157
|
+
"initial_assessment_warnings": "⚠️ Початкова оцінка завершена попередженнями",
|
|
1158
|
+
"detecting_fixing_mismatches": "Виявлення та виправлення мовних невідповідностей...",
|
|
1159
|
+
"detection_complete_applying_fixes": "Виявлення завершено. Застосування автовиправлень...",
|
|
1160
|
+
"mismatch_fixes_complete": "✅ Виправлення мовних невідповідностей завершено: {count} застосовано виправлення",
|
|
1161
|
+
"mismatch_fixes_warnings": "⚠️ Виправлення мовних невідповідностей із попередженнями",
|
|
1162
|
+
"applying_automatic_translations": "Застосування автоматичних перекладів...",
|
|
1163
|
+
"translation_preview_complete": "Попередній перегляд перекладу завершено. Застосування перекладів..."
|
|
1164
|
+
},
|
|
1165
|
+
"menu": {
|
|
1166
|
+
"title": "🌐 МЕНЮ КЕРУВАННЯ I18NTK",
|
|
1167
|
+
"separator": "============================================================",
|
|
1168
|
+
"options": {
|
|
1169
|
+
"init": "🚀 Ініціалізація нових мов",
|
|
1170
|
+
"analyze": "🔍 Аналізуйте переклади",
|
|
1171
|
+
"validate": "✅ Перевірте переклади",
|
|
1172
|
+
"usage": "📊 Перевірте використання ключа",
|
|
1173
|
+
"complete": "🎯 Повні переклади (100% покриття)",
|
|
1174
|
+
"sizing": "📏 Проаналізуйте розміри",
|
|
1175
|
+
"fix": "🛠️ Виправте переклади заповнювачів",
|
|
1176
|
+
"scanner": "🔍 Сканувати проблеми i18n",
|
|
1177
|
+
"translate": "🌐 Автоматичний переклад",
|
|
1178
|
+
"workflow": "🔄 Запустіть повний робочий процес",
|
|
1179
|
+
"status": "📋 Показати статус проекту",
|
|
1180
|
+
"delete": "🗑️ Видалити всі звіти",
|
|
1181
|
+
"language": "🌍 Змінити мову інтерфейсу",
|
|
1182
|
+
"settings": "⚙️ Налаштування",
|
|
1183
|
+
"help": "❓ Допомога",
|
|
1184
|
+
"debug": "🔧 Інструменти налагодження",
|
|
1185
|
+
"exit": "вихід"
|
|
1186
|
+
},
|
|
1187
|
+
"update": "📦 Пакет оновлень",
|
|
1188
|
+
"goodbye": "👋 До побачення!",
|
|
1189
|
+
"invalidChoice": "Невірний вибір. Виберіть 0-15.",
|
|
1190
|
+
"returning": "Повернення до головного меню...",
|
|
1191
|
+
"invalidOption": "Недійсний варіант. Спробуйте ще раз.",
|
|
1192
|
+
"nonInteractiveModeWarning": "Виявлено неінтерактивний режим. Меню показано лише для довідки.",
|
|
1193
|
+
"useDirectExecution": "Використовуйте: node main/manage/index.js --command=<command> для безпосереднього виконання.",
|
|
1194
|
+
"useHelpForCommands": "Використовуйте: node main/manage/index.js --help для доступних команд.",
|
|
1195
|
+
"returnToMainMenu": "Натисніть Enter, щоб повернутися до головного меню.",
|
|
1196
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити...",
|
|
1197
|
+
"selectOptionPrompt": "Виберіть варіант:",
|
|
1198
|
+
"selectDebugToolPrompt": "Виберіть засіб налагодження:",
|
|
1199
|
+
"selectLogPrompt": "Виберіть файл журналу (1-{count}):",
|
|
1200
|
+
"autoDetectedI18nDirectory": "Автоматично визначений каталог i18n: {directory}",
|
|
1201
|
+
"executingCommand": "Виконання команди: {command}",
|
|
1202
|
+
"unknownCommand": "Невідома команда: {command}",
|
|
1203
|
+
"languageOption": "{index}. {displayName}{current}",
|
|
1204
|
+
"debugTools": {
|
|
1205
|
+
"1": "Аналіз файлу журналу",
|
|
1206
|
+
"2": "Аналіз використання ключа перекладу",
|
|
1207
|
+
"3": "Аналіз повноти перекладу",
|
|
1208
|
+
"4": "Аналіз формату перекладу",
|
|
1209
|
+
"5": "Аналіз типу перекладу",
|
|
1210
|
+
"6": "Аналіз структури перекладу"
|
|
1211
|
+
},
|
|
1212
|
+
"native_translations": {
|
|
1213
|
+
"exact_translation_found": "✅ {keyPath}: {value}",
|
|
1214
|
+
"no_exact_translation": "⚠️ Немає точного перекладу \"{keyPath}', знайдено схожі ключі:",
|
|
1215
|
+
"similar_key": "- {key} ({similarity}% відповідності)",
|
|
1216
|
+
"processing_language_files": "🔄 Обробка {count} мовні файли...",
|
|
1217
|
+
"file_not_found": "⚠️ Файл не знайдено: {file}",
|
|
1218
|
+
"processing_translations": "🌍 Обробка {code} переклади...",
|
|
1219
|
+
"backup_created": "📋 Резервну копію створено: {filename}",
|
|
1220
|
+
"error_parsing_json": "❌ Помилка аналізу {code}.json: {errorMessage}",
|
|
1221
|
+
"existing_keys_found": "📊 {code}: Знайдено {count} існуючі ключі",
|
|
1222
|
+
"error_writing_json": "❌ Помилка написання {code}.json: {errorMessage}",
|
|
1223
|
+
"translations_replaced": "📊 {code}: {count} переклади замінені",
|
|
1224
|
+
"translation_replacement_complete": "✅ Заміна перекладу завершена!",
|
|
1225
|
+
"total_replacements": "📊 Загальна кількість замін: {count}",
|
|
1226
|
+
"dry_run_mode": "⚠️ РЕЖИМ ПРОХОЖЕННЯ - файли не змінено",
|
|
1227
|
+
"tool_title": "🌍 Заміна рідного перекладу v1.9.1",
|
|
1228
|
+
"tool_separator": "======================================",
|
|
1229
|
+
"dry_run_warning": "⚠️ Запуск у режимі DRY RUN - жодні файли не будуть змінені",
|
|
1230
|
+
"error_during_replacement": "❌ Помилка під час заміни перекладу:"
|
|
1231
|
+
}
|
|
1232
|
+
},
|
|
1233
|
+
"config": {
|
|
1234
|
+
"dirFallbackWarning": "⚠️ Довідник {dir} не знайдено. Використання {fallback}.",
|
|
1235
|
+
"dirInvalidError": "❌ Недійсний каталог: {dir}"
|
|
1236
|
+
},
|
|
1237
|
+
"operations": {
|
|
1238
|
+
"completed": "✅ Операція завершена успішно!",
|
|
1239
|
+
"deleteReportsTitle": "🗑️ Видалити звіти, журнали та кеш",
|
|
1240
|
+
"scanningForFiles": "🔍 Сканування файлів для видалення...",
|
|
1241
|
+
"noFilesFoundToDelete": "✅ Не знайдено файлів для видалення.",
|
|
1242
|
+
"availableDirectories": "📁 Доступні каталоги:",
|
|
1243
|
+
"allDirectories": "Всі каталоги",
|
|
1244
|
+
"andMore": "і більше...",
|
|
1245
|
+
"cancelOption": "Скасувати",
|
|
1246
|
+
"cancelReportOption": "Скасувати / Повернутися до меню",
|
|
1247
|
+
"invalidSelection": "❌ Невірний вибір.",
|
|
1248
|
+
"foundFilesInSelectedDirectories": "📊 Знайдено {count} файли у вибраних каталогах:",
|
|
1249
|
+
"deletionOptions": "🗑️ Параметри видалення:",
|
|
1250
|
+
"deleteAllFiles": "Видалити всі файли",
|
|
1251
|
+
"keepLast3Files": "Зберігати останні 3 файли (за датою)",
|
|
1252
|
+
"keepLast5Files": "Зберігати останні 5 файлів (за датою)",
|
|
1253
|
+
"noFilesToDelete": "✅ Немає файлів для видалення.",
|
|
1254
|
+
"filesToDeleteCount": "📋 Файли для видалення: {count}",
|
|
1255
|
+
"filesToKeepCount": "📋 Файли для зберігання: {count}",
|
|
1256
|
+
"confirmDeletion": "⚠️ Ви впевнені, що хочете видалити ці файли? (так/ні):",
|
|
1257
|
+
"deletedFile": "✅ Видалено: {filename}",
|
|
1258
|
+
"failedToDeleteFile": "❌ Не вдалося видалити {filename}: {error}",
|
|
1259
|
+
"cancelled": "❌ Операцію скасовано.",
|
|
1260
|
+
"init": {
|
|
1261
|
+
"title": "🚀 Ініціалізація нової мови"
|
|
1262
|
+
},
|
|
1263
|
+
"usage": {
|
|
1264
|
+
"title": "📊 Перевірте використання ключа",
|
|
1265
|
+
"noUsedKeysHint": "Знайдено переклади, але не використано в джерелі. Перевірте --source-dir і translationPatterns."
|
|
1266
|
+
},
|
|
1267
|
+
"analyze": {
|
|
1268
|
+
"title": "🔍 Аналізуйте переклади"
|
|
1269
|
+
},
|
|
1270
|
+
"validate": {
|
|
1271
|
+
"title": "✅ Перевірте переклади"
|
|
1272
|
+
},
|
|
1273
|
+
"settings": {
|
|
1274
|
+
"title": "⚙️ Керування налаштуваннями",
|
|
1275
|
+
"separator": "============================================================"
|
|
1276
|
+
},
|
|
1277
|
+
"complete": {
|
|
1278
|
+
"deletingOldReport": "🗑️ Видалення старого звіту про використання для нового аналізу",
|
|
1279
|
+
"generatingFreshAnalysis": "🔄 Створення нового аналізу використання...",
|
|
1280
|
+
"couldNotGenerate": "⚠️ Не вдалося створити аналіз використання. Використання типових відсутніх ключів.",
|
|
1281
|
+
"reportNotFound": "⚠️ Звіт про використання не знайдено. Створення нового аналізу...",
|
|
1282
|
+
"foundMissingKeys": "🔍 Знайдено {count} відсутні ключі в аналізі використання",
|
|
1283
|
+
"couldNotParse": "⚠️ Не вдалося проаналізувати звіт про використання. Використання типових відсутніх ключів.",
|
|
1284
|
+
"title": "🎯 ЗАВЕРШЕННЯ ПЕРЕКЛАДІВ",
|
|
1285
|
+
"separator": "============================================================",
|
|
1286
|
+
"sourceDir": "📁 Вихідний каталог: {sourceDir}",
|
|
1287
|
+
"sourceLanguage": "🔤 Мова оригіналу: {sourceLanguage}",
|
|
1288
|
+
"dryRunMode": "🧪 РЕЖИМ ПРОХОЖЕННЯ - файли не будуть змінені",
|
|
1289
|
+
"languages": "🎯 Цільові мови: {languages}",
|
|
1290
|
+
"addingMissingKeys": "➕ Додавання відсутніх ключів до файлів перекладу...",
|
|
1291
|
+
"processing": "🔄 Обробка {language}...",
|
|
1292
|
+
"addedKeys": "✅ Додано {count} ключі",
|
|
1293
|
+
"changeDetails": "📝 {file}: {key}",
|
|
1294
|
+
"noChangesNeeded": "✅ Ніяких змін не потрібно {language}",
|
|
1295
|
+
"summaryTitle": "📊 ПІДСУМКИ ЗАВЕРШЕННЯ",
|
|
1296
|
+
"totalChanges": "📝 Загальні зміни: {totalChanges}",
|
|
1297
|
+
"languagesProcessed": "🌐 Оброблені мови: {languagesProcessed}",
|
|
1298
|
+
"missingKeysAdded": "➕ Додано відсутні ключі: {missingKeysAdded}",
|
|
1299
|
+
"nextStepsTitle": "📋 NEXT STEPS",
|
|
1300
|
+
"nextStep1": "1. Виконайте аналіз використання:",
|
|
1301
|
+
"nextStep2": "2. Перевірте переклади:",
|
|
1302
|
+
"nextStep3": "3. Проаналізуйте повноту:",
|
|
1303
|
+
"allKeysAvailable": "🎉 Усі ключі перекладу тепер доступні!",
|
|
1304
|
+
"runWithoutDryRun": "💡 Запустіть без --dry-run, щоб застосувати зміни",
|
|
1305
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити..."
|
|
1306
|
+
},
|
|
1307
|
+
"updatePackage": {
|
|
1308
|
+
"title": "📦 Оновити пакет i18n-toolkit",
|
|
1309
|
+
"description": "Це оновить пакет i18n-toolkit до останньої версії, доступної на npm.",
|
|
1310
|
+
"command": "Команда на біг",
|
|
1311
|
+
"confirm": "Ви впевнені, що бажаєте продовжити оновлення? (так/ні):",
|
|
1312
|
+
"updating": "Оновлення пакета... Це може зайняти деякий час.",
|
|
1313
|
+
"success": "✅ i18n-toolkit успішно оновлено!",
|
|
1314
|
+
"error": "❌ Не вдалося оновити i18n-toolkit",
|
|
1315
|
+
"cancelled": "❌ Оновлення скасовано."
|
|
1316
|
+
}
|
|
1317
|
+
},
|
|
1318
|
+
"security": {
|
|
1319
|
+
"pathValidationFailed": "path_validation_failed",
|
|
1320
|
+
"invalidInputType": "недійсний_тип_введення",
|
|
1321
|
+
"pathTraversalAttempt": "path_traversal_attempt",
|
|
1322
|
+
"pathValidated": "✅ Шлях успішно перевірено",
|
|
1323
|
+
"pathValidationError": "path_validation_error",
|
|
1324
|
+
"fileTooLarge": "Безпека: файл завеликий: {filePath}",
|
|
1325
|
+
"fileReadError": "Безпека: помилка читання файлу: {errorMessage}",
|
|
1326
|
+
"contentTooLargeForFile": "Безпека: вміст завеликий для файлу: {filePath}",
|
|
1327
|
+
"fileWriteError": "Безпека: помилка запису файлу: {errorMessage}",
|
|
1328
|
+
"jsonStringTooLarge": "Безпека: рядок JSON завеликий",
|
|
1329
|
+
"jsonParseError": "Безпека: помилка аналізу JSON: {errorMessage}",
|
|
1330
|
+
"inputContainsDisallowedCharacters": "Безпека: введені дані містять заборонені символи",
|
|
1331
|
+
"unknownCommandArgument": "Безпека: невідомий аргумент команди: {key}",
|
|
1332
|
+
"unknown_command_argument": "Безпека: невідомий аргумент команди: {key}",
|
|
1333
|
+
"unknownConfigKey": "Безпека: невідомий ключ конфігурації: {key}",
|
|
1334
|
+
"unknown_config_key": "Безпека: невідомий ключ конфігурації: {key}",
|
|
1335
|
+
"securityAlert": "[СПОВІЩЕННЯ БЕЗПЕКИ] {timestamp}: {event}",
|
|
1336
|
+
"contentTooLarge": "Безпека: вміст завеликий для файлу: {validatedPath}",
|
|
1337
|
+
"inputDisallowedCharacters": "Безпека: введені дані містять заборонені символи",
|
|
1338
|
+
"unknownCommandArg": "Невідомий аргумент команди",
|
|
1339
|
+
"logMessage": "[БЕЗПЕКА {level}] {timestamp}: {event}",
|
|
1340
|
+
"alertMessage": "[СПОВІЩЕННЯ БЕЗПЕКИ] {timestamp}: {event}",
|
|
1341
|
+
"securityWarning": "[ПОПЕРЕДЖЕННЯ ПРО БЕЗПЕКУ] {timestamp}: {event}",
|
|
1342
|
+
"json_parse_error": "Безпека: помилка аналізу JSON: {errorMessage}",
|
|
1343
|
+
"file_too_large": "Файл завеликий",
|
|
1344
|
+
"file_read_error": "Помилка читання файлу",
|
|
1345
|
+
"content_too_large_for_file": "Вміст завеликий для файлу",
|
|
1346
|
+
"file_write_error": "Помилка запису файлу",
|
|
1347
|
+
"json_string_too_large": "Рядок Json завеликий",
|
|
1348
|
+
"recursion_detected": "Виявлено рекурсію в {operation}",
|
|
1349
|
+
"operation_timeout": "Час очікування операції: {operation}",
|
|
1350
|
+
"operation_error": "Помилка операції в {operation}: {error}",
|
|
1351
|
+
"directory_read_error": "Помилка читання каталогу: {errorMessage}",
|
|
1352
|
+
"security_alert": "Оповіщення безпеки"
|
|
1353
|
+
},
|
|
1354
|
+
"settings-cli": {
|
|
1355
|
+
"settings": {
|
|
1356
|
+
"mainMenu": {
|
|
1357
|
+
"title": "Головне меню:",
|
|
1358
|
+
"uiSettings": "Налаштування інтерфейсу користувача",
|
|
1359
|
+
"uiSettingsDesc": "Параметри мови, теми та інтерфейсу",
|
|
1360
|
+
"directorySettings": "Параметри каталогу",
|
|
1361
|
+
"directorySettingsDesc": "Шляхи вихідного та вихідного каталогу",
|
|
1362
|
+
"scriptDirectorySettings": "Параметри каталогу сценаріїв",
|
|
1363
|
+
"scriptDirectorySettingsDesc": "Шляхи до каталогу для окремих операцій сценарію",
|
|
1364
|
+
"processingSettings": "Налаштування обробки",
|
|
1365
|
+
"processingSettingsDesc": "Розмір пакета, паралельність і продуктивність",
|
|
1366
|
+
"advancedSettings": "Розширені налаштування",
|
|
1367
|
+
"advancedSettingsDesc": "Перевірка, журналювання та експертні параметри",
|
|
1368
|
+
"viewAllSettings": "Переглянути всі налаштування",
|
|
1369
|
+
"viewAllSettingsDesc": "Відображення поточної конфігурації",
|
|
1370
|
+
"importExport": "Імпорт/Експорт",
|
|
1371
|
+
"importExportDesc": "Налаштування резервного копіювання та відновлення",
|
|
1372
|
+
"resetToDefaults": "Скинути до значень за замовчуванням",
|
|
1373
|
+
"resetToDefaultsDesc": "Відновити заводські налаштування",
|
|
1374
|
+
"reportBug": "Повідомити про помилку",
|
|
1375
|
+
"reportBugDesc": "Надішліть звіт про проблему на GitHub",
|
|
1376
|
+
"saveChanges": "Зберегти зміни",
|
|
1377
|
+
"saveChangesDesc": "Зберегти поточні налаштування у файл",
|
|
1378
|
+
"updatePackage": "Пакет оновлення",
|
|
1379
|
+
"updatePackageDesc": "Оновіть пакет i18n-toolkit через npm",
|
|
1380
|
+
"help": "Довідка",
|
|
1381
|
+
"helpDesc": "Показати детальну довідкову інформацію",
|
|
1382
|
+
"quit": "Вийти",
|
|
1383
|
+
"quitDesc": "Вийти з налаштувань (за необхідності зберегти підказку)",
|
|
1384
|
+
"unsavedChangesWarning": "⚠️ У вас є незбережені зміни",
|
|
1385
|
+
"saveChangesBeforeQuit": "Ви хочете зберегти зміни перед виходом? (так/ні):",
|
|
1386
|
+
"selectOption": "Виберіть варіант:",
|
|
1387
|
+
"goodbyeMessage": "Дякуємо за використання менеджера налаштувань i18n!"
|
|
1388
|
+
},
|
|
1389
|
+
"goodbyeMessage": "Дякуємо за використання менеджера налаштувань i18n!",
|
|
1390
|
+
"relativePathHint": "Використовуйте відносні шляхи з цього каталогу (наприклад, ./src/i18n/locales)",
|
|
1391
|
+
"currentDirectory": "Поточний каталог проектів"
|
|
1392
|
+
},
|
|
1393
|
+
"settings_manager": {
|
|
1394
|
+
"error_loading_settings": "❌ Помилка завантаження налаштувань:",
|
|
1395
|
+
"error_saving_settings": "❌ Помилка збереження налаштувань:",
|
|
1396
|
+
"error_setting_value": "❌ Помилка налаштування значення:",
|
|
1397
|
+
"missing_required_setting": "❌ Відсутнє обов’язкове налаштування: {prop}",
|
|
1398
|
+
"invalid_language": "❌ Недійсна мова: {language}",
|
|
1399
|
+
"invalid_source_language": "❌ Недійсна вихідна мова: {sourceLanguage}",
|
|
1400
|
+
"default_languages_must_be_array": "❌ defaultLanguages має бути масивом",
|
|
1401
|
+
"invalid_date_format": "❌ Недійсний формат дати: {dateFormat}. Дійсні формати: {validFormats}",
|
|
1402
|
+
"invalid_time_format": "❌ Недійсний формат часу: {timeFormat}. Дійсні формати: {validFormats}",
|
|
1403
|
+
"notifications_types_must_be_object": "❌ notifications.types має бути об’єктом",
|
|
1404
|
+
"exclude_files_must_be_array": "❌ excludeFiles має бути масивом",
|
|
1405
|
+
"exclude_dirs_must_be_array": "❌ excludeDirs має бути масивом",
|
|
1406
|
+
"include_extensions_must_be_array": "❌ includeExtensions має бути масивом",
|
|
1407
|
+
"invalid_batch_size": "❌ Недійсний розмір партії. Має бути додатним числом",
|
|
1408
|
+
"invalid_max_concurrent_files": "❌ Недійсна максимальна кількість одночасних файлів. Має бути додатним числом",
|
|
1409
|
+
"invalid_sizing_threshold": "❌ Недійсний поріг розміру. Має бути додатним числом",
|
|
1410
|
+
"invalid_timeout": "❌ Недійсний тайм-аут. Має бути не менше 1000 мс",
|
|
1411
|
+
"invalid_sizing_format": "❌ Недійсний формат розміру: {sizingFormat}. Дійсні формати: {validFormats}",
|
|
1412
|
+
"error_validating_settings": "❌ Помилка перевірки налаштувань:",
|
|
1413
|
+
"backup_created": "📋 Резервну копію створено: {backupPath}",
|
|
1414
|
+
"error_creating_backup": "❌ Помилка створення резервної копії:",
|
|
1415
|
+
"language_not_supported": "Мова '{language}' не підтримується. В наявності: {availableLanguages}",
|
|
1416
|
+
"ui_language_set": "🌍 Мова інтерфейсу користувача встановлена на: {language}"
|
|
1417
|
+
}
|
|
1418
|
+
},
|
|
1419
|
+
"settings": {
|
|
1420
|
+
"title": "⚙️ Керування налаштуваннями",
|
|
1421
|
+
"separator": "============================================================",
|
|
1422
|
+
"goodbyeMessage": "Дякуємо за використання менеджера налаштувань i18ntk!",
|
|
1423
|
+
"relativePathHint": "Використовуйте відносні шляхи з цього каталогу (наприклад, ./src/i18n/locales)",
|
|
1424
|
+
"currentDirectory": "Поточний каталог проектів",
|
|
1425
|
+
"startingSettings": "Початкові налаштування:",
|
|
1426
|
+
"pin": "PIN:",
|
|
1427
|
+
"reportBug": {
|
|
1428
|
+
"title": "Повідомити про помилку",
|
|
1429
|
+
"description": "Повідомте про будь-які проблеми чи помилки, які виникли",
|
|
1430
|
+
"guidance": "Щоб ефективно повідомляти про проблеми:",
|
|
1431
|
+
"checkLogs": "1. Перевірте журнали налагодження в каталозі проекту",
|
|
1432
|
+
"documentIssue": "2. Задокументуйте проблему з кроками для відтворення",
|
|
1433
|
+
"contactSupport": "3. Зверніться до системного адміністратора або служби підтримки",
|
|
1434
|
+
"completed": "Відображаються вказівки щодо звітування про помилки",
|
|
1435
|
+
"instructions": "Дотримуйтесь інструкцій вище, щоб повідомити про помилку."
|
|
1436
|
+
},
|
|
1437
|
+
"mainMenu": {
|
|
1438
|
+
"title": "Головне меню:",
|
|
1439
|
+
"uiSettings": "Налаштування інтерфейсу користувача",
|
|
1440
|
+
"uiSettingsDesc": "Параметри мови, теми та інтерфейсу",
|
|
1441
|
+
"directorySettings": "Параметри каталогу",
|
|
1442
|
+
"directorySettingsDesc": "Шляхи вихідного та вихідного каталогу",
|
|
1443
|
+
"processingSettings": "Налаштування обробки",
|
|
1444
|
+
"processingSettingsDesc": "Розмір пакета, паралельність і продуктивність",
|
|
1445
|
+
"advancedSettings": "Розширені налаштування",
|
|
1446
|
+
"advancedSettingsDesc": "Перевірка, журналювання та експертні параметри",
|
|
1447
|
+
"viewAllSettings": "Переглянути всі налаштування",
|
|
1448
|
+
"viewAllSettingsDesc": "Відображення поточної конфігурації",
|
|
1449
|
+
"importExport": "Імпорт/Експорт",
|
|
1450
|
+
"updatePackage": "Пакет оновлення",
|
|
1451
|
+
"updatePackageDesc": "Оновіть пакет i18n-toolkit через npm",
|
|
1452
|
+
"importExportDesc": "Налаштування резервного копіювання та відновлення",
|
|
1453
|
+
"resetToDefaults": "Скинути до значень за замовчуванням",
|
|
1454
|
+
"resetToDefaultsDesc": "Відновити заводські налаштування",
|
|
1455
|
+
"reportBug": "Повідомити про помилку",
|
|
1456
|
+
"reportBugDesc": "Надішліть звіт про проблему на GitHub",
|
|
1457
|
+
"saveChanges": "Зберегти зміни",
|
|
1458
|
+
"saveChangesDesc": "Зберегти поточні налаштування у файл",
|
|
1459
|
+
"help": "Довідка",
|
|
1460
|
+
"helpDesc": "Показати детальну довідкову інформацію",
|
|
1461
|
+
"quit": "Вийти",
|
|
1462
|
+
"quitDesc": "Вийти з налаштувань (за необхідності зберегти підказку)",
|
|
1463
|
+
"unsavedChangesWarning": "⚠️ У вас є незбережені зміни",
|
|
1464
|
+
"saveChangesBeforeQuit": "Ви хочете зберегти зміни перед виходом? (так/ні):",
|
|
1465
|
+
"selectOption": "Виберіть варіант:",
|
|
1466
|
+
"goodbyeMessage": "Дякуємо за використання менеджера налаштувань i18n!",
|
|
1467
|
+
"selectSettingPrompt": "Виберіть налаштування для редагування (або «b», щоб повернутися):",
|
|
1468
|
+
"enterNewValue": "Введіть нове значення:",
|
|
1469
|
+
"updatedSuccessfully": "{setting} успішно оновлено!",
|
|
1470
|
+
"scriptDirectorySettings": "Параметри каталогу сценаріїв",
|
|
1471
|
+
"scriptDirectoryDesc": "Вкажіть спеціальні каталоги для кожного сценарію",
|
|
1472
|
+
"scriptDirectorySettingsDesc": "Ви можете встановити власні каталоги для кожного сценарію. Якщо не встановлено, використовуватимуться глобальні налаштування.",
|
|
1473
|
+
"currentDirectory": "Поточний каталог проектів",
|
|
1474
|
+
"securitySettings": "Параметри безпеки",
|
|
1475
|
+
"securitySettingsDesc": "PIN адміністратора та інші параметри безпеки",
|
|
1476
|
+
"backupSettings": "Налаштування резервного копіювання",
|
|
1477
|
+
"backupSettingsDesc": "Резервне копіювання та відновлення параметрів конфігурації",
|
|
1478
|
+
"autoTranslate": "Автоматичний переклад",
|
|
1479
|
+
"autoTranslateDesc": "Налаштуйте обробку заповнювачів, паралелізм, групування та звіти"
|
|
1480
|
+
},
|
|
1481
|
+
"updatePackage": {
|
|
1482
|
+
"title": "Пакет оновлення",
|
|
1483
|
+
"description": "Оновіть пакет i18n-toolkit через npm",
|
|
1484
|
+
"command": "npm оновлення i18ntk -g",
|
|
1485
|
+
"success": "Оновлення успішно завершено.",
|
|
1486
|
+
"failed": "Помилка оновлення.",
|
|
1487
|
+
"prompt": "Ви бажаєте оновити пакет зараз? (так/ні):",
|
|
1488
|
+
"promptDesc": "Примітка. Це призведе до оновлення пакета i18ntk до останньої версії.",
|
|
1489
|
+
"confirm": "р",
|
|
1490
|
+
"cancelled": "Оновлення скасовано.",
|
|
1491
|
+
"error": "Не вдалося оновити пакет",
|
|
1492
|
+
"updating": "Оновлення пакета..."
|
|
1493
|
+
},
|
|
1494
|
+
"admin": {
|
|
1495
|
+
"selectOption": "Виберіть варіант:",
|
|
1496
|
+
"updateSuccess": "PIN адміністратора успішно оновлено!",
|
|
1497
|
+
"updateFailed": "Не вдалося оновити PIN-код адміністратора.",
|
|
1498
|
+
"protectionRemoved": "Захист PIN-кодом адміністратора знято.",
|
|
1499
|
+
"configSuccess": "PIN адміністратора налаштовано успішно!",
|
|
1500
|
+
"configFailed": "Не вдалося налаштувати PIN-код адміністратора.",
|
|
1501
|
+
"setupPinPrompt": "Бажаєте встановити PIN-код адміністратора? (так/ні):",
|
|
1502
|
+
"pinUpdatedSuccess": "PIN адміністратора успішно оновлено!",
|
|
1503
|
+
"pinUpdatedFailed": "Не вдалося оновити PIN-код адміністратора.",
|
|
1504
|
+
"pinRemoved": "Захист PIN-кодом адміністратора знято.",
|
|
1505
|
+
"pinConfiguredSuccess": "PIN адміністратора налаштовано успішно!",
|
|
1506
|
+
"pinConfiguredFailed": "Не вдалося налаштувати PIN-код адміністратора.",
|
|
1507
|
+
"accessDenied": "❌ Доступ заборонено. Повернення до меню.",
|
|
1508
|
+
"setupPin": "🔐 Налаштування PIN-коду адміністратора...",
|
|
1509
|
+
"setupFailed": "❌ Не вдалося налаштувати PIN-код адміністратора. Налаштування не змінено.",
|
|
1510
|
+
"pinConfigured": "📌 PIN адміністратора наразі налаштовано.",
|
|
1511
|
+
"options": "Опції:",
|
|
1512
|
+
"changePin": "1) Змініть існуючий PIN-код",
|
|
1513
|
+
"removePin": "2) Зніміть захист PIN-кодом",
|
|
1514
|
+
"cancel": "3) Скасувати",
|
|
1515
|
+
"verifyCurrentPin": "🔐 Спочатку підтвердьте поточний PIN-код:",
|
|
1516
|
+
"settingNewPin": "🔄 Налаштування нового PIN-коду...",
|
|
1517
|
+
"verifyToRemove": "🔐 Перевірте поточний PIN-код, щоб зняти захист:",
|
|
1518
|
+
"noPinConfigured": "🔓 Наразі не налаштовано PIN-код адміністратора.",
|
|
1519
|
+
"pinBenefits": "Налаштування PIN-коду адміністратора додасть безпеки для:",
|
|
1520
|
+
"benefitSecurity": "• Зміна параметрів безпеки",
|
|
1521
|
+
"benefitAdvanced": "• Зміна розширених конфігурацій",
|
|
1522
|
+
"benefitDebug": "• Доступ до інструментів налагодження",
|
|
1523
|
+
"benefitReset": "• Скидання налаштувань",
|
|
1524
|
+
"setupCancelled": "⏭️ Налаштування PIN-коду адміністратора скасовано.",
|
|
1525
|
+
"operationCancelled": "❌ Операцію скасовано.",
|
|
1526
|
+
"startingSettings": "🎛️ Запуск налаштувань CLI...",
|
|
1527
|
+
"authRequired": "🔒 Автентифікація адміністратора потрібна для: {label}",
|
|
1528
|
+
"pinSetupTitle": "Налаштування PIN-коду адміністратора",
|
|
1529
|
+
"browserOpenFailed": "Не вдалося автоматично відкрити браузер.",
|
|
1530
|
+
"manualVisit": "Відвідайте вручну: {url}",
|
|
1531
|
+
"browserOpened": "✅ Браузер відкрито успішно!"
|
|
1532
|
+
},
|
|
1533
|
+
"importExport": {
|
|
1534
|
+
"title": "Параметри імпорту/експорту",
|
|
1535
|
+
"export": "Налаштування експорту",
|
|
1536
|
+
"import": "Налаштування імпорту",
|
|
1537
|
+
"backup": "Створити резервну копію",
|
|
1538
|
+
"enterFilename": "Введіть назву файлу (або натисніть Enter для замовчування):",
|
|
1539
|
+
"exportSuccess": "Налаштування експортовано в {file}",
|
|
1540
|
+
"exportFailed": "Не вдалося експортувати налаштування: {error}",
|
|
1541
|
+
"importFilename": "Введіть назву файлу для імпорту:",
|
|
1542
|
+
"fileNotFound": "Файл не знайдено.",
|
|
1543
|
+
"invalidFormat": "Недійсний формат файлу налаштувань.",
|
|
1544
|
+
"confirmImport": "Це замінить усі поточні налаштування. Продовжити? (так/ні):",
|
|
1545
|
+
"importSuccess": "Налаштування успішно імпортовано.",
|
|
1546
|
+
"importFailed": "Не вдалося імпортувати налаштування: {error}",
|
|
1547
|
+
"backupSuccess": "Резервну копію створено: {file}",
|
|
1548
|
+
"backupFailed": "Не вдалося створити резервну копію: {error}",
|
|
1549
|
+
"exportFilenamePrompt": "Введіть назву файлу експорту:",
|
|
1550
|
+
"importConfirm": "Імпортувати цей файл налаштувань? (так/ні):",
|
|
1551
|
+
"importFilenamePrompt": "Введіть назву файлу імпорту:",
|
|
1552
|
+
"manageBackups": "Керуйте резервними копіями",
|
|
1553
|
+
"restore": "Відновити налаштування"
|
|
1554
|
+
},
|
|
1555
|
+
"selectOption": "Виберіть варіант:",
|
|
1556
|
+
"resetToDefaultsTitle": "Скинути налаштування до значень за замовчуванням",
|
|
1557
|
+
"resetWarning1": "⚠️ Це скине ВСІ налаштування до значень за замовчуванням.",
|
|
1558
|
+
"resetWarning2": "Цю дію не можна скасувати.",
|
|
1559
|
+
"resetConfirm": "Ви впевнені, що бажаєте продовжити? (так/ні):",
|
|
1560
|
+
"resetSuccess": "Налаштування успішно скинуто до значень за замовчуванням.",
|
|
1561
|
+
"resetFailed": "Не вдалося скинути налаштування: {error}",
|
|
1562
|
+
"resetDone": "Налаштування успішно скинуто до значень за замовчуванням.",
|
|
1563
|
+
"resetScriptDirsDone": "Каталоги сценаріїв успішно скинуто до системних значень за замовчуванням.",
|
|
1564
|
+
"saveSuccess": "Налаштування успішно збережено.",
|
|
1565
|
+
"saveFailed": "Не вдалося зберегти налаштування.",
|
|
1566
|
+
"saveError": "Надано недійсні налаштування",
|
|
1567
|
+
"pressEnter": "Натисніть Enter, щоб продовжити...",
|
|
1568
|
+
"initFailed": "Не вдалося ініціалізувати налаштування: {error}",
|
|
1569
|
+
"invalidValueFormat": "Недійсний формат значення.",
|
|
1570
|
+
"help": {
|
|
1571
|
+
"title": "Довідка з налаштувань",
|
|
1572
|
+
"navigationTitle": "Навігація",
|
|
1573
|
+
"navigation1": "1. Загальні параметри - Налаштуйте мову інтерфейсу користувача, тему та основні параметри",
|
|
1574
|
+
"navigation2": "2. Параметри каталогу - Встановіть вихідний і вихідний каталоги для файлів перекладу",
|
|
1575
|
+
"navigation3": "3. Параметри обробки - налаштуйте параметри розміру партії, паралелізму та продуктивності",
|
|
1576
|
+
"navigation4": "4. Розширені параметри - Перевірка доступу, журналювання та параметри експертної конфігурації",
|
|
1577
|
+
"categoriesTitle": "Категорії налаштувань",
|
|
1578
|
+
"categoryUI": "• Параметри інтерфейсу користувача: мова інтерфейсу, кольорова тема та параметри відображення",
|
|
1579
|
+
"categoryDirectory": "• Параметри каталогу: розташування вихідних файлів і каталоги вихідних звітів",
|
|
1580
|
+
"categoryProcessing": "• Параметри обробки: пакетна обробка, обмеження файлів і налаштування продуктивності",
|
|
1581
|
+
"categoryAdvanced": "• Розширені параметри: режим налагодження, журнал аудиту та параметри безпеки",
|
|
1582
|
+
"envVarsTitle": "Змінні середовища",
|
|
1583
|
+
"envVar1": "• I18N_SOURCE_DIR: замінити шлях вихідного каталогу за замовчуванням",
|
|
1584
|
+
"envVar2": "• I18N_OUTPUT_DIR: замінити вихідний шлях за замовчуванням",
|
|
1585
|
+
"envVar3": "• I18N_DEBUG: увімкнути режим налагодження (true/false)",
|
|
1586
|
+
"cliUsageTitle": "Приклади використання CLI",
|
|
1587
|
+
"cliUsage1": "• npx i18ntk --settings: відкрити інтерактивне меню налаштувань",
|
|
1588
|
+
"cliUsage2": "• npx i18ntk --settings --lang de: відкрити налаштування німецькою мовою",
|
|
1589
|
+
"cliUsage3": "• npx i18ntk --reset-settings: скинути всі налаштування до значень за замовчуванням",
|
|
1590
|
+
"navigation": "Використовуйте цифрові клавіші, щоб вибрати параметри, «b», щоб повернутися",
|
|
1591
|
+
"editing": "Введіть нові значення, коли буде запропоновано, або натисніть Enter, щоб зберегти поточні",
|
|
1592
|
+
"saving": "Використовуйте '', щоб зберегти зміни перед виходом",
|
|
1593
|
+
"reset": "Використовуйте опцію 7, щоб скинути всі налаштування до значень за замовчуванням"
|
|
1594
|
+
},
|
|
1595
|
+
"categories": {
|
|
1596
|
+
"uiSettings": "Налаштування інтерфейсу користувача",
|
|
1597
|
+
"directorySettings": "Параметри каталогу",
|
|
1598
|
+
"processingSettings": "Налаштування обробки",
|
|
1599
|
+
"advancedSettings": "Розширені налаштування",
|
|
1600
|
+
"scriptDirectorySettings": "Параметри каталогу сценаріїв",
|
|
1601
|
+
"securitySettings": "Параметри безпеки",
|
|
1602
|
+
"autoTranslate": "Налаштування автоматичного перекладу"
|
|
1603
|
+
},
|
|
1604
|
+
"security": {
|
|
1605
|
+
"title": "🔐 Налаштування безпеки",
|
|
1606
|
+
"description": "Налаштуйте захист PIN-кодом адміністратора та параметри безпеки",
|
|
1607
|
+
"currentPin": "Поточний PIN-код:",
|
|
1608
|
+
"pinConfigured": "✅ Налаштовано",
|
|
1609
|
+
"pinNotConfigured": "❌ Не налаштовано",
|
|
1610
|
+
"pinDisplay": "Відображення PIN-коду:",
|
|
1611
|
+
"menu": {
|
|
1612
|
+
"enableDisable": "1) Увімкнути/вимкнути PIN-код адміністратора",
|
|
1613
|
+
"setupChange": "2) Налаштувати/змінити PIN-код адміністратора",
|
|
1614
|
+
"sessionTimeout": "3) Тайм-аут сеансу",
|
|
1615
|
+
"maxAttempts": "4) Максимальна кількість невдалих спроб",
|
|
1616
|
+
"lockoutDuration": "5) Тривалість блокування",
|
|
1617
|
+
"back": "b) Повернення до головного меню"
|
|
1618
|
+
},
|
|
1619
|
+
"prompts": {
|
|
1620
|
+
"enablePin": "Увімкнути захист PIN-кодом адміністратора? (так/ні):",
|
|
1621
|
+
"disablePin": "Вимкнути захист PIN-кодом адміністратора? (так/ні):",
|
|
1622
|
+
"enterTimeout": "Введіть тайм-аут сеансу (у хвилинах):",
|
|
1623
|
+
"enterMaxAttempts": "Введіть максимальну кількість невдалих спроб:",
|
|
1624
|
+
"enterLockoutDuration": "Введіть тривалість блокування (у хвилинах):"
|
|
1625
|
+
},
|
|
1626
|
+
"messages": {
|
|
1627
|
+
"pinEnabled": "Захист PIN-кодом адміністратора ввімкнено",
|
|
1628
|
+
"pinDisabled": "Захист PIN-кодом адміністратора вимкнено",
|
|
1629
|
+
"timeoutUpdated": "Час очікування сеансу оновлено до {minutes} хвилин",
|
|
1630
|
+
"maxAttemptsUpdated": "Максимальна кількість невдалих спроб оновлено до {attempts}",
|
|
1631
|
+
"lockoutDurationUpdated": "Тривалість блокування оновлено до {minutes} хвилин"
|
|
1632
|
+
}
|
|
1633
|
+
},
|
|
1634
|
+
"fields": {
|
|
1635
|
+
"backup.enabled": {
|
|
1636
|
+
"label": "Enable Backup",
|
|
1637
|
+
"description": "Enable automatic backup of settings",
|
|
1638
|
+
"help": "Enable/disable backup feature"
|
|
1639
|
+
},
|
|
1640
|
+
"backup.singleFileMode": {
|
|
1641
|
+
"label": "Single File Mode",
|
|
1642
|
+
"description": "Use single file for backups",
|
|
1643
|
+
"help": "Backup settings in a single file"
|
|
1644
|
+
},
|
|
1645
|
+
"backup.singleBackupFile": {
|
|
1646
|
+
"label": "Backup File Path",
|
|
1647
|
+
"description": "Path to the backup file",
|
|
1648
|
+
"help": "Path to the single backup file"
|
|
1649
|
+
},
|
|
1650
|
+
"backup.retentionDays": {
|
|
1651
|
+
"label": "Retention Period",
|
|
1652
|
+
"description": "Days to keep backup files",
|
|
1653
|
+
"help": "Number of days to retain old backup files"
|
|
1654
|
+
},
|
|
1655
|
+
"backup.maxBackups": {
|
|
1656
|
+
"label": "Maximum Backups",
|
|
1657
|
+
"description": "Maximum backup files to keep",
|
|
1658
|
+
"help": "Maximum number of backup files to keep"
|
|
1659
|
+
},
|
|
1660
|
+
"backup.confirm": {
|
|
1661
|
+
"label": "Confirm Backup",
|
|
1662
|
+
"description": "Require confirmation for backup operations",
|
|
1663
|
+
"help": "Confirm backup operation"
|
|
1664
|
+
},
|
|
1665
|
+
"i18nDir": {
|
|
1666
|
+
"label": "Довідник I18n",
|
|
1667
|
+
"description": "Каталог, що містить файли перекладу",
|
|
1668
|
+
"current": "поточний: {value}",
|
|
1669
|
+
"help": "Шлях до каталогу з файлами перекладу"
|
|
1670
|
+
},
|
|
1671
|
+
"projectRoot": {
|
|
1672
|
+
"label": "Корінь проекту",
|
|
1673
|
+
"description": "Кореневий каталог проекту",
|
|
1674
|
+
"current": "поточний: {value}",
|
|
1675
|
+
"help": "Шлях до кореневого каталогу проекту"
|
|
1676
|
+
},
|
|
1677
|
+
"checkUsage": {
|
|
1678
|
+
"usage_analysis_failed": "Помилка аналізу використання",
|
|
1679
|
+
"usage_analysis_success": "Аналіз використання виконано",
|
|
1680
|
+
"usage_analysis_complete": "Аналіз використання завершено",
|
|
1681
|
+
"usage_analysis_in_progress": "Виконується аналіз використання",
|
|
1682
|
+
"usage_analysis_started": "Розпочато аналіз використання",
|
|
1683
|
+
"usage_analysis_skipped": "Аналіз використання пропущено"
|
|
1684
|
+
},
|
|
1685
|
+
"language": {
|
|
1686
|
+
"label": "Мова інтерфейсу",
|
|
1687
|
+
"description": "Мова інтерфейсу користувача",
|
|
1688
|
+
"current": "поточний: {value}",
|
|
1689
|
+
"help": "Виберіть бажану мову інтерфейсу"
|
|
1690
|
+
},
|
|
1691
|
+
"scriptDirectories": {
|
|
1692
|
+
"analyzeLabel": "Аналізуйте каталоги сценаріїв",
|
|
1693
|
+
"analyzeHelp": "Проаналізуйте каталоги сценаріїв на наявність проблем",
|
|
1694
|
+
"completeLabel": "Повні каталоги налаштування",
|
|
1695
|
+
"initLabel": "Ініціалізація каталогів сценаріїв",
|
|
1696
|
+
"manageLabel": "Керування каталогами сценаріїв",
|
|
1697
|
+
"sizingLabel": "Розмір каталогів сценаріїв",
|
|
1698
|
+
"summaryLabel": "Довідники зведених звітів",
|
|
1699
|
+
"usageLabel": "Каталоги звітів про використання",
|
|
1700
|
+
"validateLabel": "Перевірте каталоги сценаріїв"
|
|
1701
|
+
},
|
|
1702
|
+
"theme": {
|
|
1703
|
+
"label": "Кольорова тема",
|
|
1704
|
+
"description": "Налаштування теми інтерфейсу",
|
|
1705
|
+
"current": "поточний: {value}",
|
|
1706
|
+
"help": "Виберіть між світлою та темною темами"
|
|
1707
|
+
},
|
|
1708
|
+
"dateFormat": {
|
|
1709
|
+
"label": "Формат дати",
|
|
1710
|
+
"description": "Формат відображення дат",
|
|
1711
|
+
"current": "поточний: {value}",
|
|
1712
|
+
"help": "Виберіть спосіб відображення дат у звітах"
|
|
1713
|
+
},
|
|
1714
|
+
"notifications": {
|
|
1715
|
+
"enabled": {
|
|
1716
|
+
"label": "Увімкнути сповіщення",
|
|
1717
|
+
"description": "Показати сповіщення на робочому столі",
|
|
1718
|
+
"current": "поточний: {value}",
|
|
1719
|
+
"help": "Увімкнути сповіщення на робочому столі про завершені операції"
|
|
1720
|
+
}
|
|
1721
|
+
},
|
|
1722
|
+
"sourceDir": {
|
|
1723
|
+
"label": "Вихідний каталог",
|
|
1724
|
+
"description": "Каталог, що містить файли перекладу",
|
|
1725
|
+
"current": "поточний: {value}",
|
|
1726
|
+
"help": "Шлях до каталогу з вихідними файлами перекладу"
|
|
1727
|
+
},
|
|
1728
|
+
"sourceLanguage": {
|
|
1729
|
+
"label": "Вихідна мова",
|
|
1730
|
+
"description": "Основна мова для перекладів",
|
|
1731
|
+
"current": "поточний: {value}",
|
|
1732
|
+
"help": "Основна мова, яка використовується як джерело для перекладу"
|
|
1733
|
+
},
|
|
1734
|
+
"outputDir": {
|
|
1735
|
+
"label": "Вихідний каталог",
|
|
1736
|
+
"description": "Каталог для сформованих звітів",
|
|
1737
|
+
"current": "поточний: {value}",
|
|
1738
|
+
"help": "Де будуть зберігатися звіти та оброблені файли"
|
|
1739
|
+
},
|
|
1740
|
+
"batchSize": {
|
|
1741
|
+
"label": "Розмір партії",
|
|
1742
|
+
"description": "Кількість елементів, оброблених на партію",
|
|
1743
|
+
"current": "поточний: {value}",
|
|
1744
|
+
"help": "Скільки файлів обробити в кожному пакеті"
|
|
1745
|
+
},
|
|
1746
|
+
"maxConcurrentFiles": {
|
|
1747
|
+
"label": "Макс одночасних файлів",
|
|
1748
|
+
"description": "Максимальна кількість файлів, що обробляються одночасно",
|
|
1749
|
+
"current": "поточний: {value}",
|
|
1750
|
+
"help": "Максимальна кількість файлів для одночасної обробки"
|
|
1751
|
+
},
|
|
1752
|
+
"sizingThreshold": {
|
|
1753
|
+
"label": "Поріг розміру (%)",
|
|
1754
|
+
"description": "Порогове значення для попереджень про зміну розміру",
|
|
1755
|
+
"current": "поточний: {value}%",
|
|
1756
|
+
"help": "Відсотковий поріг для виявлення невідповідності розміру"
|
|
1757
|
+
},
|
|
1758
|
+
"strictMode": {
|
|
1759
|
+
"label": "Режим суворої перевірки",
|
|
1760
|
+
"description": "Увімкніть режим суворої перевірки",
|
|
1761
|
+
"current": "поточний: {value}",
|
|
1762
|
+
"help": "Увімкніть сувору перевірку файлів перекладу"
|
|
1763
|
+
},
|
|
1764
|
+
"enableAuditLog": {
|
|
1765
|
+
"label": "Увімкнути журнал аудиту",
|
|
1766
|
+
"description": "Відстежуйте всі зміни перекладу",
|
|
1767
|
+
"current": "поточний: {value}",
|
|
1768
|
+
"help": "Реєстрація всіх змін, внесених у файли перекладу"
|
|
1769
|
+
},
|
|
1770
|
+
"backupBeforeChanges": {
|
|
1771
|
+
"label": "Автоматичне резервне копіювання",
|
|
1772
|
+
"description": "Створіть резервні копії перед змінами",
|
|
1773
|
+
"current": "поточний: {value}",
|
|
1774
|
+
"help": "Автоматично створюйте резервні копії перед внесенням змін"
|
|
1775
|
+
},
|
|
1776
|
+
"advanced_maxConcurrentFiles": {
|
|
1777
|
+
"label": "Макс одночасних файлів",
|
|
1778
|
+
"description": "Максимальна кількість файлів, що обробляються одночасно",
|
|
1779
|
+
"current": "поточний: {value}",
|
|
1780
|
+
"help": "Максимальна кількість файлів для одночасної обробки"
|
|
1781
|
+
},
|
|
1782
|
+
"advanced_strictMode": {
|
|
1783
|
+
"label": "Режим суворої перевірки",
|
|
1784
|
+
"description": "Увімкніть режим суворої перевірки",
|
|
1785
|
+
"current": "поточний: {value}",
|
|
1786
|
+
"help": "Увімкніть сувору перевірку файлів перекладу"
|
|
1787
|
+
},
|
|
1788
|
+
"adminPinEnabled": {
|
|
1789
|
+
"label": "Захист PIN адміністратора",
|
|
1790
|
+
"description": "Увімкніть автентифікацію PIN-коду адміністратора для конфіденційних налаштувань",
|
|
1791
|
+
"current": "поточний: {value}",
|
|
1792
|
+
"help": "Вимагати PIN-код адміністратора для зміни безпеки та розширених налаштувань"
|
|
1793
|
+
},
|
|
1794
|
+
"sessionTimeout": {
|
|
1795
|
+
"label": "Час очікування сеансу",
|
|
1796
|
+
"description": "Час очікування сеансу адміністратора в хвилинах",
|
|
1797
|
+
"current": "поточний: {value} хвилин",
|
|
1798
|
+
"help": "Як довго сеанси адміністратора залишаються активними до повторної автентифікації"
|
|
1799
|
+
},
|
|
1800
|
+
"maxFailedAttempts": {
|
|
1801
|
+
"label": "Максимум невдалих спроб",
|
|
1802
|
+
"description": "Максимальна кількість невдалих спроб PIN-коду до блокування",
|
|
1803
|
+
"current": "поточний: {value} спроби",
|
|
1804
|
+
"help": "Кількість дозволених невдалих спроб PIN-коду до тимчасового блокування"
|
|
1805
|
+
},
|
|
1806
|
+
"lockoutDuration": {
|
|
1807
|
+
"label": "Тривалість блокування",
|
|
1808
|
+
"description": "Тривалість блокування після невдалих спроб",
|
|
1809
|
+
"current": "поточний: {value} хвилин",
|
|
1810
|
+
"help": "Як довго система залишається заблокованою після максимальної кількості невдалих спроб"
|
|
1811
|
+
},
|
|
1812
|
+
"scriptDirectories_analyze": {
|
|
1813
|
+
"label": "Аналізуйте каталоги сценаріїв",
|
|
1814
|
+
"description": "Власні каталоги для сценарію аналізу",
|
|
1815
|
+
"current": "поточний: {value}",
|
|
1816
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію аналізу. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1817
|
+
},
|
|
1818
|
+
"scriptDirectories_complete": {
|
|
1819
|
+
"label": "Повні каталоги налаштування",
|
|
1820
|
+
"description": "Спеціальні каталоги для повного сценарію налаштування",
|
|
1821
|
+
"current": "поточний: {value}",
|
|
1822
|
+
"help": "Укажіть настроюваний вихідний каталог для повного сценарію налаштування. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1823
|
+
},
|
|
1824
|
+
"scriptDirectories_init": {
|
|
1825
|
+
"label": "Ініціалізація каталогів сценаріїв",
|
|
1826
|
+
"description": "Власні каталоги для сценарію ініціалізації",
|
|
1827
|
+
"current": "поточний: {value}",
|
|
1828
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію ініціалізації. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1829
|
+
},
|
|
1830
|
+
"scriptDirectories_manage": {
|
|
1831
|
+
"label": "Керування каталогами сценаріїв",
|
|
1832
|
+
"description": "Спеціальні каталоги для сценарію керування",
|
|
1833
|
+
"current": "поточний: {value}",
|
|
1834
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію керування. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1835
|
+
},
|
|
1836
|
+
"scriptDirectories_sizing": {
|
|
1837
|
+
"label": "Розмір каталогів сценаріїв",
|
|
1838
|
+
"description": "Власні каталоги для сценарію зміни розміру",
|
|
1839
|
+
"current": "поточний: {value}",
|
|
1840
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію розміру. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1841
|
+
},
|
|
1842
|
+
"scriptDirectories_summary": {
|
|
1843
|
+
"label": "Довідники зведених звітів",
|
|
1844
|
+
"description": "Настроювані каталоги для сценарію підсумкового звіту",
|
|
1845
|
+
"current": "поточний: {value}",
|
|
1846
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію підсумкового звіту. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1847
|
+
},
|
|
1848
|
+
"scriptDirectories_usage": {
|
|
1849
|
+
"label": "Каталоги звітів про використання",
|
|
1850
|
+
"description": "Спеціальні каталоги для сценарію звіту про використання",
|
|
1851
|
+
"current": "поточний: {value}",
|
|
1852
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію звіту про використання. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1853
|
+
},
|
|
1854
|
+
"scriptDirectories_validate": {
|
|
1855
|
+
"label": "Перевірте каталоги сценаріїв",
|
|
1856
|
+
"description": "Власні каталоги для сценарію перевірки",
|
|
1857
|
+
"current": "поточний: {value}",
|
|
1858
|
+
"help": "Укажіть настроюваний вихідний каталог для сценарію перевірки. Залиште пустим, щоб використовувати глобальні налаштування."
|
|
1859
|
+
},
|
|
1860
|
+
"security_adminPinEnabled": {
|
|
1861
|
+
"label": "Захист PIN адміністратора",
|
|
1862
|
+
"description": "Увімкніть автентифікацію PIN-коду адміністратора для конфіденційних налаштувань",
|
|
1863
|
+
"current": "поточний: {value}",
|
|
1864
|
+
"help": "Вимагати PIN-код адміністратора для зміни безпеки та розширених налаштувань"
|
|
1865
|
+
},
|
|
1866
|
+
"fields": {
|
|
1867
|
+
"adminPinEnabled": {
|
|
1868
|
+
"label": "Захист PIN адміністратора",
|
|
1869
|
+
"description": "Увімкніть автентифікацію PIN-коду адміністратора для конфіденційних налаштувань",
|
|
1870
|
+
"help": "Вимагати PIN-код адміністратора для зміни безпеки та розширених налаштувань"
|
|
1871
|
+
}
|
|
1872
|
+
},
|
|
1873
|
+
"security_pinProtection_enabled": {
|
|
1874
|
+
"label": "Захист PIN-кодом",
|
|
1875
|
+
"description": "Увімкніть захист PIN-кодом для конфіденційних налаштувань",
|
|
1876
|
+
"current": "поточний: {value}",
|
|
1877
|
+
"help": "Вимагати PIN-код для зміни безпеки та розширених налаштувань"
|
|
1878
|
+
},
|
|
1879
|
+
"pinProtection_configure": {
|
|
1880
|
+
"label": "Налаштувати сценарії, захищені PIN-кодом",
|
|
1881
|
+
"description": "Налаштуйте, які сценарії потребують захисту PIN-кодом",
|
|
1882
|
+
"help": "Виберіть окремі сценарії, які вимагають автентифікації PIN-кодом"
|
|
1883
|
+
},
|
|
1884
|
+
"pinProtection_debugMenu": {
|
|
1885
|
+
"label": "Меню інструментів налагодження",
|
|
1886
|
+
"description": "Вимагати PIN-код для меню інструментів налагодження",
|
|
1887
|
+
"current": "поточний: {value}",
|
|
1888
|
+
"help": "Увімкніть захист PIN-кодом для доступу до інструментів налагодження"
|
|
1889
|
+
},
|
|
1890
|
+
"pinProtection_deleteReports": {
|
|
1891
|
+
"label": "Видалити звіти",
|
|
1892
|
+
"description": "Вимагати PIN-код для видалення звітів",
|
|
1893
|
+
"current": "поточний: {value}",
|
|
1894
|
+
"help": "Увімкніть захист PIN-кодом для видалення звітів"
|
|
1895
|
+
},
|
|
1896
|
+
"pinProtection_summaryReports": {
|
|
1897
|
+
"label": "Зведені звіти",
|
|
1898
|
+
"description": "Вимагати PIN-код для підсумкових звітів",
|
|
1899
|
+
"current": "поточний: {value}",
|
|
1900
|
+
"help": "Увімкніть захист PIN-кодом для створення зведених звітів"
|
|
1901
|
+
},
|
|
1902
|
+
"pinProtection_settingsMenu": {
|
|
1903
|
+
"label": "Меню налаштувань",
|
|
1904
|
+
"description": "Вимагати PIN-код для меню налаштувань",
|
|
1905
|
+
"current": "поточний: {value}",
|
|
1906
|
+
"help": "Увімкніть захист PIN-кодом для доступу до налаштувань"
|
|
1907
|
+
},
|
|
1908
|
+
"pinProtection_initScript": {
|
|
1909
|
+
"label": "Ініціалізація сценарію",
|
|
1910
|
+
"description": "Вимагати PIN-код для ініціалізації сценарію",
|
|
1911
|
+
"current": "поточний: {value}",
|
|
1912
|
+
"help": "Увімкніть захист PIN-кодом для запуску сценарію ініціалізації"
|
|
1913
|
+
},
|
|
1914
|
+
"pinProtection_resetDefaults": {
|
|
1915
|
+
"label": "Скинути захист PIN-кодом",
|
|
1916
|
+
"description": "Скинути всі параметри захисту PIN-кодом до значень за замовчуванням",
|
|
1917
|
+
"help": "Скинути всі окремі засоби захисту PIN-коду сценарію до значень за замовчуванням"
|
|
1918
|
+
},
|
|
1919
|
+
"removeUiLanguages": {
|
|
1920
|
+
"label": "Видалити мови інтерфейсу користувача",
|
|
1921
|
+
"description": "Видаліть мови інтерфейсу користувача, які не встановлено",
|
|
1922
|
+
"help": "Видаліть мови інтерфейсу користувача, які не встановлено в системі"
|
|
1923
|
+
},
|
|
1924
|
+
"${helperKey}": {
|
|
1925
|
+
"help": "Довідка"
|
|
1926
|
+
},
|
|
1927
|
+
"reports_format": {
|
|
1928
|
+
"label": "Формат звіту",
|
|
1929
|
+
"help": "Виберіть уцінку для читабельних звітів, json для автоматизації або текст для простих журналів."
|
|
1930
|
+
},
|
|
1931
|
+
"autoTranslate_placeholderMode": {
|
|
1932
|
+
"label": "Режим обробки заповнювача",
|
|
1933
|
+
"help": "Як обробляються рядки, що містять заповнювачі, під час автоматичного перекладу."
|
|
1934
|
+
},
|
|
1935
|
+
"autoTranslate_concurrency": {
|
|
1936
|
+
"label": "Одночасні запити на переклад",
|
|
1937
|
+
"help": "Максимальна кількість одночасних запитів постачальника. Google підтримує до 100 у i18ntk; DeepL і LibreTranslate обмежені нижче."
|
|
1938
|
+
},
|
|
1939
|
+
"autoTranslate_batchSize": {
|
|
1940
|
+
"label": "Текстові сегменти на пакет",
|
|
1941
|
+
"help": "Кількість текстових сегментів, запланованих на пакет."
|
|
1942
|
+
},
|
|
1943
|
+
"autoTranslate_progressInterval": {
|
|
1944
|
+
"label": "Інтервал оновлення прогресу",
|
|
1945
|
+
"help": "Завершені текстові сегменти між оновленнями прогресу."
|
|
1946
|
+
},
|
|
1947
|
+
"autoTranslate_retryCount": {
|
|
1948
|
+
"label": "Кількість повторів",
|
|
1949
|
+
"help": "Максимальна кількість повторів за один невдалий запит."
|
|
1950
|
+
},
|
|
1951
|
+
"autoTranslate_retryDelay": {
|
|
1952
|
+
"label": "Затримка повторної спроби (мс)",
|
|
1953
|
+
"help": "Базова затримка повторної спроби в мілісекундах."
|
|
1954
|
+
},
|
|
1955
|
+
"autoTranslate_timeout": {
|
|
1956
|
+
"label": "Час очікування запиту (мс)",
|
|
1957
|
+
"help": "Час очікування запиту постачальника перекладу."
|
|
1958
|
+
},
|
|
1959
|
+
"autoTranslate_dryRunFirst": {
|
|
1960
|
+
"label": "Перший попередній перегляд",
|
|
1961
|
+
"help": "Перегляньте, що буде перекладено перед записом файлів."
|
|
1962
|
+
},
|
|
1963
|
+
"autoTranslate_onlyMissingOrEnglish": {
|
|
1964
|
+
"label": "Тільки відсутні або англійські ключі",
|
|
1965
|
+
"help": "Зберігайте наявні перекладені цільові значення та перекладайте лише значення, яких немає, маркер, вихідна копія чи ймовірно англійські значення."
|
|
1966
|
+
},
|
|
1967
|
+
"autoTranslate_reportStdout": {
|
|
1968
|
+
"label": "Роздрукувати звіт на терміналі",
|
|
1969
|
+
"help": "Роздрукувати звіт після перекладу в stdout."
|
|
1970
|
+
},
|
|
1971
|
+
"autoTranslate_bom": {
|
|
1972
|
+
"label": "Напишіть UTF-8 BOM",
|
|
1973
|
+
"help": "Напишіть перекладені файли JSON із специфікацією UTF-8."
|
|
1974
|
+
},
|
|
1975
|
+
"autoTranslate_protectionEnabled": {
|
|
1976
|
+
"label": "Захистіть терміни бренду, ключі, цінності",
|
|
1977
|
+
"help": "Увімкнути редаговані користувачем захищені терміни, ключі, значення та шаблони."
|
|
1978
|
+
},
|
|
1979
|
+
"autoTranslate_protectionFile": {
|
|
1980
|
+
"label": "Файл JSON захисту",
|
|
1981
|
+
"help": "Файл JSON проекту, що містить правила захисту автоматичного перекладу."
|
|
1982
|
+
},
|
|
1983
|
+
"autoTranslate_promptProtectionSetup": {
|
|
1984
|
+
"label": "Попросити створити файл захисту",
|
|
1985
|
+
"help": "Попросити створити файл захисту під час першого запуску автоматичного перекладу."
|
|
1986
|
+
},
|
|
1987
|
+
"autoTranslate_promptProtectionUpdate": {
|
|
1988
|
+
"label": "Попросити оновити правила захисту",
|
|
1989
|
+
"help": "Запитувати, чи оновлювати правила захисту перед перекладами менеджера."
|
|
1990
|
+
},
|
|
1991
|
+
"backup": {
|
|
1992
|
+
"enabled": {
|
|
1993
|
+
"label": "Увімкнути резервне копіювання",
|
|
1994
|
+
"description": "Увімкнути автоматичне резервне копіювання налаштувань",
|
|
1995
|
+
"help": "Увімкнути/вимкнути функцію резервного копіювання"
|
|
1996
|
+
},
|
|
1997
|
+
"singleFileMode": {
|
|
1998
|
+
"label": "Режим одного файлу",
|
|
1999
|
+
"description": "Використовуйте один файл для резервних копій",
|
|
2000
|
+
"help": "Резервне копіювання налаштувань в одному файлі"
|
|
2001
|
+
},
|
|
2002
|
+
"singleBackupFile": {
|
|
2003
|
+
"label": "Шлях резервного файлу",
|
|
2004
|
+
"description": "Шлях до файлу резервної копії",
|
|
2005
|
+
"help": "Шлях до єдиного файлу резервної копії"
|
|
2006
|
+
},
|
|
2007
|
+
"retentionDays": {
|
|
2008
|
+
"label": "Період зберігання",
|
|
2009
|
+
"description": "Днів для зберігання резервних копій файлів",
|
|
2010
|
+
"help": "Кількість днів для зберігання старих файлів резервних копій"
|
|
2011
|
+
},
|
|
2012
|
+
"maxBackups": {
|
|
2013
|
+
"label": "Максимальна кількість резервних копій",
|
|
2014
|
+
"description": "Максимальна кількість резервних копій файлів для збереження",
|
|
2015
|
+
"help": "Максимальна кількість резервних копій файлів для збереження"
|
|
2016
|
+
},
|
|
2017
|
+
"confirm": {
|
|
2018
|
+
"label": "Підтвердити резервне копіювання",
|
|
2019
|
+
"description": "Вимагати підтвердження для операцій резервного копіювання",
|
|
2020
|
+
"help": "Підтвердьте операцію резервного копіювання"
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
},
|
|
2024
|
+
"actions": {
|
|
2025
|
+
"editSetting": "Редагувати {setting}:",
|
|
2026
|
+
"settingUpdated": "✅ {setting} успішно оновлено!",
|
|
2027
|
+
"invalidValue": "❌ Недійсне значення. Спробуйте ще раз.",
|
|
2028
|
+
"pressEnter": "Натисніть Enter, щоб продовжити...",
|
|
2029
|
+
"backToMenu": "Назад до головного меню",
|
|
2030
|
+
"saveSuccess": "✅ Налаштування успішно збережено!",
|
|
2031
|
+
"saveFailed": "❌ Не вдалося зберегти налаштування: {error}",
|
|
2032
|
+
"resetConfirm": "Ви впевнені, що бажаєте скинути всі налаштування до стандартних? (так/ні):",
|
|
2033
|
+
"resetSuccess": "✅ Налаштування успішно скинуто до значень за замовчуванням!",
|
|
2034
|
+
"importSuccess": "✅ Налаштування успішно імпортовано!",
|
|
2035
|
+
"exportSuccess": "✅ Налаштування успішно експортовано!",
|
|
2036
|
+
"fileNotFound": "❌ Файл не знайдено: {path}",
|
|
2037
|
+
"invalidFormat": "❌ Недійсний формат файлу налаштувань",
|
|
2038
|
+
"pinProtectionUpdated": "✅ Захист PIN-кодом для {script} успішно оновлено!",
|
|
2039
|
+
"pinProtectionReset": "✅ Усі налаштування захисту PIN-кодом скинуті до значень за замовчуванням!",
|
|
2040
|
+
"pinProtectionConfigure": "Налаштуйте захист PIN-кодом для окремих сценаріїв",
|
|
2041
|
+
"pinProtectionSelectScript": "Виберіть сценарій, щоб увімкнути захист PIN-кодом:",
|
|
2042
|
+
"pinProtectionCurrentStatus": "Поточний статус: {status}",
|
|
2043
|
+
"pinProtectionEnabled": "Увімкнено",
|
|
2044
|
+
"pinProtectionDisabled": "Вимкнено",
|
|
2045
|
+
"pinProtectionToggle": "Увімкнути захист PIN-кодом",
|
|
2046
|
+
"pinProtectionResetAll": "Скинути все до значень за замовчуванням",
|
|
2047
|
+
"pinProtectionBack": "Назад до налаштувань безпеки"
|
|
2048
|
+
},
|
|
2049
|
+
"themes": {
|
|
2050
|
+
"light": "світло",
|
|
2051
|
+
"dark": "Темний",
|
|
2052
|
+
"system": "система"
|
|
2053
|
+
},
|
|
2054
|
+
"languages": {
|
|
2055
|
+
"en": "англійська",
|
|
2056
|
+
"de": "Німецький",
|
|
2057
|
+
"es": "Іспанська",
|
|
2058
|
+
"fr": "французька",
|
|
2059
|
+
"ru": "російська",
|
|
2060
|
+
"ja": "Японський",
|
|
2061
|
+
"zh": "китайський",
|
|
2062
|
+
"it": "Італійська",
|
|
2063
|
+
"pt": "Португальська",
|
|
2064
|
+
"nl": "Голландська",
|
|
2065
|
+
"pl": "Польська",
|
|
2066
|
+
"sv": "Шведська",
|
|
2067
|
+
"uk": "Українська",
|
|
2068
|
+
"cs": "Чеська",
|
|
2069
|
+
"tr": "Турецька",
|
|
2070
|
+
"ko": "Корейська",
|
|
2071
|
+
"ar": "Арабська",
|
|
2072
|
+
"hi": "Гінді",
|
|
2073
|
+
"th": "Тайська",
|
|
2074
|
+
"vi": "Вʼєтнамська",
|
|
2075
|
+
"he": "Іврит",
|
|
2076
|
+
"el": "Грецька",
|
|
2077
|
+
"hu": "Угорська"
|
|
2078
|
+
},
|
|
2079
|
+
"viewAll": {
|
|
2080
|
+
"title": "Переглянути всі налаштування"
|
|
2081
|
+
},
|
|
2082
|
+
"current": "поточний",
|
|
2083
|
+
"back": "Назад до головного меню",
|
|
2084
|
+
"selectSettingPrompt": "Виберіть налаштування для редагування (або b для повернення, r для скидання):",
|
|
2085
|
+
"invalidOption": "Недійсний варіант.",
|
|
2086
|
+
"editing": "Редагування",
|
|
2087
|
+
"enterNewValue": "Введіть нове значення (або натисніть Enter, щоб зберегти поточне, введіть «default», щоб використовувати стандартне значення системи):",
|
|
2088
|
+
"validOptions": "Допустимі варіанти",
|
|
2089
|
+
"updatedSuccessfully": "успішно оновлено!",
|
|
2090
|
+
"noHelp": "Немає довідки для цього параметра",
|
|
2091
|
+
"resetScriptDirectories": "Скидання до значень за замовчуванням",
|
|
2092
|
+
"resetScriptDirectoriesTitle": "Скинути каталоги сценаріїв до значень за замовчуванням",
|
|
2093
|
+
"resetScriptDirectoriesWarning1": "Це скине всі конфігурації каталогу сценаріїв до системних значень за замовчуванням.",
|
|
2094
|
+
"resetScriptDirectoriesWarning2": "Усі користувацькі шляхи до каталогу буде очищено. Цю дію не можна скасувати.",
|
|
2095
|
+
"resetScriptDirectoriesConfirm": "Ви впевнені, що бажаєте скинути всі каталоги сценаріїв до значень за замовчуванням? (так/ні):",
|
|
2096
|
+
"backup": {
|
|
2097
|
+
"title": "Налаштування резервного копіювання",
|
|
2098
|
+
"description": "Резервне копіювання поточних налаштувань у файл",
|
|
2099
|
+
"confirm": "Ви впевнені, що бажаєте створити резервну копію поточних налаштувань? (так/ні):",
|
|
2100
|
+
"success": "✅ Резервне копіювання налаштувань виконано в {backupFile}",
|
|
2101
|
+
"failed": "❌ Не вдалося створити резервну копію налаштувань: {error}",
|
|
2102
|
+
"enabled": "Увімкнути резервне копіювання",
|
|
2103
|
+
"enabledHelp": "Увімкнути/вимкнути функцію резервного копіювання",
|
|
2104
|
+
"singleFileMode": "Режим одного файлу",
|
|
2105
|
+
"singleFileModeHelp": "Резервне копіювання налаштувань в одному файлі",
|
|
2106
|
+
"singleBackupFile": "Єдиний резервний файл",
|
|
2107
|
+
"singleBackupFileHelp": "Шлях до єдиного файлу резервної копії",
|
|
2108
|
+
"retentionDays": "Дні зберігання",
|
|
2109
|
+
"retentionDaysHelp": "Кількість днів для зберігання старих файлів резервних копій",
|
|
2110
|
+
"maxBackups": "Максимальне резервне копіювання",
|
|
2111
|
+
"maxBackupsHelp": "Максимальна кількість резервних копій файлів для збереження",
|
|
2112
|
+
"confirmHelp": "Підтвердьте операцію резервного копіювання",
|
|
2113
|
+
"confirmYes": "так",
|
|
2114
|
+
"confirmNo": "немає"
|
|
2115
|
+
},
|
|
2116
|
+
"validation": {
|
|
2117
|
+
"valid": "Дійсний",
|
|
2118
|
+
"validatingPaths": "Перевірка налаштованих шляхів...",
|
|
2119
|
+
"validationComplete": "Перевірку шляху завершено: {valid}/{total} дійсний."
|
|
2120
|
+
}
|
|
2121
|
+
},
|
|
2122
|
+
"summary": {
|
|
2123
|
+
"separator": "============================================================",
|
|
2124
|
+
"configurationTitle": "🔧 Конфігурація:",
|
|
2125
|
+
"sourceLanguage": "Мова оригіналу: {sourceLanguage}",
|
|
2126
|
+
"supportedExtensions": "Підтримувані розширення: {extensions}",
|
|
2127
|
+
"excludedFiles": "Виключені файли: {files}",
|
|
2128
|
+
"reportContent": "{report}",
|
|
2129
|
+
"fatalError": "❌ Фатальна помилка: {error}",
|
|
2130
|
+
"helpTitle": "📊 ГЕНЕРАТОР ПІДСУМНИХ ЗВІТІВ I18NTK",
|
|
2131
|
+
"helpDescription": "Аналізує структуру папок i18n і створює вичерпний підсумковий звіт, включаючи ключові статистичні дані, аналіз структури файлів і перевірки валідації.",
|
|
2132
|
+
"helpUsage": "Використання: вузол i18ntk-summary.js [параметри]",
|
|
2133
|
+
"helpOptions": "--source-dir <dir> Вихідний каталог для аналізу",
|
|
2134
|
+
"helpSourceDir": "--source-dir <dir> Вихідний каталог для аналізу",
|
|
2135
|
+
"helpOutput": "-- вихід <file> Вихідний файл для звіту",
|
|
2136
|
+
"helpVerbose": "--verbose, -v Показати детальну інформацію",
|
|
2137
|
+
"helpKeepReports": "--keep-reports Зберігати існуючі звіти",
|
|
2138
|
+
"helpDeleteReports": "--delete-reports Видалити існуючі звіти",
|
|
2139
|
+
"helpHelp": "--help, -h Показати цю довідку",
|
|
2140
|
+
"helpExamples": "приклади:",
|
|
2141
|
+
"helpExample1": "вузол i18ntk-summary.js",
|
|
2142
|
+
"helpExample2": "вузол i18ntk-summary.js --source-dir ./locales",
|
|
2143
|
+
"helpExample3": "вузол i18ntk-summary.js --output summary-report.txt",
|
|
2144
|
+
"helpExample4": "вузол i18ntk-summary.js --verbose",
|
|
2145
|
+
"helpExample5": "вузол i18ntk-summary.js --source-dir ./locales --output report.json",
|
|
2146
|
+
"couldNotReadFile": "⚠️ Не вдалося прочитати файл: {filePath}",
|
|
2147
|
+
"couldNotParseJSFile": "⚠️ Не вдалося проаналізувати файл JS/TS: {filePath}",
|
|
2148
|
+
"errorReadingFile": "⚠️ Помилка читання файлу {filePath}: {error}",
|
|
2149
|
+
"analyzingFolder": "🔍 Аналіз структури папок...",
|
|
2150
|
+
"noLanguageDirectoriesFound": "❌ У вказаному вихідному каталозі не знайдено мовних каталогів.",
|
|
2151
|
+
"foundLanguages": "✅ Знайдено {count} мови: {languages}",
|
|
2152
|
+
"referenceLanguageFiles": "📁 Довідкова мова '{language}' має {count} файли",
|
|
2153
|
+
"analyzingLanguage": "🌍 Аналіз мови: {language}",
|
|
2154
|
+
"keysInFiles": "📊 Знайдено {keys} ключі поперек {files} файли",
|
|
2155
|
+
"checkingInconsistentKeys": "🔍 Перевірка на наявність неузгоджених ключів різними мовами...",
|
|
2156
|
+
"generatingSummaryReport": "📝 Створення підсумкового звіту...",
|
|
2157
|
+
"reportTitle": "📊 I18NTK SUMMARY REPORT",
|
|
2158
|
+
"generated": "Створено: {timestamp}",
|
|
2159
|
+
"sourceDirectory": "Вихідний каталог: {dir}",
|
|
2160
|
+
"overview": "📈 OVERVIEW",
|
|
2161
|
+
"languagesCount": "мови: {count}",
|
|
2162
|
+
"totalFiles": "Всього файлів: {count}",
|
|
2163
|
+
"totalKeys": "Всього ключів: {count}",
|
|
2164
|
+
"avgKeysPerLanguage": "Середня кількість ключів на мову: {count}",
|
|
2165
|
+
"languagesBreakdown": "🌍 МОВНИЙ ПОРУШЕННЯ",
|
|
2166
|
+
"languageBreakdown": "{language}: {files} файли, {keys} ключі",
|
|
2167
|
+
"fileStructure": "📁 СТРУКТУРА ФАЙЛУ",
|
|
2168
|
+
"fileKeys": "{file}: {keys} ключі",
|
|
2169
|
+
"missingInLanguages": "⚠️ Відсутні в: {languages}",
|
|
2170
|
+
"issuesFound": "❌ ISSUES FOUND",
|
|
2171
|
+
"missingFiles": "📁 Відсутні файли:",
|
|
2172
|
+
"emptyFiles": "📄 Порожні файли:",
|
|
2173
|
+
"malformedFiles": "⚠️ Несправні файли:",
|
|
2174
|
+
"duplicateKeys": "🔑 Дублікати ключів:",
|
|
2175
|
+
"inconsistentKeys": "🔍 Невідповідні ключі:",
|
|
2176
|
+
"missingKeys": "Відсутні: {keys}{more}",
|
|
2177
|
+
"extraKeys": "Додатково: {keys}{more}",
|
|
2178
|
+
"noIssuesFound": "✅ NO ISSUES FOUND",
|
|
2179
|
+
"allFilesConsistent": "Усі файли перекладу узгоджені для всіх мов.",
|
|
2180
|
+
"recommendations": "💡 РЕКОМЕНДАЦІЇ",
|
|
2181
|
+
"createMissingFiles": "• Створити відсутні файли перекладу",
|
|
2182
|
+
"addContentToEmptyFiles": "• Додайте вміст до порожніх файлів перекладу",
|
|
2183
|
+
"fixMalformedFiles": "• Виправте неправильні файли JSON/JS",
|
|
2184
|
+
"removeDuplicateKeys": "• Видалення дублікатів ключів із файлів",
|
|
2185
|
+
"synchronizeKeys": "• Синхронізація клавіш усіма мовами",
|
|
2186
|
+
"splitLargeFiles": "• Подумайте про розділення великих файлів на менші простори імен",
|
|
2187
|
+
"addMoreLanguages": "• Розгляньте можливість додавання інших мов",
|
|
2188
|
+
"nextSteps": "🎯 NEXT STEPS",
|
|
2189
|
+
"nextStep1": "1. Виправте будь-які проблеми, зазначені вище",
|
|
2190
|
+
"nextStep2": "2. Запустіть перевірку, щоб забезпечити узгодженість",
|
|
2191
|
+
"nextStep3": "3. Розгляньте можливість використання i18ntk-validate для детальної перевірки",
|
|
2192
|
+
"nextStep4": "4. Рекомендується регулярний моніторинг",
|
|
2193
|
+
"couldNotFindI18nDirectory": "❌ Не вдалося знайти каталог i18n. Будь ласка, вкажіть --source-dir.",
|
|
2194
|
+
"sourceDirectoryDoesNotExist": "❌ Вихідний каталог не існує: {dir}",
|
|
2195
|
+
"i18nSummaryReportGenerator": "📊 Генератор підсумкових звітів I18N",
|
|
2196
|
+
"analysisComplete": "✅ Аналіз завершено",
|
|
2197
|
+
"analyzedLanguages": "📊 Проаналізовані мови: {count}",
|
|
2198
|
+
"processedFiles": "📁 Оброблені файли: {count}",
|
|
2199
|
+
"foundTranslationKeys": "🔑 Знайдено ключі перекладу: {count}",
|
|
2200
|
+
"foundIssues": "❌ Знайдено {count} питань",
|
|
2201
|
+
"noIssuesConsole": "✅ Проблем не знайдено – усі файли узгоджені!",
|
|
2202
|
+
"errorDuringAnalysis": "❌ Помилка під час аналізу: {error}",
|
|
2203
|
+
"usageReportTitle": "📊 I18NTK USAGE REPORT",
|
|
2204
|
+
"usageReportGenerated": "Створено: {timestamp}",
|
|
2205
|
+
"usageReportSourceDir": "Вихідний каталог: {sourceDir}",
|
|
2206
|
+
"usageReportI18nDir": "Каталог I18n: {i18nDir}",
|
|
2207
|
+
"usageReportSummary": "📈 SUMMARY",
|
|
2208
|
+
"usageReportSourceFilesScanned": "Відскановані вихідні файли: {count}",
|
|
2209
|
+
"usageReportTranslationFilesFound": "Знайдено файли перекладу: {count}",
|
|
2210
|
+
"usageReportAvailableKeys": "Доступні ключі перекладу: {count}",
|
|
2211
|
+
"usageReportUsedKeys": "Використані ключі перекладу: {count}",
|
|
2212
|
+
"usageReportDynamicKeys": "Ключі динамічного перекладу: {count}",
|
|
2213
|
+
"usageReportUnusedKeys": "Невикористані ключі перекладу: {count}",
|
|
2214
|
+
"usageReportMissingKeys": "Відсутні ключі перекладу: {count}",
|
|
2215
|
+
"usageReportNotTranslatedKeys": "Не перекладені ключі: {count}",
|
|
2216
|
+
"usageReportTranslationCompleteness": "🌍 ПОВНОТА ПЕРЕКЛАДУ",
|
|
2217
|
+
"usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
|
|
2218
|
+
"usageReportNotTranslatedInLanguage": "Не перекладено: {count} ключі",
|
|
2219
|
+
"usageReportTranslationFilesDiscovered": "📁 ФАЙЛИ ПЕРЕКЛАДУ",
|
|
2220
|
+
"usageReportFileInfo": "{relativePath} (простір імен: {namespace}, тип: {type})",
|
|
2221
|
+
"usageReportUnusedTranslationKeys": "🗑️ НЕВИКОРИСТАНІ КЛЮЧІ ПЕРЕКЛАДУ",
|
|
2222
|
+
"usageReportUnusedKeysDescription": "Ці ключі існують у файлах перекладу, але не використовуються у вихідному коді:",
|
|
2223
|
+
"usageReportUnusedKey": "• {key}",
|
|
2224
|
+
"usageReportMoreUnusedKeys": "... і {count} більше невикористаних ключів",
|
|
2225
|
+
"usageReportMissingTranslationKeys": "❌ ВІДСУТНІ КЛЮЧІ ПЕРЕКЛАДУ",
|
|
2226
|
+
"usageReportMissingKeysDescription": "Ці ключі використовуються у вихідному коді, але відсутні у файлах перекладу:",
|
|
2227
|
+
"usageReportMissingKey": "• {key}",
|
|
2228
|
+
"usageReportUsedIn": "Використовується в: {filePath}",
|
|
2229
|
+
"usageReportMoreFiles": "... і {count} більше файлів",
|
|
2230
|
+
"usageReportDynamicTranslationKeys": "⚡ КЛЮЧІ ДИНАМІЧНОГО ПЕРЕКЛАДУ",
|
|
2231
|
+
"usageReportDynamicKeysDescription": "Ці ключі використовуються динамічно (створюються під час виконання):",
|
|
2232
|
+
"usageReportDynamicKey": "• {key}",
|
|
2233
|
+
"usageReportFileUsageBreakdown": "📊 АНАЛІЗ ВИКОРИСТАННЯ ФАЙЛІВ",
|
|
2234
|
+
"usageReportFileUsage": "{filePath}: {count} ключі",
|
|
2235
|
+
"status": {
|
|
2236
|
+
"generating": "⏳ Створення...",
|
|
2237
|
+
"completed": "✅ Виконано"
|
|
2238
|
+
},
|
|
2239
|
+
"help": {
|
|
2240
|
+
"usage": "Використання: вузол main/manage/index.js [параметри]",
|
|
2241
|
+
"interactiveMode": "💡 Використовуйте: node main/manage/index.js --command=<command> для безпосереднього виконання",
|
|
2242
|
+
"initProject": "🚀 Ініціалізація нових мов",
|
|
2243
|
+
"analyzeTranslations": "🔍 Аналізуйте переклади",
|
|
2244
|
+
"validateTranslations": "✅ Перевірте переклади",
|
|
2245
|
+
"checkUsage": "📊 Перевірте використання ключа",
|
|
2246
|
+
"showHelp": "📖 Використовуйте: node main/manage/index.js --help для доступних команд",
|
|
2247
|
+
"availableCommands": "📖 Доступні команди:",
|
|
2248
|
+
"initCommand": "init - Ініціалізація нових мов",
|
|
2249
|
+
"analyzeCommand": "аналізувати - аналізувати переклади",
|
|
2250
|
+
"validateCommand": "validate - Перевірити переклади",
|
|
2251
|
+
"usageCommand": "usage - Перевірте використання ключа",
|
|
2252
|
+
"sizingCommand": "розмір - аналіз розмірів",
|
|
2253
|
+
"completeCommand": "complete - Повний переклад (100% покриття)",
|
|
2254
|
+
"summaryCommand": "резюме - Показати статус проекту",
|
|
2255
|
+
"scannerCommand": "сканер - перевірка на наявність проблем i18n",
|
|
2256
|
+
"translateCommand": "translate - автоматично перекладає файли локалі",
|
|
2257
|
+
"debugCommand": "debug - налагоджувати проблеми перекладу"
|
|
2258
|
+
},
|
|
2259
|
+
"test_complete_system": {
|
|
2260
|
+
"starting_test": "🧪 Початок повного тестування системи",
|
|
2261
|
+
"separator": "=",
|
|
2262
|
+
"testing_ui_translations": "📝 Тестування перекладів інтерфейсу користувача...",
|
|
2263
|
+
"testing_settings_manager": "⚙️ Менеджер налаштувань тестування...",
|
|
2264
|
+
"testing_main_scripts": "🔧 Тестування основних сценаріїв...",
|
|
2265
|
+
"checking_translation_consistency": "🌐 Перевірка узгодженості перекладу...",
|
|
2266
|
+
"non_critical_missing_keys": "ℹ️ {file}: {count} некритичні відсутні ключі",
|
|
2267
|
+
"extra_keys": "ℹ️ {file}: {count} додаткові ключі",
|
|
2268
|
+
"generating_report": "📊 Створення звіту...",
|
|
2269
|
+
"final_test_report_title": "📋 FINAL TEST REPORT",
|
|
2270
|
+
"passed": "✅ Здано: {passed}",
|
|
2271
|
+
"failed": "❌ Не вдалося: {failed}",
|
|
2272
|
+
"warnings": "⚠️ Попередження: {warnings}",
|
|
2273
|
+
"missing_translations_title": "🔍 Відсутні переклади ({count}):",
|
|
2274
|
+
"missing_translation_key": "- {key}",
|
|
2275
|
+
"missing_translations_more": "... і {count} більше",
|
|
2276
|
+
"errors_title": "❌ Помилки:",
|
|
2277
|
+
"error_message": "- {error}",
|
|
2278
|
+
"overall_status": "📊 Загальний статус: {status}",
|
|
2279
|
+
"success_message": "✅ {message}",
|
|
2280
|
+
"failure_message": "❌ {message}",
|
|
2281
|
+
"failure_error_message": "{errorMessage}",
|
|
2282
|
+
"warning_message": "⚠️ {message}",
|
|
2283
|
+
"test_runner_failed": "❌ Тестовий бігун не вдався:",
|
|
2284
|
+
"recommendations": {
|
|
2285
|
+
"add_missing_translation_keys": "Додайте відсутні ключі перекладу, щоб зберегти узгодженість",
|
|
2286
|
+
"fix_failing_scripts": "Виправте помилкові сценарії перед розгортанням",
|
|
2287
|
+
"review_warning_messages": "Перегляньте та вирішуйте попереджувальні повідомлення",
|
|
2288
|
+
"system_ready_for_deployment": "Система готова до розгортання"
|
|
2289
|
+
},
|
|
2290
|
+
"hardcodedTexts": {
|
|
2291
|
+
"addMissingTranslationKeys": "Додайте відсутні ключі перекладу, щоб зберегти узгодженість",
|
|
2292
|
+
"fixFailingScripts": "Виправте помилкові сценарії перед розгортанням",
|
|
2293
|
+
"reviewWarningMessages": "Перегляньте та вирішуйте попереджувальні повідомлення",
|
|
2294
|
+
"systemReadyForDeployment": "Система готова до розгортання"
|
|
2295
|
+
}
|
|
2296
|
+
},
|
|
2297
|
+
"testConsoleI18n": {
|
|
2298
|
+
"found_target_file": "Знайдено цільовий файл: {fileName}",
|
|
2299
|
+
"scanning_files_for_console_statements": "Сканування файлів на консольні оператори...",
|
|
2300
|
+
"found_javascript_files": "знайдено {count} файли JavaScript.",
|
|
2301
|
+
"console_i18n_analysis_results": "Результати аналізу консолі I18n",
|
|
2302
|
+
"total_console_statements": "Усього консольних заяв: {count}",
|
|
2303
|
+
"translated_statements": "Переклад заяв: {count}",
|
|
2304
|
+
"hardcoded_statements": "Жорстко закодовані заяви: {count}",
|
|
2305
|
+
"translation_coverage": "Покриття перекладу: {percentage}%",
|
|
2306
|
+
"coverage_by_file": "Покриття файлом:",
|
|
2307
|
+
"file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
|
|
2308
|
+
"hardcoded_console_statements": "Жорстко закодовані оператори консолі:",
|
|
2309
|
+
"file_header": "Файл: {file}",
|
|
2310
|
+
"line_statement": "лінія {line}: {statement}",
|
|
2311
|
+
"suggested_key": "Пропонований ключ: {key}",
|
|
2312
|
+
"suggested_replacement": "Рекомендована заміна: {replacement}",
|
|
2313
|
+
"recommendations": "Рекомендації:",
|
|
2314
|
+
"recommendation_1": "1. Замініть жорстко закодовані рядки на виклики i18n.t().",
|
|
2315
|
+
"recommendation_2": "2. Додайте нові ключі до відповідних файлів перекладу JSON.",
|
|
2316
|
+
"recommendation_3": "3. Переконайтеся, що всі повідомлення консолі призначені для користувача та потребують перекладу.",
|
|
2317
|
+
"recommendation_4": "4. Використовуйте шаблонні літерали або конкатенацію рядків для динамічних повідомлень, передаючи змінні в i18n.t().",
|
|
2318
|
+
"translation_keys_to_add": "Запропоновані ключі перекладу для додавання:",
|
|
2319
|
+
"add_keys_instruction": "Скопіюйте таку структуру JSON у свої файли перекладу:",
|
|
2320
|
+
"perfect_translation_coverage": "Ідеальне покриття перекладу!",
|
|
2321
|
+
"all_statements_using_translation": "Усі консольні оператори використовують систему перекладу.",
|
|
2322
|
+
"i18n_console_translation_checker": "Перевірка перекладу консолі I18n",
|
|
2323
|
+
"script_description_line1": "Цей сценарій сканує всі файли JavaScript на предмет інструкцій консолі",
|
|
2324
|
+
"script_description_line2": "і перевіряє, чи використовують вони систему перекладу.",
|
|
2325
|
+
"analysis_completed_in_duration": "Аналіз завершено в {duration} секунд.",
|
|
2326
|
+
"report_saved_to_path": "Звіт збережено в: {path}",
|
|
2327
|
+
"found_hardcoded_messages": "знайдено {count} жорстко закодовані повідомлення. Вихід із кодом помилки 1.",
|
|
2328
|
+
"all_console_messages_use_translation": "Усі консольні повідомлення використовують переклад. Вихід з кодом 0.",
|
|
2329
|
+
"consoleTranslationsCheck": "Перевірка перекладів консолі"
|
|
2330
|
+
},
|
|
2331
|
+
"translate_mismatches": {
|
|
2332
|
+
"title": "🌐 Помічник перекладу {dryRun}",
|
|
2333
|
+
"separator": "=====================================",
|
|
2334
|
+
"processing_file": "📄 Обробка {language}.json...",
|
|
2335
|
+
"translation_summary_title": "📊 Короткий зміст перекладу:",
|
|
2336
|
+
"total_translations_applied": "Загальна кількість застосованих перекладів: {totalTranslations}",
|
|
2337
|
+
"run_with_apply_instruction": "💡 Запустіть за допомогою --apply, щоб застосувати ці переклади",
|
|
2338
|
+
"no_translation_mappings": "⚠️ Немає доступних зіставлень перекладу для {language}",
|
|
2339
|
+
"translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
|
|
2340
|
+
"saved_translations": "💾 Збережено {count} переклади на {filename}",
|
|
2341
|
+
"found_translatable_items": "🔍 Знайдено {count} предмети, які можна перекладати",
|
|
2342
|
+
"no_automatic_translations": "✨ Немає автоматичних перекладів",
|
|
2343
|
+
"error_processing_file": "❌ Обробка помилок {filename}: {errorMessage}",
|
|
2344
|
+
"coverage_report_title": "📊 Звіт про покриття перекладу",
|
|
2345
|
+
"coverage_report_separator": "===============================",
|
|
2346
|
+
"file_header": "📄 {filename}:",
|
|
2347
|
+
"total_keys": "Всього ключів: {total}",
|
|
2348
|
+
"translated_keys": "Перекладено: {translated}",
|
|
2349
|
+
"untranslated_markers": "Неперекладені маркери: {untranslated}",
|
|
2350
|
+
"contains_english": "Містить англійську мову: {hasEnglish}",
|
|
2351
|
+
"coverage_percentage": "Покриття: {coverage}%",
|
|
2352
|
+
"error_general": "❌ Помилка:",
|
|
2353
|
+
"use_help": "Використовуйте --help для отримання інформації про використання"
|
|
2354
|
+
},
|
|
2355
|
+
"cleaningUpReportFiles": "Очищення старих файлів звітів...",
|
|
2356
|
+
"couldNotDelete": "Не вдалося видалити {file}: {error}",
|
|
2357
|
+
"deletedOldReportFiles": "Видалено {count} старі файли звітів.",
|
|
2358
|
+
"errorCleaningUpReports": "Помилка очищення звітів: {error}",
|
|
2359
|
+
"noOldReportFilesToDelete": "Немає старих файлів звітів для видалення.",
|
|
2360
|
+
"reportFilesPreserved": "Файли звітів збережено.",
|
|
2361
|
+
"reportSaveFailed": "Не вдалося зберегти звіт у: {reportPath}",
|
|
2362
|
+
"reportSaved": "Звіт збережено в: {reportPath}"
|
|
2363
|
+
},
|
|
2364
|
+
"ui": {
|
|
2365
|
+
"autoDetectedI18nDirectory": "Автоматично визначений каталог i18n: {path}",
|
|
2366
|
+
"executingCommand": "Виконання команди: {command}",
|
|
2367
|
+
"unknownCommand": "Невідома команда: {command}",
|
|
2368
|
+
"errorExecutingCommand": "Помилка виконання команди: {error}",
|
|
2369
|
+
"errorLoadingTranslationFile": "Помилка завантаження файлу перекладу для \"{language}': {error}",
|
|
2370
|
+
"errorSavingLanguagePreference": "Помилка збереження налаштувань мови: {error}",
|
|
2371
|
+
"noActiveReadlineInterface": "Немає активного інтерфейсу readline",
|
|
2372
|
+
"uiLanguageUpdated": "Мову інтерфейсу користувача оновлено до: {language}",
|
|
2373
|
+
"selectOptionPrompt": "Виберіть варіант:",
|
|
2374
|
+
"pressEnterToReturn": "Натисніть Enter, щоб повернутися до головного меню...",
|
|
2375
|
+
"detectedSourceDirectory": "Виявлений вихідний каталог: {sourceDir}",
|
|
2376
|
+
"detectedI18nDirectory": "Виявлено каталог i18n: {directory}",
|
|
2377
|
+
"toolkitTitle": "i18ntk - Enterprise i18n Management Toolkit",
|
|
2378
|
+
"versionInfo": "Версія: {version}",
|
|
2379
|
+
"releaseDate": "Дата виходу: {date}",
|
|
2380
|
+
"maintainer": "Супроводжувач: {maintainer}",
|
|
2381
|
+
"nodeVersion": "Node.js: {version}",
|
|
2382
|
+
"license": "Ліцензія: {license}",
|
|
2383
|
+
"whatsNew": "✨ Що нового у v{version}:",
|
|
2384
|
+
"changeItem": "{change}",
|
|
2385
|
+
"documentation": "📚 Документація: {url}",
|
|
2386
|
+
"issues": "🐛 Проблеми: {url}",
|
|
2387
|
+
"versionInfoUnavailable": "Інформація про версію i18ntk недоступна",
|
|
2388
|
+
"versionInfoError": "Помилка: {error}"
|
|
2389
|
+
},
|
|
2390
|
+
"validateLanguagePurity": {
|
|
2391
|
+
"phrase_debug_tools": "засоби налагодження",
|
|
2392
|
+
"phrase_settings": "налаштування",
|
|
2393
|
+
"phrase_configuration": "конфігурація",
|
|
2394
|
+
"phrase_invalid_choice": "недійсний вибір",
|
|
2395
|
+
"phrase_please_select": "будь ласка, виберіть",
|
|
2396
|
+
"phrase_back_to_main_menu": "повернутися до головного меню",
|
|
2397
|
+
"phrase_error": "помилка",
|
|
2398
|
+
"phrase_warning": "УВАГА",
|
|
2399
|
+
"phrase_success": "успіх",
|
|
2400
|
+
"phrase_failed": "не вдалося",
|
|
2401
|
+
"phrase_loading": "завантаження",
|
|
2402
|
+
"phrase_saving": "збереження",
|
|
2403
|
+
"phrase_full_system_debug": "повне налагодження системи",
|
|
2404
|
+
"phrase_configuration_debug": "налагодження конфігурації",
|
|
2405
|
+
"phrase_translation_debug": "налагодження перекладу",
|
|
2406
|
+
"phrase_performance_debug": "налагодження продуктивності",
|
|
2407
|
+
"phrase_admin_pin_setup": "налаштування PIN-коду адміністратора",
|
|
2408
|
+
"phrase_enter_admin_pin": "введіть PIN-код адміністратора",
|
|
2409
|
+
"phrase_confirm_admin_pin": "підтвердити PIN-код адміністратора",
|
|
2410
|
+
"phrase_authentication_failed": "помилка автентифікації",
|
|
2411
|
+
"phrase_access_denied": "доступ заборонено",
|
|
2412
|
+
"phrase_security_log": "журнал безпеки",
|
|
2413
|
+
"language_german": "Німецький",
|
|
2414
|
+
"language_french": "французька",
|
|
2415
|
+
"language_spanish": "Іспанська",
|
|
2416
|
+
"language_russian": "російська",
|
|
2417
|
+
"language_japanese": "Японський",
|
|
2418
|
+
"language_chinese": "китайський",
|
|
2419
|
+
"validator_title": "🔍 Перевірка чистоти мови",
|
|
2420
|
+
"validating_file": "📄 Перевірка {language}.json ({name})...",
|
|
2421
|
+
"valid_file_message": "✅ Дійсний – немає порушень чистоти мови",
|
|
2422
|
+
"invalid_file_message": "❌ Недійсний - {count} виявлено порушення",
|
|
2423
|
+
"no_validation_rules": "Для мови не визначено правил перевірки: {language}",
|
|
2424
|
+
"error_reading_file": "Помилка читання файлу: {errorMessage}",
|
|
2425
|
+
"issue_forbidden_marker": "Містить заборонений маркер: {marker}",
|
|
2426
|
+
"issue_english_phrase": "Містить англійську фразу: \"{phrase}\"",
|
|
2427
|
+
"issue_english_words": "Містить англійські слова: {words}",
|
|
2428
|
+
"issue_missing_cyrillic": "Довгий текст повинен містити кириличні символи для російської мови",
|
|
2429
|
+
"issue_missing_japanese": "Довгий текст має містити японські ієрогліфи",
|
|
2430
|
+
"issue_missing_chinese": "Довгий текст має містити китайські ієрогліфи",
|
|
2431
|
+
"summary_title": "📊 РЕЗЮМЕ ПЕРЕВІРКИ",
|
|
2432
|
+
"overall_results_header": "📋 Загальні результати:",
|
|
2433
|
+
"total_files_validated": "Усього перевірених файлів: {count}",
|
|
2434
|
+
"valid_files": "Дійсні файли: {count}",
|
|
2435
|
+
"invalid_files": "Недійсні файли: {count}",
|
|
2436
|
+
"total_violations": "Всього порушень: {count}",
|
|
2437
|
+
"violations_by_file_header": "❌ ПОРУШЕННЯ ПО ФАЙЛУ:"
|
|
2438
|
+
},
|
|
2439
|
+
"workflow": {
|
|
2440
|
+
"title": "Управління робочим процесом",
|
|
2441
|
+
"description": "Керуйте робочими процесами i18n.",
|
|
2442
|
+
"select_workflow_file": "Виберіть файл робочого процесу для запуску:",
|
|
2443
|
+
"no_workflow_files": "У каталозі робочих процесів не знайдено файлів робочих процесів.",
|
|
2444
|
+
"invalid_selection": "Невірний вибір. Введіть номер, який відповідає файлу робочого циклу.",
|
|
2445
|
+
"workflow_execution_started": "Початок робочого процесу: {workflowName}",
|
|
2446
|
+
"workflow_execution_completed": "Робочий процес завершено: {workflowName}",
|
|
2447
|
+
"workflow_execution_failed": "Помилка робочого процесу: {workflowName} - {error}",
|
|
2448
|
+
"workflow_cancelled": "Виконання робочого процесу скасовано.",
|
|
2449
|
+
"press_enter_to_continue": "Натисніть Enter, щоб продовжити!",
|
|
2450
|
+
"starting": "🚀 Початок робочого процесу...",
|
|
2451
|
+
"completed": "✅ Робочий процес успішно завершено!",
|
|
2452
|
+
"checkReports": "📄 Подробиці дивіться у звітах.",
|
|
2453
|
+
"exitingCompleted": "📝 Робочий процес завершено. Вихід...",
|
|
2454
|
+
"summary": {
|
|
2455
|
+
"title": "📋 WORKFLOW SUMMARY",
|
|
2456
|
+
"separator": "===================",
|
|
2457
|
+
"completedAt": "🕐 Робочий процес завершено о: {timestamp}",
|
|
2458
|
+
"initialViolations": "📊 Початкові порушення: {count}",
|
|
2459
|
+
"finalViolations": "📉 Остаточні порушення: {count}",
|
|
2460
|
+
"totalFixes": "🔧 Усього застосованих виправлень: {count}",
|
|
2461
|
+
"improvement": "📈 Покращення: {percentage}%",
|
|
2462
|
+
"stepResults": "📝 STEP RESULTS:",
|
|
2463
|
+
"stepDetail": "{number}. {status} {stepName}",
|
|
2464
|
+
"violations": "Порушення: {count}",
|
|
2465
|
+
"fixesApplied": "Застосовані виправлення: {count}",
|
|
2466
|
+
"nextSteps": "💡 NEXT STEPS:",
|
|
2467
|
+
"congratulations": "🎉 Вітаємо! Усі файли локалі тепер мають ідеальну чистоту мови!",
|
|
2468
|
+
"cicdIntegration": "✅ Розгляньте можливість інтеграції валідатора у ваш конвеєр CI/CD",
|
|
2469
|
+
"automatedChecks": "✅ Налаштуйте автоматичні перевірки нових перекладів",
|
|
2470
|
+
"greatProgress": "🎯 Великий прогрес! Більшість питань вирішено.",
|
|
2471
|
+
"manualReview": "🔍 Перегляньте решту порушень вручну",
|
|
2472
|
+
"addMappings": "🌐 Розгляньте можливість додавання більше зіставлень перекладу для крайніх випадків",
|
|
2473
|
+
"goodProgress": "📈 Хороший прогрес, але потрібно ще працювати.",
|
|
2474
|
+
"expandMappings": "🔧 Розгорнути зіставлення автоматичного перекладу",
|
|
2475
|
+
"professionalReview": "👥 Розглянемо ручну перевірку складних перекладів",
|
|
2476
|
+
"runAgain": "🔄 Запустіть робочий процес знову після додавання інших зіставлень",
|
|
2477
|
+
"limitedProgress": "⚠️ Обмежений прогрес. Може знадобитися ручне втручання.",
|
|
2478
|
+
"reviewMappings": "🔍 Перегляньте зіставлення перекладів і додайте відсутні",
|
|
2479
|
+
"professionalServices": "👥 Скористайтеся послугами професійного перекладу",
|
|
2480
|
+
"checkIssues": "🔧 Перевірте наявність систематичних проблем у файлах локалі",
|
|
2481
|
+
"success": "✅",
|
|
2482
|
+
"warning": "⚠️"
|
|
2483
|
+
}
|
|
2484
|
+
},
|
|
2485
|
+
"consoleI18nTester": {
|
|
2486
|
+
"found_target_file": "Знайдено цільовий файл",
|
|
2487
|
+
"scanning_files_for_console_statements": "Сканування файлів для консольних операторів",
|
|
2488
|
+
"found_javascript_files": "Знайдено файли javascript",
|
|
2489
|
+
"console_i18n_analysis_results": "Результати аналізу консолі i18n",
|
|
2490
|
+
"total_console_statements": "Загальні консольні виписки",
|
|
2491
|
+
"translated_statements": "Переклад заяв",
|
|
2492
|
+
"hardcoded_statements": "Жорстко закодовані заяви",
|
|
2493
|
+
"translation_coverage": "Покриття перекладу",
|
|
2494
|
+
"coverage_by_file": "Покриття файлом",
|
|
2495
|
+
"file_coverage_stats": "Статистика покриття файлів",
|
|
2496
|
+
"hardcoded_console_statements": "Жорстко закодовані оператори консолі",
|
|
2497
|
+
"file_header": "Заголовок файлу",
|
|
2498
|
+
"line_statement": "Рядковий оператор",
|
|
2499
|
+
"suggested_key": "Запропонований ключ",
|
|
2500
|
+
"suggested_replacement": "Рекомендована заміна",
|
|
2501
|
+
"recommendations": "Рекомендації",
|
|
2502
|
+
"recommendation_1": "Рекомендація 1",
|
|
2503
|
+
"recommendation_2": "Рекомендація 2",
|
|
2504
|
+
"recommendation_3": "Рекомендація 3",
|
|
2505
|
+
"recommendation_4": "Рекомендація 4",
|
|
2506
|
+
"translation_keys_to_add": "Ключі перекладу для додавання",
|
|
2507
|
+
"add_keys_instruction": "Інструкція з додавання ключів",
|
|
2508
|
+
"perfect_translation_coverage": "Ідеальне покриття перекладу",
|
|
2509
|
+
"all_statements_using_translation": "Усі твердження з використанням перекладу",
|
|
2510
|
+
"i18n_console_translation_checker": "Перевірка перекладу консолі I18n",
|
|
2511
|
+
"script_description_line1": "Рядок опису сценарію1",
|
|
2512
|
+
"script_description_line2": "Рядок опису сценарію2",
|
|
2513
|
+
"analysis_completed_in_duration": "Аналіз завершено за тривалістю",
|
|
2514
|
+
"report_saved_to_path": "Звіт збережено на шляху",
|
|
2515
|
+
"found_hardcoded_messages": "Знайдено жорстко закодовані повідомлення",
|
|
2516
|
+
"all_console_messages_use_translation": "Усі консольні повідомлення використовують переклад"
|
|
2517
|
+
},
|
|
2518
|
+
"exportTranslations": {
|
|
2519
|
+
"createdDirectory": "Створено Довідник",
|
|
2520
|
+
"foundFiles": "Знайдені файли",
|
|
2521
|
+
"createdTemplate": "Створений шаблон",
|
|
2522
|
+
"skippedExisting": "Пропущено існуючі",
|
|
2523
|
+
"title": "Назва",
|
|
2524
|
+
"creatingTemplates": "Створення шаблонів",
|
|
2525
|
+
"summary": "Резюме",
|
|
2526
|
+
"summaryLanguages": "Резюме Мови",
|
|
2527
|
+
"summaryFilesPerLanguage": "Зведені файли для кожної мови",
|
|
2528
|
+
"summaryTotalFiles": "Підсумок Усього файлів",
|
|
2529
|
+
"success": "Успіх",
|
|
2530
|
+
"location": "Розташування",
|
|
2531
|
+
"nextSteps": "Наступні кроки"
|
|
2532
|
+
},
|
|
2533
|
+
"dashboard": {
|
|
2534
|
+
"title": "Назва",
|
|
2535
|
+
"overview": "Огляд"
|
|
2536
|
+
},
|
|
2537
|
+
"auth": {
|
|
2538
|
+
"title": "Назва",
|
|
2539
|
+
"email": "Електронна пошта",
|
|
2540
|
+
"password": "Пароль",
|
|
2541
|
+
"signIn": "Увійти",
|
|
2542
|
+
"forgotPassword": "Забули пароль",
|
|
2543
|
+
"signUp": "Зареєструватися"
|
|
2544
|
+
},
|
|
2545
|
+
"checkUsage": {
|
|
2546
|
+
"usage_analysis_failed": "Помилка аналізу використання."
|
|
2547
|
+
},
|
|
2548
|
+
"completeTranslations": {
|
|
2549
|
+
"warning_could_not_parse_filepa": "Попередження: не вдалося проаналізувати шлях до файлу: {filePath}"
|
|
2550
|
+
},
|
|
2551
|
+
"pressEnterToContinue": "Натисніть Enter, щоб продовжити...",
|
|
2552
|
+
"status": {
|
|
2553
|
+
"exitingCompleted": "Робочий процес завершено. Вихід..."
|
|
2554
|
+
},
|
|
2555
|
+
"prompt": {
|
|
2556
|
+
"yesTokens": [
|
|
2557
|
+
"р",
|
|
2558
|
+
"так"
|
|
2559
|
+
],
|
|
2560
|
+
"noTokens": [
|
|
2561
|
+
"п",
|
|
2562
|
+
"немає"
|
|
2563
|
+
]
|
|
2564
|
+
},
|
|
2565
|
+
"translate": {
|
|
2566
|
+
"title": "Автоматичний переклад",
|
|
2567
|
+
"sourceDirectory": {
|
|
2568
|
+
"title": "Каталог вихідної мови",
|
|
2569
|
+
"currentProject": "Поточний проект: {dir}",
|
|
2570
|
+
"accepted": "Прийнято: абсолютний шлях або шлях відносно поточного проекту.",
|
|
2571
|
+
"localeRootExample": "./locales (потім виберіть вихідну мову: en)",
|
|
2572
|
+
"folderHint": "Папка може містити безпосередньо файли JSON або мовні папки, наприклад ./locales/en.",
|
|
2573
|
+
"defaultNotFound": "Стандартний каталог не знайдено: {dir}",
|
|
2574
|
+
"enterExisting": "Будь ласка, введіть існуючий каталог із файлами мови JSON.",
|
|
2575
|
+
"directoryNotFound": "Каталог не знайдено: {dir}",
|
|
2576
|
+
"enterFolderExample": "Введіть існуючу папку, наприклад ./locales/en.",
|
|
2577
|
+
"notDirectory": "Не каталог: {dir}",
|
|
2578
|
+
"using": "Використання вихідного каталогу: {dir}"
|
|
2579
|
+
},
|
|
2580
|
+
"targetLanguages": {
|
|
2581
|
+
"title": "Цільова мова(и)",
|
|
2582
|
+
"allConfigured": "a) Усі налаштовані цільові мови: {languages}",
|
|
2583
|
+
"noneConfigured": "a) Усі налаштовані цільові мови: жодної не налаштовано",
|
|
2584
|
+
"enterCodes": "Або введіть один або кілька кодів мови, розділених комами/пробілами.",
|
|
2585
|
+
"sourceExcluded": "Мова оригіналу\"{lang}\" буде автоматично виключено.",
|
|
2586
|
+
"noneSelected": "Не вибрано дійсних цільових мов. Переривання.",
|
|
2587
|
+
"configureHint": "Налаштуйте defaultLanguages у .i18ntk-config або введіть цільові коди вручну.",
|
|
2588
|
+
"selected": "Цільові мови: {languages}"
|
|
2589
|
+
},
|
|
2590
|
+
"protection": {
|
|
2591
|
+
"title": "Захищені терміни та ключі"
|
|
2592
|
+
},
|
|
2593
|
+
"common": {
|
|
2594
|
+
"default": "За замовчуванням: {value}",
|
|
2595
|
+
"examples": "приклади:",
|
|
2596
|
+
"exampleValue": "приклад: {value}",
|
|
2597
|
+
"examplesInline": "приклади: {examples}",
|
|
2598
|
+
"pressEnterDefault": "Натисніть Enter, щоб використовувати значення за замовчуванням.",
|
|
2599
|
+
"usingDefault": "За умовчанням: {value}"
|
|
2600
|
+
},
|
|
2601
|
+
"sourceLanguage": {
|
|
2602
|
+
"title": "Вихідний код мови",
|
|
2603
|
+
"hint": "Це має відповідати мові вихідних значень JSON.",
|
|
2604
|
+
"using": "Використовуючи вихідну мову: {lang}",
|
|
2605
|
+
"invalid": "Недійсний код мови. Використовуйте 2+ символи (наприклад, en, de, fr)."
|
|
2606
|
+
},
|
|
2607
|
+
"files": {
|
|
2608
|
+
"title": "Який файл(и) перекладати?",
|
|
2609
|
+
"all": "a) Усі файли JSON ({count}: {files})",
|
|
2610
|
+
"choicePrompt": "Вибір [a/все або номер файлу]:",
|
|
2611
|
+
"invalidChoice": "Невірний вибір. Переривання."
|
|
2612
|
+
},
|
|
2613
|
+
"dryRun": {
|
|
2614
|
+
"previewFor": "Попередній перегляд для \"{lang}\"..."
|
|
2615
|
+
},
|
|
2616
|
+
"confirm": {
|
|
2617
|
+
"proceed": "Продовжити фактичний переклад?",
|
|
2618
|
+
"yesNoPrompt": "[y]es / [n]no:",
|
|
2619
|
+
"cancelled": "Переклад скасовано."
|
|
2620
|
+
},
|
|
2621
|
+
"run": {
|
|
2622
|
+
"translatingTo": "Перекладаючи на \"{lang}\"...",
|
|
2623
|
+
"failedFor": "Помилка для \"{lang}\": {error}"
|
|
2624
|
+
},
|
|
2625
|
+
"summary": {
|
|
2626
|
+
"title": "Резюме:",
|
|
2627
|
+
"complete": "Переклад завершено!"
|
|
2628
|
+
},
|
|
2629
|
+
"nonInteractive": {
|
|
2630
|
+
"useDirect": "Неінтерактивний режим. Замість цього використовуйте прямий CLI:"
|
|
2631
|
+
},
|
|
2632
|
+
"errors": {
|
|
2633
|
+
"sourceDirectoryNotFound": "Каталог вихідної мови не знайдено: {dir}"
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
}
|