mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-20 19:06:22 +00:00
feat(i18n): add Ukrainian (uk) locale support (#28061)
This commit is contained in:
@@ -18,6 +18,7 @@ export type Locale =
|
||||
| "ja"
|
||||
| "pl"
|
||||
| "ru"
|
||||
| "uk"
|
||||
| "ar"
|
||||
| "no"
|
||||
| "br"
|
||||
@@ -45,6 +46,7 @@ const LOCALES: readonly Locale[] = [
|
||||
"ja",
|
||||
"pl",
|
||||
"ru",
|
||||
"uk",
|
||||
"bs",
|
||||
"ar",
|
||||
"no",
|
||||
@@ -65,6 +67,7 @@ const INTL: Record<Locale, string> = {
|
||||
ja: "ja",
|
||||
pl: "pl",
|
||||
ru: "ru",
|
||||
uk: "uk",
|
||||
ar: "ar",
|
||||
no: "nb-NO",
|
||||
br: "pt-BR",
|
||||
@@ -85,6 +88,7 @@ const LABEL_KEY: Record<Locale, keyof Dictionary> = {
|
||||
ja: "language.ja",
|
||||
pl: "language.pl",
|
||||
ru: "language.ru",
|
||||
uk: "language.uk",
|
||||
ar: "language.ar",
|
||||
no: "language.no",
|
||||
br: "language.br",
|
||||
@@ -110,6 +114,7 @@ const loaders: Record<Exclude<Locale, "en">, () => Promise<Dictionary>> = {
|
||||
ja: () => merge(import("@/i18n/ja"), import("@opencode-ai/ui/i18n/ja")),
|
||||
pl: () => merge(import("@/i18n/pl"), import("@opencode-ai/ui/i18n/pl")),
|
||||
ru: () => merge(import("@/i18n/ru"), import("@opencode-ai/ui/i18n/ru")),
|
||||
uk: () => merge(import("@/i18n/uk"), import("@opencode-ai/ui/i18n/uk")),
|
||||
ar: () => merge(import("@/i18n/ar"), import("@opencode-ai/ui/i18n/ar")),
|
||||
no: () => merge(import("@/i18n/no"), import("@opencode-ai/ui/i18n/no")),
|
||||
br: () => merge(import("@/i18n/br"), import("@opencode-ai/ui/i18n/br")),
|
||||
@@ -145,6 +150,7 @@ const localeMatchers: Array<{ locale: Locale; match: (language: string) => boole
|
||||
{ locale: "ja", match: (language) => language.startsWith("ja") },
|
||||
{ locale: "pl", match: (language) => language.startsWith("pl") },
|
||||
{ locale: "ru", match: (language) => language.startsWith("ru") },
|
||||
{ locale: "uk", match: (language) => language.startsWith("uk") },
|
||||
{ locale: "ar", match: (language) => language.startsWith("ar") },
|
||||
{
|
||||
locale: "no",
|
||||
|
||||
@@ -416,6 +416,7 @@ export const dict = {
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
|
||||
|
||||
@@ -12,12 +12,13 @@ import { dict as ko } from "./ko"
|
||||
import { dict as no } from "./no"
|
||||
import { dict as pl } from "./pl"
|
||||
import { dict as ru } from "./ru"
|
||||
import { dict as uk } from "./uk"
|
||||
import { dict as th } from "./th"
|
||||
import { dict as zh } from "./zh"
|
||||
import { dict as zht } from "./zht"
|
||||
import { dict as tr } from "./tr"
|
||||
|
||||
const locales = [ar, br, bs, da, de, es, fr, ja, ko, no, pl, ru, th, tr, zh, zht]
|
||||
const locales = [ar, br, bs, da, de, es, fr, ja, ko, no, pl, ru, uk, th, tr, zh, zht]
|
||||
const keys = ["command.session.previous.unseen", "command.session.next.unseen"] as const
|
||||
|
||||
describe("i18n parity", () => {
|
||||
|
||||
963
packages/app/src/i18n/uk.ts
Normal file
963
packages/app/src/i18n/uk.ts
Normal file
@@ -0,0 +1,963 @@
|
||||
export const dict = {
|
||||
"command.category.suggested": "Рекомендовані",
|
||||
"command.category.view": "Вигляд",
|
||||
"command.category.project": "Проєкт",
|
||||
"command.category.provider": "Провайдер",
|
||||
"command.category.server": "Сервер",
|
||||
"command.category.session": "Сесія",
|
||||
"command.category.theme": "Тема",
|
||||
"command.category.language": "Мова",
|
||||
"command.category.file": "Файл",
|
||||
"command.category.context": "Контекст",
|
||||
"command.category.terminal": "Термінал",
|
||||
"command.category.model": "Модель",
|
||||
"command.category.mcp": "MCP",
|
||||
"command.category.agent": "Агент",
|
||||
"command.category.permissions": "Дозволи",
|
||||
"command.category.workspace": "Робоча область",
|
||||
"command.category.settings": "Налаштування",
|
||||
|
||||
"theme.scheme.system": "Системна",
|
||||
"theme.scheme.light": "Світла",
|
||||
"theme.scheme.dark": "Темна",
|
||||
|
||||
"command.sidebar.toggle": "Перемкнути бічну панель",
|
||||
"command.project.open": "Відкрити проєкт",
|
||||
"command.project.previous": "Попередній проєкт",
|
||||
"command.project.next": "Наступний проєкт",
|
||||
"command.project.index": "Перемкнути на проєкт {{index}}",
|
||||
"command.provider.connect": "Підключити провайдера",
|
||||
"command.server.switch": "Перемкнути сервер",
|
||||
"command.settings.open": "Відкрити налаштування",
|
||||
"command.session.previous": "Попередня сесія",
|
||||
"command.session.next": "Наступна сесія",
|
||||
"command.session.previous.unseen": "Попередня непрочитана сесія",
|
||||
"command.session.next.unseen": "Наступна непрочитана сесія",
|
||||
"command.session.archive": "Архівувати сесію",
|
||||
|
||||
"command.palette": "Палітра команд",
|
||||
|
||||
"command.theme.cycle": "Перемкнути тему",
|
||||
"command.theme.set": "Використати тему: {{theme}}",
|
||||
"command.theme.scheme.cycle": "Перемкнути кольорову схему",
|
||||
"command.theme.scheme.set": "Використати кольорову схему: {{scheme}}",
|
||||
|
||||
"command.language.cycle": "Перемкнути мову",
|
||||
"command.language.set": "Використати мову: {{language}}",
|
||||
|
||||
"command.session.new": "Нова сесія",
|
||||
"command.file.open": "Відкрити файл",
|
||||
"command.tab.close": "Закрити вкладку",
|
||||
"command.context.addSelection": "Додати виділення до контексту",
|
||||
"command.context.addSelection.description": "Додати вибрані рядки з поточного файлу",
|
||||
"command.input.focus": "Фокус на полі введення",
|
||||
"command.terminal.toggle": "Перемкнути термінал",
|
||||
"command.fileTree.toggle": "Перемкнути дерево файлів",
|
||||
"command.review.toggle": "Перемкнути огляд",
|
||||
"command.terminal.new": "Новий термінал",
|
||||
"command.terminal.new.description": "Створити нову вкладку термінала",
|
||||
"command.steps.toggle": "Перемкнути кроки",
|
||||
"command.steps.toggle.description": "Показати або приховати кроки для поточного повідомлення",
|
||||
"command.message.previous": "Попереднє повідомлення",
|
||||
"command.message.previous.description": "Перейти до попереднього повідомлення користувача",
|
||||
"command.message.next": "Наступне повідомлення",
|
||||
"command.message.next.description": "Перейти до наступного повідомлення користувача",
|
||||
"command.model.choose": "Вибрати модель",
|
||||
"command.model.choose.description": "Вибрати іншу модель",
|
||||
"command.mcp.toggle": "Перемкнути MCP",
|
||||
"command.mcp.toggle.description": "Перемкнути MCP",
|
||||
"command.agent.cycle": "Перемкнути агента",
|
||||
"command.agent.cycle.description": "Перемкнути на наступного агента",
|
||||
"command.agent.cycle.reverse": "Перемкнути агента в зворотному напрямку",
|
||||
"command.agent.cycle.reverse.description": "Перемкнути на попереднього агента",
|
||||
"command.model.variant.cycle": "Перемкнути рівень мислення",
|
||||
"command.model.variant.cycle.description": "Перемкнути на наступний рівень зусилля",
|
||||
"command.prompt.mode.shell": "Команда",
|
||||
"command.prompt.mode.normal": "Запит",
|
||||
"command.permissions.autoaccept.enable": "Автоматично приймати дозволи",
|
||||
"command.permissions.autoaccept.disable": "Зупинити автоматичне прийняття дозволів",
|
||||
"command.workspace.toggle": "Перемкнути робочі області",
|
||||
"command.workspace.toggle.description": "Увімкнути або вимкнути декілька робочих областей на бічній панелі",
|
||||
"command.session.undo": "Скасувати",
|
||||
"command.session.undo.description": "Скасувати останнє повідомлення",
|
||||
"command.session.redo": "Повторити",
|
||||
"command.session.redo.description": "Повторити останнє скасоване повідомлення",
|
||||
"command.session.compact": "Стиснути сесію",
|
||||
"command.session.compact.description": "Підсумувати сесію, щоб зменшити розмір контексту",
|
||||
"command.session.fork": "Відгалузити від повідомлення",
|
||||
"command.session.fork.description": "Створити нову сесію з попереднього повідомлення",
|
||||
"command.session.share": "Поділитися сесією",
|
||||
"command.session.share.description": "Поділитися цією сесією та скопіювати URL у буфер обміну",
|
||||
"command.session.unshare": "Припинити поширення сесії",
|
||||
"command.session.unshare.description": "Припинити поширення цієї сесії",
|
||||
|
||||
"palette.search.placeholder": "Пошук файлів, команд і сесій",
|
||||
"palette.empty": "Результатів не знайдено",
|
||||
"palette.group.commands": "Команди",
|
||||
"palette.group.files": "Файли",
|
||||
|
||||
"dialog.provider.search.placeholder": "Пошук провайдерів",
|
||||
"dialog.provider.empty": "Провайдерів не знайдено",
|
||||
"dialog.provider.group.popular": "Популярні",
|
||||
"dialog.provider.group.other": "Інші",
|
||||
"dialog.provider.tag.recommended": "Рекомендовані",
|
||||
"dialog.provider.opencode.note": "Відібрані моделі, включаючи Claude, GPT, Gemini та інші",
|
||||
"dialog.provider.opencode.tagline": "Надійні оптимізовані моделі",
|
||||
"dialog.provider.opencodeGo.tagline": "Недорога підписка для всіх",
|
||||
"dialog.provider.anthropic.note": "Прямий доступ до моделей Claude, включаючи Pro та Max",
|
||||
"dialog.provider.copilot.note": "Моделі AI для допомоги в кодуванні через GitHub Copilot",
|
||||
"dialog.provider.openai.note": "Моделі GPT для швидких і універсальних завдань AI",
|
||||
"dialog.provider.google.note": "Моделі Gemini для швидких структурованих відповідей",
|
||||
"dialog.provider.openrouter.note": "Доступ до всіх підтримуваних моделей від одного провайдера",
|
||||
"dialog.provider.vercel.note": "Уніфікований доступ до моделей AI з інтелектуальною маршрутизацією",
|
||||
|
||||
"dialog.model.select.title": "Вибрати модель",
|
||||
"dialog.model.search.placeholder": "Пошук моделей",
|
||||
"dialog.model.empty": "Немає результатів моделей",
|
||||
"dialog.model.manage": "Керувати моделями",
|
||||
"dialog.model.manage.description": "Налаштуйте, які моделі відображатимуться у виборі моделей.",
|
||||
"dialog.model.manage.provider.toggle": "Перемкнути всі моделі {{provider}}",
|
||||
|
||||
"dialog.model.unpaid.freeModels.title": "Безкоштовні моделі від OpenCode",
|
||||
"dialog.model.unpaid.addMore.title": "Додати більше моделей від популярних провайдерів",
|
||||
|
||||
"dialog.provider.viewAll": "Показати більше провайдерів",
|
||||
|
||||
"provider.connect.title": "Підключити {{provider}}",
|
||||
"provider.connect.title.anthropicProMax": "Увійти з Claude Pro/Max",
|
||||
"provider.connect.selectMethod": "Виберіть спосіб входу для {{provider}}.",
|
||||
"provider.connect.method.apiKey": "Ключ API",
|
||||
"provider.connect.status.inProgress": "Авторизація виконується...",
|
||||
"provider.connect.status.waiting": "Очікування авторизації...",
|
||||
"provider.connect.status.failed": "Авторизація не вдалася: {{error}}",
|
||||
"provider.connect.apiKey.description":
|
||||
"Введіть ключ API {{provider}}, щоб підключити обліковий запис і використовувати моделі {{provider}} у OpenCode.",
|
||||
"provider.connect.apiKey.label": "Ключ API {{provider}}",
|
||||
"provider.connect.apiKey.placeholder": "Ключ API",
|
||||
"provider.connect.apiKey.required": "Ключ API обов'язковий",
|
||||
"provider.connect.opencodeZen.line1":
|
||||
"OpenCode Zen надає доступ до відібраного набору надійних оптимізованих моделей для агентів кодування.",
|
||||
"provider.connect.opencodeZen.line2":
|
||||
"З одним ключем API ви отримаєте доступ до таких моделей, як Claude, GPT, Gemini, GLM та інших.",
|
||||
"provider.connect.opencodeZen.visit.prefix": "Відвідайте ",
|
||||
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
|
||||
"provider.connect.opencodeZen.visit.suffix": ", щоб отримати ключ API.",
|
||||
"provider.connect.oauth.code.visit.prefix": "Відвідайте ",
|
||||
"provider.connect.oauth.code.visit.link": "це посилання",
|
||||
"provider.connect.oauth.code.visit.suffix":
|
||||
", щоб отримати код авторизації, підключити обліковий запис і використовувати моделі {{provider}} у OpenCode.",
|
||||
"provider.connect.oauth.code.label": "Код авторизації {{method}}",
|
||||
"provider.connect.oauth.code.placeholder": "Код авторизації",
|
||||
"provider.connect.oauth.code.required": "Код авторизації обов'язковий",
|
||||
"provider.connect.oauth.code.invalid": "Недійсний код авторизації",
|
||||
"provider.connect.oauth.auto.visit.prefix": "Відвідайте ",
|
||||
"provider.connect.oauth.auto.visit.link": "це посилання",
|
||||
"provider.connect.oauth.auto.visit.suffix":
|
||||
" і введіть код нижче, щоб підключити обліковий запис і використовувати моделі {{provider}} у OpenCode.",
|
||||
"provider.connect.oauth.auto.confirmationCode": "Код підтвердження",
|
||||
"provider.connect.toast.connected.title": "{{provider}} підключено",
|
||||
"provider.connect.toast.connected.description": "Моделі {{provider}} тепер доступні для використання.",
|
||||
|
||||
"provider.custom.title": "Користувацький провайдер",
|
||||
"provider.custom.description.prefix": "Налаштуйте провайдера, сумісного з OpenAI. Перегляньте ",
|
||||
"provider.custom.description.link": "документацію з налаштування провайдера",
|
||||
"provider.custom.description.suffix": ".",
|
||||
"provider.custom.field.providerID.label": "ID провайдера",
|
||||
"provider.custom.field.providerID.placeholder": "myprovider",
|
||||
"provider.custom.field.providerID.description": "Малі літери, цифри, дефіси або підкреслення",
|
||||
"provider.custom.field.name.label": "Відображувана назва",
|
||||
"provider.custom.field.name.placeholder": "Мій AI Провайдер",
|
||||
"provider.custom.field.baseURL.label": "Базовий URL",
|
||||
"provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
|
||||
"provider.custom.field.apiKey.label": "Ключ API",
|
||||
"provider.custom.field.apiKey.placeholder": "Ключ API",
|
||||
"provider.custom.field.apiKey.description": "Необов'язково. Залиште порожнім, якщо ви керуєте авторизацією через заголовки.",
|
||||
"provider.custom.models.label": "Моделі",
|
||||
"provider.custom.models.id.label": "ID",
|
||||
"provider.custom.models.id.placeholder": "model-id",
|
||||
"provider.custom.models.name.label": "Назва",
|
||||
"provider.custom.models.name.placeholder": "Відображувана назва",
|
||||
"provider.custom.models.remove": "Видалити модель",
|
||||
"provider.custom.models.add": "Додати модель",
|
||||
"provider.custom.headers.label": "Заголовки (необов'язково)",
|
||||
"provider.custom.headers.key.label": "Заголовок",
|
||||
"provider.custom.headers.key.placeholder": "Назва-Заголовка",
|
||||
"provider.custom.headers.value.label": "Значення",
|
||||
"provider.custom.headers.value.placeholder": "значення",
|
||||
"provider.custom.headers.remove": "Видалити заголовок",
|
||||
"provider.custom.headers.add": "Додати заголовок",
|
||||
"provider.custom.error.providerID.required": "ID провайдера обов'язкове",
|
||||
"provider.custom.error.providerID.format": "Використовуйте малі літери, цифри, дефіси або підкреслення",
|
||||
"provider.custom.error.providerID.exists": "ID провайдера вже існує",
|
||||
"provider.custom.error.name.required": "Відображувана назва обов'язкова",
|
||||
"provider.custom.error.baseURL.required": "Базовий URL обов'язковий",
|
||||
"provider.custom.error.baseURL.format": "Має починатися з http:// або https://",
|
||||
"provider.custom.error.required": "Обов'язково",
|
||||
"provider.custom.error.duplicate": "Дублікат",
|
||||
|
||||
"provider.disconnect.toast.disconnected.title": "{{provider}} відключено",
|
||||
"provider.disconnect.toast.disconnected.description": "Моделі {{provider}} більше недоступні.",
|
||||
|
||||
"model.tag.free": "Безкоштовно",
|
||||
"model.tag.latest": "Остання",
|
||||
"model.provider.anthropic": "Anthropic",
|
||||
"model.provider.openai": "OpenAI",
|
||||
"model.provider.google": "Google",
|
||||
"model.provider.xai": "xAI",
|
||||
"model.provider.meta": "Meta",
|
||||
"model.input.text": "текст",
|
||||
"model.input.image": "зображення",
|
||||
"model.input.audio": "аудіо",
|
||||
"model.input.video": "відео",
|
||||
"model.input.pdf": "pdf",
|
||||
"model.tooltip.allows": "Дозволяє: {{inputs}}",
|
||||
"model.tooltip.reasoning.allowed": "Підтримує мислення",
|
||||
"model.tooltip.reasoning.none": "Без мислення",
|
||||
"model.tooltip.context": "Ліміт контексту {{limit}}",
|
||||
|
||||
"common.search.placeholder": "Пошук",
|
||||
"common.goBack": "Назад",
|
||||
"common.goForward": "Вперед",
|
||||
"common.loading": "Завантаження",
|
||||
"common.loading.ellipsis": "...",
|
||||
"common.cancel": "Скасувати",
|
||||
"common.open": "Відкрити",
|
||||
"common.connect": "Підключити",
|
||||
"common.disconnect": "Відключити",
|
||||
"common.continue": "Продовжити",
|
||||
"common.submit": "Надіслати",
|
||||
"common.save": "Зберегти",
|
||||
"common.saving": "Збереження...",
|
||||
"common.default": "За замовчуванням",
|
||||
"common.attachment": "вкладення",
|
||||
|
||||
"prompt.placeholder.shell": "Введіть команду термінала... {{example}}",
|
||||
"prompt.placeholder.normal": "Запитайте що завгодно... \"{{example}}\"",
|
||||
"prompt.placeholder.simple": "Запитайте що завгодно...",
|
||||
"prompt.placeholder.summarizeComments": "Підсумувати коментарі…",
|
||||
"prompt.placeholder.summarizeComment": "Підсумувати коментар…",
|
||||
"prompt.mode.shell": "Команда",
|
||||
"prompt.mode.normal": "Запит",
|
||||
"prompt.mode.shell.exit": "esc для виходу",
|
||||
"session.child.promptDisabled": "Сесії підагентів не можна надсилати запити.",
|
||||
"session.child.backToParent": "Назад до основної сесії.",
|
||||
|
||||
"prompt.example.1": "Виправити TODO у коді",
|
||||
"prompt.example.2": "Який технологічний стек цього проєкту?",
|
||||
"prompt.example.3": "Виправити зламані тести",
|
||||
"prompt.example.4": "Пояснити, як працює автентифікація",
|
||||
"prompt.example.5": "Знайти та виправити вразливості безпеки",
|
||||
"prompt.example.6": "Додати модульні тести для сервісу користувача",
|
||||
"prompt.example.7": "Рефакторити цю функцію, щоб зробити її більш читабельною",
|
||||
"prompt.example.8": "Що означає ця помилка?",
|
||||
"prompt.example.9": "Допоможіть мені налагодити цю проблему",
|
||||
"prompt.example.10": "Згенерувати документацію API",
|
||||
"prompt.example.11": "Оптимізувати запити до бази даних",
|
||||
"prompt.example.12": "Додати валідацію введення",
|
||||
"prompt.example.13": "Створити новий компонент для...",
|
||||
"prompt.example.14": "Як розгорнути цей проєкт?",
|
||||
"prompt.example.15": "Перевірити мій код на відповідність найкращим практикам",
|
||||
"prompt.example.16": "Додати обробку помилок до цієї функції",
|
||||
"prompt.example.17": "Пояснити цей регулярний вираз",
|
||||
"prompt.example.18": "Конвертувати це в TypeScript",
|
||||
"prompt.example.19": "Додати логування по всьому коду",
|
||||
"prompt.example.20": "Які залежності застарілі?",
|
||||
"prompt.example.21": "Допоможіть написати скрипт міграції",
|
||||
"prompt.example.22": "Реалізувати кешування для цього ендпоінта",
|
||||
"prompt.example.23": "Додати посторінкову навігацію до цього списку",
|
||||
"prompt.example.24": "Створити команду CLI для...",
|
||||
"prompt.example.25": "Як тут працюють змінні середовища?",
|
||||
|
||||
"prompt.popover.emptyResults": "Немає відповідних результатів",
|
||||
"prompt.popover.emptyCommands": "Немає відповідних команд",
|
||||
"prompt.dropzone.label": "Перетягніть сюди зображення, PDF або текстові файли",
|
||||
"prompt.dropzone.file.label": "Перетягніть, щоб @згадати файл",
|
||||
"prompt.slash.badge.custom": "користувацький",
|
||||
"prompt.slash.badge.skill": "навичка",
|
||||
"prompt.slash.badge.mcp": "mcp",
|
||||
"prompt.context.active": "активний",
|
||||
"prompt.context.includeActiveFile": "Включити активний файл",
|
||||
"prompt.context.removeActiveFile": "Видалити активний файл з контексту",
|
||||
"prompt.context.removeFile": "Видалити файл з контексту",
|
||||
"prompt.action.attachFile": "Додати файли",
|
||||
"prompt.attachment.remove": "Видалити вкладення",
|
||||
"prompt.action.send": "Надіслати",
|
||||
"prompt.action.stop": "Зупинити",
|
||||
|
||||
"prompt.toast.pasteUnsupported.title": "Непідтримуване вкладення",
|
||||
"prompt.toast.pasteUnsupported.description": "Сюди можна прикріплювати лише зображення, PDF або текстові файли.",
|
||||
"prompt.toast.modelAgentRequired.title": "Виберіть агента та модель",
|
||||
"prompt.toast.modelAgentRequired.description": "Виберіть агента та модель перед надсиланням запиту.",
|
||||
"prompt.toast.worktreeCreateFailed.title": "Не вдалося створити робоче дерево",
|
||||
"prompt.toast.sessionCreateFailed.title": "Не вдалося створити сесію",
|
||||
"prompt.toast.shellSendFailed.title": "Не вдалося надіслати команду термінала",
|
||||
"prompt.toast.commandSendFailed.title": "Не вдалося надіслати команду",
|
||||
"prompt.toast.promptSendFailed.title": "Не вдалося надіслати запит",
|
||||
"prompt.toast.promptSendFailed.description": "Не вдалося отримати сесію",
|
||||
|
||||
"dialog.mcp.title": "MCP",
|
||||
"dialog.mcp.description": "{{enabled}} з {{total}} увімкнено",
|
||||
"dialog.mcp.empty": "MCP не налаштовано",
|
||||
|
||||
"dialog.lsp.empty": "LSP автоматично виявлені за типами файлів",
|
||||
"dialog.plugins.empty": "Плагіни налаштовані в opencode.json",
|
||||
|
||||
"mcp.status.connected": "підключено",
|
||||
"mcp.status.failed": "помилка",
|
||||
"mcp.status.needs_auth": "потрібна авторизація",
|
||||
"mcp.status.disabled": "вимкнено",
|
||||
"mcp.auth.clickToAuthenticate": "Натисніть для автентифікації",
|
||||
|
||||
"dialog.fork.empty": "Немає повідомлень для відгалуження",
|
||||
|
||||
"dialog.directory.search.placeholder": "Пошук папок",
|
||||
"dialog.directory.empty": "Папок не знайдено",
|
||||
|
||||
"app.server.unreachable": "Не вдалося досягти {{server}}",
|
||||
"app.server.retrying": "Автоматичне повторення...",
|
||||
"app.server.otherServers": "Інші сервери",
|
||||
|
||||
"dialog.server.title": "Сервери",
|
||||
"dialog.server.description": "Перемкніть сервер OpenCode, до якого підключається ця програма.",
|
||||
"dialog.server.search.placeholder": "Пошук серверів",
|
||||
"dialog.server.empty": "Ще немає серверів",
|
||||
"dialog.server.add.title": "Додати сервер",
|
||||
"dialog.server.add.url": "Адреса сервера",
|
||||
"dialog.server.add.placeholder": "http://localhost:4096",
|
||||
"dialog.server.add.error": "Не вдалося підключитися до сервера",
|
||||
"dialog.server.add.checking": "Перевірка...",
|
||||
"dialog.server.add.button": "Додати сервер",
|
||||
"dialog.server.add.name": "Назва сервера (необов'язково)",
|
||||
"dialog.server.add.namePlaceholder": "Localhost",
|
||||
"dialog.server.add.username": "Ім'я користувача (необов'язково)",
|
||||
"dialog.server.add.usernamePlaceholder": "ім'я користувача",
|
||||
"dialog.server.add.password": "Пароль (необов'язково)",
|
||||
"dialog.server.add.passwordPlaceholder": "пароль",
|
||||
"dialog.server.edit.title": "Редагувати сервер",
|
||||
"dialog.server.default.title": "Сервер за замовчуванням",
|
||||
"dialog.server.default.description":
|
||||
"Підключатися до цього сервера під час запуску програми замість запуску локального сервера. Потребує перезапуску.",
|
||||
"dialog.server.default.none": "Сервер не вибрано",
|
||||
"dialog.server.default.set": "Встановити поточний сервер як сервер за замовчуванням",
|
||||
"dialog.server.default.clear": "Очистити",
|
||||
"dialog.server.action.remove": "Видалити сервер",
|
||||
|
||||
"dialog.server.menu.edit": "Редагувати",
|
||||
"dialog.server.menu.default": "Встановити за замовчуванням",
|
||||
"dialog.server.menu.defaultRemove": "Видалити за замовчуванням",
|
||||
"dialog.server.menu.delete": "Видалити",
|
||||
"dialog.server.current": "Поточний сервер",
|
||||
"dialog.server.status.default": "За замовчуванням",
|
||||
"server.row.noUsername": "без імені користувача",
|
||||
|
||||
"dialog.project.edit.title": "Редагувати проєкт",
|
||||
"dialog.project.edit.name": "Назва",
|
||||
"dialog.project.edit.icon": "Іконка",
|
||||
"dialog.project.edit.icon.alt": "Іконка проєкту",
|
||||
"dialog.project.edit.icon.hint": "Натисніть або перетягніть зображення",
|
||||
"dialog.project.edit.icon.recommended": "Рекомендовано: 128x128px",
|
||||
"dialog.project.edit.color": "Колір",
|
||||
"dialog.project.edit.color.select": "Вибрати колір {{color}}",
|
||||
"dialog.project.edit.worktree.startup": "Скрипт запуску робочої області",
|
||||
"dialog.project.edit.worktree.startup.description": "Виконується після створення нової робочої області (worktree).",
|
||||
"dialog.project.edit.worktree.startup.placeholder": "напр. bun install",
|
||||
|
||||
"dialog.releaseNotes.action.getStarted": "Розпочати",
|
||||
"dialog.releaseNotes.action.next": "Далі",
|
||||
"dialog.releaseNotes.action.hideFuture": "Не показувати це в майбутньому",
|
||||
"dialog.releaseNotes.media.alt": "Попередній перегляд релізу",
|
||||
|
||||
"context.breakdown.title": "Розподіл контексту",
|
||||
"context.breakdown.note": "Приблизний розподіл вхідних токенів. \"Інше\" включає визначення інструментів і накладні витрати.",
|
||||
"context.breakdown.system": "Система",
|
||||
"context.breakdown.user": "Користувач",
|
||||
"context.breakdown.assistant": "Асистент",
|
||||
"context.breakdown.tool": "Виклики інструментів",
|
||||
"context.breakdown.other": "Інше",
|
||||
|
||||
"context.systemPrompt.title": "Системний запит",
|
||||
"context.rawMessages.title": "Сировинні повідомлення",
|
||||
|
||||
"context.stats.session": "Сесія",
|
||||
"context.stats.messages": "Повідомлення",
|
||||
"context.stats.provider": "Провайдер",
|
||||
"context.stats.model": "Модель",
|
||||
"context.stats.limit": "Ліміт контексту",
|
||||
"context.stats.totalTokens": "Всього токенів",
|
||||
"context.stats.usage": "Використання",
|
||||
"context.stats.inputTokens": "Вхідні токени",
|
||||
"context.stats.outputTokens": "Вихідні токени",
|
||||
"context.stats.reasoningTokens": "Токени мислення",
|
||||
"context.stats.cacheTokens": "Токени кешу (читання/запис)",
|
||||
"context.stats.userMessages": "Повідомлення користувача",
|
||||
"context.stats.assistantMessages": "Повідомлення асистента",
|
||||
"context.stats.totalCost": "Загальна вартість",
|
||||
"context.stats.sessionCreated": "Сесію створено",
|
||||
"context.stats.lastActivity": "Остання активність",
|
||||
|
||||
"context.usage.tokens": "Токени",
|
||||
"context.usage.usage": "Використання",
|
||||
"context.usage.cost": "Вартість",
|
||||
"context.usage.clickToView": "Натисніть, щоб переглянути контекст",
|
||||
"context.usage.view": "Переглянути використання контексту",
|
||||
|
||||
"language.en": "English",
|
||||
"language.zh": "简体中文",
|
||||
"language.zht": "繁體中文",
|
||||
"language.ko": "한국어",
|
||||
"language.de": "Deutsch",
|
||||
"language.es": "Español",
|
||||
"language.fr": "Français",
|
||||
"language.da": "Dansk",
|
||||
"language.ja": "日本語",
|
||||
"language.pl": "Polski",
|
||||
"language.ru": "Русский",
|
||||
"language.ar": "العربية",
|
||||
"language.no": "Norsk",
|
||||
"language.br": "Português (Brasil)",
|
||||
"language.bs": "Bosanski",
|
||||
"language.uk": "Українська",
|
||||
"language.th": "ไทย",
|
||||
"language.tr": "Türkçe",
|
||||
|
||||
"toast.language.title": "Мова",
|
||||
"toast.language.description": "Перемкнено на {{language}}",
|
||||
|
||||
"toast.theme.title": "Тему змінено",
|
||||
"toast.scheme.title": "Кольорова схема",
|
||||
|
||||
"toast.workspace.enabled.title": "Робочі області увімкнено",
|
||||
"toast.workspace.enabled.description": "Кілька робочих дерев тепер відображаються на бічній панелі",
|
||||
"toast.workspace.disabled.title": "Робочі області вимкнено",
|
||||
"toast.workspace.disabled.description": "Тільки головне робоче дерево відображається на бічній панелі",
|
||||
|
||||
"toast.permissions.autoaccept.on.title": "Автоматичне прийняття дозволів",
|
||||
"toast.permissions.autoaccept.on.description": "Запити дозволів будуть автоматично схвалюватися",
|
||||
"toast.permissions.autoaccept.off.title": "Автоматичне прийняття дозволів зупинено",
|
||||
"toast.permissions.autoaccept.off.description": "Запити дозволів вимагатимуть схвалення",
|
||||
|
||||
"toast.model.none.title": "Модель не вибрано",
|
||||
"toast.model.none.description": "Підключіть провайдера, щоб підсумувати цю сесію",
|
||||
|
||||
"toast.file.loadFailed.title": "Не вдалося завантажити файл",
|
||||
"toast.file.listFailed.title": "Не вдалося отримати список файлів",
|
||||
|
||||
"toast.context.noLineSelection.title": "Не вибрано рядків",
|
||||
"toast.context.noLineSelection.description": "Спочатку виберіть діапазон рядків у вкладці файлу.",
|
||||
|
||||
"toast.session.share.copyFailed.title": "Не вдалося скопіювати URL у буфер обміну",
|
||||
"toast.session.share.success.title": "Сесію опубліковано",
|
||||
"toast.session.share.success.description": "Посилання скопійовано в буфер обміну!",
|
||||
"toast.session.share.failed.title": "Не вдалося опублікувати сесію",
|
||||
"toast.session.share.failed.description": "Під час публікації сесії сталася помилка",
|
||||
|
||||
"toast.session.unshare.success.title": "Поширення сесії припинено",
|
||||
"toast.session.unshare.success.description": "Поширення сесії успішно припинено!",
|
||||
"toast.session.unshare.failed.title": "Не вдалося припинити поширення сесії",
|
||||
"toast.session.unshare.failed.description": "Під час припинення поширення сесії сталася помилка",
|
||||
|
||||
"toast.session.listFailed.title": "Не вдалося завантажити сесії для {{project}}",
|
||||
"toast.project.reloadFailed.title": "Не вдалося перезавантажити {{project}}",
|
||||
|
||||
"toast.update.title": "Доступне оновлення",
|
||||
"toast.update.description": "Нова версія OpenCode ({{version}}) тепер доступна для встановлення.",
|
||||
"toast.update.action.installRestart": "Встановити та перезапустити",
|
||||
"toast.update.action.notYet": "Не зараз",
|
||||
|
||||
"error.page.title": "Щось пішло не так",
|
||||
"error.page.description": "Під час завантаження програми сталася помилка.",
|
||||
"error.page.details.label": "Деталі помилки",
|
||||
"error.page.action.restart": "Перезапустити",
|
||||
"error.page.action.report": "Повідомити про помилку",
|
||||
"error.page.action.reported": "Помилку повідомлено",
|
||||
"error.page.action.checking": "Перевірка...",
|
||||
"error.page.action.checkUpdates": "Перевірити оновлення",
|
||||
"error.page.action.updateTo": "Оновити до {{version}}",
|
||||
"error.page.circular": "[Циклічне]",
|
||||
"error.page.report.prefix": "Будь ласка, повідомте про цю помилку команді OpenCode",
|
||||
"error.page.report.discord": "на Discord",
|
||||
"error.page.version": "Версія: {{version}}",
|
||||
|
||||
"error.dev.rootNotFound":
|
||||
"Кореневий елемент не знайдено. Ви забули додати його до index.html? Або, можливо, атрибут id було написано з помилкою?",
|
||||
|
||||
"error.globalSync.connectFailed": "Не вдалося підключитися до сервера. Чи працює сервер за адресою `{{url}}`?",
|
||||
"error.globalSDK.noServerAvailable": "Сервер недоступний",
|
||||
"error.globalSDK.serverNotAvailable": "Сервер недоступний",
|
||||
"error.childStore.persistedCacheCreateFailed": "Не вдалося створити постійний кеш",
|
||||
"error.childStore.persistedProjectMetadataCreateFailed": "Не вдалося створити постійні метадані проєкту",
|
||||
"error.childStore.persistedProjectIconCreateFailed": "Не вдалося створити постійну іконку проєкту",
|
||||
"error.childStore.storeCreateFailed": "Не вдалося створити сховище",
|
||||
"directory.error.invalidUrl": "Недійсний каталог у URL.",
|
||||
|
||||
"error.chain.unknown": "Невідома помилка",
|
||||
"error.server.invalidConfiguration": "Недійсна конфігурація",
|
||||
"error.chain.causedBy": "Причина:",
|
||||
"error.chain.apiError": "Помилка API",
|
||||
"error.chain.status": "Статус: {{status}}",
|
||||
"error.chain.retryable": "Повторювано: {{retryable}}",
|
||||
"error.chain.responseBody": "Тіло відповіді:\n{{body}}",
|
||||
"error.chain.didYouMean": "Можливо, ви мали на увазі: {{suggestions}}",
|
||||
"error.chain.modelNotFound": "Модель не знайдено: {{provider}}/{{model}}",
|
||||
"error.chain.checkConfig": "Перевірте назви провайдерів/моделей у конфігурації (opencode.json)",
|
||||
"error.chain.mcpFailed": "Сервер MCP \"{{name}}\" не працює. Зверніть увагу, OpenCode ще не підтримує автентифікацію MCP.",
|
||||
"error.chain.providerAuthFailed": "Автентифікація провайдера не вдалася ({{provider}}): {{message}}",
|
||||
"error.chain.providerInitFailed":
|
||||
"Не вдалося ініціалізувати провайдера \"{{provider}}\". Перевірте облікові дані та конфігурацію.",
|
||||
"error.chain.configJsonInvalid": "Файл конфігурації {{path}} не є дійсним JSON(C)",
|
||||
"error.chain.configJsonInvalidWithMessage": "Файл конфігурації {{path}} не є дійсним JSON(C): {{message}}",
|
||||
"error.chain.configDirectoryTypo":
|
||||
"Каталог \"{{dir}}\" у {{path}} недійсний. Перейменуйте каталог на \"{{suggestion}}\" або видаліть його. Це поширена помилка.",
|
||||
"error.chain.configFrontmatterError": "Не вдалося розібрати frontmatter у {{path}}:\n{{message}}",
|
||||
"error.chain.configInvalid": "Файл конфігурації {{path}} недійсний",
|
||||
"error.chain.configInvalidWithMessage": "Файл конфігурації {{path}} недійсний: {{message}}",
|
||||
|
||||
"notification.permission.title": "Потрібен дозвіл",
|
||||
"notification.permission.description": "{{sessionTitle}} у {{projectName}} потребує дозволу",
|
||||
"notification.question.title": "Запитання",
|
||||
"notification.question.description": "{{sessionTitle}} у {{projectName}} має запитання",
|
||||
"notification.action.goToSession": "Перейти до сесії",
|
||||
|
||||
"notification.session.responseReady.title": "Відповідь готова",
|
||||
"notification.session.error.title": "Помилка сесії",
|
||||
"notification.session.error.fallbackDescription": "Сталася помилка",
|
||||
|
||||
"home.recentProjects": "Нещодавні проєкти",
|
||||
"home.empty.title": "Немає нещодавніх проєктів",
|
||||
"home.empty.description": "Почніть, відкривши локальний проєкт",
|
||||
|
||||
"session.tab.session": "Сесія",
|
||||
"session.tab.review": "Огляд",
|
||||
"session.tab.context": "Контекст",
|
||||
"session.panel.reviewAndFiles": "Огляд і файли",
|
||||
"session.review.filesChanged": "Змінено файлів: {{count}}",
|
||||
"session.review.change.one": "Зміна",
|
||||
"session.review.change.other": "Зміни",
|
||||
"session.review.loadingChanges": "Завантаження змін...",
|
||||
"session.review.empty": "У цій сесії ще немає змін",
|
||||
"session.review.noVcs": "Систему контролю версій Git не виявлено, зміни не відображаються",
|
||||
"session.review.noVcs.createGit.title": "Створити Git-репозиторій",
|
||||
"session.review.noVcs.createGit.description": "Відстежуйте, переглядайте та скасовуйте зміни в цьому проєкті",
|
||||
"session.review.noVcs.createGit.actionLoading": "Створення Git-репозиторію...",
|
||||
"session.review.noVcs.createGit.action": "Створити Git-репозиторій",
|
||||
"session.review.noSnapshot": "Відстеження знімків вимкнено в конфігурації, тому зміни сесії недоступні",
|
||||
"session.review.noChanges": "Немає змін",
|
||||
"session.review.noUncommittedChanges": "Ще немає незафіксованих змін",
|
||||
"session.review.noBranchChanges": "Ще немає змін у гілці",
|
||||
|
||||
"session.files.selectToOpen": "Виберіть файл для відкриття",
|
||||
"session.files.all": "Усі файли",
|
||||
"session.files.empty": "Немає файлів",
|
||||
"session.files.binaryContent": "Бінарний файл (вміст не може бути відображено)",
|
||||
|
||||
"session.messages.renderEarlier": "Відобразити раніші повідомлення",
|
||||
"session.messages.loadingEarlier": "Завантаження раніших повідомлень...",
|
||||
"session.messages.loadEarlier": "Завантажити раніші повідомлення",
|
||||
"session.messages.loading": "Завантаження повідомлень...",
|
||||
"session.messages.jumpToLatest": "Перейти до останніх",
|
||||
|
||||
"session.context.addToContext": "Додати {{selection}} до контексту",
|
||||
"session.todo.title": "Завдання",
|
||||
"session.todo.collapse": "Згорнути",
|
||||
"session.todo.expand": "Розгорнути",
|
||||
"session.todo.progress": "Виконано {{done}} з {{total}} завдань",
|
||||
"session.question.progress": "{{current}} з {{total}} запитань",
|
||||
"session.followupDock.summary.one": "{{count}} повідомлення в черзі",
|
||||
"session.followupDock.summary.other": "{{count}} повідомлень у черзі",
|
||||
"session.followupDock.sendNow": "Надіслати зараз",
|
||||
"session.followupDock.edit": "Редагувати",
|
||||
"session.followupDock.collapse": "Згорнути повідомлення в черзі",
|
||||
"session.followupDock.expand": "Розгорнути повідомлення в черзі",
|
||||
"session.revertDock.summary.one": "{{count}} скасоване повідомлення",
|
||||
"session.revertDock.summary.other": "{{count}} скасованих повідомлень",
|
||||
"session.revertDock.collapse": "Згорнути скасовані повідомлення",
|
||||
"session.revertDock.expand": "Розгорнути скасовані повідомлення",
|
||||
"session.revertDock.restore": "Відновити повідомлення",
|
||||
|
||||
"session.new.title": "Створити що завгодно",
|
||||
"session.new.worktree.main": "Основна гілка",
|
||||
"session.new.worktree.mainWithBranch": "Основна гілка ({{branch}})",
|
||||
"session.new.worktree.create": "Створити нове робоче дерево",
|
||||
"session.new.lastModified": "Востаннє змінено",
|
||||
|
||||
"session.header.search.placeholder": "Пошук {{project}}",
|
||||
"session.header.searchFiles": "Пошук файлів",
|
||||
"session.header.openIn": "Відкрити в",
|
||||
"session.header.open.action": "Відкрити {{app}}",
|
||||
"session.header.open.ariaLabel": "Відкрити в {{app}}",
|
||||
"session.header.open.menu": "Параметри відкриття",
|
||||
"session.header.open.copyPath": "Копіювати шлях",
|
||||
"session.header.open.finder": "Finder",
|
||||
"session.header.open.fileExplorer": "Провідник файлів",
|
||||
"session.header.open.fileManager": "Файловий менеджер",
|
||||
"session.header.open.app.vscode": "VS Code",
|
||||
"session.header.open.app.cursor": "Cursor",
|
||||
"session.header.open.app.zed": "Zed",
|
||||
"session.header.open.app.textmate": "TextMate",
|
||||
"session.header.open.app.antigravity": "Antigravity",
|
||||
"session.header.open.app.terminal": "Термінал",
|
||||
"session.header.open.app.iterm2": "iTerm2",
|
||||
"session.header.open.app.ghostty": "Ghostty",
|
||||
"session.header.open.app.warp": "Warp",
|
||||
"session.header.open.app.xcode": "Xcode",
|
||||
"session.header.open.app.androidStudio": "Android Studio",
|
||||
"session.header.open.app.powershell": "PowerShell",
|
||||
"session.header.open.app.sublimeText": "Sublime Text",
|
||||
|
||||
"status.popover.trigger": "Статус",
|
||||
"status.popover.ariaLabel": "Конфігурації серверів",
|
||||
"status.popover.tab.servers": "Сервери",
|
||||
"status.popover.tab.mcp": "MCP",
|
||||
"status.popover.tab.lsp": "LSP",
|
||||
"status.popover.tab.plugins": "Плагіни",
|
||||
"status.popover.action.manageServers": "Керувати серверами",
|
||||
|
||||
"session.share.popover.title": "Опублікувати в інтернеті",
|
||||
"session.share.popover.description.shared":
|
||||
"Ця сесія є публічною в інтернеті. Вона доступна будь-кому за посиланням.",
|
||||
"session.share.popover.description.unshared":
|
||||
"Опублікуйте сесію публічно в інтернеті. Вона буде доступна будь-кому за посиланням.",
|
||||
"session.share.action.share": "Поділитися",
|
||||
"session.share.action.publish": "Опублікувати",
|
||||
"session.share.action.publishing": "Публікація...",
|
||||
"session.share.action.unpublish": "Скасувати публікацію",
|
||||
"session.share.action.unpublishing": "Скасування публікації...",
|
||||
"session.share.action.view": "Переглянути",
|
||||
"session.share.copy.copied": "Скопійовано",
|
||||
"session.share.copy.copyLink": "Копіювати посилання",
|
||||
|
||||
"lsp.tooltip.none": "Немає серверів LSP",
|
||||
"lsp.label.connected": "{{count}} LSP",
|
||||
|
||||
"prompt.loading": "Завантаження запиту...",
|
||||
"terminal.loading": "Завантаження термінала...",
|
||||
"terminal.title": "Термінал",
|
||||
"terminal.title.numbered": "Термінал {{number}}",
|
||||
"terminal.close": "Закрити термінал",
|
||||
"terminal.connectionLost.title": "З'єднання втрачено",
|
||||
"terminal.connectionLost.abnormalClose": "WebSocket закрито аномально: {{code}}",
|
||||
"terminal.connectionLost.description":
|
||||
"З'єднання з терміналом було перервано. Це може статися під час перезапуску сервера.",
|
||||
|
||||
"common.closeTab": "Закрити вкладку",
|
||||
"common.dismiss": "Відхилити",
|
||||
"common.moreCountSuffix": " (ще {{count}})",
|
||||
"common.requestFailed": "Запит не виконано",
|
||||
"common.moreOptions": "Більше опцій",
|
||||
"common.learnMore": "Дізнатися більше",
|
||||
"common.rename": "Перейменувати",
|
||||
"common.reset": "Скинути",
|
||||
"common.archive": "Архівувати",
|
||||
"common.delete": "Видалити",
|
||||
"common.close": "Закрити",
|
||||
"common.edit": "Редагувати",
|
||||
"common.loadMore": "Завантажити більше",
|
||||
"common.key.esc": "ESC",
|
||||
"common.key.ctrl": "Ctrl",
|
||||
"common.key.alt": "Alt",
|
||||
"common.key.shift": "Shift",
|
||||
"common.key.meta": "Meta",
|
||||
"common.key.space": "Пробіл",
|
||||
"common.key.backspace": "Backspace",
|
||||
"common.key.enter": "Enter",
|
||||
"common.key.tab": "Tab",
|
||||
"common.key.delete": "Delete",
|
||||
"common.key.home": "Home",
|
||||
"common.key.end": "End",
|
||||
"common.key.pageUp": "Page Up",
|
||||
"common.key.pageDown": "Page Down",
|
||||
"common.key.insert": "Insert",
|
||||
"common.unknown": "невідомо",
|
||||
|
||||
"common.time.justNow": "Щойно",
|
||||
"common.time.minutesAgo.short": "{{count}} хв тому",
|
||||
"common.time.hoursAgo.short": "{{count}} год тому",
|
||||
"common.time.daysAgo.short": "{{count}} дн тому",
|
||||
|
||||
"sidebar.menu.toggle": "Перемкнути меню",
|
||||
"sidebar.nav.projectsAndSessions": "Проєкти та сесії",
|
||||
"sidebar.settings": "Налаштування",
|
||||
"sidebar.help": "Довідка",
|
||||
"sidebar.workspaces.enable": "Увімкнути робочі області",
|
||||
"sidebar.workspaces.disable": "Вимкнути робочі області",
|
||||
"sidebar.gettingStarted.title": "Початок роботи",
|
||||
"sidebar.gettingStarted.line1": "OpenCode містить безкоштовні моделі, тому ви можете почати негайно.",
|
||||
"sidebar.gettingStarted.line2": "Підключіть будь-якого провайдера, щоб використовувати моделі, включаючи Claude, GPT, Gemini тощо.",
|
||||
"sidebar.project.recentSessions": "Нещодавні сесії",
|
||||
"sidebar.project.viewAllSessions": "Переглянути всі сесії",
|
||||
"sidebar.project.clearNotifications": "Очистити сповіщення",
|
||||
"sidebar.empty.title": "Немає відкритих проєктів",
|
||||
"sidebar.empty.description": "Відкрийте проєкт, щоб почати",
|
||||
|
||||
"debugBar.ariaLabel": "Діагностика продуктивності розробки",
|
||||
"debugBar.na": "н/д",
|
||||
"debugBar.nav.label": "NAV",
|
||||
"debugBar.nav.tip":
|
||||
"Останній завершений перехід маршруту, що торкається сторінки сесії, виміряний від запуску маршрутизатора до першого відображення після стабілізації.",
|
||||
"debugBar.fps.label": "FPS",
|
||||
"debugBar.fps.tip": "Поточна кількість кадрів за секунду за останні 5 секунд.",
|
||||
"debugBar.frame.label": "FRAME",
|
||||
"debugBar.frame.tip": "Найгірший час кадру за останні 5 секунд.",
|
||||
"debugBar.jank.label": "JANK",
|
||||
"debugBar.jank.tip": "Кадри понад 32 мс за останні 5 секунд.",
|
||||
"debugBar.long.label": "LONG",
|
||||
"debugBar.long.tip": "Заблокований час і кількість довгих завдань за останні 5 секунд. Макс. завдання: {{max}}.",
|
||||
"debugBar.delay.label": "DELAY",
|
||||
"debugBar.delay.tip": "Найгірша спостережувана затримка введення за останні 5 секунд.",
|
||||
"debugBar.inp.label": "INP",
|
||||
"debugBar.inp.tip":
|
||||
"Приблизна тривалість взаємодії за останні 5 секунд. Це схоже на INP, а не на офіційний Web Vitals INP.",
|
||||
"debugBar.cls.label": "CLS",
|
||||
"debugBar.cls.tip": "Сукупний зсув макета за весь час роботи програми.",
|
||||
"debugBar.mem.label": "MEM",
|
||||
"debugBar.mem.tipUnavailable": "Використана купа JS проти ліміту купи. Тільки Chromium.",
|
||||
"debugBar.mem.tip": "Використана купа JS проти ліміту купи. {{used}} з {{limit}}.",
|
||||
|
||||
"app.name.desktop": "OpenCode Desktop",
|
||||
|
||||
"settings.section.desktop": "Робочий стіл",
|
||||
"settings.section.server": "Сервер",
|
||||
"settings.tab.general": "Загальні",
|
||||
"settings.tab.shortcuts": "Скорочення",
|
||||
"settings.desktop.section.wsl": "WSL",
|
||||
"settings.desktop.wsl.title": "Інтеграція WSL",
|
||||
"settings.desktop.wsl.description": "Запускати сервер OpenCode всередині WSL на Windows.",
|
||||
|
||||
"settings.general.section.appearance": "Зовнішній вигляд",
|
||||
"settings.general.section.advanced": "Додатково",
|
||||
"settings.general.section.notifications": "Системні сповіщення",
|
||||
"settings.general.section.updates": "Оновлення",
|
||||
"settings.general.section.sounds": "Звукові ефекти",
|
||||
"settings.general.section.feed": "Стрічка",
|
||||
"settings.general.section.display": "Дисплей",
|
||||
|
||||
"settings.general.row.language.title": "Мова",
|
||||
"settings.general.row.language.description": "Змінити мову інтерфейсу OpenCode",
|
||||
"settings.general.row.shell.title": "Командна оболонка термінала",
|
||||
"settings.general.row.shell.description":
|
||||
"Виберіть оболонку для термінала. Сумісні оболонки також використовуються для викликів інструментів агента.",
|
||||
"settings.general.row.shell.autoDefault": "Авто (за замовчуванням)",
|
||||
"settings.general.row.shell.terminalOnly": "тільки термінал",
|
||||
"settings.general.row.appearance.title": "Зовнішній вигляд",
|
||||
"settings.general.row.appearance.description": "Налаштуйте вигляд OpenCode на вашому пристрої",
|
||||
"settings.general.row.colorScheme.title": "Кольорова схема",
|
||||
"settings.general.row.colorScheme.description": "Виберіть, чи OpenCode використовує системну, світлу або темну тему",
|
||||
"settings.general.row.theme.title": "Тема",
|
||||
"settings.general.row.theme.description": "Налаштуйте тему OpenCode.",
|
||||
"settings.general.row.font.title": "Шрифт коду",
|
||||
"settings.general.row.font.description": "Налаштуйте шрифт, який використовується в блоках коду",
|
||||
"settings.general.row.terminalFont.title": "Шрифт термінала",
|
||||
"settings.general.row.terminalFont.description": "Налаштуйте шрифт, який використовується в терміналі",
|
||||
"settings.general.row.uiFont.title": "Шрифт інтерфейсу",
|
||||
"settings.general.row.uiFont.description": "Налаштуйте шрифт, який використовується в інтерфейсі",
|
||||
"settings.general.row.followup.title": "Поведінка продовження",
|
||||
"settings.general.row.followup.description": "Виберіть, чи продовження виконується негайно, чи чекає в черзі",
|
||||
"settings.general.row.followup.option.queue": "Черга",
|
||||
"settings.general.row.followup.option.steer": "Керування",
|
||||
"settings.general.row.showFileTree.title": "Дерево файлів",
|
||||
"settings.general.row.showFileTree.description": "Показувати перемикач і панель дерева файлів у сесіях на робочому столі",
|
||||
"settings.general.row.showNavigation.title": "Елементи навігації",
|
||||
"settings.general.row.showNavigation.description": "Показувати кнопки назад і вперед у заголовку робочого столу",
|
||||
"settings.general.row.showSearch.title": "Палітра команд",
|
||||
"settings.general.row.showSearch.description": "Показувати кнопку пошуку та палітри команд у заголовку робочого столу",
|
||||
"settings.general.row.showTerminal.title": "Термінал",
|
||||
"settings.general.row.showTerminal.description": "Показувати кнопку термінала в заголовку робочого столу",
|
||||
"settings.general.row.showStatus.title": "Статус сервера",
|
||||
"settings.general.row.showStatus.description": "Показувати кнопку статусу сервера в заголовку робочого столу",
|
||||
"settings.general.row.reasoningSummaries.title": "Показувати підсумки мислення",
|
||||
"settings.general.row.reasoningSummaries.description": "Відображати підсумки мислення моделі на часовій шкалі",
|
||||
"settings.general.row.shellToolPartsExpanded.title": "Розгортати частини інструменту оболонки",
|
||||
"settings.general.row.shellToolPartsExpanded.description":
|
||||
"Показувати частини інструменту оболонки розгорнутими за замовчуванням на часовій шкалі",
|
||||
"settings.general.row.editToolPartsExpanded.title": "Розгортати частини інструменту редагування",
|
||||
"settings.general.row.editToolPartsExpanded.description":
|
||||
"Показувати частини інструментів редагування, запису та патчів розгорнутими за замовчуванням на часовій шкалі",
|
||||
"settings.general.row.showSessionProgressBar.title": "Показувати індикатор прогресу сесії",
|
||||
"settings.general.row.showSessionProgressBar.description":
|
||||
"Відображати анімований індикатор прогресу вгорі сесії, коли агент працює",
|
||||
|
||||
"settings.general.row.wayland.title": "Використовувати нативний Wayland",
|
||||
"settings.general.row.wayland.description": "Вимкнути резервний X11 на Wayland. Потребує перезапуску.",
|
||||
"settings.general.row.wayland.tooltip":
|
||||
"На Linux з моніторами з різною частотою оновлення нативний Wayland може бути більш стабільним.",
|
||||
|
||||
"settings.general.row.releaseNotes.title": "Нотатки до релізу",
|
||||
"settings.general.row.releaseNotes.description": "Показувати спливаючі вікна \"Що нового\" після оновлень",
|
||||
|
||||
"settings.updates.row.startup.title": "Перевіряти оновлення під час запуску",
|
||||
"settings.updates.row.startup.description": "Автоматично перевіряти наявність оновлень під час запуску OpenCode",
|
||||
"settings.updates.row.check.title": "Перевірити оновлення",
|
||||
"settings.updates.row.check.description": "Вручну перевірити наявність оновлень і встановити, якщо доступні",
|
||||
"settings.updates.action.checkNow": "Перевірити зараз",
|
||||
"settings.updates.action.checking": "Перевірка...",
|
||||
"settings.updates.toast.latest.title": "У вас актуальна версія",
|
||||
"settings.updates.toast.latest.description": "Ви використовуєте останню версію OpenCode.",
|
||||
"sound.option.none": "Немає",
|
||||
"sound.option.alert01": "Alert 01",
|
||||
"sound.option.alert02": "Alert 02",
|
||||
"sound.option.alert03": "Alert 03",
|
||||
"sound.option.alert04": "Alert 04",
|
||||
"sound.option.alert05": "Alert 05",
|
||||
"sound.option.alert06": "Alert 06",
|
||||
"sound.option.alert07": "Alert 07",
|
||||
"sound.option.alert08": "Alert 08",
|
||||
"sound.option.alert09": "Alert 09",
|
||||
"sound.option.alert10": "Alert 10",
|
||||
"sound.option.bipbop01": "Bip-bop 01",
|
||||
"sound.option.bipbop02": "Bip-bop 02",
|
||||
"sound.option.bipbop03": "Bip-bop 03",
|
||||
"sound.option.bipbop04": "Bip-bop 04",
|
||||
"sound.option.bipbop05": "Bip-bop 05",
|
||||
"sound.option.bipbop06": "Bip-bop 06",
|
||||
"sound.option.bipbop07": "Bip-bop 07",
|
||||
"sound.option.bipbop08": "Bip-bop 08",
|
||||
"sound.option.bipbop09": "Bip-bop 09",
|
||||
"sound.option.bipbop10": "Bip-bop 10",
|
||||
"sound.option.staplebops01": "Staplebops 01",
|
||||
"sound.option.staplebops02": "Staplebops 02",
|
||||
"sound.option.staplebops03": "Staplebops 03",
|
||||
"sound.option.staplebops04": "Staplebops 04",
|
||||
"sound.option.staplebops05": "Staplebops 05",
|
||||
"sound.option.staplebops06": "Staplebops 06",
|
||||
"sound.option.staplebops07": "Staplebops 07",
|
||||
"sound.option.nope01": "Nope 01",
|
||||
"sound.option.nope02": "Nope 02",
|
||||
"sound.option.nope03": "Nope 03",
|
||||
"sound.option.nope04": "Nope 04",
|
||||
"sound.option.nope05": "Nope 05",
|
||||
"sound.option.nope06": "Nope 06",
|
||||
"sound.option.nope07": "Nope 07",
|
||||
"sound.option.nope08": "Nope 08",
|
||||
"sound.option.nope09": "Nope 09",
|
||||
"sound.option.nope10": "Nope 10",
|
||||
"sound.option.nope11": "Nope 11",
|
||||
"sound.option.nope12": "Nope 12",
|
||||
"sound.option.yup01": "Yup 01",
|
||||
"sound.option.yup02": "Yup 02",
|
||||
"sound.option.yup03": "Yup 03",
|
||||
"sound.option.yup04": "Yup 04",
|
||||
"sound.option.yup05": "Yup 05",
|
||||
"sound.option.yup06": "Yup 06",
|
||||
|
||||
"settings.general.notifications.agent.title": "Агент",
|
||||
"settings.general.notifications.agent.description":
|
||||
"Показувати системне сповіщення, коли агент завершує роботу або потребує уваги",
|
||||
"settings.general.notifications.permissions.title": "Дозволи",
|
||||
"settings.general.notifications.permissions.description": "Показувати системне сповіщення, коли потрібен дозвіл",
|
||||
"settings.general.notifications.errors.title": "Помилки",
|
||||
"settings.general.notifications.errors.description": "Показувати системне сповіщення, коли виникає помилка",
|
||||
|
||||
"settings.general.sounds.agent.title": "Агент",
|
||||
"settings.general.sounds.agent.description": "Відтворювати звук, коли агент завершує роботу або потребує уваги",
|
||||
"settings.general.sounds.permissions.title": "Дозволи",
|
||||
"settings.general.sounds.permissions.description": "Відтворювати звук, коли потрібен дозвіл",
|
||||
"settings.general.sounds.errors.title": "Помилки",
|
||||
"settings.general.sounds.errors.description": "Відтворювати звук, коли виникає помилка",
|
||||
|
||||
"settings.shortcuts.title": "Скорочення клавіш",
|
||||
"settings.shortcuts.reset.button": "Скинути до стандартних",
|
||||
"settings.shortcuts.reset.toast.title": "Скорочення скинуто",
|
||||
"settings.shortcuts.reset.toast.description": "Скорочення клавіш були скинуті до стандартних.",
|
||||
"settings.shortcuts.conflict.title": "Скорочення вже використовується",
|
||||
"settings.shortcuts.conflict.description": "{{keybind}} вже призначено для {{titles}}.",
|
||||
"settings.shortcuts.unassigned": "Не призначено",
|
||||
"settings.shortcuts.pressKeys": "Натисніть клавіші",
|
||||
"settings.shortcuts.search.placeholder": "Пошук скорочень",
|
||||
"settings.shortcuts.search.empty": "Скорочень не знайдено",
|
||||
|
||||
"settings.shortcuts.group.general": "Загальні",
|
||||
"settings.shortcuts.group.session": "Сесія",
|
||||
"settings.shortcuts.group.navigation": "Навігація",
|
||||
"settings.shortcuts.group.modelAndAgent": "Модель та агент",
|
||||
"settings.shortcuts.group.terminal": "Термінал",
|
||||
"settings.shortcuts.group.prompt": "Запит",
|
||||
|
||||
"settings.providers.title": "Провайдери",
|
||||
"settings.providers.description": "Налаштування провайдерів будуть доступні тут.",
|
||||
"settings.providers.section.connected": "Підключені провайдери",
|
||||
"settings.providers.connected.empty": "Немає підключених провайдерів",
|
||||
"settings.providers.connected.environmentDescription": "Підключено зі змінних середовища",
|
||||
"settings.providers.section.popular": "Популярні провайдери",
|
||||
"settings.providers.custom.description": "Додайте провайдера, сумісного з OpenAI, за базовим URL.",
|
||||
"settings.providers.tag.environment": "Середовище",
|
||||
"settings.providers.tag.config": "Конфігурація",
|
||||
"settings.providers.tag.custom": "Користувацький",
|
||||
"settings.providers.tag.other": "Інше",
|
||||
"settings.models.title": "Моделі",
|
||||
"settings.models.description": "Налаштування моделей будуть доступні тут.",
|
||||
"settings.agents.title": "Агенти",
|
||||
"settings.agents.description": "Налаштування агентів будуть доступні тут.",
|
||||
"settings.commands.title": "Команди",
|
||||
"settings.commands.description": "Налаштування команд будуть доступні тут.",
|
||||
"settings.mcp.title": "MCP",
|
||||
"settings.mcp.description": "Налаштування MCP будуть доступні тут.",
|
||||
|
||||
"settings.permissions.title": "Дозволи",
|
||||
"settings.permissions.description": "Керуйте тим, які інструменти сервер може використовувати за замовчуванням.",
|
||||
"settings.permissions.section.tools": "Інструменти",
|
||||
"settings.permissions.toast.updateFailed.title": "Не вдалося оновити дозволи",
|
||||
|
||||
"settings.permissions.action.allow": "Дозволити",
|
||||
"settings.permissions.action.ask": "Запитувати",
|
||||
"settings.permissions.action.deny": "Заборонити",
|
||||
|
||||
"settings.permissions.tool.read.title": "Читання",
|
||||
"settings.permissions.tool.read.description": "Читання файлу (відповідає шляху файлу)",
|
||||
"settings.permissions.tool.edit.title": "Редагування",
|
||||
"settings.permissions.tool.edit.description": "Зміна файлів, включаючи редагування, запис і патчі",
|
||||
"settings.permissions.tool.glob.title": "Glob",
|
||||
"settings.permissions.tool.glob.description": "Зіставлення файлів за допомогою glob-шаблонів",
|
||||
"settings.permissions.tool.grep.title": "Grep",
|
||||
"settings.permissions.tool.grep.description": "Пошук вмісту файлів за допомогою регулярних виразів",
|
||||
"settings.permissions.tool.list.title": "Список",
|
||||
"settings.permissions.tool.list.description": "Список файлів у каталозі",
|
||||
"settings.permissions.tool.bash.title": "Bash",
|
||||
"settings.permissions.tool.bash.description": "Запуск команд оболонки",
|
||||
"settings.permissions.tool.task.title": "Завдання",
|
||||
"settings.permissions.tool.task.description": "Запуск підагентів",
|
||||
"settings.permissions.tool.skill.title": "Навичка",
|
||||
"settings.permissions.tool.skill.description": "Завантаження навички за назвою",
|
||||
"settings.permissions.tool.lsp.title": "LSP",
|
||||
"settings.permissions.tool.lsp.description": "Виконання запитів мовного сервера",
|
||||
"settings.permissions.tool.todowrite.title": "Todo Write",
|
||||
"settings.permissions.tool.todowrite.description": "Оновлення списку завдань",
|
||||
"settings.permissions.tool.webfetch.title": "Web Fetch",
|
||||
"settings.permissions.tool.webfetch.description": "Отримання вмісту з URL",
|
||||
"settings.permissions.tool.websearch.title": "Web Search",
|
||||
"settings.permissions.tool.websearch.description": "Пошук в інтернеті",
|
||||
"settings.permissions.tool.external_directory.title": "Зовнішній каталог",
|
||||
"settings.permissions.tool.external_directory.description": "Доступ до файлів за межами каталогу проєкту",
|
||||
"settings.permissions.tool.doom_loop.title": "Цикл приреченості",
|
||||
"settings.permissions.tool.doom_loop.description": "Виявлення повторюваних викликів інструментів з однаковими вхідними даними",
|
||||
|
||||
"session.delete.failed.title": "Не вдалося видалити сесію",
|
||||
"session.delete.title": "Видалити сесію",
|
||||
"session.delete.confirm": 'Видалити сесію "{{name}}"?',
|
||||
"session.delete.button": "Видалити сесію",
|
||||
|
||||
"workspace.new": "Нова робоча область",
|
||||
"workspace.type.local": "локальна",
|
||||
"workspace.type.sandbox": "пісочниця",
|
||||
"workspace.create.failed.title": "Не вдалося створити робочу область",
|
||||
"workspace.delete.failed.title": "Не вдалося видалити робочу область",
|
||||
"workspace.resetting.title": "Скидання робочої області",
|
||||
"workspace.resetting.description": "Це може зайняти хвилину.",
|
||||
"workspace.reset.failed.title": "Не вдалося скинути робочу область",
|
||||
"workspace.reset.success.title": "Робочу область скинуто",
|
||||
"workspace.reset.success.description": "Робоча область тепер відповідає гілці за замовчуванням.",
|
||||
"workspace.error.stillPreparing": "Робоча область все ще готується",
|
||||
"workspace.status.checking": "Перевірка незлитих змін...",
|
||||
"workspace.status.error": "Не вдалося перевірити статус git.",
|
||||
"workspace.status.clean": "Незлитих змін не виявлено.",
|
||||
"workspace.status.dirty": "Виявлено незлиті зміни в цій робочій області.",
|
||||
"workspace.delete.title": "Видалити робочу область",
|
||||
"workspace.delete.confirm": 'Видалити робочу область "{{name}}"?',
|
||||
"workspace.delete.button": "Видалити робочу область",
|
||||
"workspace.reset.title": "Скинути робочу область",
|
||||
"workspace.reset.confirm": 'Скинути робочу область "{{name}}"?',
|
||||
"workspace.reset.button": "Скинути робочу область",
|
||||
"workspace.reset.archived.none": "Жодна активна сесія не буде заархівована.",
|
||||
"workspace.reset.archived.one": "1 сесію буде заархівовано.",
|
||||
"workspace.reset.archived.many": "{{count}} сесій буде заархівовано.",
|
||||
"workspace.reset.note": "Це скине робочу область, щоб вона відповідала гілці за замовчуванням.",
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import { dict as da } from "~/i18n/da"
|
||||
import { dict as ja } from "~/i18n/ja"
|
||||
import { dict as pl } from "~/i18n/pl"
|
||||
import { dict as ru } from "~/i18n/ru"
|
||||
import { dict as uk } from "~/i18n/uk"
|
||||
import { dict as ar } from "~/i18n/ar"
|
||||
import { dict as no } from "~/i18n/no"
|
||||
import { dict as br } from "~/i18n/br"
|
||||
@@ -35,6 +36,7 @@ export function i18n(locale: Locale): Dict {
|
||||
if (locale === "ja") return { ...base, ...ja }
|
||||
if (locale === "pl") return { ...base, ...pl }
|
||||
if (locale === "ru") return { ...base, ...ru }
|
||||
if (locale === "uk") return { ...base, ...uk }
|
||||
if (locale === "ar") return { ...base, ...ar }
|
||||
if (locale === "no") return { ...base, ...no }
|
||||
if (locale === "br") return { ...base, ...br }
|
||||
|
||||
785
packages/console/app/src/i18n/uk.ts
Normal file
785
packages/console/app/src/i18n/uk.ts
Normal file
@@ -0,0 +1,785 @@
|
||||
import { dict as en } from "./en"
|
||||
|
||||
export const dict = {
|
||||
...en,
|
||||
"nav.github": "GitHub",
|
||||
"nav.docs": "Документація",
|
||||
"nav.changelog": "Журнал змін",
|
||||
"nav.discord": "Discord",
|
||||
"nav.x": "X",
|
||||
"nav.enterprise": "Enterprise",
|
||||
"nav.zen": "Zen",
|
||||
"nav.login": "Увійти",
|
||||
"nav.free": "Завантажити",
|
||||
"nav.home": "Головна",
|
||||
"nav.openMenu": "Відкрити меню",
|
||||
"nav.getStartedFree": "Почати безкоштовно",
|
||||
"nav.logoAlt": "OpenCode",
|
||||
|
||||
"nav.context.copyLogo": "Копіювати логотип як SVG",
|
||||
"nav.context.copyWordmark": "Копіювати знак як SVG",
|
||||
"nav.context.brandAssets": "Бренд-матеріали",
|
||||
|
||||
"footer.github": "GitHub",
|
||||
"footer.docs": "Документація",
|
||||
"footer.changelog": "Журнал змін",
|
||||
"footer.discord": "Discord",
|
||||
"footer.x": "X",
|
||||
|
||||
"legal.brand": "Бренд",
|
||||
"legal.privacy": "Конфіденційність",
|
||||
"legal.terms": "Умови",
|
||||
|
||||
"email.title": "Дізнайтеся першими про нові продукти",
|
||||
"email.subtitle": "Приєднуйтесь до списку очікування для раннього доступу.",
|
||||
"email.placeholder": "Електронна адреса",
|
||||
"email.subscribe": "Підписатися",
|
||||
"email.success": "Майже готово! Перевірте пошту та підтвердьте адресу",
|
||||
|
||||
"notFound.title": "Не знайдено | opencode",
|
||||
"notFound.heading": "404 — Сторінку не знайдено",
|
||||
"notFound.home": "Головна",
|
||||
"notFound.docs": "Документація",
|
||||
"notFound.github": "GitHub",
|
||||
"notFound.discord": "Discord",
|
||||
"notFound.logoLightAlt": "світлий логотип opencode",
|
||||
"notFound.logoDarkAlt": "темний логотип opencode",
|
||||
|
||||
"user.logout": "Вийти",
|
||||
|
||||
"auth.callback.error.codeMissing": "Не знайдено код авторизації.",
|
||||
|
||||
"workspace.select": "Виберіть робочий простір",
|
||||
"workspace.createNew": "+ Створити новий робочий простір",
|
||||
"workspace.modal.title": "Створити новий робочий простір",
|
||||
"workspace.modal.placeholder": "Введіть назву робочого простору",
|
||||
|
||||
"common.cancel": "Скасувати",
|
||||
"common.creating": "Створення...",
|
||||
"common.create": "Створити",
|
||||
"common.contactUs": "Зв'яжіться з нами",
|
||||
|
||||
"common.videoUnsupported": "Ваш браузер не підтримує відео.",
|
||||
"common.figure": "Рис. {{n}}.",
|
||||
"common.faq": "FAQ",
|
||||
"common.learnMore": "Дізнатися більше",
|
||||
|
||||
"error.invalidPlan": "Недійсний план",
|
||||
"error.workspaceRequired": "ID робочого простору обов'язкове",
|
||||
"error.alreadySubscribed": "Цей робочий простір уже має підписку",
|
||||
"error.limitRequired": "Ліміт обов'язковий.",
|
||||
"error.monthlyLimitInvalid": "Встановіть дійсний місячний ліміт.",
|
||||
"error.workspaceNameRequired": "Назва робочого простору обов'язкова.",
|
||||
"error.nameTooLong": "Назва має містити не більше 255 символів.",
|
||||
"error.emailRequired": "Електронна адреса обов'язкова",
|
||||
"error.roleRequired": "Роль обов'язкова",
|
||||
"error.idRequired": "ID обов'язкове",
|
||||
"error.nameRequired": "Назва обов'язкова",
|
||||
"error.providerRequired": "Провайдер обов'язковий",
|
||||
"error.apiKeyRequired": "Ключ API обов'язковий",
|
||||
"error.modelRequired": "Модель обов'язкова",
|
||||
"error.reloadAmountMin": "Сума поповнення має бути щонайменше ${{amount}}",
|
||||
"error.reloadTriggerMin": "Поріг балансу має бути щонайменше ${{amount}}",
|
||||
|
||||
"app.meta.description": "OpenCode — відкритий агент для програмування.",
|
||||
|
||||
"home.title": "OpenCode | Відкритий AI-агент для кодування",
|
||||
|
||||
"temp.title": "opencode | AI-агент для кодування, створений для термінала",
|
||||
"temp.hero.title": "AI-агент для кодування, створений для термінала",
|
||||
"temp.zen": "opencode zen",
|
||||
"temp.getStarted": "Почати",
|
||||
"temp.feature.native.title": "Рідний TUI",
|
||||
"temp.feature.native.body": "Чуйний, рідний інтерфейс термінала з темами",
|
||||
"temp.feature.zen.beforeLink": "A",
|
||||
"temp.feature.zen.link": "добірка моделей",
|
||||
"temp.feature.zen.afterLink": "від opencode",
|
||||
"temp.feature.models.beforeLink": "Підтримує 75+ LLM-провайдерів через",
|
||||
"temp.feature.models.afterLink": ", включаючи локальні моделі",
|
||||
"temp.screenshot.caption": "OpenCode TUI з темою tokyonight",
|
||||
"temp.screenshot.alt": "OpenCode TUI з темою tokyonight",
|
||||
"temp.logoLightAlt": "світлий логотип opencode",
|
||||
"temp.logoDarkAlt": "темний логотип opencode",
|
||||
|
||||
"home.banner.badge": "Нове",
|
||||
"home.banner.text": "Десктопний застосунок доступний у бета-версії",
|
||||
"home.banner.platforms": "на macOS, Windows та Linux",
|
||||
"home.banner.downloadNow": "Завантажити зараз",
|
||||
"home.banner.downloadBetaNow": "Завантажити бета-версію десктопного застосунку",
|
||||
|
||||
"home.hero.title": "Відкритий AI-агент для кодування",
|
||||
"home.hero.subtitle.a": "Безкоштовні моделі включено або підключіть будь-яку модель від будь-якого провайдера,",
|
||||
"home.hero.subtitle.b": "включно з Claude, GPT, Gemini та іншими.",
|
||||
|
||||
"home.install.ariaLabel": "Параметри встановлення",
|
||||
|
||||
"home.what.title": "Що таке OpenCode?",
|
||||
"home.what.body": "OpenCode — це відкритий агент, який допомагає писати код у терміналі, IDE або на десктопі.",
|
||||
"home.what.lsp.title": "LSP увімкнено",
|
||||
"home.what.lsp.body": "Автоматично завантажує потрібні LSP для LLM",
|
||||
"home.what.multiSession.title": "Багатосесійність",
|
||||
"home.what.multiSession.body": "Запускайте кількох агентів паралельно в одному проекті",
|
||||
"home.what.shareLinks.title": "Посилання для обміну",
|
||||
"home.what.shareLinks.body": "Діліться посиланням на будь-яку сесію для обговорення або налагодження",
|
||||
"home.what.copilot.title": "GitHub Copilot",
|
||||
"home.what.copilot.body": "Увійдіть через GitHub, щоб використовувати свій обліковий запис Copilot",
|
||||
"home.what.chatgptPlus.title": "ChatGPT Plus/Pro",
|
||||
"home.what.chatgptPlus.body": "Увійдіть через OpenAI, щоб використовувати ChatGPT Plus або Pro",
|
||||
"home.what.anyModel.title": "Будь-яка модель",
|
||||
"home.what.anyModel.body": "75+ LLM-провайдерів через Models.dev, включаючи локальні моделі",
|
||||
"home.what.anyEditor.title": "Будь-який редактор",
|
||||
"home.what.anyEditor.body": "Доступний як термінальний інтерфейс, десктопний застосунок та розширення IDE",
|
||||
"home.what.readDocs": "Читати документацію",
|
||||
|
||||
"home.growth.title": "Відкритий AI-агент для кодування",
|
||||
"home.growth.body":
|
||||
"З понад <strong>{{stars}}</strong> зірками на GitHub, <strong>{{contributors}}</strong> учасниками та понад <strong>{{commits}}</strong> комітами, OpenCode використовують понад <strong>{{monthlyUsers}}</strong> розробників щомісяця.",
|
||||
"home.growth.githubStars": "Зірки GitHub",
|
||||
"home.growth.contributors": "Учасники",
|
||||
"home.growth.monthlyDevs": "Розробників на місяць",
|
||||
|
||||
"home.privacy.title": "Створено для конфіденційності",
|
||||
"home.privacy.body":
|
||||
"OpenCode не зберігає ваш код або контекстні дані, тому може працювати в середовищах з чутливими даними.",
|
||||
"home.privacy.learnMore": "Дізнатися більше про",
|
||||
"home.privacy.link": "конфіденційність",
|
||||
|
||||
"home.faq.q1": "Що таке OpenCode?",
|
||||
"home.faq.a1":
|
||||
"OpenCode — це відкритий агент, який допомагає писати та запускати код з будь-якою AI-моделлю. Доступний як термінальний інтерфейс, десктопний застосунок або розширення IDE.",
|
||||
"home.faq.q2": "Як почати користуватися OpenCode?",
|
||||
"home.faq.a2.before": "Найпростіший спосіб почати — прочитати",
|
||||
"home.faq.a2.link": "вступ",
|
||||
"home.faq.q3": "Чи потрібні додаткові AI-підписки для використання OpenCode?",
|
||||
"home.faq.a3.p1":
|
||||
"Не обов'язково, OpenCode має набір безкоштовних моделей, які можна використовувати без реєстрації.",
|
||||
"home.faq.a3.p2.beforeZen": "Крім цього, ви можете використовувати будь-які популярні моделі, створивши обліковий запис",
|
||||
"home.faq.a3.p2.afterZen": ".",
|
||||
"home.faq.a3.p3":
|
||||
"Хоча ми рекомендуємо Zen, OpenCode також працює з усіма популярними провайдерами, такими як OpenAI, Anthropic, xAI тощо.",
|
||||
"home.faq.a3.p4.beforeLocal": "Ви навіть можете підключити свої",
|
||||
"home.faq.a3.p4.localLink": "локальні моделі",
|
||||
"home.faq.q4": "Чи можу я використовувати свої наявні AI-підписки з OpenCode?",
|
||||
"home.faq.a4.p1":
|
||||
"Так, OpenCode підтримує підписки всіх основних провайдерів. Ви можете використовувати Claude Pro/Max, ChatGPT Plus/Pro або GitHub Copilot.",
|
||||
"home.faq.q5": "Чи можна використовувати OpenCode лише в терміналі?",
|
||||
"home.faq.a5.beforeDesktop": "Вже ні! OpenCode тепер доступний як застосунок для",
|
||||
"home.faq.a5.desktop": "десктопа",
|
||||
"home.faq.a5.and": "та",
|
||||
"home.faq.a5.web": "вебу",
|
||||
"home.faq.q6": "Скільки коштує OpenCode?",
|
||||
"home.faq.a6":
|
||||
"OpenCode є 100% безкоштовним. Він також має набір безкоштовних моделей. Додаткові витрати можливі, якщо ви підключите іншого провайдера.",
|
||||
"home.faq.q7": "А як щодо даних та конфіденційності?",
|
||||
"home.faq.a7.p1": "Ваші дані зберігаються лише тоді, коли ви використовуєте безкоштовні моделі або створюєте посилання для обміну.",
|
||||
"home.faq.a7.p2.beforeModels": "Дізнайтеся більше про",
|
||||
"home.faq.a7.p2.modelsLink": "наші моделі",
|
||||
"home.faq.a7.p2.and": "та",
|
||||
"home.faq.a7.p2.shareLink": "сторінки обміну",
|
||||
"home.faq.q8": "Чи є OpenCode відкритим?",
|
||||
"home.faq.a8.p1": "Так, OpenCode повністю відкритий. Вихідний код доступний публічно на",
|
||||
"home.faq.a8.p2": "під ліцензією",
|
||||
"home.faq.a8.mitLicense": "MIT License",
|
||||
"home.faq.a8.p3":
|
||||
", тобто кожен може використовувати, змінювати або сприяти його розвитку. Будь-хто зі спільноти може створювати issues, надсилати pull request'и та розширювати функціональність.",
|
||||
|
||||
"home.zenCta.title": "Отримайте доступ до надійних оптимізованих моделей для агентів кодування",
|
||||
"home.zenCta.body":
|
||||
"Zen дає доступ до добірки AI-моделей, які OpenCode протестував спеціально для агентів кодування. Не турбуйтеся про нестабільну якість — використовуйте перевірені моделі.",
|
||||
"home.zenCta.link": "Дізнатися про Zen",
|
||||
|
||||
"zen.title": "OpenCode Zen | Добірка надійних оптимізованих моделей для агентів кодування",
|
||||
"zen.hero.title": "Надійні оптимізовані моделі для агентів кодування",
|
||||
"zen.hero.body":
|
||||
"Zen дає доступ до добірки AI-моделей, які OpenCode протестував спеціально для агентів кодування. Не турбуйтеся про нестабільну якість — використовуйте перевірені моделі.",
|
||||
|
||||
"zen.faq.q1": "Що таке OpenCode Zen?",
|
||||
"zen.faq.a1":
|
||||
"Zen — це добірка AI-моделей, протестованих для агентів кодування, створена командою OpenCode.",
|
||||
"zen.faq.q2": "Чому Zen точніший?",
|
||||
"zen.faq.a2":
|
||||
"Zen надає лише моделі, спеціально протестовані для агентів кодування. Ви ж не використовуєте масло ніж для стейка — не використовуйте погані моделі для кодування.",
|
||||
"zen.faq.q3": "Чи Zen дешевший?",
|
||||
"zen.faq.a3":
|
||||
"Zen не є прибутковим. Zen передає вам вартість від провайдерів моделей. Чим вище використання Zen, тим кращі ціни OpenCode може узгодити та передати вам.",
|
||||
"zen.faq.q4": "Скільки коштує Zen?",
|
||||
"zen.faq.a4.p1.beforePricing": "Zen",
|
||||
"zen.faq.a4.p1.pricingLink": "стягує плату за запит",
|
||||
"zen.faq.a4.p1.afterPricing": "без націнок — ви платите рівно стільки, скільки стягує провайдер моделі.",
|
||||
"zen.faq.a4.p2.beforeAccount": "Загальна вартість залежить від використання. Ви можете встановити місячні ліміти в",
|
||||
"zen.faq.a4.p2.accountLink": "обліковому записі",
|
||||
"zen.faq.a4.p3":
|
||||
"Щоб покрити витрати, OpenCode додає лише невелику комісію за обробку платежу в розмірі $1.23 за кожне поповнення балансу $20.",
|
||||
"zen.faq.q5": "А як щодо даних та конфіденційності?",
|
||||
"zen.faq.a5.beforeExceptions":
|
||||
"Усі моделі Zen розміщені в США. Провайдери дотримуються політики нульового зберігання та не використовують ваші дані для навчання моделей, за",
|
||||
"zen.faq.a5.exceptionsLink": "такими винятками",
|
||||
"zen.faq.q6": "Чи можна встановити ліміти витрат?",
|
||||
"zen.faq.a6": "Так, ви можете встановити місячні ліміти витрат в обліковому записі.",
|
||||
"zen.faq.q7": "Чи можна скасувати?",
|
||||
"zen.faq.a7": "Так, ви можете вимкнути оплату в будь-який час і використовувати залишок.",
|
||||
"zen.faq.q8": "Чи можна використовувати Zen з іншими агентами кодування?",
|
||||
"zen.faq.a8":
|
||||
"Хоча Zen чудово працює з OpenCode, ви можете використовувати Zen з будь-яким агентом. Дотримуйтесь інструкцій з налаштування у вашому агенті.",
|
||||
|
||||
"zen.cta.start": "Почати з Zen",
|
||||
"zen.pricing.title": "Додати $20 балансу Pay as you go",
|
||||
"zen.pricing.fee": "(+$1.23 комісія за обробку карти)",
|
||||
"zen.pricing.body": "Використовуйте з будь-яким агентом. Встановлюйте місячні ліміти. Скасуйте в будь-який час.",
|
||||
"zen.problem.title": "Яку проблему вирішує Zen?",
|
||||
"zen.problem.body":
|
||||
"Доступно багато моделей, але лише деякі добре працюють з агентами кодування. Більшість провайдерів налаштовують їх по-різному з різними результатами.",
|
||||
"zen.problem.subtitle": "Ми вирішуємо це для всіх, а не лише для користувачів OpenCode.",
|
||||
"zen.problem.item1": "Тестування вибраних моделей та консультації з їхніми командами",
|
||||
"zen.problem.item2": "Співпраця з провайдерами для забезпечення правильної доставки",
|
||||
"zen.problem.item3": "Бенчмаркінг усіх комбінацій моделей та провайдерів, які ми рекомендуємо",
|
||||
"zen.how.title": "Як працює Zen",
|
||||
"zen.how.body": "Хоча ми пропонуємо використовувати Zen з OpenCode, ви можете використовувати Zen з будь-яким агентом.",
|
||||
"zen.how.step1.title": "Зареєструйтеся та додайте $20 балансу",
|
||||
"zen.how.step1.beforeLink": "дотримуйтесь",
|
||||
"zen.how.step1.link": "інструкцій з налаштування",
|
||||
"zen.how.step2.title": "Використовуйте Zen із прозорими цінами",
|
||||
"zen.how.step2.link": "платіть за запит",
|
||||
"zen.how.step2.afterLink": "без націнок",
|
||||
"zen.how.step3.title": "Автоматичне поповнення",
|
||||
"zen.how.step3.body": "коли баланс досягає $5, ми автоматично додаємо $20",
|
||||
"zen.privacy.title": "Ваша конфіденційність важлива для нас",
|
||||
"zen.privacy.beforeExceptions":
|
||||
"Усі моделі Zen розміщені в США. Провайдери дотримуються політики нульового зберігання та не використовують ваші дані для навчання моделей, за",
|
||||
"zen.privacy.exceptionsLink": "такими винятками",
|
||||
|
||||
"go.title": "OpenCode Go | Недорогі моделі кодування для всіх",
|
||||
"go.meta.description":
|
||||
"Go починається від $5 за перший місяць, потім $10/місяць, з generous 5-годинними лімітами запитів для GLM-5.1, GLM-5, Kimi K2.5, Kimi K2.6, MiMo-V2.5-Pro, MiMo-V2.5, Qwen3.5 Plus, Qwen3.6 Plus, MiniMax M2.5, MiniMax M2.7, DeepSeek V4 Pro та DeepSeek V4 Flash.",
|
||||
"go.hero.title": "Недорогі моделі кодування для всіх",
|
||||
"go.hero.body":
|
||||
"Go надає агентне програмування програмістам у всьому світі, пропонуючи щедрі ліміти та надійний доступ до найкращих моделей з відкритим кодом.",
|
||||
|
||||
"go.cta.start": "Підписатися на Go",
|
||||
"go.cta.template": "{{text}} {{price}}",
|
||||
"go.cta.text": "Підписатися на Go",
|
||||
"go.cta.price": "$10/місяць",
|
||||
"go.cta.promo": "$5 перший місяць",
|
||||
"go.pricing.body": "Використовуйте з будь-яким агентом. $5 перший місяць, потім $10/місяць. Поповнюйте за потреби. Скасуйте в будь-який час.",
|
||||
"go.graph.free": "Безкоштовно",
|
||||
"go.graph.freePill": "Big Pickle та безкоштовні моделі",
|
||||
"go.graph.go": "Go",
|
||||
"go.graph.label": "Запитів за 5 годин",
|
||||
"go.graph.usageLimits": "Ліміти використання",
|
||||
"go.graph.tick": "{{n}}x",
|
||||
"go.graph.aria": "Запитів за 5 год: {{free}} vs {{go}}",
|
||||
|
||||
"go.testimonials.brand.zen": "Zen",
|
||||
"go.testimonials.brand.go": "Go",
|
||||
"go.testimonials.handle": "@OpenCode",
|
||||
"go.testimonials.dax.name": "Dax Raad",
|
||||
"go.testimonials.dax.title": "ex-CEO, Terminal Products",
|
||||
"go.testimonials.dax.quoteAfter": "змінило моє життя, це справді очевидний вибір.",
|
||||
"go.testimonials.jay.name": "Jay V",
|
||||
"go.testimonials.jay.title": "ex-Founder, SEED, PM, Melt, Pop, Dapt, Cadmus, and ViewPoint",
|
||||
"go.testimonials.jay.quoteBefore": "4 з 5 людей у нашій команді люблять використовувати",
|
||||
"go.testimonials.jay.quoteAfter": ".",
|
||||
"go.testimonials.adam.name": "Adam Elmore",
|
||||
"go.testimonials.adam.title": "ex-Hero, AWS",
|
||||
"go.testimonials.adam.quoteBefore": "Я не можу достатньо рекомендувати",
|
||||
"go.testimonials.adam.quoteAfter": ". Серйозно, це дійсно добре.",
|
||||
"go.testimonials.david.name": "David Hill",
|
||||
"go.testimonials.david.title": "ex-Head of Design, Laravel",
|
||||
"go.testimonials.david.quoteBefore": "Завдяки",
|
||||
"go.testimonials.david.quoteAfter": "я знаю, що всі моделі протестовані та ідеальні для агентів кодування.",
|
||||
"go.testimonials.frank.name": "Frank Wang",
|
||||
"go.testimonials.frank.title": "ex-Intern, Nvidia (4 times)",
|
||||
"go.testimonials.frank.quote": "Хотів би я досі бути в Nvidia.",
|
||||
"go.problem.title": "Яку проблему вирішує Go?",
|
||||
"go.problem.body":
|
||||
"Ми зосереджені на тому, щоб зробити досвід OpenCode доступним для якомога більшої кількості людей. OpenCode Go — це недорога підписка: $5 за перший місяць, потім $10/місяць. Вона надає щедрі ліміти та надійний доступ до найкращих моделей з відкритим кодом.",
|
||||
"go.problem.subtitle": " ",
|
||||
"go.problem.item1": "Недорога підписка",
|
||||
"go.problem.item2": "Щедрі ліміти та надійний доступ",
|
||||
"go.problem.item3": "Створено для якомога більшої кількості програмістів",
|
||||
"go.problem.item4":
|
||||
"Включає GLM-5.1, GLM-5, Kimi K2.5, Kimi K2.6, MiMo-V2.5-Pro, MiMo-V2.5, Qwen3.5 Plus, Qwen3.6 Plus, MiniMax M2.5, MiniMax M2.7, DeepSeek V4 Pro та DeepSeek V4 Flash",
|
||||
"go.how.title": "Як працює Go",
|
||||
"go.how.body": "Go починається від $5 за перший місяць, потім $10/місяць. Використовуйте з OpenCode або будь-яким агентом.",
|
||||
"go.how.step1.title": "Створіть обліковий запис",
|
||||
"go.how.step1.beforeLink": "дотримуйтесь",
|
||||
"go.how.step1.link": "інструкцій з налаштування",
|
||||
"go.how.step2.title": "Підпишіться на Go",
|
||||
"go.how.step2.link": "$5 перший місяць",
|
||||
"go.how.step2.afterLink": "потім $10/місяць із щедрими лімітами",
|
||||
"go.how.step3.title": "Почніть кодувати",
|
||||
"go.how.step3.body": "з надійним доступом до моделей з відкритим кодом",
|
||||
"go.privacy.title": "Ваша конфіденційність важлива для нас",
|
||||
"go.privacy.body":
|
||||
"План розроблений переважно для міжнародних користувачів, з моделями, розміщеними в США, ЄС та Сінгапурі для стабільного глобального доступу.",
|
||||
"go.privacy.contactAfter": "якщо у вас є запитання.",
|
||||
"go.privacy.beforeExceptions":
|
||||
"Моделі Go розміщені в США. Провайдери дотримуються політики нульового зберігання та не використовують ваші дані для навчання моделей, за",
|
||||
"go.privacy.exceptionsLink": "такими винятками",
|
||||
"go.faq.q1": "Що таке OpenCode Go?",
|
||||
"go.faq.a1":
|
||||
"Go — це недорога підписка, яка надає надійний доступ до найкращих моделей з відкритим кодом для агентного кодування.",
|
||||
"go.faq.q2": "Які моделі включає Go?",
|
||||
"go.faq.a2": "Go включає моделі, перелічені нижче, із щедрими лімітами та надійним доступом.",
|
||||
"go.faq.q3": "Чи Go те саме, що Zen?",
|
||||
"go.faq.a3":
|
||||
"Ні. Zen — це плата за використання, тоді як Go починається від $5 за перший місяць, потім $10/місяць, із щедрими лімітами та надійним доступом до моделей з відкритим кодом.",
|
||||
"go.faq.q4": "Скільки коштує Go?",
|
||||
"go.faq.a4.p1.beforePricing": "Go коштує",
|
||||
"go.faq.a4.p1.pricingLink": "$5 за перший місяць",
|
||||
"go.faq.a4.p1.afterPricing": "потім $10/місяць із щедрими лімітами.",
|
||||
"go.faq.a4.p2.beforeAccount": "Ви можете керувати підпискою в",
|
||||
"go.faq.a4.p2.accountLink": "обліковому записі",
|
||||
"go.faq.a4.p3": "Скасуйте в будь-який час.",
|
||||
"go.faq.q5": "А як щодо даних та конфіденційності?",
|
||||
"go.faq.a5.body":
|
||||
"План розроблений переважно для міжнародних користувачів, з моделями в США, ЄС та Сінгапурі. Провайдери дотримуються політики нульового зберігання.",
|
||||
"go.faq.a5.beforeExceptions":
|
||||
"Моделі Go розміщені в США. Провайдери дотримуються політики нульового зберігання та не використовують ваші дані для навчання моделей, за",
|
||||
"go.faq.a5.exceptionsLink": "такими винятками",
|
||||
"go.faq.q6": "Чи можна поповнити баланс?",
|
||||
"go.faq.a6": "Якщо вам потрібно більше використання, ви можете поповнити баланс в обліковому записі.",
|
||||
"go.faq.q7": "Чи можна скасувати?",
|
||||
"go.faq.a7": "Так, ви можете скасувати в будь-який час.",
|
||||
"go.faq.q8": "Чи можна використовувати Go з іншими агентами кодування?",
|
||||
"go.faq.a8": "Так, ви можете використовувати Go з будь-яким агентом.",
|
||||
|
||||
"go.faq.q9": "Яка різниця між безкоштовними моделями та Go?",
|
||||
"go.faq.a9":
|
||||
"Безкоштовні моделі включають Big Pickle та акційні моделі з лімітом 200 запитів/день. Go включає GLM-5.1, GLM-5, Kimi K2.5, Kimi K2.6, MiMo-V2.5-Pro, MiMo-V2.5, Qwen3.5 Plus, Qwen3.6 Plus, MiniMax M2.5, MiniMax M2.7, DeepSeek V4 Pro та DeepSeek V4 Flash із вищими лімітами.",
|
||||
|
||||
"zen.api.error.rateLimitExceeded": "Перевищено ліміт запитів. Спробуйте пізніше.",
|
||||
"zen.api.error.modelNotSupported": "Модель {{model}} не підтримується",
|
||||
"zen.api.error.modelFormatNotSupported": "Модель {{model}} не підтримується для формату {{format}}",
|
||||
"zen.api.error.noProviderAvailable": "Немає доступного провайдера",
|
||||
"zen.api.error.providerNotSupported": "Провайдер {{provider}} не підтримується",
|
||||
"zen.api.error.missingApiKey": "Відсутній ключ API.",
|
||||
"zen.api.error.invalidApiKey": "Недійсний ключ API.",
|
||||
"zen.api.error.subscriptionQuotaExceeded": "Перевищено квоту підписки. Повторіть через {{retryIn}}.",
|
||||
"zen.api.error.goSubscriptionRollingLimitExceeded":
|
||||
"Досягнуто 5-годинного ліміту використання. Скидається через {{retryIn}}. Щоб продовжити, увімкніть використання з доступного балансу: {{consoleGoUrl}}",
|
||||
"zen.api.error.goSubscriptionWeeklyLimitExceeded":
|
||||
"Досягнуто тижневого ліміту використання. Скидається через {{retryIn}}. Щоб продовжити, увімкніть використання з доступного балансу: {{consoleGoUrl}}",
|
||||
"zen.api.error.goSubscriptionMonthlyLimitExceeded":
|
||||
"Досягнуто місячного ліміту використання. Скидається через {{retryIn}}. Щоб продовжити, увімкніть використання з доступного балансу: {{consoleGoUrl}}",
|
||||
"zen.api.error.noPaymentMethod": "Немає способу оплати. Додайте метод оплати: {{billingUrl}}",
|
||||
"zen.api.error.insufficientBalance": "Недостатньо коштів. Керуйте оплатою: {{billingUrl}}",
|
||||
"zen.api.error.workspaceMonthlyLimitReached":
|
||||
"Ваш робочий простір досяг місячного ліміту витрат ${{amount}}. Керуйте лімітами: {{billingUrl}}",
|
||||
"zen.api.error.userMonthlyLimitReached":
|
||||
"Ви досягли місячного ліміту витрат ${{amount}}. Керуйте лімітами: {{membersUrl}}",
|
||||
"zen.api.error.modelDisabled": "Модель вимкнено",
|
||||
"zen.api.error.trialEnded":
|
||||
"Безкоштовна акція для {{model}} закінчилася. Ви можете продовжити використання, підписавшись на OpenCode Go — {{link}}",
|
||||
|
||||
"black.meta.title": "OpenCode Black | Доступ до найкращих моделей кодування",
|
||||
"black.meta.description": "Отримайте доступ до Claude, GPT, Gemini та інших із планами підписки OpenCode Black.",
|
||||
"black.hero.title": "Доступ до найкращих моделей кодування",
|
||||
"black.hero.subtitle": "Включаючи Claude, GPT, Gemini та інші",
|
||||
"black.title": "OpenCode Black | Ціни",
|
||||
"black.paused": "Реєстрація в план Black тимчасово призупинена.",
|
||||
"black.plan.icon20": "План Black 20",
|
||||
"black.plan.icon100": "План Black 100",
|
||||
"black.plan.icon200": "План Black 200",
|
||||
"black.plan.multiplier100": "5x більше використання ніж Black 20",
|
||||
"black.plan.multiplier200": "20x більше використання ніж Black 20",
|
||||
"black.price.perMonth": "на місяць",
|
||||
"black.price.perPersonBilledMonthly": "за особу з щомісячною оплатою",
|
||||
"black.terms.1": "Ваша підписка не розпочнеться негайно",
|
||||
"black.terms.2": "Вас додадуть до списку очікування та активують незабаром",
|
||||
"black.terms.3": "Картку буде списано лише після активації підписки",
|
||||
"black.terms.4": "Діють ліміти використання, інтенсивне автоматичне використання може швидше вичерпати ліміти",
|
||||
"black.terms.5": "Підписки призначені для фізичних осіб, зверніться в Enterprise для команд",
|
||||
"black.terms.6": "Ліміти можуть бути змінені, а плани можуть бути припинені в майбутньому",
|
||||
"black.terms.7": "Скасуйте підписку в будь-який час",
|
||||
"black.action.continue": "Продовжити",
|
||||
"black.finePrint.beforeTerms": "Зазначені ціни не включають податки",
|
||||
"black.finePrint.terms": "Умови надання послуг",
|
||||
"black.workspace.title": "OpenCode Black | Виберіть робочий простір",
|
||||
"black.workspace.selectPlan": "Виберіть робочий простір для цього плану",
|
||||
"black.workspace.name": "Робочий простір {{n}}",
|
||||
"black.subscribe.title": "Підписатися на OpenCode Black",
|
||||
"black.subscribe.paymentMethod": "Спосіб оплати",
|
||||
"black.subscribe.loadingPaymentForm": "Завантаження форми оплати...",
|
||||
"black.subscribe.selectWorkspaceToContinue": "Виберіть робочий простір для продовження",
|
||||
"black.subscribe.failurePrefix": "Ой!",
|
||||
"black.subscribe.error.generic": "Сталася помилка",
|
||||
"black.subscribe.error.invalidPlan": "Недійсний план",
|
||||
"black.subscribe.error.workspaceRequired": "ID робочого простору обов'язкове",
|
||||
"black.subscribe.error.alreadySubscribed": "Цей робочий простір уже має підписку",
|
||||
"black.subscribe.processing": "Обробка...",
|
||||
"black.subscribe.submit": "Підписатися ${{plan}}",
|
||||
"black.subscribe.form.chargeNotice": "Платіж буде списано лише після активації підписки",
|
||||
"black.subscribe.success.title": "Ви в списку очікування OpenCode Black",
|
||||
"black.subscribe.success.subscriptionPlan": "План підписки",
|
||||
"black.subscribe.success.planName": "OpenCode Black {{plan}}",
|
||||
"black.subscribe.success.amount": "Сума",
|
||||
"black.subscribe.success.amountValue": "${{plan}} на місяць",
|
||||
"black.subscribe.success.paymentMethod": "Спосіб оплати",
|
||||
"black.subscribe.success.dateJoined": "Дата приєднання",
|
||||
"black.subscribe.success.chargeNotice": "Вашу картку буде списано після активації підписки",
|
||||
|
||||
"workspace.nav.zen": "Zen",
|
||||
"workspace.nav.go": "Go",
|
||||
"workspace.nav.usage": "Використання",
|
||||
"workspace.nav.apiKeys": "Ключі API",
|
||||
"workspace.nav.members": "Учасники",
|
||||
"workspace.nav.billing": "Оплата",
|
||||
"workspace.nav.settings": "Налаштування",
|
||||
|
||||
"workspace.home.banner.beforeLink": "Надійні оптимізовані моделі для агентів кодування.",
|
||||
"workspace.lite.banner.beforeLink": "Недорогі моделі кодування для всіх.",
|
||||
"workspace.home.billing.loading": "Завантаження...",
|
||||
"workspace.home.billing.enable": "Увімкнути оплату",
|
||||
"workspace.home.billing.currentBalance": "Поточний баланс",
|
||||
|
||||
"workspace.newUser.feature.tested.title": "Протестовані та перевірені моделі",
|
||||
"workspace.newUser.feature.tested.body":
|
||||
"Ми протестували моделі спеціально для агентів кодування, щоб забезпечити найкращу продуктивність.",
|
||||
"workspace.newUser.feature.quality.title": "Найвища якість",
|
||||
"workspace.newUser.feature.quality.body":
|
||||
"Доступ до моделей, налаштованих для оптимальної продуктивності — без зниження якості.",
|
||||
"workspace.newUser.feature.lockin.title": "Без блокування (Lock-in)",
|
||||
"workspace.newUser.feature.lockin.body":
|
||||
"Використовуйте Zen з будь-яким агентом і продовжуйте користуватися іншими провайдерами.",
|
||||
"workspace.newUser.copyApiKey": "Копіювати ключ API",
|
||||
"workspace.newUser.copyKey": "Копіювати ключ",
|
||||
"workspace.newUser.copied": "Скопійовано!",
|
||||
"workspace.newUser.step.enableBilling": "Увімкнути оплату",
|
||||
"workspace.newUser.step.login.before": "Запустіть",
|
||||
"workspace.newUser.step.login.after": "і виберіть opencode",
|
||||
"workspace.newUser.step.pasteKey": "Вставте ключ API",
|
||||
"workspace.newUser.step.models.before": "Запустіть opencode і виконайте",
|
||||
"workspace.newUser.step.models.after": "щоб вибрати модель",
|
||||
|
||||
"workspace.models.title": "Моделі",
|
||||
"workspace.models.subtitle.beforeLink": "Керуйте доступом учасників до моделей.",
|
||||
"workspace.models.table.model": "Модель",
|
||||
"workspace.models.table.enabled": "Увімкнено",
|
||||
|
||||
"workspace.providers.title": "Принесіть власний ключ (BYOK)",
|
||||
"workspace.providers.subtitle": "Налаштуйте власні ключі API від AI-провайдерів.",
|
||||
"workspace.providers.placeholder": "Введіть ключ API {{provider}} ({{prefix}}...)",
|
||||
"workspace.providers.configure": "Налаштувати",
|
||||
"workspace.providers.edit": "Редагувати",
|
||||
"workspace.providers.delete": "Видалити",
|
||||
"workspace.providers.saving": "Збереження...",
|
||||
"workspace.providers.save": "Зберегти",
|
||||
"workspace.providers.table.provider": "Провайдер",
|
||||
"workspace.providers.table.apiKey": "Ключ API",
|
||||
|
||||
"workspace.usage.title": "Історія використання",
|
||||
"workspace.usage.subtitle": "Останнє використання API та витрати.",
|
||||
"workspace.usage.empty": "Зробіть перший API-запит, щоб почати.",
|
||||
"workspace.usage.table.date": "Дата",
|
||||
"workspace.usage.table.model": "Модель",
|
||||
"workspace.usage.table.input": "Вхід",
|
||||
"workspace.usage.table.output": "Вихід",
|
||||
"workspace.usage.table.cost": "Вартість",
|
||||
"workspace.usage.table.session": "Сесія",
|
||||
"workspace.usage.breakdown.input": "Вхід",
|
||||
"workspace.usage.breakdown.cacheRead": "Читання кешу",
|
||||
"workspace.usage.breakdown.cacheWrite": "Запис кешу",
|
||||
"workspace.usage.breakdown.output": "Вихід",
|
||||
"workspace.usage.breakdown.reasoning": "Міркування",
|
||||
"workspace.usage.subscription": "Black (${{amount}})",
|
||||
"workspace.usage.lite": "Go (${{amount}})",
|
||||
"workspace.usage.byok": "BYOK (${{amount}})",
|
||||
|
||||
"workspace.cost.title": "Вартість",
|
||||
"workspace.cost.subtitle": "Витрати в розрізі моделей.",
|
||||
"workspace.cost.allModels": "Усі моделі",
|
||||
"workspace.cost.allKeys": "Усі ключі",
|
||||
"workspace.cost.deletedSuffix": "(видалено)",
|
||||
"workspace.cost.empty": "Немає даних про використання за вибраний період.",
|
||||
"workspace.cost.subscriptionShort": "підп",
|
||||
|
||||
"workspace.keys.title": "Ключі API",
|
||||
"workspace.keys.subtitle": "Керуйте ключами API для доступу до сервісів opencode.",
|
||||
"workspace.keys.create": "Створити ключ API",
|
||||
"workspace.keys.placeholder": "Введіть назву ключа",
|
||||
"workspace.keys.empty": "Створіть ключ API шлюзу opencode",
|
||||
"workspace.keys.table.name": "Назва",
|
||||
"workspace.keys.table.key": "Ключ",
|
||||
"workspace.keys.table.createdBy": "Створено",
|
||||
"workspace.keys.table.lastUsed": "Останнє використання",
|
||||
"workspace.keys.copyApiKey": "Копіювати ключ API",
|
||||
"workspace.keys.delete": "Видалити",
|
||||
|
||||
"workspace.members.title": "Учасники",
|
||||
"workspace.members.subtitle": "Керуйте учасниками робочого простору та їхніми дозволами.",
|
||||
"workspace.members.invite": "Запросити учасника",
|
||||
"workspace.members.inviting": "Запрошення...",
|
||||
"workspace.members.beta.beforeLink": "Робочі простори безкоштовні для команд під час бета-версії.",
|
||||
"workspace.members.form.invitee": "Запрошений",
|
||||
"workspace.members.form.emailPlaceholder": "Введіть email",
|
||||
"workspace.members.form.role": "Роль",
|
||||
"workspace.members.form.monthlyLimit": "Місячний ліміт витрат",
|
||||
"workspace.members.noLimit": "Без ліміту",
|
||||
"workspace.members.noLimitLowercase": "без ліміту",
|
||||
"workspace.members.invited": "запрошено",
|
||||
"workspace.members.edit": "Редагувати",
|
||||
"workspace.members.delete": "Видалити",
|
||||
"workspace.members.saving": "Збереження...",
|
||||
"workspace.members.save": "Зберегти",
|
||||
"workspace.members.table.email": "Email",
|
||||
"workspace.members.table.role": "Роль",
|
||||
"workspace.members.table.monthLimit": "Ліміт на місяць",
|
||||
"workspace.members.role.admin": "Адміністратор",
|
||||
"workspace.members.role.adminDescription": "Може керувати моделями, учасниками та оплатою",
|
||||
"workspace.members.role.member": "Учасник",
|
||||
"workspace.members.role.memberDescription": "Може створювати ключі API лише для себе",
|
||||
|
||||
"workspace.settings.title": "Налаштування",
|
||||
"workspace.settings.subtitle": "Оновіть назву робочого простору та налаштування.",
|
||||
"workspace.settings.workspaceName": "Назва робочого простору",
|
||||
"workspace.settings.defaultName": "Стандартна",
|
||||
"workspace.settings.updating": "Оновлення...",
|
||||
"workspace.settings.save": "Зберегти",
|
||||
"workspace.settings.edit": "Редагувати",
|
||||
|
||||
"workspace.billing.title": "Оплата",
|
||||
"workspace.billing.subtitle.beforeLink": "Керуйте способами оплати.",
|
||||
"workspace.billing.contactUs": "Зв'яжіться з нами",
|
||||
"workspace.billing.subtitle.afterLink": "якщо у вас є запитання.",
|
||||
"workspace.billing.currentBalance": "Поточний баланс",
|
||||
"workspace.billing.add": "Додати $",
|
||||
"workspace.billing.enterAmount": "Введіть суму",
|
||||
"workspace.billing.loading": "Завантаження...",
|
||||
"workspace.billing.addAction": "Додати",
|
||||
"workspace.billing.addBalance": "Поповнити баланс",
|
||||
"workspace.billing.alipay": "Alipay",
|
||||
"workspace.billing.wechat": "WeChat Pay",
|
||||
"workspace.billing.linkedToStripe": "Підключено до Stripe",
|
||||
"workspace.billing.manage": "Керувати",
|
||||
"workspace.billing.enable": "Увімкнути оплату",
|
||||
|
||||
"workspace.monthlyLimit.title": "Місячний ліміт",
|
||||
"workspace.monthlyLimit.subtitle": "Встановіть місячний ліміт використання для облікового запису.",
|
||||
"workspace.monthlyLimit.placeholder": "50",
|
||||
"workspace.monthlyLimit.setting": "Встановлення...",
|
||||
"workspace.monthlyLimit.set": "Встановити",
|
||||
"workspace.monthlyLimit.edit": "Редагувати ліміт",
|
||||
"workspace.monthlyLimit.noLimit": "Ліміт використання не встановлено.",
|
||||
"workspace.monthlyLimit.currentUsage.beforeMonth": "Поточне використання за",
|
||||
"workspace.monthlyLimit.currentUsage.beforeAmount": "становить $",
|
||||
|
||||
"workspace.redeem.title": "Активувати купон",
|
||||
"workspace.redeem.subtitle": "Активуйте код купона для отримання коштів або бонусів.",
|
||||
"workspace.redeem.placeholder": "Введіть код купона",
|
||||
"workspace.redeem.redeem": "Активувати",
|
||||
"workspace.redeem.redeeming": "Активація...",
|
||||
"workspace.redeem.success": "Купон успішно активовано.",
|
||||
|
||||
"workspace.reload.title": "Автоматичне поповнення",
|
||||
"workspace.reload.disabled.before": "Автоматичне поповнення",
|
||||
"workspace.reload.disabled.state": "вимкнено",
|
||||
"workspace.reload.disabled.after": "Увімкніть для автоматичного поповнення при низькому балансі.",
|
||||
"workspace.reload.enabled.before": "Автоматичне поповнення",
|
||||
"workspace.reload.enabled.state": "увімкнено",
|
||||
"workspace.reload.enabled.middle": "Ми поповнимо",
|
||||
"workspace.reload.processingFee": "комісія за обробку",
|
||||
"workspace.reload.enabled.after": "коли баланс досягне",
|
||||
"workspace.reload.edit": "Редагувати",
|
||||
"workspace.reload.enable": "Увімкнути",
|
||||
"workspace.reload.enableAutoReload": "Увімкнути автоматичне поповнення",
|
||||
"workspace.reload.reloadAmount": "Поповнити на $",
|
||||
"workspace.reload.whenBalanceReaches": "Коли баланс досягне $",
|
||||
"workspace.reload.saving": "Збереження...",
|
||||
"workspace.reload.save": "Зберегти",
|
||||
"workspace.reload.failedAt": "Поповнення не вдалося о",
|
||||
"workspace.reload.reason": "Причина:",
|
||||
"workspace.reload.updatePaymentMethod": "Оновіть спосіб оплати та спробуйте ще раз.",
|
||||
"workspace.reload.retrying": "Повтор...",
|
||||
"workspace.reload.retry": "Повторити",
|
||||
"workspace.reload.error.paymentFailed": "Платіж не вдався.",
|
||||
|
||||
"workspace.payments.title": "Історія платежів",
|
||||
"workspace.payments.subtitle": "Останні платіжні транзакції.",
|
||||
"workspace.payments.table.date": "Дата",
|
||||
"workspace.payments.table.paymentId": "ID платежу",
|
||||
"workspace.payments.table.amount": "Сума",
|
||||
"workspace.payments.table.receipt": "Квитанція",
|
||||
"workspace.payments.type.credit": "кредит",
|
||||
"workspace.payments.type.subscription": "підписка",
|
||||
"workspace.payments.view": "Переглянути",
|
||||
|
||||
"workspace.black.loading": "Завантаження...",
|
||||
"workspace.black.time.day": "день",
|
||||
"workspace.black.time.days": "дні",
|
||||
"workspace.black.time.hour": "година",
|
||||
"workspace.black.time.hours": "годин(и)",
|
||||
"workspace.black.time.minute": "хвилина",
|
||||
"workspace.black.time.minutes": "хвилин(и)",
|
||||
"workspace.black.time.fewSeconds": "кілька секунд",
|
||||
"workspace.black.subscription.title": "Підписка",
|
||||
"workspace.black.subscription.message": "Ви підписані на OpenCode Black за ${{plan}} на місяць.",
|
||||
"workspace.black.subscription.manage": "Керувати підпискою",
|
||||
"workspace.black.subscription.rollingUsage": "Використання (5 год)",
|
||||
"workspace.black.subscription.weeklyUsage": "Тижневе використання",
|
||||
"workspace.black.subscription.resetsIn": "Скидається через",
|
||||
"workspace.black.subscription.useBalance": "Використовуйте доступний баланс після досягнення лімітів",
|
||||
"workspace.black.waitlist.title": "Список очікування",
|
||||
"workspace.black.waitlist.joined": "Ви в списку очікування на план OpenCode Black за ${{plan}} на місяць.",
|
||||
"workspace.black.waitlist.ready": "Ми готові зареєструвати вас на план OpenCode Black за ${{plan}} на місяць.",
|
||||
"workspace.black.waitlist.leave": "Залишити список очікування",
|
||||
"workspace.black.waitlist.leaving": "Вихід...",
|
||||
"workspace.black.waitlist.left": "Вишли",
|
||||
"workspace.black.waitlist.enroll": "Зареєструватися",
|
||||
"workspace.black.waitlist.enrolling": "Реєстрація...",
|
||||
"workspace.black.waitlist.enrolled": "Зареєстровано",
|
||||
"workspace.black.waitlist.enrollNote":
|
||||
"Після натискання «Зареєструватися» підписка почнеться негайно, а картку буде списано.",
|
||||
|
||||
"workspace.lite.loading": "Завантаження...",
|
||||
"workspace.lite.time.day": "день",
|
||||
"workspace.lite.time.days": "дні",
|
||||
"workspace.lite.time.hour": "година",
|
||||
"workspace.lite.time.hours": "годин(и)",
|
||||
"workspace.lite.time.minute": "хвилина",
|
||||
"workspace.lite.time.minutes": "хвилин(и)",
|
||||
"workspace.lite.time.fewSeconds": "кілька секунд",
|
||||
"workspace.lite.subscription.message": "Ви підписані на OpenCode Go.",
|
||||
"workspace.lite.subscription.manage": "Керувати підпискою",
|
||||
"workspace.lite.subscription.rollingUsage": "Ковзне використання",
|
||||
"workspace.lite.subscription.weeklyUsage": "Тижневе використання",
|
||||
"workspace.lite.subscription.monthlyUsage": "Місячне використання",
|
||||
"workspace.lite.subscription.resetsIn": "Скидається через",
|
||||
"workspace.lite.subscription.useBalance": "Використовуйте доступний баланс після досягнення лімітів",
|
||||
"workspace.lite.subscription.selectProvider":
|
||||
'Виберіть "OpenCode Go" як провайдера в конфігурації opencode.',
|
||||
"workspace.lite.black.message":
|
||||
"Ви вже підписані на OpenCode Black або в списку очікування. Спочатку скасуйте підписку, якщо хочете перейти на Go.",
|
||||
"workspace.lite.other.message":
|
||||
"Інший учасник цього робочого простору вже підписаний на OpenCode Go.",
|
||||
"workspace.lite.promo.description":
|
||||
"OpenCode Go починається від {{price}}, потім $10/місяць, із щедрими лімітами.",
|
||||
"workspace.lite.promo.price": "$5 за перший місяць",
|
||||
"workspace.lite.promo.modelsTitle": "Що включено",
|
||||
"workspace.lite.promo.footer":
|
||||
"План призначений для міжнародних користувачів. Ціни можуть змінюватися.",
|
||||
"workspace.lite.promo.subscribe": "Підписатися на Go",
|
||||
"workspace.lite.promo.subscribing": "Перенаправлення...",
|
||||
"workspace.lite.promo.otherMethods": "Інші способи оплати",
|
||||
"workspace.lite.promo.selectMethod": "Виберіть спосіб оплати",
|
||||
|
||||
"download.title": "OpenCode | Завантажити",
|
||||
"download.meta.description": "Завантажте OpenCode для macOS, Windows та Linux",
|
||||
"download.hero.title": "Завантажити OpenCode",
|
||||
"download.hero.subtitle": "Доступно в бета-версії для macOS, Windows та Linux",
|
||||
"download.hero.button": "Завантажити для {{os}}",
|
||||
"download.section.terminal": "Термінал OpenCode",
|
||||
"download.section.desktop": "Десктоп OpenCode (Бета)",
|
||||
"download.section.extensions": "Розширення OpenCode",
|
||||
"download.section.integrations": "Інтеграції OpenCode",
|
||||
"download.action.download": "Завантажити",
|
||||
"download.action.install": "Встановити",
|
||||
|
||||
"download.platform.macosAppleSilicon": "macOS (Apple Silicon)",
|
||||
"download.platform.macosIntel": "macOS (Intel)",
|
||||
"download.platform.windowsX64": "Windows (x64)",
|
||||
"download.platform.linuxDeb": "Linux (.deb)",
|
||||
"download.platform.linuxRpm": "Linux (.rpm)",
|
||||
|
||||
"download.faq.a3.beforeLocal":
|
||||
"Не обов'язково, але ймовірно. Вам знадобиться AI-підписка, якщо ви хочете підключити платного провайдера, хоча ви можете працювати з",
|
||||
"download.faq.a3.localLink": "локальними моделями",
|
||||
"download.faq.a3.afterLocal.beforeZen": "безкоштовно. Хоча ми рекомендуємо",
|
||||
"download.faq.a3.afterZen":
|
||||
", OpenCode працює з усіма популярними провайдерами, такими як OpenAI, Anthropic, xAI тощо.",
|
||||
|
||||
"download.faq.a5.p1": "OpenCode є 100% безкоштовним.",
|
||||
"download.faq.a5.p2.beforeZen":
|
||||
"Будь-які додаткові витрати будуть з вашої підписки у провайдера моделі. Ми рекомендуємо",
|
||||
"download.faq.a5.p2.afterZen": ".",
|
||||
|
||||
"download.faq.a6.p1": "Ваші дані зберігаються лише при створенні посилань для обміну в OpenCode.",
|
||||
"download.faq.a6.p2.beforeShare": "Дізнайтеся більше про",
|
||||
"download.faq.a6.shareLink": "сторінки обміну",
|
||||
|
||||
"enterprise.title": "OpenCode | Enterprise-рішення для вашої організації",
|
||||
"enterprise.meta.description": "Зв'яжіться з OpenCode для Enterprise-рішень",
|
||||
"enterprise.hero.title": "Ваш код належить вам",
|
||||
"enterprise.hero.body1":
|
||||
"OpenCode працює безпечно всередині вашої організації без зберігання даних, ліцензійних обмежень. Почніть пробний період із командою, потім розгорніть через SSO та внутрішній AI-шлюз.",
|
||||
"enterprise.hero.body2": "Дайте знати, чим ми можемо допомогти.",
|
||||
"enterprise.form.name.label": "Повне ім'я",
|
||||
"enterprise.form.name.placeholder": "Джеф Безос",
|
||||
"enterprise.form.role.label": "Посада",
|
||||
"enterprise.form.role.placeholder": "Голова правління",
|
||||
"enterprise.form.company.label": "Компанія",
|
||||
"enterprise.form.company.placeholder": "Acme Inc",
|
||||
"enterprise.form.email.label": "Робоча електронна адреса",
|
||||
"enterprise.form.email.placeholder": "jeff@amazon.com",
|
||||
"enterprise.form.phone.label": "Номер телефону",
|
||||
"enterprise.form.phone.placeholder": "+1 234 567 8900",
|
||||
"enterprise.form.message.label": "Яку проблему ви намагаєтеся вирішити?",
|
||||
"enterprise.form.message.placeholder": "Нам потрібна допомога з...",
|
||||
"enterprise.form.send": "Надіслати",
|
||||
"enterprise.form.sending": "Надсилання...",
|
||||
"enterprise.form.success": "Повідомлення надіслано, ми зв'яжемося найближчим часом.",
|
||||
"enterprise.form.success.submitted": "Форму успішно надіслано.",
|
||||
"enterprise.form.error.allFieldsRequired": "Усі поля обов'язкові.",
|
||||
"enterprise.form.error.invalidEmailFormat": "Недійсний формат email.",
|
||||
"enterprise.form.error.internalServer": "Внутрішня помилка сервера.",
|
||||
"enterprise.faq.title": "FAQ",
|
||||
"enterprise.faq.q1": "Що таке OpenCode Enterprise?",
|
||||
"enterprise.faq.a1":
|
||||
"OpenCode Enterprise для організацій, які хочуть гарантувати, що код і дані ніколи не залишають їхню інфраструктуру.",
|
||||
"enterprise.faq.q2": "Як почати з OpenCode Enterprise?",
|
||||
"enterprise.faq.a2":
|
||||
"Почніть із внутрішнього тестування з командою. OpenCode за замовчуванням не зберігає код. Потім зв'яжіться з нами для обговорення цін.",
|
||||
"enterprise.faq.q3": "Як працює ціноутворення enterprise?",
|
||||
"enterprise.faq.a3":
|
||||
"Ми пропонуємо ціну за робоче місце. Якщо у вас власний LLM-шлюз, ми не стягуємо плату за токени.",
|
||||
"enterprise.faq.q4": "Чи безпечні мої дані з OpenCode Enterprise?",
|
||||
"enterprise.faq.a4":
|
||||
"Так. OpenCode не зберігає ваш код або контекст. Вся обробка відбувається локально або через прямі API-виклики.",
|
||||
|
||||
"brand.title": "OpenCode | Бренд",
|
||||
"brand.meta.description": "Рекомендації щодо бренду OpenCode",
|
||||
"brand.heading": "Рекомендації щодо бренду",
|
||||
"brand.subtitle": "Ресурси та матеріали для роботи з брендом OpenCode.",
|
||||
"brand.downloadAll": "Завантажити всі матеріали",
|
||||
|
||||
"changelog.title": "OpenCode | Журнал змін",
|
||||
"changelog.meta.description": "Нотатки про випуски та журнал змін OpenCode",
|
||||
"changelog.hero.title": "Журнал змін",
|
||||
"changelog.hero.subtitle": "Нові оновлення та покращення OpenCode",
|
||||
"changelog.empty": "Записів у журналі змін не знайдено.",
|
||||
"changelog.viewJson": "Переглянути JSON",
|
||||
|
||||
"bench.list.title": "Бенчмарк",
|
||||
"bench.list.heading": "Бенчмарки",
|
||||
"bench.list.table.agent": "Агент",
|
||||
"bench.list.table.model": "Модель",
|
||||
"bench.list.table.score": "Результат",
|
||||
"bench.submission.error.allFieldsRequired": "Усі поля обов'язкові.",
|
||||
|
||||
"bench.detail.title": "Бенчмарк — {{task}}",
|
||||
"bench.detail.notFound": "Завдання не знайдено",
|
||||
"bench.detail.na": "Н/Д",
|
||||
"bench.detail.labels.agent": "Агент",
|
||||
"bench.detail.labels.model": "Модель",
|
||||
"bench.detail.labels.task": "Завдання",
|
||||
"bench.detail.labels.repo": "Репозиторій",
|
||||
"bench.detail.labels.from": "Від",
|
||||
"bench.detail.labels.to": "До",
|
||||
"bench.detail.labels.prompt": "Prompt",
|
||||
"bench.detail.labels.commit": "Коміт",
|
||||
"bench.detail.labels.averageDuration": "Середня тривалість",
|
||||
"bench.detail.labels.averageScore": "Середній результат",
|
||||
"bench.detail.labels.averageCost": "Середня вартість",
|
||||
"bench.detail.labels.summary": "Підсумок",
|
||||
"bench.detail.labels.runs": "Запуски",
|
||||
"bench.detail.labels.score": "Результат",
|
||||
"bench.detail.labels.base": "База",
|
||||
"bench.detail.labels.penalty": "Штраф",
|
||||
"bench.detail.labels.weight": "вага",
|
||||
"bench.detail.table.run": "Запуск",
|
||||
"bench.detail.table.score": "Результат (База — Штраф)",
|
||||
"bench.detail.table.cost": "Вартість",
|
||||
"bench.detail.table.duration": "Тривалість",
|
||||
"bench.detail.run.title": "Запуск {{n}}",
|
||||
"bench.detail.rawJson": "Сирий JSON",
|
||||
}
|
||||
@@ -11,6 +11,7 @@ export const LOCALES = [
|
||||
"ja",
|
||||
"pl",
|
||||
"ru",
|
||||
"uk",
|
||||
"ar",
|
||||
"no",
|
||||
"br",
|
||||
@@ -41,6 +42,7 @@ const LABEL = {
|
||||
ja: "日本語",
|
||||
pl: "Polski",
|
||||
ru: "Русский",
|
||||
uk: "Українська",
|
||||
ar: "العربية",
|
||||
no: "Norsk",
|
||||
br: "Português (Brasil)",
|
||||
@@ -61,6 +63,7 @@ const TAG = {
|
||||
ja: "ja",
|
||||
pl: "pl",
|
||||
ru: "ru",
|
||||
uk: "uk",
|
||||
ar: "ar",
|
||||
no: "no",
|
||||
br: "pt-BR",
|
||||
@@ -81,6 +84,7 @@ const DOCS = {
|
||||
ja: "ja",
|
||||
pl: "pl",
|
||||
ru: "ru",
|
||||
uk: "uk",
|
||||
ar: "ar",
|
||||
no: "nb",
|
||||
br: "pt-br",
|
||||
@@ -104,6 +108,7 @@ const DOCS_SEGMENT = new Set([
|
||||
"ru",
|
||||
"th",
|
||||
"tr",
|
||||
"uk",
|
||||
"zh-cn",
|
||||
"zh-tw",
|
||||
])
|
||||
@@ -124,6 +129,7 @@ const DOCS_LOCALE = {
|
||||
ru: "ru",
|
||||
th: "th",
|
||||
tr: "tr",
|
||||
uk: "uk",
|
||||
"zh-cn": "zh",
|
||||
"zh-tw": "zht",
|
||||
} as const satisfies Record<string, Locale>
|
||||
@@ -239,6 +245,7 @@ function match(input: string): Locale | null {
|
||||
if (value.startsWith("ja")) return "ja"
|
||||
if (value.startsWith("pl")) return "pl"
|
||||
if (value.startsWith("ru")) return "ru"
|
||||
if (value.startsWith("uk")) return "uk"
|
||||
if (value.startsWith("ar")) return "ar"
|
||||
if (value.startsWith("tr")) return "tr"
|
||||
if (value.startsWith("th")) return "th"
|
||||
|
||||
@@ -11,6 +11,7 @@ import { dict as desktopDa } from "./da"
|
||||
import { dict as desktopJa } from "./ja"
|
||||
import { dict as desktopPl } from "./pl"
|
||||
import { dict as desktopRu } from "./ru"
|
||||
import { dict as desktopUk } from "./uk"
|
||||
import { dict as desktopAr } from "./ar"
|
||||
import { dict as desktopNo } from "./no"
|
||||
import { dict as desktopBr } from "./br"
|
||||
@@ -27,6 +28,7 @@ import { dict as appDa } from "../../../../app/src/i18n/da"
|
||||
import { dict as appJa } from "../../../../app/src/i18n/ja"
|
||||
import { dict as appPl } from "../../../../app/src/i18n/pl"
|
||||
import { dict as appRu } from "../../../../app/src/i18n/ru"
|
||||
import { dict as appUk } from "../../../../app/src/i18n/uk"
|
||||
import { dict as appAr } from "../../../../app/src/i18n/ar"
|
||||
import { dict as appNo } from "../../../../app/src/i18n/no"
|
||||
import { dict as appBr } from "../../../../app/src/i18n/br"
|
||||
@@ -44,6 +46,7 @@ export type Locale =
|
||||
| "ja"
|
||||
| "pl"
|
||||
| "ru"
|
||||
| "uk"
|
||||
| "ar"
|
||||
| "no"
|
||||
| "br"
|
||||
@@ -64,6 +67,7 @@ const LOCALES: readonly Locale[] = [
|
||||
"ja",
|
||||
"pl",
|
||||
"ru",
|
||||
"uk",
|
||||
"bs",
|
||||
"ar",
|
||||
"no",
|
||||
@@ -89,6 +93,7 @@ function detectLocale(): Locale {
|
||||
if (language.toLowerCase().startsWith("ja")) return "ja"
|
||||
if (language.toLowerCase().startsWith("pl")) return "pl"
|
||||
if (language.toLowerCase().startsWith("ru")) return "ru"
|
||||
if (language.toLowerCase().startsWith("uk")) return "uk"
|
||||
if (language.toLowerCase().startsWith("ar")) return "ar"
|
||||
if (
|
||||
language.toLowerCase().startsWith("no") ||
|
||||
@@ -148,6 +153,7 @@ function build(locale: Locale): Dictionary {
|
||||
if (locale === "ja") return { ...base, ...i18n.flatten(appJa), ...i18n.flatten(desktopJa) }
|
||||
if (locale === "pl") return { ...base, ...i18n.flatten(appPl), ...i18n.flatten(desktopPl) }
|
||||
if (locale === "ru") return { ...base, ...i18n.flatten(appRu), ...i18n.flatten(desktopRu) }
|
||||
if (locale === "uk") return { ...base, ...i18n.flatten(appUk), ...i18n.flatten(desktopUk) }
|
||||
if (locale === "ar") return { ...base, ...i18n.flatten(appAr), ...i18n.flatten(desktopAr) }
|
||||
if (locale === "no") return { ...base, ...i18n.flatten(appNo), ...i18n.flatten(desktopNo) }
|
||||
if (locale === "br") return { ...base, ...i18n.flatten(appBr), ...i18n.flatten(desktopBr) }
|
||||
|
||||
28
packages/desktop/src/renderer/i18n/uk.ts
Normal file
28
packages/desktop/src/renderer/i18n/uk.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
export const dict = {
|
||||
"desktop.menu.checkForUpdates": "Перевірити оновлення...",
|
||||
"desktop.menu.installCli": "Встановити CLI...",
|
||||
"desktop.menu.reloadWebview": "Перезавантажити Webview",
|
||||
"desktop.menu.restart": "Перезапустити",
|
||||
|
||||
"desktop.dialog.chooseFolder": "Виберіть теку",
|
||||
"desktop.dialog.chooseFile": "Виберіть файл",
|
||||
"desktop.dialog.saveFile": "Зберегти файл",
|
||||
|
||||
"desktop.updater.checkFailed.title": "Не вдалося перевірити оновлення",
|
||||
"desktop.updater.checkFailed.message": "Не вдалося перевірити наявність оновлень",
|
||||
"desktop.updater.none.title": "Немає доступних оновлень",
|
||||
"desktop.updater.none.message": "Ви вже використовуєте найновішу версію OpenCode",
|
||||
"desktop.updater.downloadFailed.title": "Помилка оновлення",
|
||||
"desktop.updater.downloadFailed.message": "Не вдалося завантажити оновлення",
|
||||
"desktop.updater.downloaded.title": "Оновлення завантажено",
|
||||
"desktop.updater.downloaded.prompt":
|
||||
"Версію {{version}} OpenCode завантажено. Бажаєте встановити її та перезапустити?",
|
||||
"desktop.updater.installFailed.title": "Помилка оновлення",
|
||||
"desktop.updater.installFailed.message": "Не вдалося встановити оновлення",
|
||||
|
||||
"desktop.cli.installed.title": "CLI встановлено",
|
||||
"desktop.cli.installed.message":
|
||||
"CLI встановлено до {{path}}\n\nПерезапустіть термінал, щоб використовувати команду 'opencode'.",
|
||||
"desktop.cli.failed.title": "Не вдалося встановити",
|
||||
"desktop.cli.failed.message": "Не вдалося встановити CLI: {{error}}",
|
||||
}
|
||||
167
packages/ui/src/i18n/uk.ts
Normal file
167
packages/ui/src/i18n/uk.ts
Normal file
@@ -0,0 +1,167 @@
|
||||
export const dict: Record<string, string> = {
|
||||
"ui.sessionReview.title": "Зміни сесії",
|
||||
"ui.sessionReview.title.git": "Зміни Git",
|
||||
"ui.sessionReview.title.branch": "Зміни гілки",
|
||||
"ui.sessionReview.title.lastTurn": "Зміни останнього кроку",
|
||||
"ui.sessionReview.diffStyle.unified": "Об'єднаний",
|
||||
"ui.sessionReview.diffStyle.split": "Розділений",
|
||||
"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": "Завеликий diff для відображення",
|
||||
"ui.sessionReview.largeDiff.meta": "Ліміт: {{limit}} змінених рядків. Поточно: {{current}} змінених рядків.",
|
||||
"ui.sessionReview.largeDiff.renderAnyway": "Все одно відобразити",
|
||||
"ui.sessionReview.openFile": "Відкрити файл",
|
||||
"ui.sessionReview.selection.line": "рядок {{line}}",
|
||||
"ui.sessionReview.selection.lines": "рядки {{start}}-{{end}}",
|
||||
|
||||
"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.diffs.changed": "Змінено",
|
||||
"ui.sessionTurn.diffs.showAll": "Показати всі",
|
||||
"ui.sessionTurn.diffs.showLess": "Показати менше",
|
||||
"ui.sessionTurn.diffs.more": "+{{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.diagnostic.error": "Помилка",
|
||||
"ui.messagePart.title.edit": "Редагувати",
|
||||
"ui.messagePart.title.write": "Написати",
|
||||
"ui.messagePart.option.typeOwnAnswer": "Введіть власну відповідь",
|
||||
"ui.messagePart.review.title": "Перевірте свої відповіді",
|
||||
"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.list.loading": "Завантаження",
|
||||
"ui.list.empty": "Немає результатів",
|
||||
"ui.list.clearFilter": "Очистити фільтр",
|
||||
"ui.list.emptyWithFilter.prefix": "Немає результатів для",
|
||||
"ui.list.emptyWithFilter.suffix": "",
|
||||
|
||||
"ui.fileSearch.placeholder": "Знайти",
|
||||
"ui.fileSearch.previousMatch": "Попередній збіг",
|
||||
"ui.fileSearch.nextMatch": "Наступний збіг",
|
||||
"ui.fileSearch.close": "Закрити пошук",
|
||||
|
||||
"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.task": "Завдання",
|
||||
"ui.tool.webfetch": "Веб-отримання",
|
||||
"ui.tool.websearch": "Веб-пошук",
|
||||
"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.tool.skill": "Навичка",
|
||||
|
||||
"ui.basicTool.called": "Викликано `{{tool}}`",
|
||||
"ui.toolErrorCard.failed": "Помилка",
|
||||
"ui.toolErrorCard.copyError": "Копіювати помилку",
|
||||
|
||||
"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.forkMessage": "Відгалузити в нову сесію",
|
||||
"ui.message.revertMessage": "Скинути до цього моменту",
|
||||
"ui.message.copyResponse": "Копіювати відповідь",
|
||||
"ui.message.copied": "Скопійовано",
|
||||
"ui.message.duration.seconds": "{{count}}с",
|
||||
"ui.message.duration.minutesSeconds": "{{minutes}}хв {{seconds}}с",
|
||||
"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": "Введіть свою відповідь...",
|
||||
}
|
||||
@@ -14,6 +14,7 @@ export const docsLocale = [
|
||||
"ru",
|
||||
"th",
|
||||
"tr",
|
||||
"uk",
|
||||
"zh-cn",
|
||||
"zh-tw",
|
||||
] as const
|
||||
@@ -46,6 +47,7 @@ export const localeAlias = {
|
||||
ru: "ru",
|
||||
th: "th",
|
||||
tr: "tr",
|
||||
uk: "uk",
|
||||
zh: "zh-cn",
|
||||
"zh-cn": "zh-cn",
|
||||
zht: "zh-tw",
|
||||
@@ -63,6 +65,7 @@ const starts = [
|
||||
["ja", "ja"],
|
||||
["pl", "pl"],
|
||||
["ru", "ru"],
|
||||
["uk", "uk"],
|
||||
["ar", "ar"],
|
||||
["th", "th"],
|
||||
["tr", "tr"],
|
||||
|
||||
BIN
screenshot-uk.png
Normal file
BIN
screenshot-uk.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
Reference in New Issue
Block a user