diff --git a/src/assets/locale/uk/chrome.json b/src/assets/locale/uk/chrome.json
new file mode 100644
index 0000000..12fa7ee
--- /dev/null
+++ b/src/assets/locale/uk/chrome.json
@@ -0,0 +1,13 @@
+{
+ "heading": "Налаштування Chrome AI",
+ "status": {
+ "label": "Ввімкнути або вимкнути підтримку Chrome AI на Page Assist"
+ },
+ "error": {
+ "browser_not_supported": "Ця версія Chrome не підтримується моделлю Gemini Nano. Будь ласка, оновіть до версії 127 або новішої",
+ "ai_not_supported": "Налаштування chrome://flags/#prompt-api-for-gemini-nano не увімкнено. Будь ласка, увімкніть його.",
+ "ai_not_ready": "Модель Gemini Nano ще не готова; вам потрібно перевірити налаштування Chrome знову",
+ "internal_error": "Стався внутрішній збій. Будь ласка, спробуйте пізніше."
+ },
+ "errorDescription": "Щоб використовувати Chrome AI, вам потрібна версія переглядача новіша за 127-му, яка наразі доступна в каналах Dev і Canary. Після завантаження підтримуваної версії виконайте наступні кроки:\n\n1. Перейдіть до `chrome://flags/#prompt-api-for-gemini-nano` та виберіть \"Ввімкнути\".\n2. Перейдіть до `chrome://flags/#optimization-guide-on-device-model` та виберіть \"EnabledBypassPrefRequirement\".\n3. Перейдіть до `chrome://components`, знайдіть \"Optimization Guide On Device Model\" і натисніть \"Перевірити оновлення\". Це завантажить модель. Якщо ви не бачите налаштувань, повторіть кроки 1 і 2 та перезапустіть переглядач."
+}
diff --git a/src/assets/locale/uk/common.json b/src/assets/locale/uk/common.json
new file mode 100644
index 0000000..899e12b
--- /dev/null
+++ b/src/assets/locale/uk/common.json
@@ -0,0 +1,125 @@
+{
+ "pageAssist": "Допомога на сторінці",
+ "selectAModel": "Виберіть модель",
+ "save": "Зберегти",
+ "saved": "Збережено",
+ "cancel": "Скасувати",
+ "retry": "Спробувати знову",
+ "share": {
+ "tooltip": {
+ "share": "Поділитися"
+ },
+ "modal": {
+ "title": "Поділитися посиланням на чат"
+ },
+ "form": {
+ "defaultValue": {
+ "name": "Анонімний",
+ "title": "Неназваний чат"
+ },
+ "title": {
+ "label": "Назва чату",
+ "placeholder": "Введіть назву чату",
+ "required": "Назва чату обовʼязкова"
+ },
+ "name": {
+ "label": "Ваше імʼя",
+ "placeholder": "Введіть ваше імʼя",
+ "required": "Ваше імʼя обов'язкове"
+ },
+ "btn": {
+ "save": "Створити посилання",
+ "saving": "Створення посилання..."
+ }
+ },
+ "notification": {
+ "successGenerate": "Посилання скопійовано до буфера обміну",
+ "failGenerate": "Не вдалося створити посилання"
+ }
+ },
+ "copyToClipboard": "Копіювати в буфер обміну",
+ "webSearch": "Пошук у мережі",
+ "regenerate": "Перегенерувати",
+ "edit": "Редагувати",
+ "delete": "Видалити",
+ "saveAndSubmit": "Зберегти та надіслати",
+ "editMessage": {
+ "placeholder": "Введіть повідомлення..."
+ },
+ "submit": "Надіслати",
+ "noData": "Немає даних",
+ "noHistory": "Немає історії чату",
+ "chatWithCurrentPage": "Чат з поточної сторінки",
+ "beta": "Бета",
+ "tts": "Читання вголос",
+ "currentChatModelSettings": "Налаштування поточної моделі чату",
+ "modelSettings": {
+ "label": "Налаштування моделі",
+ "description": "Встановіть глобальні параметри моделі для всіх чатів",
+ "form": {
+ "keepAlive": {
+ "label": "Тривалість збереження в памʼяті",
+ "help": "вказує, як довго модель залишатиметься завантаженою у памʼять після запиту (за замовчуванням: 5 хв)",
+ "placeholder": "Введіть тривалість збереження у памʼяті (наприклад, 5m, 10m, 1h)"
+ },
+ "temperature": {
+ "label": "Температура",
+ "placeholder": "Введіть значення температури (наприклад, 0.7, 1.0)"
+ },
+ "numCtx": {
+ "label": "Кількість контекстів",
+ "placeholder": "Введіть кількість контекстів (типово: 2048)"
+ },
+ "numPredict": {
+ "label": "Максимальна кількість токенів",
+ "placeholder": "Введіть максимальну кількість токенів (наприклад, 2048, 4096)"
+ },
+ "seed": {
+ "label": "Зерно",
+ "placeholder": "Введіть значення зерна (наприклад, 1234)",
+ "help": "Повторюваність виводу моделі"
+ },
+ "topK": {
+ "label": "Top K",
+ "placeholder": "Введіть значення для Верхніх K (наприклад, 40, 100)"
+ },
+ "topP": {
+ "label": "Top P",
+ "placeholder": "Введіть значення для Верхнього P (наприклад, 0.9, 0.95)"
+ },
+ "numGpu": {
+ "label": "Кількість GPU",
+ "placeholder": "Введіть кількість шарів для відправки на GPU"
+ },
+ "systemPrompt": {
+ "label": "Тимчасовий системний запит",
+ "placeholder": "Введіть системний запит",
+ "help": "Швидкий спосіб встановити системний запит для поточного чату, який замінить вибраний системний запит, якщо він існує."
+ }
+ },
+ "advanced": "Додаткові налаштування моделі"
+ },
+ "copilot": {
+ "summary": "Підсумувати",
+ "explain": "Пояснити",
+ "rephrase": "Перефразувати",
+ "translate": "Перекласти",
+ "custom": "Власне"
+ },
+ "citations": "Цитати",
+ "segmented": {
+ "ollama": "Моделі Ollama",
+ "custom": "Власні моделі"
+ },
+ "downloadCode": "Завантажити код",
+ "date": {
+ "pinned": "Прикріплено",
+ "today": "Сьогодні",
+ "yesterday": "Вчора",
+ "last7Days": "Останні 7 днів",
+ "older": "Старіше"
+ },
+ "pin": "Прикріпити",
+ "unpin": "Відкріпити",
+ "generationInfo": "Інформація про генерацію"
+}
diff --git a/src/assets/locale/uk/knowledge.json b/src/assets/locale/uk/knowledge.json
new file mode 100644
index 0000000..dd5dd9f
--- /dev/null
+++ b/src/assets/locale/uk/knowledge.json
@@ -0,0 +1,40 @@
+{
+ "addBtn": "Додати нове знання",
+ "columns": {
+ "title": "Назва",
+ "status": "Статус",
+ "embeddings": "Модель вкладень",
+ "createdAt": "Створено в",
+ "action": "Дії"
+ },
+ "expandedColumns": {
+ "name": "Імʼя"
+ },
+ "confirm": {
+ "delete": "Ви впевнені, що хочете видалити це знання?"
+ },
+ "deleteSuccess": "Знання успішно видалено",
+ "status": {
+ "pending": "Очікування",
+ "finished": "Завершено",
+ "processing": "Обробка",
+ "failed": "Не вдалося"
+ },
+ "addKnowledge": "Додати знання",
+ "form": {
+ "title": {
+ "label": "Назва знань",
+ "placeholder": "Введіть назву знань",
+ "required": "Назва знань обовʼязкова"
+ },
+ "uploadFile": {
+ "label": "Завантажити файл",
+ "uploadText": "Перетягніть файл сюди або натисніть для завантаження",
+ "uploadHint": "Підтримуються типи файлів: .pdf, .csv, .txt, .md, .docx",
+ "required": "Файл обовʼязковий"
+ },
+ "submit": "Надіслати",
+ "success": "Знання успішно додано"
+ },
+ "noEmbeddingModel": "Будь ласка, додайте модель вкладень з сторінки налаштувань RAG спочатку"
+}
diff --git a/src/assets/locale/uk/openai.json b/src/assets/locale/uk/openai.json
new file mode 100644
index 0000000..f714a97
--- /dev/null
+++ b/src/assets/locale/uk/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "Сумісний з OpenAI API",
+ "heading": "Сумісний з OpenAI API",
+ "subheading": "Тут керування та налаштування ваших постачальників OpenAI API.",
+ "addBtn": "Додати постачальника",
+ "table": {
+ "name": "Назва постачальника",
+ "baseUrl": "Базовий URL",
+ "actions": "Дії"
+ },
+ "modal": {
+ "titleAdd": "Додати нового постачальника",
+ "name": {
+ "label": "Назва постачальника",
+ "required": "Назва постачальника обовʼязкова.",
+ "placeholder": "Введіть назву постачальника"
+ },
+ "baseUrl": {
+ "label": "Базовий URL",
+ "help": "Базовий URL постачальника OpenAI API. Наприклад, (http://localhost:1234/v1)",
+ "required": "Базовий URL обовʼязковий.",
+ "placeholder": "Введіть базовий URL"
+ },
+ "apiKey": {
+ "label": "Ключ API",
+ "required": "Ключ API обовʼязковий.",
+ "placeholder": "Введіть ключ API"
+ },
+ "submit": "Зберегти",
+ "update": "Оновити",
+ "deleteConfirm": "Ви впевнені, що хочете видалити цього постачальника?",
+ "model": {
+ "title": "Список моделей",
+ "subheading": "Виберіть чат-моделі, які ви хочете використовувати з цим постачальником.",
+ "success": "Моделі успішно додано."
+ },
+ "tipLMStudio": "Page Assist автоматично отримає моделі, завантажені в LM Studio. Вам не потрібно додавати їх вручну."
+ },
+ "addSuccess": "Постачальника додано успішно.",
+ "deleteSuccess": "Постачальника видалено успішно.",
+ "updateSuccess": "Постачальника оновлено успішно.",
+ "delete": "Видалити",
+ "edit": "Редагувати",
+ "newModel": "Додати моделі до постачальника",
+ "noNewModel": "Для LMStudio, Ollama, Llamafile ми отримуємо моделі динамічно. Ручного додавання не потрібно.",
+ "searchModel": "Пошук моделі",
+ "selectAll": "Вибрати все",
+ "save": "Зберегти",
+ "saving": "Збереження...",
+ "manageModels": {
+ "columns": {
+ "name": "Назва моделі",
+ "model_type": "Тип моделі",
+ "model_id": "Ідентифікатор моделі",
+ "provider": "Назва постачальника",
+ "actions": "Дії"
+ },
+ "tooltip": {
+ "delete": "Видалити"
+ },
+ "confirm": {
+ "delete": "Ви впевнені, що хочете видалити цю модель?"
+ },
+ "modal": {
+ "title": "Додати власну модель",
+ "form": {
+ "name": {
+ "label": "Ідентифікатор моделі",
+ "placeholder": "llama3.2",
+ "required": "Ідентифікатор моделі обовʼязковий."
+ },
+ "provider": {
+ "label": "Постачальник",
+ "placeholder": "Виберіть постачальника",
+ "required": "Постачальник обовʼязковий."
+ },
+ "type": {
+ "label": "Тип моделі"
+ }
+ }
+ }
+ },
+ "noModelFound": "Не знайдено моделей. Переконайтеся, що ви додали правильного постачальника з базовим URL та ключем API.",
+ "radio": {
+ "chat": "Модель чату",
+ "embedding": "Модель вкладень",
+ "chatInfo": "використовується для завершення чату та генерації розмови",
+ "embeddingInfo": "використовується для RAG та інших повʼязаних завдань семантичного пошуку."
+ }
+}
diff --git a/src/assets/locale/uk/option.json b/src/assets/locale/uk/option.json
new file mode 100644
index 0000000..22a76d4
--- /dev/null
+++ b/src/assets/locale/uk/option.json
@@ -0,0 +1,13 @@
+{
+ "newChat": "Новий чат",
+ "selectAPrompt": "Виберіть запит",
+ "githubRepository": "Репозиторій GitHub",
+ "settings": "Налаштування",
+ "sidebarTitle": "Історія чату",
+ "error": "Збій",
+ "somethingWentWrong": "Щось пішло не так",
+ "validationSelectModel": "Будь ласка, виберіть модель для продовження",
+ "deleteHistoryConfirmation": "Ви впевнені, що хочете видалити цю історію?",
+ "editHistoryTitle": "Введіть нову назву",
+ "temporaryChat": "Тимчасовий чат"
+}
diff --git a/src/assets/locale/uk/playground.json b/src/assets/locale/uk/playground.json
new file mode 100644
index 0000000..a481804
--- /dev/null
+++ b/src/assets/locale/uk/playground.json
@@ -0,0 +1,29 @@
+{
+ "ollamaState": {
+ "searching": "Пошук вашого Ollama 🦙",
+ "running": "Ollama працює 🦙",
+ "notRunning": "Неможливо підключитися до Ollama 🦙",
+ "connectionError": "Здається, у вас виникла проблема з підключенням. Будь ласка, зверніться до цієї документації для усунення несправностей."
+ },
+ "formError": {
+ "noModel": "Виберіть модель",
+ "noEmbeddingModel": "Налаштуйте модель вкладень на сторінці Налаштування > RAG"
+ },
+ "form": {
+ "textarea": {
+ "placeholder": "Введіть повідомлення..."
+ },
+ "webSearch": {
+ "on": "Увімкнено",
+ "off": "Вимкнено"
+ }
+ },
+ "tooltip": {
+ "searchInternet": "Пошук в Інтернеті",
+ "speechToText": "Голос у текст",
+ "uploadImage": "Завантажити зображення",
+ "stopStreaming": "Зупинити трансляцію",
+ "knowledge": "Знання"
+ },
+ "sendWhenEnter": "Надсилати при натисканні Enter"
+}
diff --git a/src/assets/locale/uk/settings.json b/src/assets/locale/uk/settings.json
new file mode 100644
index 0000000..02dc3e8
--- /dev/null
+++ b/src/assets/locale/uk/settings.json
@@ -0,0 +1,341 @@
+{
+ "generalSettings": {
+ "title": "Загальні налаштування",
+ "settings": {
+ "heading": "Налаштування веб-інтерфейсу",
+ "speechRecognitionLang": {
+ "label": "Мова для розпізнавання голосу",
+ "placeholder": "Виберіть мову"
+ },
+ "language": {
+ "label": "Мова інтерфейсу",
+ "placeholder": "Виберіть мову"
+ },
+ "darkMode": {
+ "label": "Змінити тему",
+ "options": {
+ "light": "Світла",
+ "dark": "Темна"
+ }
+ },
+ "copilotResumeLastChat": {
+ "label": "Поновити останню розмову при відкритті бічної панелі (Copilot)"
+ },
+ "hideCurrentChatModelSettings": {
+ "label": "Приховати налаштування поточної моделі чату"
+ },
+ "restoreLastChatModel": {
+ "label": "Відновити останню використану модель для попередніх чатів"
+ },
+ "sendNotificationAfterIndexing": {
+ "label": "Надсилати сповіщення після завершення обробки бази знань"
+ },
+ "generateTitle": {
+ "label": "Створювати заголовок за допомогою AI"
+ }
+ },
+ "sidepanelRag": {
+ "heading": "Чат з Copilot з налаштуваннями веб-сайту",
+ "ragEnabled": {
+ "label": "Чат з веб-сайтом за допомогою векторних вкладень"
+ },
+ "maxWebsiteContext": {
+ "label": "Розмір вмісту нормального режиму",
+ "placeholder": "Розмір вмісту (типово 4028)"
+ }
+ },
+ "webSearch": {
+ "heading": "Управління веб-пошуком",
+ "searchMode": {
+ "label": "Виконувати простий пошук в Інтернеті"
+ },
+ "provider": {
+ "label": "Пошукова система",
+ "placeholder": "Виберіть пошукову систему"
+ },
+ "totalSearchResults": {
+ "label": "Загальна кількість результатів пошуку",
+ "placeholder": "Введіть загальну кількість результатів пошуку"
+ },
+ "visitSpecificWebsite": {
+ "label": "Відвідати веб-сайт, згаданий у повідомленні"
+ }
+ },
+ "system": {
+ "heading": "Системні налаштування",
+ "deleteChatHistory": {
+ "label": "Видалити історію чату",
+ "button": "Видалити",
+ "confirm": "Ви впевнені, що хочете видалити історію чату? Ця дія не може бути відвернута."
+ },
+ "export": {
+ "label": "Експорт історії чату, бази знань та запитів",
+ "button": "Експортувати дані",
+ "success": "Експорт успішний"
+ },
+ "import": {
+ "label": "Імпорт історії чату, бази знань, та запитів",
+ "button": "Імпортувати дані",
+ "success": "Імпорт успішний",
+ "error": "Помилка імпорту"
+ }
+ },
+ "tts": {
+ "heading": "Налаштування Текст-у-Голос",
+ "ttsEnabled": {
+ "label": "Увімкнути Текст-у-Голос"
+ },
+ "ttsProvider": {
+ "label": "Поставник Текст-у-Голос",
+ "placeholder": "Виберіть постачальника"
+ },
+ "ttsVoice": {
+ "label": "Голос Текст-у-Голос",
+ "placeholder": "Виберіть голос"
+ },
+ "ssmlEnabled": {
+ "label": "Ввімкнути SSML (Мова Розмітки для Синтезу Голосу)"
+ }
+ }
+ },
+ "manageModels": {
+ "title": "Управління моделями",
+ "addBtn": "Додати нову модель",
+ "columns": {
+ "name": "Назва",
+ "digest": "Хеш",
+ "modifiedAt": "Оновлено",
+ "size": "Розмір",
+ "actions": "Дії"
+ },
+ "expandedColumns": {
+ "parentModel": "Батьківська модель",
+ "format": "Формат",
+ "family": "Сімʼя",
+ "parameterSize": "Розмір параметрів",
+ "quantizationLevel": "Рівень квантування"
+ },
+ "tooltip": {
+ "delete": "Видалити модель",
+ "repull": "Повторно завантажити модель"
+ },
+ "confirm": {
+ "delete": "Ви впевнені, що хочете видалити цю модель?",
+ "repull": "Ви впевнені, що хочете повторно завантажити цю модель?"
+ },
+ "modal": {
+ "title": "Додати нову модель",
+ "placeholder": "Введіть назву моделі",
+ "pull": "Завантажити модель"
+ },
+ "notification": {
+ "pullModel": "Завантаження моделі",
+ "pullModelDescription": "Завантажується модель {{modelName}}. Для отримання додаткової інформації перевірте іконку розширення.",
+ "success": "Успіх",
+ "error": "Помилка",
+ "successDescription": "Модель успішно завантажена",
+ "successDeleteDescription": "Модель успішно видалена",
+ "someError": "Щось пішло не так. Будь ласка, спробуйте пізніше."
+ }
+ },
+ "managePrompts": {
+ "title": "Управління запитами",
+ "addBtn": "Додати новий запит",
+ "option1": "Нормальний",
+ "option2": "RAG",
+ "questionPrompt": "Питання-запит",
+ "segmented": {
+ "custom": "Власні запити",
+ "copilot": "Запити Copilot"
+ },
+ "columns": {
+ "title": "Назва",
+ "prompt": "Запит",
+ "type": "Тип запиту",
+ "actions": "Дії"
+ },
+ "systemPrompt": "Системний запит",
+ "quickPrompt": "Швидкий запит",
+ "tooltip": {
+ "delete": "Видалити запит",
+ "edit": "Редагувати запит"
+ },
+ "confirm": {
+ "delete": "Ви впевнені, що хочете видалити цей запит? Його не вдасться відновити."
+ },
+ "modal": {
+ "addTitle": "Додати новий запит",
+ "editTitle": "Редагувати запит"
+ },
+ "form": {
+ "title": {
+ "label": "Назва",
+ "placeholder": "Мій чудовий запит",
+ "required": "Будь ласка, введіть назву"
+ },
+ "prompt": {
+ "label": "Запит",
+ "placeholder": "Введіть запит",
+ "required": "Будь ласка, введіть запит",
+ "help": "Ви можете використовувати {key} як змінну у вашому запиті.",
+ "missingTextPlaceholder": "Змінна {text} відсутня в запиті. Додайте її, будь ласка."
+ },
+ "isSystem": {
+ "label": "Це системний запит"
+ },
+ "btnSave": {
+ "saving": "Додавання запиту...",
+ "save": "Додати запит"
+ },
+ "btnEdit": {
+ "saving": "Оновлення запиту...",
+ "save": "Оновити запит"
+ }
+ },
+ "notification": {
+ "addSuccess": "Запит додано",
+ "addSuccessDesc": "Запит успішно додано",
+ "error": "Збій",
+ "someError": "Щось пішло не так. Спробуйте знову пізніше",
+ "updatedSuccess": "Запит оновлено",
+ "updatedSuccessDesc": "Запит успішно оновлено",
+ "deletedSuccess": "Запит видалено",
+ "deletedSuccessDesc": "Запит успішно видалено"
+ }
+ },
+ "manageShare": {
+ "title": "Управління спільним доступом",
+ "heading": "Налаштування URL спільного доступу до сторінки",
+ "form": {
+ "url": {
+ "label": "URL спільного доступу до сторінки",
+ "placeholder": "Введіть URL спільного доступу до сторінки",
+ "required": "Будь ласка, введіть ваш URL спільного доступу!",
+ "help": "З міркувань конфіденційності, ви можете самостійно обробляти спільний доступ до сторінки через цей URL. Дізнатися більше."
+ }
+ },
+ "webshare": {
+ "heading": "Спільний доступ через веб",
+ "columns": {
+ "title": "Назва",
+ "url": "URL",
+ "actions": "Дії"
+ },
+ "tooltip": {
+ "delete": "Видалити спільний доступ"
+ },
+ "confirm": {
+ "delete": "Ви впевнені, що хочете видалити цей спільний доступ? Його не вдасться відновити."
+ },
+ "label": "Управління спільним доступом до сторінки",
+ "description": "Включіть або вимкніть функцію спільного доступу до сторінки"
+ },
+ "notification": {
+ "pageShareSuccess": "URL спільного доступу до сторінки оновлено успішно",
+ "someError": "Щось пішло не так. Будь ласка, спробуйте пізніше",
+ "webShareDeleteSuccess": "Спільний доступ видалено успішно"
+ }
+ },
+ "ollamaSettings": {
+ "title": "Налаштування Ollama",
+ "heading": "Налаштуйте Ollama",
+ "settings": {
+ "ollamaUrl": {
+ "label": "URL до Ollama",
+ "placeholder": "Введіть URL до Ollama"
+ },
+ "advanced": {
+ "label": "Розширене налаштування URL Ollama",
+ "urlRewriteEnabled": {
+ "label": "Увімкнути або вимкнути налаштування власного URL походження запиту"
+ },
+ "rewriteUrl": {
+ "label": "Власний URL походження запиту",
+ "placeholder": "Введіть власний URL походження"
+ },
+ "headers": {
+ "label": "Власні заголовки",
+ "add": "Додати заголовок",
+ "key": {
+ "label": "Ключ заголовка",
+ "placeholder": "Authorization"
+ },
+ "value": {
+ "label": "Значення заголовка",
+ "placeholder": "Bearer token"
+ }
+ },
+ "help": "Якщо у вас виникають проблеми з підключенням до Ollama на Page Assist, ви можете налаштувати власний URL походження запиту. Щоб дізнатися більше про це налаштування, натисніть тут."
+ }
+ }
+ },
+ "manageSearch": {
+ "title": "Управління пошуком в Інтернеті",
+ "heading": "Налаштуйте пошук в Інтернеті"
+ },
+ "about": {
+ "title": "Про додаток",
+ "heading": "Інформація про цей додаток",
+ "chromeVersion": "Версія Page Assist",
+ "ollamaVersion": "Версія Ollama",
+ "support": "Ви можете підтримати проект Page Assist, зробивши пожертву або ставши спонсором через наступні платформи:",
+ "koFi": "Підтримка на Ko-fi",
+ "githubSponsor": "Стати спонсором на GitHub",
+ "githubRepo": "Репозиторій GitHub"
+ },
+ "manageKnowledge": {
+ "title": "Управління знаннями",
+ "heading": "Налаштування бази знань"
+ },
+ "rag": {
+ "title": "Налаштування RAG",
+ "ragSettings": {
+ "label": "Налаштування RAG",
+ "model": {
+ "label": "Модель вбудованих даних",
+ "required": "Будь ласка, виберіть модель",
+ "help": "Рекомендується використовувати моделі вбудованих даних, такі як `nomic-embed-text`.",
+ "placeholder": "Вибрати модель"
+ },
+ "chunkSize": {
+ "label": "Розмір шматка",
+ "placeholder": "Ввести розмір шматка",
+ "required": "Будь ласка, введіть розмір шматка"
+ },
+ "chunkOverlap": {
+ "label": "Перекриття шматків",
+ "placeholder": "Ввести перекриття шматків",
+ "required": "Будь ласка, введіть перекриття шматків"
+ },
+ "totalFilePerKB": {
+ "label": "Типовий ліміт кількості завантажень файлів до бази знань",
+ "placeholder": "Введіть типовий ліміт (напр. 10)",
+ "required": "Будь ласка, введіть типовий ліміт кількості файлів для завантаження"
+ },
+ "noOfRetrievedDocs": {
+ "label": "Кількість отриманих документів",
+ "placeholder": "Ввести кількість отриманих документів",
+ "required": "Будь ласка, введіть кількість документів"
+ }
+ },
+ "prompt": {
+ "label": "Налаштування запиту з RAG",
+ "option1": "Нормальний",
+ "option2": "З Веб-пошуком",
+ "alert": "Налаштування системного запиту тут застаріло. Використовуйте розділ «Управління запитами», щоб додавати або редагувати запити. Цей розділ буде видалено в майбутньому оновленні",
+ "systemPrompt": "Системний запит",
+ "systemPromptPlaceholder": "Ввести системний запит",
+ "webSearchPrompt": "Запит веб-пошуку",
+ "webSearchPromptHelp": "Не видаляйте `{search_results}` із запиту.",
+ "webSearchPromptError": "Будь ласка, введіть запит для веб-пошуку",
+ "webSearchPromptPlaceholder": "Ввести запит для веб-пошуку",
+ "webSearchFollowUpPrompt": "Запит для подальшого пошуку в мережі",
+ "webSearchFollowUpPromptHelp": "Не видаляйте `{chat_history}` і `{question}` із запиту.",
+ "webSearchFollowUpPromptError": "Будь ласка, введіть запит для подальшого пошуку в мережі!",
+ "webSearchFollowUpPromptPlaceholder": "Ваш запит для подальшого пошуку в мережі"
+ }
+ },
+ "chromeAiSettings": {
+ "title": "Налаштування Chrome AI"
+ }
+}
diff --git a/src/assets/locale/uk/sidepanel.json b/src/assets/locale/uk/sidepanel.json
new file mode 100644
index 0000000..ad8250a
--- /dev/null
+++ b/src/assets/locale/uk/sidepanel.json
@@ -0,0 +1,7 @@
+{
+ "tooltip": {
+ "embed": "Може знадобитися кілька хвилин для вкладення сторінки у базу. Будь ласка, зачекайте...",
+ "clear": "Стерти історію чату",
+ "history": "Історія чату"
+ }
+}
diff --git a/src/i18n/index.ts b/src/i18n/index.ts
index effddb4..5897a1e 100644
--- a/src/i18n/index.ts
+++ b/src/i18n/index.ts
@@ -3,6 +3,7 @@ import { initReactI18next } from "react-i18next";
import { en } from "./lang/en";
import { pt } from "./lang/pt";
import { fr } from "./lang/fr";
+import { uk } from "./lang/uk";
import { ru } from "./lang/ru";
import { ml } from "./lang/ml";
import { zh } from "./lang/zh";
@@ -28,6 +29,8 @@ i18n
ml: ml,
"pt-BR": pt,
"zh-CN": zh,
+ uk: uk,
+ "uk-UA": uk,
ru: ru,
"ru-RU": ru,
zh: zh,
diff --git a/src/i18n/lang/uk.ts b/src/i18n/lang/uk.ts
new file mode 100644
index 0000000..a1abf62
--- /dev/null
+++ b/src/i18n/lang/uk.ts
@@ -0,0 +1,19 @@
+import option from "@/assets/locale/uk/option.json";
+import playground from "@/assets/locale/uk/playground.json";
+import common from "@/assets/locale/uk/common.json";
+import sidepanel from "@/assets/locale/uk/sidepanel.json";
+import settings from "@/assets/locale/uk/settings.json";
+import knowledge from "@/assets/locale/uk/knowledge.json";
+import chrome from "@/assets/locale/uk/chrome.json";
+import openai from "@/assets/locale/uk/openai.json";
+
+export const uk = {
+ option,
+ playground,
+ common,
+ sidepanel,
+ settings,
+ knowledge,
+ chrome,
+ openai
+}
\ No newline at end of file
diff --git a/src/i18n/support-language.ts b/src/i18n/support-language.ts
index 273964d..4787ab6 100644
--- a/src/i18n/support-language.ts
+++ b/src/i18n/support-language.ts
@@ -16,6 +16,10 @@ export const supportLanguage = [
label: "Italiano",
value: "it"
},
+ {
+ label: "Ukrainian",
+ value: "uk"
+ },
{
label: "Russian",
value: "ru"