feat(i18n): add uk translations across packages

introduce ukrainian locale files (uk.ts) across i18n, UI, and
VSCode UI to enable Ukrainian language support

- packages/kilo-i18n/src/uk.ts
- packages/kilo-ui/src/i18n/uk.ts
- packages/kilo-vscode/src/services/cli-backend/i18n/uk.ts
- packages/kilo-vscode/webview-ui/agent-manager/i18n/uk.ts
- packages/kilo-vscode/webview-ui/src/i18n/uk.ts
- packages/ui/src/i18n/uk.ts
This commit is contained in:
kiloconnect[bot]
2026-04-01 08:28:04 +00:00
parent 3ccf315274
commit 7faec3ee95
6 changed files with 1707 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
export const dict = {
// Kilo Gateway provider translations
"provider.connect.kiloGateway.line1":
"Kilo Gateway надає доступ до добірки надійних оптимізованих моделей для агентів кодування.",
"provider.connect.kiloGateway.line2":
"За допомогою одного API-ключа ви отримаєте доступ до таких моделей, як Claude, GPT, Gemini, GLM та інших.",
"provider.connect.kiloGateway.visit.prefix": "Відвідайте ",
"provider.connect.kiloGateway.visit.link": "kilo.ai",
"provider.connect.kiloGateway.visit.suffix": " щоб отримати свій API-ключ.",
// Provider dialog translations
"dialog.provider.group.recommended": "Рекомендовані",
"dialog.provider.kilo.note": "Доступ до 500+ моделей ШІ",
// Reasoning block label
"ui.permission.run": "Виконати",
"ui.reasoning.label": "Міркування",
// Marketplace
"marketplace.tab.skills": "Навички",
"marketplace.tab.mcpServers": "MCP-сервери",
"marketplace.tab.modes": "Режими",
"marketplace.category.all": "Усі",
"marketplace.placeholder": "Буде реалізовано",
"marketplace.card.installed": "Встановлено",
"marketplace.card.install": "Встановити",
"marketplace.card.remove": "Видалити",
"marketplace.card.removeScope": "Видалити ({{scope}})",
"marketplace.card.showMore": "Показати більше",
"marketplace.card.showLess": "Показати менше",
"marketplace.install.title": "Встановити {{name}}",
"marketplace.install.scope": "Область",
"marketplace.install.scope.project": "Проєкт",
"marketplace.install.scope.global": "Глобально",
"marketplace.install.prerequisites": "Передумови",
"marketplace.install.installing": "Встановлення...",
"marketplace.install.cancel": "Скасувати",
"marketplace.install.success": "Успішно встановлено!",
"marketplace.install.failed": "Встановлення не вдалося",
"marketplace.install.done": "Готово",
"marketplace.install.close": "Закрити",
"marketplace.remove.title": "Видалити {{name}}?",
"marketplace.remove.confirm":
"Ви впевнені, що хочете видалити цей {{type}}? Це видалить його з вашої конфігурації {{scope}}.",
"marketplace.remove.cancel": "Скасувати",
"marketplace.remove.confirm.button": "Видалити",
"marketplace.tab.mcp": "MCP",
"marketplace.search": "Пошук...",
"marketplace.filter.all": "Усі елементи",
"marketplace.filter.notInstalled": "Не встановлено",
"marketplace.empty": "Елементів не знайдено",
"marketplace.badge.mcpServer": "MCP-сервер",
"marketplace.badge.mode": "Режим",
"marketplace.card.by": "від {{author}}",
"marketplace.install.method": "Метод встановлення",
"marketplace.install.parameters": "Параметри",
"marketplace.install.optional": "(необов'язково)",
"marketplace.install.required": "{{name}} є обов'язковим",
"marketplace.scope.project": "проєкт",
"marketplace.scope.global": "глобально",
"marketplace.remove.type.mcp": "MCP-сервер",
"marketplace.remove.type.skill": "навичка",
"marketplace.remove.type.mode": "режим",
"marketplace.remove.failed": "Не вдалося видалити {{name}}",
"marketplace.install": "Встановити",
"marketplace.filter.installed": "Встановлено",
"marketplace.error.dismiss": "Закрити",
"marketplace.warning.busyOne": "Одна сесія виконується і буде перервана",
"marketplace.warning.busyMany": "Кілька сесій виконуються і будуть перервані",
"marketplace.warning.installAnyway": "Встановити все одно",
"marketplace.warning.cancel": "Скасувати",
}
+1
View File
@@ -0,0 +1 @@
export * from "@opencode-ai/ui/i18n/uk"
@@ -0,0 +1,4 @@
export const dict = {
"server.processExited": "Процес CLI завершився з кодом {{code}} до запуску сервера",
"server.startupTimeout": "Час очікування запуску сервера вичерпано після {{seconds}} секунд",
} as const
+173
View File
@@ -0,0 +1,173 @@
export const dict = {
"agentManager.local": "локальний",
"agentManager.section.worktrees": "РОБОЧІ ДЕРЕВА",
"agentManager.section.sessions": "СЕСІЇ",
"agentManager.notGitRepo": "Не є git-репозиторієм",
"agentManager.worktree.settings": "Налаштування робочого дерева",
"agentManager.worktree.new": "Нове робоче дерево",
"agentManager.worktree.setupScript": "Скрипт налаштування робочого дерева",
"agentManager.worktree.delete": "Видалити робоче дерево",
"agentManager.worktree.confirmDelete": "Видалити?",
"agentManager.worktree.stale": "Застаріле",
"agentManager.worktree.staleTooltip": "Відсутнє на диску або більше не відстежується git worktree",
"agentManager.worktree.removeStale": "Видалити застаріле робоче дерево",
"agentManager.worktree.doubleClickRename": "Двічі клацніть для перейменування",
"agentManager.worktree.versions": "{{count}} версій",
"agentManager.worktree.advancedOptions": "Розширені параметри робочого дерева",
"agentManager.worktree.defaultBaseBranch": "Гілка за замовчуванням",
"agentManager.worktree.defaultBaseBranchAuto": "Автоматичне визначення",
"agentManager.worktree.copyPath": "Копіювати шлях",
"agentManager.worktree.openInVscode": "Відкрити у VS Code",
"agentManager.worktree.rename": "Перейменувати",
"agentManager.hoverCard.branch": "ГІЛКА",
"agentManager.hoverCard.base": "База",
"agentManager.hoverCard.sessions": "Сесії",
"agentManager.hoverCard.files": "Файли",
"agentManager.hoverCard.changes": "Зміни",
"agentManager.hoverCard.commits": "Коміти",
"agentManager.session.new": "Нова сесія",
"agentManager.session.untitled": "Без назви",
"agentManager.session.newSession": "Нова сесія",
"agentManager.session.openInWorktree": "Відкрити у робочому дереві",
"agentManager.session.openLocally": "Відкрити локально",
"agentManager.session.readonly": "Сесія лише для читання",
"agentManager.session.noSessions": "Немає відкритих сесій",
"agentManager.tab.close": "Закрити",
"agentManager.tab.closeTab": "Закрити вкладку",
"agentManager.tab.forkSession": "Розгалужити сесію",
"agentManager.tab.terminal": "Термінал",
"agentManager.tab.openTerminal": "Відкрити термінал",
"agentManager.setup.failed": "Налаштування робочого дерева не вдалося",
"agentManager.setup.settingUp": "Налаштування робочого дерева",
"agentManager.setup.error.git_not_found":
"Git не встановлено або не знайдено в PATH. Будь ласка, встановіть Git і перезапустіть VS Code.",
"agentManager.setup.error.not_git_repo":
"Відкрийте папку, що містить git-репозиторій, щоб використовувати робочі дерева.",
"agentManager.setup.error.lfs_missing":
"Цей репозиторій використовує Git LFS, але git-lfs не знайдено. Будь ласка, встановіть Git LFS.",
"agentManager.shortcuts.title": "Клавіатурні скорочення",
"agentManager.shortcuts.category.sidebar": "Бічна панель",
"agentManager.shortcuts.category.tabs": "Вкладки",
"agentManager.shortcuts.category.terminal": "Термінал",
"agentManager.shortcuts.category.global": "Глобальні",
"agentManager.shortcuts.previousItem": "Попередній елемент",
"agentManager.shortcuts.nextItem": "Наступний елемент",
"agentManager.shortcuts.newWorktree": "Нове робоче дерево",
"agentManager.shortcuts.openWorktree": "Відкрити робоче дерево",
"agentManager.shortcuts.advancedWorktree": "Розширене робоче дерево",
"agentManager.shortcuts.deleteWorktree": "Видалити робоче дерево",
"agentManager.shortcuts.previousTab": "Попередня вкладка",
"agentManager.shortcuts.nextTab": "Наступна вкладка",
"agentManager.shortcuts.newTab": "Нова вкладка",
"agentManager.shortcuts.closeTab": "Закрити вкладку",
"agentManager.shortcuts.toggleTerminal": "Перемкнути термінал",
"agentManager.shortcuts.openAgentManager": "Відкрити Agent Manager",
"agentManager.shortcuts.cycleAgentMode": "Наступний режим агента",
"agentManager.shortcuts.cyclePreviousAgentMode": "Попередній режим агента",
"agentManager.shortcuts.showShortcuts": "Показати клавіатурні скорочення",
"agentManager.dialog.removeStaleWorktree.title": "Видалити застаріле робоче дерево",
"agentManager.dialog.removeStaleWorktree.messagePre": "Видалити застаріле робоче дерево ",
"agentManager.dialog.removeStaleWorktree.messagePost":
"? Це лише видалить відображення в Agent Manager і не торкнеться файлів на диску.",
"agentManager.dialog.removeStaleWorktree.cancel": "Скасувати",
"agentManager.dialog.removeStaleWorktree.confirm": "Видалити застаріле робоче дерево",
"agentManager.dialog.openWorktree": "Нове робоче дерево",
"agentManager.dialog.tab.new": "Нове",
"agentManager.dialog.tab.import": "Імпортувати",
"agentManager.dialog.namePlaceholder": "Назва робочого дерева (необов'язково)",
"agentManager.dialog.promptPlaceholder.mac": "Введіть повідомлення (\u2318Enter для надсилання)",
"agentManager.dialog.promptPlaceholder.other": "Введіть повідомлення (Ctrl+Enter для надсилання)",
"agentManager.dialog.advancedOptions": "Розширені параметри",
"agentManager.dialog.branchName": "Назва гілки",
"agentManager.dialog.branchNamePlaceholder": "автоматично згенерована",
"agentManager.dialog.baseBranch": "Базова гілка",
"agentManager.dialog.searchBranches": "Пошук гілок...",
"agentManager.dialog.branchBadge.default": "за замовчуванням",
"agentManager.dialog.branchBadge.remote": "віддалена",
"agentManager.dialog.versions": "Версії",
"agentManager.dialog.versionHint": "{{count}} робочих дерев виконуватимуться паралельно",
"agentManager.dialog.compareModels": "Порівняти моделі",
"agentManager.dialog.compareModels.tooltip":
"Запустіть агентів на різних моделях паралельно для порівняння результатів",
"agentManager.dialog.compareModels.searchModels": "Пошук моделей...",
"agentManager.dialog.compareModels.selectModels": "Оберіть моделі...",
"agentManager.dialog.creating": "Створення...",
"agentManager.dialog.createWorktree": "Створити робоче дерево",
"agentManager.dialog.removeImage": "Видалити зображення",
"agentManager.dialog.advanced": "Розширено...",
"agentManager.diff.toggle": "Перемкнути diff",
"agentManager.diff.openFile": "Відкрити файл",
"agentManager.open.button": "Відкрити",
"agentManager.open.tooltip": "Відкрити це робоче дерево у VS Code",
"agentManager.apply.button": "Застосувати локально",
"agentManager.apply.globalButton": "Застосувати",
"agentManager.apply.tooltip": "Застосувати вибрані зміни робочого дерева до локальної гілки",
"agentManager.apply.dialogTitle": "Застосувати зміни до локальної гілки",
"agentManager.apply.confirm": "Застосувати зараз",
"agentManager.apply.retry": "Повторити застосування",
"agentManager.apply.previewTitle": "Застосувати ці зміни до локальної гілки?",
"agentManager.apply.previewSummary": "{{files}} файлів, +{{additions}} -{{deletions}}",
"agentManager.apply.selectionSummary": "{{selected}} з {{total}} файлів вибрано",
"agentManager.apply.selectAll": "Вибрати все",
"agentManager.apply.selectNone": "Зняти вибір",
"agentManager.apply.moreFiles": "+{{count}} ще",
"agentManager.apply.moreReasons": "{{reason}} (+{{count}} ще)",
"agentManager.apply.checking": "Перевірка...",
"agentManager.apply.applying": "Застосування...",
"agentManager.apply.success": "Зміни застосовано",
"agentManager.apply.conflict": "Застосування має конфлікти",
"agentManager.apply.conflictToast":
"{{count}} конфліктів у {{files}} файлах. Перегляньте деталі в розділі Застосувати.",
"agentManager.apply.error": "Застосування не вдалося",
"agentManager.apply.conflictsTitle": "Конфлікти",
"agentManager.apply.unknownFile": "Нерозв'язаний файл",
"agentManager.apply.reason.index": "Локальний файл відрізняється від очікуваної версії",
"agentManager.apply.reason.patch": "Патч неможливо застосувати без конфліктів",
"agentManager.apply.reason.contents": "Неможливо прочитати вміст поточного локального файлу",
"agentManager.apply.reason.unknown": "Виявлено конфлікт",
"agentManager.apply.inline.success": "Застосовано",
"agentManager.apply.inline.conflict": "Конфлікти",
"agentManager.apply.inline.error": "Не вдалося",
"agentManager.shortcuts.toggleDiff": "Перемкнути панель diff",
"agentManager.shortcuts.category.quickSwitch": "Швидке перемикання",
"agentManager.shortcuts.jumpToItem": "Перейти до елемента 1\u20139",
"agentManager.review.sendAllToChat": "Надіслати все до чату",
"agentManager.review.sendAllToChatWithCount": "Надіслати все до чату ({{count}})",
"agentManager.review.sendAllShortcut.mac": "⌘Enter",
"agentManager.review.sendAllShortcut.other": "Ctrl+Enter",
"agentManager.review.modalTitle": "Переглянути коментар",
"agentManager.review.inlineCount": "Переглянути коментарі ({{count}})",
"agentManager.review.clearAll": "Очистити все",
"agentManager.review.commentOnLine": "Коментар до рядка {{line}}",
"agentManager.review.editCommentOnLine": "Редагувати коментар до рядка {{line}}",
"agentManager.review.commentPlaceholder": "Залишити коментар...",
"agentManager.review.commentAction": "Коментувати",
"agentManager.review.sendToChat": "Надіслати до чату",
"agentManager.review.metaFile": "Файл",
"agentManager.review.metaLine": "Рядок",
"agentManager.review.metaComment": "Коментар користувача",
"agentManager.review.collapsedOnly": "{{count}} згорнуто",
"agentManager.review.collapsedWithLarge": "{{collapsed}} згорнуто, {{large}} великих",
"agentManager.review.largeFileCollapsed": "Великий файл (згорнуто)",
"agentManager.review.endOfLongDiff": "Ви дійшли до кінця!",
"agentManager.import.pullRequest": "Pull Request",
"agentManager.import.pastePrUrl": "Вставте URL PR...",
"agentManager.import.open": "Відкрити",
"agentManager.import.branches": "Гілки",
"agentManager.import.selectBranch": "Оберіть гілку...",
"agentManager.import.loading": "Завантаження...",
"agentManager.import.loadingBranches": "Завантаження гілок...",
"agentManager.import.noMatchingBranches": "Відповідних гілок не знайдено",
"agentManager.import.noBranchesFound": "Гілок не знайдено.",
"agentManager.import.noBranchesHint": "Вставте URL PR вище або створіть нове робоче дерево.",
"agentManager.import.failed": "Імпортування не вдалося",
}
File diff suppressed because it is too large Load Diff
+153
View File
@@ -0,0 +1,153 @@
import { dict as en } from "./en"
type Keys = keyof typeof en
export const dict = {
"ui.sessionReview.title": "Зміни сесії",
"ui.sessionReview.title.lastTurn": "Зміни останнього кроку",
"ui.sessionReview.diffStyle.unified": "Об'єднаний",
"ui.sessionReview.diffStyle.split": "Розділений",
"ui.sessionReview.openFile": "Відкрити файл",
"ui.sessionReview.selection.line": "рядок {{line}}",
"ui.sessionReview.selection.lines": "рядки {{start}}-{{end}}",
"ui.sessionReview.expandAll": "Розгорнути все",
"ui.sessionReview.collapseAll": "Згорнути все",
"ui.sessionReview.change.added": "Додано",
"ui.sessionReview.change.removed": "Видалено",
"ui.sessionReview.change.modified": "Змінено",
"ui.sessionReview.image.loading": "Завантаження...",
"ui.sessionReview.image.placeholder": "Зображення",
"ui.sessionReview.largeDiff.title": "Різниця занадто велика для відображення",
"ui.sessionReview.largeDiff.meta": "Ліміт: {{limit}} змінених рядків. Поточне: {{current}} змінених рядків.",
"ui.sessionReview.largeDiff.renderAnyway": "Відобразити все одно",
"ui.fileMedia.kind.image": "зображення",
"ui.fileMedia.kind.audio": "аудіо",
"ui.fileMedia.state.removed": "{{kind}} видалено",
"ui.fileMedia.state.loading": "{{kind}} завантажується...",
"ui.fileMedia.state.error": "{{kind}} не вдалося завантажити",
"ui.fileMedia.state.unavailable": "попередній перегляд {{kind}} недоступний",
"ui.fileMedia.binary.title": "Бінарний файл",
"ui.fileMedia.binary.description.path": "{{path}} є бінарним файлом.",
"ui.fileMedia.binary.description.default": "Бінарний вміст",
"ui.lineComment.label.prefix": "Коментар до ",
"ui.lineComment.label.suffix": "",
"ui.lineComment.editorLabel.prefix": "Коментування: ",
"ui.lineComment.editorLabel.suffix": "",
"ui.lineComment.placeholder": "Додати коментар",
"ui.lineComment.submit": "Коментувати",
"ui.sessionTurn.steps.show": "Показати кроки",
"ui.sessionTurn.steps.hide": "Приховати кроки",
"ui.sessionTurn.summary.response": "Відповідь",
"ui.sessionTurn.diff.showMore": "Показати більше змін ({{count}})",
"ui.sessionTurn.retry.retrying": "повтор спроби",
"ui.sessionTurn.retry.inSeconds": "через {{seconds}}с",
"ui.sessionTurn.retry.attempt": "спроба №{{attempt}}",
"ui.sessionTurn.retry.attemptLine": "{{line}} - спроба №{{attempt}}",
"ui.sessionTurn.retry.geminiHot": "gemini зараз перевантажений",
"ui.sessionTurn.error.freeUsageExceeded": "Безкоштовний ліміт вичерпано",
"ui.sessionTurn.error.addCredits": "Поповнити кредити",
"ui.sessionTurn.status.delegating": "Делегування роботи",
"ui.sessionTurn.status.planning": "Планування наступних кроків",
"ui.sessionTurn.status.gatheringContext": "Дослідження",
"ui.sessionTurn.status.gatheredContext": "Досліджено",
"ui.sessionTurn.status.searchingCodebase": "Пошук у кодовій базі",
"ui.sessionTurn.status.searchingWeb": "Пошук у мережі",
"ui.sessionTurn.status.makingEdits": "Внесення змін",
"ui.sessionTurn.status.runningCommands": "Виконання команд",
"ui.sessionTurn.status.thinking": "Думаю",
"ui.sessionTurn.status.thinkingWithTopic": "Думаю - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Збираю думки",
"ui.sessionTurn.status.consideringNextSteps": "Обмірковую наступні кроки",
"ui.messagePart.questions.dismissed": "Питання відхилено",
"ui.messagePart.compaction": "Історію стиснуто",
"ui.messagePart.context.read.one": "{{count}} читання",
"ui.messagePart.context.read.other": "{{count}} читань",
"ui.messagePart.context.search.one": "{{count}} пошук",
"ui.messagePart.context.search.other": "{{count}} пошуків",
"ui.messagePart.context.list.one": "{{count}} список",
"ui.messagePart.context.list.other": "{{count}} списків",
"ui.messagePart.diagnostic.error": "Помилка",
"ui.messagePart.title.edit": "Редагувати",
"ui.messagePart.title.write": "Записати",
"ui.messagePart.option.typeOwnAnswer": "Введіть власну відповідь",
"ui.messagePart.review.title": "Перегляньте свої відповіді",
"ui.list.loading": "Завантаження",
"ui.list.empty": "Результатів не знайдено",
"ui.list.clearFilter": "Очистити фільтр",
"ui.list.emptyWithFilter.prefix": "Результатів не знайдено:",
"ui.list.emptyWithFilter.suffix": "",
"ui.messageNav.newMessage": "Нове повідомлення",
"ui.textField.copyToClipboard": "Скопіювати в буфер обміну",
"ui.textField.copyLink": "Скопіювати посилання",
"ui.textField.copied": "Скопійовано",
"ui.imagePreview.alt": "Попередній перегляд зображення",
"ui.scrollView.ariaLabel": "вміст з прокруткою",
"ui.tool.read": "Читати",
"ui.tool.loaded": "Завантажено",
"ui.tool.list": "Список",
"ui.tool.glob": "Glob",
"ui.tool.grep": "Grep",
"ui.tool.webfetch": "Веб-запит",
"ui.tool.websearch": "Веб-пошук",
"ui.tool.codesearch": "Пошук коду",
"ui.tool.shell": "Оболонка",
"ui.tool.patch": "Патч",
"ui.tool.todos": "Завдання",
"ui.tool.todos.read": "Читати завдання",
"ui.tool.questions": "Питання",
"ui.tool.agent": "{{type}} Агент",
"ui.tool.agent.default": "Агент",
"ui.common.file.one": "файл",
"ui.common.file.other": "файлів",
"ui.common.question.one": "питання",
"ui.common.question.other": "питань",
"ui.common.add": "Додати",
"ui.common.back": "Назад",
"ui.common.cancel": "Скасувати",
"ui.common.confirm": "Підтвердити",
"ui.common.dismiss": "Закрити",
"ui.common.close": "Закрити",
"ui.common.next": "Далі",
"ui.common.submit": "Надіслати",
"ui.permission.deny": "Відхилити",
"ui.permission.allowAlways": "Завжди дозволяти",
"ui.permission.allowOnce": "Дозволити один раз",
"ui.message.expand": "Розгорнути повідомлення",
"ui.message.collapse": "Згорнути повідомлення",
"ui.message.copy": "Копіювати",
"ui.message.copyMessage": "Копіювати повідомлення",
"ui.message.copyResponse": "Копіювати відповідь",
"ui.message.copied": "Скопійовано",
"ui.message.revert": "Повернутися до цього місця",
"ui.message.interrupted": "Перервано",
"ui.message.queued": "В черзі",
"ui.message.attachment.alt": "вкладення",
"ui.patch.action.deleted": "Видалено",
"ui.patch.action.created": "Створено",
"ui.patch.action.moved": "Переміщено",
"ui.patch.action.patched": "Застосовано патч",
"ui.question.subtitle.answered": "{{count}} відповідей",
"ui.question.answer.none": "(без відповіді)",
"ui.question.review.notAnswered": "(не відповіли)",
"ui.question.multiHint": "Виберіть усі відповідні варіанти",
"ui.question.singleHint": "Виберіть одну відповідь",
"ui.question.custom.placeholder": "Введіть свою відповідь...",
} satisfies Partial<Record<Keys, string>>