feat(i18n): add Ukrainian language support and translations (#536)
Co-authored-by: Ivan Tur <49621041+buiiz@users.noreply.github.com>
This commit is contained in:
parent
c606bf631b
commit
c8aabdb913
2 changed files with 421 additions and 0 deletions
|
|
@ -20,4 +20,5 @@ export const LANGUAGE_METADATA: Record<
|
|||
pl: { name: "Polish", nativeName: "Polski", priority: 8 },
|
||||
it: { name: "Italian", nativeName: "Italiano", priority: 9 },
|
||||
ru: { name: "Russian", nativeName: "Русский", priority: 10 },
|
||||
uk: { name: "Ukrainian", nativeName: "Українська", priority: 11 },
|
||||
};
|
||||
|
|
|
|||
420
src/i18n/locales/uk/translation.json
Normal file
420
src/i18n/locales/uk/translation.json
Normal file
|
|
@ -0,0 +1,420 @@
|
|||
{
|
||||
"tray": {
|
||||
"settings": "Налаштування...",
|
||||
"checkUpdates": "Перевірити оновлення...",
|
||||
"quit": "Вийти",
|
||||
"cancel": "Скасувати"
|
||||
},
|
||||
"sidebar": {
|
||||
"general": "Загальні",
|
||||
"advanced": "Розширені",
|
||||
"postProcessing": "Постобробка",
|
||||
"history": "Історія",
|
||||
"debug": "Дебаг",
|
||||
"about": "Інфо"
|
||||
},
|
||||
"onboarding": {
|
||||
"subtitle": "Для початку оберіть модель транскрипції",
|
||||
"recommended": "Рекомендовано",
|
||||
"download": "Завантажити",
|
||||
"downloading": "Завантаження...",
|
||||
"modelCard": {
|
||||
"accuracy": "точність",
|
||||
"speed": "швидкість"
|
||||
},
|
||||
"models": {
|
||||
"small": {
|
||||
"name": "Whisper Small",
|
||||
"description": "Швидка та досить точна"
|
||||
},
|
||||
"medium": {
|
||||
"name": "Whisper Medium",
|
||||
"description": "Хороша точність, середня швидкість"
|
||||
},
|
||||
"turbo": {
|
||||
"name": "Whisper Turbo",
|
||||
"description": "Збалансована точність та швидкість"
|
||||
},
|
||||
"large": {
|
||||
"name": "Whisper Large",
|
||||
"description": "Хороша точність, але повільна"
|
||||
},
|
||||
"parakeet-tdt-0.6b-v2": {
|
||||
"name": "Parakeet V2",
|
||||
"description": "Лише англійська. Найкраща модель для англомовних"
|
||||
},
|
||||
"parakeet-tdt-0.6b-v3": {
|
||||
"name": "Parakeet V3",
|
||||
"description": "Швидка та точна"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"loadModels": "Не вдалося завантажити доступні моделі",
|
||||
"downloadModel": "Не вдалося завантажити модель: {{error}}"
|
||||
}
|
||||
},
|
||||
"modelSelector": {
|
||||
"welcome": "Ласкаво просимо до Handy!",
|
||||
"downloadPrompt": "Завантажте модель нижче, щоб почати транскрипцію.",
|
||||
"availableModels": "Доступні моделі",
|
||||
"downloadModels": "Завантажити моделі",
|
||||
"chooseModel": "Оберіть модель",
|
||||
"active": "Активна",
|
||||
"download": "Завантажити",
|
||||
"downloadSize": "Розмір завантаження",
|
||||
"noModelsAvailable": "Немає доступних моделей",
|
||||
"extracting": "Розпакування {{modelName}}...",
|
||||
"extractingMultiple": "Розпакування {{count}} моделей...",
|
||||
"extractingGeneric": "Розпакування...",
|
||||
"downloading": "Завантаження {{percentage}}%",
|
||||
"downloadingMultiple": "Завантаження {{count}} моделей...",
|
||||
"modelReady": "Модель готова",
|
||||
"loading": "Завантаження {{modelName}}...",
|
||||
"loadingGeneric": "Завантаження...",
|
||||
"modelError": "Помилка моделі",
|
||||
"modelUnloaded": "Модель вивантажена",
|
||||
"noModelDownloadRequired": "Немає моделі - потрібно завантажити",
|
||||
"deleteModel": "Видалити {{modelName}}"
|
||||
},
|
||||
"settings": {
|
||||
"general": {
|
||||
"title": "Загальні",
|
||||
"shortcut": {
|
||||
"title": "Комбінації клавіш",
|
||||
"description": "Налаштуйте клавіатурні скорочення для запуску запису мовлення в текст",
|
||||
"loading": "Завантаження скорочень...",
|
||||
"none": "Скорочення не налаштовані",
|
||||
"notFound": "Скорочення не знайдено",
|
||||
"pressKeys": "Натисніть клавіші...",
|
||||
"bindings": {
|
||||
"transcribe": {
|
||||
"name": "Диктувати",
|
||||
"description": "Перетворює ваше мовлення в текст"
|
||||
},
|
||||
"cancel": {
|
||||
"name": "Скасувати",
|
||||
"description": "Скасовує поточний запис"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"restore": "Не вдалося відновити початкове скорочення",
|
||||
"set": "Не вдалося встановити скорочення: {{error}}",
|
||||
"reset": "Не вдалося скинути скорочення до початкового значення"
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"title": "Мова",
|
||||
"description": "Оберіть мову для розпізнавання мовлення. Режим «Авто» визначить мову автоматично, а вибір конкретної мови може покращити точність.",
|
||||
"descriptionUnsupported": "Модель Parakeet автоматично визначає мову. Ручний вибір не потрібен.",
|
||||
"searchPlaceholder": "Пошук мов...",
|
||||
"noResults": "Мов не знайдено",
|
||||
"auto": "Авто"
|
||||
},
|
||||
"pushToTalk": {
|
||||
"label": "Утримувати для запису (Push To Talk)",
|
||||
"description": "Утримуйте для запису, відпустіть для зупинки"
|
||||
}
|
||||
},
|
||||
"sound": {
|
||||
"title": "Звук",
|
||||
"microphone": {
|
||||
"title": "Мікрофон",
|
||||
"description": "Оберіть бажаний мікрофон",
|
||||
"placeholder": "Оберіть мікрофон...",
|
||||
"loading": "Завантаження..."
|
||||
},
|
||||
"audioFeedback": {
|
||||
"label": "Звукове сповіщення",
|
||||
"description": "Відтворювати звук при початку та зупинці запису"
|
||||
},
|
||||
"outputDevice": {
|
||||
"title": "Пристрій виводу",
|
||||
"description": "Оберіть бажаний пристрій виводу звуку для звукових сповіщень",
|
||||
"placeholder": "Оберіть пристрій виводу...",
|
||||
"loading": "Завантаження..."
|
||||
},
|
||||
"volume": {
|
||||
"title": "Гучність",
|
||||
"description": "Налаштуйте гучність звукових сповіщень"
|
||||
}
|
||||
},
|
||||
"advanced": {
|
||||
"title": "Розширені",
|
||||
"startHidden": {
|
||||
"label": "Запуск у фоні",
|
||||
"description": "Запускати в системному треї без відкриття вікна"
|
||||
},
|
||||
"autostart": {
|
||||
"label": "Запуск при старті системи",
|
||||
"description": "Автоматично запускати Handy при вході в систему"
|
||||
},
|
||||
"overlay": {
|
||||
"title": "Позиція оверлею",
|
||||
"description": "Показувати візуальний оверлей під час запису та транскрипції. На Linux рекомендовано «Немає»",
|
||||
"options": {
|
||||
"none": "Немає",
|
||||
"bottom": "Внизу",
|
||||
"top": "Вгорі"
|
||||
}
|
||||
},
|
||||
"pasteMethod": {
|
||||
"title": "Метод вставки",
|
||||
"description": "Оберіть спосіб вставки тексту. Прямий: емулює набір тексту. Немає: пропускає вставку, оновлює лише історію/буфер обміну.",
|
||||
"options": {
|
||||
"clipboard": "Буфер обміну ({{modifier}}+V)",
|
||||
"clipboardCtrlShiftV": "Буфер обміну (Ctrl+Shift+V)",
|
||||
"clipboardShiftInsert": "Буфер обміну (Shift+Insert)",
|
||||
"direct": "Прямий",
|
||||
"none": "Немає"
|
||||
}
|
||||
},
|
||||
"clipboardHandling": {
|
||||
"title": "Робота з буфером обміну",
|
||||
"description": "Не змінювати буфер обміну зберігає поточний вміст буфера після транскрипції. Копіювати в буфер обміну залишає результат транскрипції в буфері після вставки.",
|
||||
"options": {
|
||||
"dontModify": "Не змінювати буфер обміну",
|
||||
"copyToClipboard": "Копіювати в буфер обміну"
|
||||
}
|
||||
},
|
||||
"translateToEnglish": {
|
||||
"label": "Перекласти на англійську",
|
||||
"description": "Автоматично перекладати мовлення з інших мов англійською під час транскрипції.",
|
||||
"descriptionUnsupported": "Переклад не підтримується моделлю {{model}}."
|
||||
},
|
||||
"modelUnload": {
|
||||
"title": "Вивантаження моделі",
|
||||
"description": "Автоматично звільняти пам'ять GPU/CPU, коли модель не використовується протягом вказаного часу",
|
||||
"options": {
|
||||
"never": "Ніколи",
|
||||
"immediately": "Негайно",
|
||||
"min2": "Через 2 хвилини",
|
||||
"min5": "Через 5 хвилин",
|
||||
"min10": "Через 10 хвилин",
|
||||
"min15": "Через 15 хвилин",
|
||||
"hour1": "Через 1 годину",
|
||||
"sec5": "Через 5 секунд (Дебаг)"
|
||||
}
|
||||
},
|
||||
"customWords": {
|
||||
"title": "Власні слова",
|
||||
"description": "Додайте слова, які часто неправильно розпізнаються під час транскрипції. Система автоматично виправлятиме схожі за звучанням слова відповідно до вашого списку.",
|
||||
"placeholder": "Додати слово",
|
||||
"add": "Додати",
|
||||
"remove": "Видалити {{word}}"
|
||||
}
|
||||
},
|
||||
"postProcessing": {
|
||||
"title": "Постобробка",
|
||||
"disabledNotice": "Постобробка наразі вимкнена. Увімкніть її в розділі Дебаг.",
|
||||
"api": {
|
||||
"title": "API (сумісний з OpenAI)",
|
||||
"provider": {
|
||||
"title": "Провайдер",
|
||||
"description": "Оберіть OpenAI-сумісного провайдера"
|
||||
},
|
||||
"appleIntelligence": {
|
||||
"title": "Apple Intelligence",
|
||||
"description": "Працює повністю на пристрої. API-ключ або доступ до мережі не потрібні.",
|
||||
"requirements": "Потрібен Mac з Apple Silicon під управлінням macOS Tahoe (26.0) або новіше. Apple Intelligence має бути увімкнений у Системних налаштуваннях.",
|
||||
"unavailable": "Apple Intelligence недоступний на цьому пристрої. Потрібен Mac з Apple Silicon під управлінням macOS Tahoe (26.0) або новіше з увімкненим Apple Intelligence в Системних налаштуваннях."
|
||||
},
|
||||
"baseUrl": {
|
||||
"title": "Базова URL-адреса",
|
||||
"description": "Базова URL-адреса API для обраного провайдера. Лише власний провайдер можна редагувати.",
|
||||
"placeholder": "https://api.openai.com/v1"
|
||||
},
|
||||
"apiKey": {
|
||||
"title": "API-ключ",
|
||||
"description": "API-ключ для обраного провайдера",
|
||||
"placeholder": "sk-..."
|
||||
},
|
||||
"model": {
|
||||
"title": "Модель",
|
||||
"descriptionApple": "Вкажіть необов'язковий числовий ліміт токенів або залиште стандартний пресет на пристрої.",
|
||||
"descriptionCustom": "Вкажіть ідентифікатор моделі, який очікує ваш ендпоінт.",
|
||||
"descriptionDefault": "Оберіть модель, надану обраним провайдером",
|
||||
"placeholderApple": "Apple Intelligence",
|
||||
"placeholderWithOptions": "Шукайте або оберіть модель",
|
||||
"placeholderNoOptions": "Введіть назву моделі",
|
||||
"refreshModels": "Оновити моделі"
|
||||
}
|
||||
},
|
||||
"prompts": {
|
||||
"title": "Промпт",
|
||||
"selectedPrompt": {
|
||||
"title": "Обраний промпт",
|
||||
"description": "Оберіть шаблон для покращення транскрипцій або створіть новий. Використовуйте ${output} у тексті промпта для посилання на захоплену транскрипцію."
|
||||
},
|
||||
"noPrompts": "Немає доступних промптів",
|
||||
"selectPrompt": "Оберіть промпт",
|
||||
"createNew": "Створити новий промпт",
|
||||
"promptLabel": "Назва промпта",
|
||||
"promptLabelPlaceholder": "Введіть назву промпта",
|
||||
"promptInstructions": "Інструкції промпта",
|
||||
"promptInstructionsPlaceholder": "Напишіть інструкції для виконання після транскрипції. Приклад: Покращити граматику та ясність для наступного тексту: ${output}",
|
||||
"promptTip": "Порада: Використовуйте <code>${output}</code> для вставки транскрибованого тексту у ваш промпт.",
|
||||
"updatePrompt": "Оновити промпт",
|
||||
"deletePrompt": "Видалити промпт",
|
||||
"createPrompt": "Створити промпт",
|
||||
"cancel": "Скасувати",
|
||||
"selectToEdit": "Оберіть промпт вище для перегляду та редагування його деталей.",
|
||||
"createFirst": "Натисніть «Створити новий промпт» вище, щоб створити ваш перший промпт постобробки."
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"title": "Історія",
|
||||
"openFolder": "Відкрити папку записів",
|
||||
"loading": "Завантаження історії...",
|
||||
"empty": "Транскрипцій поки немає. Почніть запис, щоб створити історію!",
|
||||
"copyToClipboard": "Копіювати транскрипцію в буфер обміну",
|
||||
"save": "Зберегти транскрипцію",
|
||||
"unsave": "Видалити зі збережених",
|
||||
"delete": "Видалити запис",
|
||||
"deleteError": "Не вдалося видалити запис. Спробуйте ще раз."
|
||||
},
|
||||
"debug": {
|
||||
"title": "Дебаг",
|
||||
"logDirectory": {
|
||||
"title": "Папка логів",
|
||||
"description": "Розташування файлів логів"
|
||||
},
|
||||
"logLevel": {
|
||||
"title": "Рівень логування",
|
||||
"description": "Встановіть детальність логування"
|
||||
},
|
||||
"updateChecks": {
|
||||
"label": "Перевірка оновлень",
|
||||
"description": "Автоматично перевіряти наявність нових версій Handy"
|
||||
},
|
||||
"soundTheme": {
|
||||
"label": "Звукова тема",
|
||||
"description": "Оберіть звукову тему для сповіщень про початок і зупинку запису"
|
||||
},
|
||||
"wordCorrectionThreshold": {
|
||||
"title": "Поріг корекції слів",
|
||||
"description": "Чутливість для корекції власних слів"
|
||||
},
|
||||
"historyLimit": {
|
||||
"title": "Ліміт історії",
|
||||
"description": "Максимальна кількість записів в історії",
|
||||
"entries": "записів"
|
||||
},
|
||||
"recordingRetention": {
|
||||
"title": "Автовидалення записів",
|
||||
"description": "Автоматично видаляти старі записи для економії місця",
|
||||
"never": "Ніколи",
|
||||
"preserveLimit": "Зберігати останні {{count}}",
|
||||
"days3": "Через 3 дні",
|
||||
"weeks2": "Через 2 тижні",
|
||||
"months3": "Через 3 місяці",
|
||||
"placeholder": "Оберіть період зберігання..."
|
||||
},
|
||||
"alwaysOnMicrophone": {
|
||||
"label": "Постійно активний мікрофон",
|
||||
"description": "Тримати мікрофон активним для швидшого відгуку"
|
||||
},
|
||||
"clamshellMicrophone": {
|
||||
"title": "Мікрофон у закритому режимі",
|
||||
"description": "Мікрофон для використання при закритій кришці ноутбука"
|
||||
},
|
||||
"postProcessingToggle": {
|
||||
"label": "Постобробка",
|
||||
"description": "Увімкнути покращення тексту за допомогою AI після транскрипції"
|
||||
},
|
||||
"muteWhileRecording": {
|
||||
"label": "Вимкнути звук під час запису",
|
||||
"description": "Вимикати системний звук під час запису"
|
||||
},
|
||||
"appendTrailingSpace": {
|
||||
"label": "Додавати пробіл в кінці",
|
||||
"description": "Додавати пробіл після вставленої транскрипції"
|
||||
},
|
||||
"paths": {
|
||||
"appData": "Дані програми:",
|
||||
"models": "Моделі:",
|
||||
"settings": "Налаштування:"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"title": "Інфо",
|
||||
"version": {
|
||||
"title": "Версія",
|
||||
"description": "Поточна версія Handy"
|
||||
},
|
||||
"appDataDirectory": {
|
||||
"title": "Папка даних програми",
|
||||
"description": "Розташування даних Handy"
|
||||
},
|
||||
"sourceCode": {
|
||||
"title": "Вихідний код",
|
||||
"description": "Переглянути вихідний код та зробити внесок",
|
||||
"button": "Переглянути на GitHub"
|
||||
},
|
||||
"supportDevelopment": {
|
||||
"title": "Підтримати розробку",
|
||||
"description": "Допоможіть нам продовжувати розвивати Handy",
|
||||
"button": "Підтримати"
|
||||
},
|
||||
"acknowledgments": {
|
||||
"title": "Подяки",
|
||||
"whisper": {
|
||||
"title": "Whisper.cpp",
|
||||
"description": "Високопродуктивний інференс моделі автоматичного розпізнавання мовлення Whisper від OpenAI",
|
||||
"details": "Handy використовує Whisper.cpp для швидкої локальної обробки мовлення в текст. Дякуємо за чудову роботу Георгію Герганову та контриб'юторам."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"downloadingModel": "Завантаження {{model}}...",
|
||||
"checkingUpdates": "Перевірка оновлень...",
|
||||
"updateAvailable": "Доступне оновлення: {{version}}",
|
||||
"updateAvailableShort": "Доступне оновлення",
|
||||
"upToDate": "Актуальна версія",
|
||||
"downloadUpdate": "Завантажити оновлення",
|
||||
"restart": "Перезапустити",
|
||||
"updateCheckingDisabled": "Перевірка оновлень вимкнена",
|
||||
"downloading": "Завантаження... {{progress}}%",
|
||||
"installing": "Встановлення...",
|
||||
"preparing": "Підготовка...",
|
||||
"checkForUpdates": "Перевірити оновлення"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Завантаження...",
|
||||
"save": "Зберегти",
|
||||
"cancel": "Скасувати",
|
||||
"reset": "Скинути",
|
||||
"add": "Додати",
|
||||
"remove": "Видалити",
|
||||
"delete": "Видалити",
|
||||
"edit": "Редагувати",
|
||||
"create": "Створити",
|
||||
"update": "Оновити",
|
||||
"close": "Закрити",
|
||||
"open": "Відкрити",
|
||||
"default": "За замовчуванням",
|
||||
"enabled": "Увімкнено",
|
||||
"disabled": "Вимкнено",
|
||||
"on": "Увімк.",
|
||||
"off": "Вимк.",
|
||||
"yes": "Так",
|
||||
"no": "Ні",
|
||||
"noOptionsFound": "Опцій не знайдено"
|
||||
},
|
||||
"accessibility": {
|
||||
"permissionsRequired": "Потрібні права доступу",
|
||||
"permissionsDescription": "Handy потребує дозволи доступності для введення транскрибованого тексту.",
|
||||
"openSettings": "Відкрити Системні налаштування",
|
||||
"dismiss": "Закрити"
|
||||
},
|
||||
"errors": {
|
||||
"loadDirectory": "Помилка завантаження папки: {{error}}"
|
||||
},
|
||||
"appLanguage": {
|
||||
"title": "Мова інтерфейсу",
|
||||
"description": "Змінити мову інтерфейсу Handy"
|
||||
},
|
||||
"overlay": {
|
||||
"transcribing": "Обробка..."
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue