156 lines
11 KiB
JavaScript
156 lines
11 KiB
JavaScript
// PUBLIC DOMAIN - NO LICENSE, NO WARRANTY
|
||
// Copyright 2025 TimeHexOn & foxhop & russell@unturf
|
||
// https://www.permacomputer.com
|
||
|
||
// Ukrainian UI Translations
|
||
export const uk = {
|
||
// Main buttons
|
||
readPage: "📖 Читати Сторінку",
|
||
ttsAnything: "🔊 Озвучити Текст",
|
||
translate: "🌐 Перекласти",
|
||
smartTranslate: "🤖 Розумний Переклад",
|
||
uploadFile: "📁 Завантажити Файл",
|
||
|
||
// Actions
|
||
refreshModels: "🔄 Оновити Моделі",
|
||
clearChat: "🗑️ Очистити Чат",
|
||
fullChatRaw: "📋 Весь Чат Raw",
|
||
fullChatHTML: "📄 Весь Чат HTML",
|
||
fullPageRaw: "📝 Вся Сторінка Raw",
|
||
downloadChat: "💾 Завантажити Чат",
|
||
|
||
// Chat UI
|
||
sendButton: "Надіслати",
|
||
typePlaceholder: "Введіть ваше повідомлення...",
|
||
askPagePlaceholder: "Запитайте про цю сторінку...",
|
||
askAnythingPlaceholder: "Запитайте що завгодно...",
|
||
enterTextToSpeakPlaceholder: "Введіть текст для озвучення...",
|
||
clearChatConfirm: "Очистити всю історію розмови?",
|
||
|
||
// Modal headers
|
||
aiAssistantTitle: "Асистент ШІ",
|
||
ttsModalTitle: "Озвучення Тексту",
|
||
translateModalTitle: "Перекласти",
|
||
|
||
// System messages
|
||
pageContentPrefix: "Ось вміст веб-сторінки:",
|
||
additionalContext:
|
||
"Ви вбудовані на цій сторінці. Відповідаючи на запитання, враховуйте вміст та контекст сторінки.",
|
||
|
||
// Notifications and alerts
|
||
languageChanged:
|
||
"Мову встановлено на {lang}. Оновіть сторінку, щоб побачити всі елементи інтерфейсу вашою обраною мовою.",
|
||
translationFailed: "Переклад не вдався: {error}",
|
||
ttsFailed: "Озвучення не вдалося: {error}",
|
||
fullChatCopied: "Весь чат скопійовано як сирий markdown!",
|
||
fullChatHTMLCopied: "Весь чат скопійовано як HTML!",
|
||
fullPageCopied: "Всю сторінку скопійовано як markdown!",
|
||
failedToCopy: "Не вдалося скопіювати: {error}",
|
||
failedToCopyPage: "Не вдалося скопіювати сторінку: {error}",
|
||
failedToCopyCode: "Не вдалося скопіювати код: {error}",
|
||
errorOpeningModal: "Помилка відкриття модального вікна ШІ: {error}",
|
||
failedToReadPage: "Не вдалося прочитати сторінку: {error}",
|
||
languageDetectionFailed: "Не вдалося визначити мову: {error}",
|
||
|
||
// Dropdown labels
|
||
currentPage: "Поточна сторінка: {lang}",
|
||
translatingTo: "Переклад...",
|
||
detectingLanguage: "🔍 Визначення...",
|
||
|
||
// Intro/header text
|
||
hermesIntro:
|
||
'представляє велику мовну модель <a href="https://nousresearch.com/hermes3/" target="_blank" style="color: rgba(255,255,255,0.9); text-decoration: underline;">hermes</a> від nous research',
|
||
discussingPage: "Ви обговорюєте",
|
||
|
||
// TTS placeholder
|
||
ttsPlaceholder:
|
||
"озвучення тексту: напишіть будь-яке повідомлення і нехай штучний інтелект озвучить його!",
|
||
translatePlaceholder: "Введіть будь-який текст для перекладу...",
|
||
|
||
// Read page status messages
|
||
processingContent: "Обробка вмісту...",
|
||
readingPageClickToPause: "Читання сторінки... Натисніть, щоб призупинити",
|
||
pausedClickToResume: "Призупинено. Натисніть, щоб продовжити",
|
||
downloadPageAudio: "Завантажити файл .mp3 озвучення для цієї сторінки.",
|
||
downloadChatAudio: "Завантажити це повідомлення як файл .mp3.",
|
||
deleteMessage: "Видалити повідомлення",
|
||
copyRawMarkdown: "Копіювати сирий (Markdown)",
|
||
copyHTML: "Копіювати HTML",
|
||
|
||
// Translation modal tabs
|
||
translatePageTab: "📄 Перекласти Сторінку",
|
||
customTextTab: "✏️ Власний Текст",
|
||
remoteUrlTab: "🌐 Віддалений URL",
|
||
|
||
// TTS modal components
|
||
speedLabel: "Швидкість:",
|
||
playText: "Відтворити Текст",
|
||
|
||
// Translation modal content
|
||
translatePageInfo: "Перекладіть вміст поточної сторінки на обрану мову:",
|
||
translateToLabel: "Перекласти на:",
|
||
translateButton: "🌐 Перекласти",
|
||
translatePageButton: "🌐 Перекласти Сторінку",
|
||
translateTextButton: "🌐 Перекласти Текст",
|
||
remoteUrlInfo: "Введіть URL для завантаження та перекладу:",
|
||
remoteUrlPlaceholder: "https://приклад.ua",
|
||
fetchAndTranslate: "🌐 Завантажити та Перекласти",
|
||
processingText: "Обробка...",
|
||
processingTokens: "🤖 Обробка {tokens} токенів...",
|
||
|
||
// Button labels for UI
|
||
translationModal: "🌐 Модальне Вікно Перекладу",
|
||
translationModalHeading: "Модальне Вікно Перекладу",
|
||
|
||
// System prompt components
|
||
systemPromptIntro: "Ви — Hermes AI, що працює на базі Nous Research, вбудований на веб-сторінку через uncloseai.com. Ваше завдання — створити контекстуально розумне вступне слово з 3 абзаців, що демонструє глибоке розуміння конкретного вмісту сторінки, її мети та аудиторії.",
|
||
systemPromptTask1: "1. Почніть природно, визначивши, про що ця сторінка — будьте конкретними: згадайте назву сторінки, основну тему, ім'я автора якщо є, або основну мету. Покажіть негайне розуміння типу контенту (стаття, документація, сторінка продукту тощо)",
|
||
systemPromptTask2: "2. Посилайтеся на 2-3 дуже конкретні деталі зі сторінки — цитуйте точні фрази, наводьте конкретні дані, згадуйте окремі розділи або функції, які ви помічаєте. Продемонструйте, що ви проаналізували фактичний вміст, а не просто переглянули його.",
|
||
systemPromptTask3: "3. Запропонуйте контекстуально релевантну допомогу залежно від типу сторінки — для технічної документації запропонуйте пояснити концепції; для статей запропонуйте обговорити ідеї; для продуктів відповідайте про функції. Будьте конкретними щодо того, ЯК ви можете допомогти з ЦИМ конкретним вмістом.",
|
||
systemPromptInstructions: "Будьте розмовними, але компетентними. Базуйте свій вступ на фактичному вмісті сторінки. Уникайте загальних тверджень. Пишіть природно",
|
||
|
||
// More alerts and messages
|
||
pleaseEnterText: "Будь ласка, спочатку введіть текст!",
|
||
pleaseSelectFile: "Будь ласка, спочатку виберіть файл!",
|
||
pleaseEnterTranslateText: "Будь ласка, введіть текст для перекладу!",
|
||
aiModalNotAvailable: "Модальне вікно ШІ недоступне в цьому контексті",
|
||
useCustomAPI: "Використовувати власний openai-сумісний endpoint.",
|
||
|
||
// Unsandbox code execution settings
|
||
useUnsandbox: "Використовуйте API-ключі unsandbox.com для виконання коду.",
|
||
unsandboxPublicKey: "Публічний Ключ (unsb-pk-...)",
|
||
unsandboxSecretKey: "Секретний Ключ (unsb-sk-...)",
|
||
|
||
// Vault settings
|
||
vaultLoggedIn: "Увійшли",
|
||
vaultLocked: "Налаштування Заблоковано",
|
||
vaultUnlocked: "Налаштування Розблоковано",
|
||
vaultCreate: "Зберегти Налаштування",
|
||
vaultUnlock: "Розблокувати Налаштування",
|
||
vaultLock: "Заблокувати",
|
||
vaultLockTooltip: "Заблокувати налаштування (вийти)",
|
||
vaultPassword: "Пароль",
|
||
vaultPasswordPlaceholder: "Оберіть пароль...",
|
||
vaultConfirmPassword: "Підтвердіть пароль",
|
||
vaultConfirmPlaceholder: "Підтвердіть ваш пароль...",
|
||
vaultWrongPassword: "Цей пароль не підійшов. Спробуйте ще раз.",
|
||
vaultPasswordMismatch: "Паролі не збігаються.",
|
||
vaultPasswordTooShort: "Пароль повинен містити щонайменше 8 символів.",
|
||
vaultCreated: "Налаштування збережено!",
|
||
vaultUnlockedMsg: "З поверненням!",
|
||
vaultLockedMsg: "Налаштування заблоковано.",
|
||
vaultRequired: "Введіть пароль для доступу до налаштувань.",
|
||
vaultWelcome: "Ваші налаштування (модель, голос, API-ключі) та розмови в чаті зашифровані за допомогою обраного вами пароля. Це забезпечує їхню конфіденційність на цьому пристрої.",
|
||
vaultLine1: "Ваші налаштування та розмови зашифровані за допомогою пароля.",
|
||
vaultLine2: "Це забезпечує їхню конфіденційність на цьому пристрої.",
|
||
vaultWelcomeBack: "З поверненням! Введіть пароль для доступу до збережених налаштувань та розмов.",
|
||
vaultCreateInfo: "Оберіть пароль для захисту налаштувань та розмов. Ваші вподобання, API-ключі та історія чату будуть зашифровані та збережені локально.",
|
||
vaultSessionInfo: "Ви залишитеся увійденими, доки не заблокуєте свої налаштування.",
|
||
vaultChangePassword: "Змінити Пароль",
|
||
vaultDeleteVault: "Видалити Налаштування",
|
||
vaultDeleteConfirm: "Ви впевнені? Це видалить усі ваші збережені налаштування з цього пристрою.",
|
||
vaultCurrentPassword: "Поточний пароль",
|
||
vaultNewPassword: "Новий пароль",
|
||
vaultPasswordChanged: "Пароль змінено!",
|
||
vaultDeleted: "Налаштування видалено.",
|
||
};
|