156 lines
No EOL
11 KiB
JavaScript
156 lines
No EOL
11 KiB
JavaScript
// PUBLIC DOMAIN - NO LICENSE, NO WARRANTY
|
||
// Copyright 2025 TimeHexOn & foxhop & russell@unturf
|
||
// https://www.permacomputer.com
|
||
|
||
// Russian (Русский) UI Translations
|
||
export const ru = {
|
||
// Main buttons
|
||
readPage: "📖 Читать Страницу",
|
||
ttsAnything: "🔊 TTS Всё",
|
||
translate: "🌐 Перевести",
|
||
smartTranslate: "🤖 Умный Перевод",
|
||
uploadFile: "📁 Загрузить Файл",
|
||
|
||
// Actions
|
||
refreshModels: "🔄 Обновить Модели",
|
||
clearChat: "🗑️ Очистить Чат",
|
||
fullChatRaw: "📋 Полный Чат Сырой",
|
||
fullChatHTML: "📄 Полный Чат HTML",
|
||
fullPageRaw: "📝 Полная Страница Сырая",
|
||
downloadChat: "💾 Скачать Чат",
|
||
|
||
// Chat UI
|
||
sendButton: "Отправить",
|
||
typePlaceholder: "Введите ваше сообщение...",
|
||
clearChatConfirm: "Очистить всю историю разговоров?",
|
||
askAnythingPlaceholder: "Спросить что угодно...",
|
||
askPagePlaceholder: "Спросить об этой странице...",
|
||
enterTextToSpeakPlaceholder: "Введите текст для произношения...",
|
||
processingTokens: "🤖 Обработка {tokens} токенов...",
|
||
|
||
// Modal headers
|
||
aiAssistantTitle: "ИИ Ассистент",
|
||
ttsModalTitle: "Текст в Речь",
|
||
translateModalTitle: "Перевести",
|
||
|
||
// System messages
|
||
pageContentPrefix: "Вот содержимое веб-страницы:",
|
||
additionalContext:
|
||
"Вы встроены в эту страницу. При ответе на вопросы учитывайте содержимое страницы и контекст.",
|
||
|
||
// Notifications and alerts
|
||
languageChanged:
|
||
"Язык установлен на {lang}. Обновите страницу, чтобы увидеть все элементы интерфейса на предпочитаемом языке.",
|
||
translationFailed: "Перевод не удался: {error}",
|
||
ttsFailed: "TTS не удался: {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: "Введите любой текст для перевода...",
|
||
|
||
// Translation modal tabs
|
||
translatePageTab: "📄 Перевести Страницу",
|
||
customTextTab: "✏️ Пользовательский Текст",
|
||
|
||
// TTS modal components
|
||
speedLabel: "Скорость:",
|
||
playText: "Воспроизвести Текст",
|
||
|
||
// Translation modal content
|
||
translatePageInfo: "Переведите содержимое текущей страницы на выбранный язык:",
|
||
translateToLabel: "Перевести на:",
|
||
translateButton: "🌐 Перевести",
|
||
translatePageButton: "🌐 Перевести Страницу",
|
||
translateTextButton: "🌐 Перевести Текст",
|
||
processingText: "Обработка...",
|
||
|
||
// 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: "Пожалуйста, введите текст для перевода!",
|
||
|
||
// Read page status messages
|
||
processingContent: "Обработка контента...",
|
||
readingPageClickToPause: "Чтение страницы... Нажмите для паузы",
|
||
pausedClickToResume: "На паузе. Нажмите для продолжения",
|
||
downloadPageAudio: "Загрузите mp3-файл с преобразованием текста в речь для этой страницы.",
|
||
downloadChatAudio: "Скачать это сообщение как .mp3 файл.",
|
||
deleteMessage: "Удалить сообщение",
|
||
copyRawMarkdown: "Копировать исходный текст (Markdown)",
|
||
copyHTML: "Копировать HTML",
|
||
aiModalNotAvailable: "Модальное окно ИИ недоступно в этом контексте",
|
||
useCustomAPI: "Используйте пользовательскую конечную точку, совместимую с OpenAI.",
|
||
remoteUrlTab: "🌐 Удаленный URL",
|
||
remoteUrlInfo: "Введите URL для загрузки и перевода:",
|
||
remoteUrlPlaceholder: "https://example.com",
|
||
fetchAndTranslate: "🌐 Загрузить и Перевести",
|
||
|
||
// 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: "Настройки удалены.",
|
||
}; |