From 1d675d09fb1d00fc765eb7351e233453fdfb2b42 Mon Sep 17 00:00:00 2001 From: Timothy Carambat <rambat1010@gmail.com> Date: Thu, 20 Jun 2024 15:36:39 -0700 Subject: [PATCH] RU Transaltions (#1734) * ru language added * uncheck bad changes Use chatGPT to create new dictionary for RU translation turn off debug mode in produ for i18n patch issue with null comparison in verifyTranslation.js --------- Co-authored-by: UUSR <konstantik@gmail.com> --- frontend/src/i18n.js | 2 +- frontend/src/locales/resources.js | 8 + frontend/src/locales/ru/common.js | 415 ++++++++++++++++++++ frontend/src/locales/verifyTranslations.mjs | 6 +- 4 files changed, 429 insertions(+), 2 deletions(-) create mode 100644 frontend/src/locales/ru/common.js diff --git a/frontend/src/i18n.js b/frontend/src/i18n.js index 2f5ca580c..5344e1f9f 100644 --- a/frontend/src/i18n.js +++ b/frontend/src/i18n.js @@ -9,7 +9,7 @@ i18next .use(LanguageDetector) .init({ fallbackLng: "en", - debug: true, + debug: import.meta.env.DEV, defaultNS, resources, lowerCaseLng: true, diff --git a/frontend/src/locales/resources.js b/frontend/src/locales/resources.js index d2072d34a..04c06502e 100644 --- a/frontend/src/locales/resources.js +++ b/frontend/src/locales/resources.js @@ -10,10 +10,15 @@ // to a specific language file as this will break the other languages. Any new keys should be added to english // and the language file you are working on. +// Contributor Notice: If you are adding a translation you MUST locally run `yarn verify:translations` from the root prior to PR. +// please do not submit PR's without first verifying this test passes as it will tell you about missing keys or values +// from the primary dictionary. + import English from "./en/common.js"; import Spanish from "./es/common.js"; import French from "./fr/common.js"; import Mandarin from "./zh/common.js"; +import Russian from "./ru/common.js"; export const defaultNS = "common"; export const resources = { @@ -29,4 +34,7 @@ export const resources = { fr: { common: French, }, + ru: { + common: Russian, + }, }; diff --git a/frontend/src/locales/ru/common.js b/frontend/src/locales/ru/common.js new file mode 100644 index 000000000..34f9591c6 --- /dev/null +++ b/frontend/src/locales/ru/common.js @@ -0,0 +1,415 @@ +const TRANSLATIONS = { + common: { + "workspaces-name": "Ð˜Ð¼Ñ Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ñ… проÑтранÑтв", + error: "ошибка", + success: "уÑпех", + user: "Пользователь", + selection: "Выбор модели", + saving: "Сохранение...", + save: "Сохранить изменениÑ", + previous: "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница", + next: "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница", + }, + settings: { + title: "ÐаÑтройки ÑкземплÑра", + system: "СиÑтемные наÑтройки", + invites: "Приглашение", + users: "Пользователи", + workspaces: "Рабочие проÑтранÑтва", + "workspace-chats": "Чат рабочего проÑтранÑтва", + appearance: "Внешний вид", + "api-keys": "API ключи", + llm: "Предпочтение LLM", + transcription: "Модель транÑкрипции", + embedder: "ÐаÑтройки вÑтраиваниÑ", + "text-splitting": "Разделение и ÑÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚ÐµÐºÑта", + "vector-database": "Ð’ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных", + embeds: "Виджеты вÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ‡Ð°Ñ‚Ð°", + "embed-chats": "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²ÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ‡Ð°Ñ‚Ð¾Ð²", + security: "БезопаÑноÑÑ‚ÑŒ", + "event-logs": "Журналы Ñобытий", + privacy: "КонфиденциальноÑÑ‚ÑŒ и данные", + }, + login: { + "multi-user": { + welcome: "Добро пожаловать в", + "placeholder-username": "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ", + "placeholder-password": "Пароль", + login: "Войти", + validating: "Проверка...", + "forgot-pass": "Забыли пароль", + reset: "СброÑить", + }, + "sign-in": { + start: "Войти в ваш", + end: "аккаунт.", + }, + }, + "workspaces—settings": { + general: "Общие наÑтройки", + chat: "ÐаÑтройки чата", + vector: "Ð’ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных", + members: "УчаÑтники", + agent: "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°", + }, + general: { + vector: { + title: "КоличеÑтво векторов", + description: "Общее количеÑтво векторов в вашей векторной базе данных.", + }, + names: { + description: + "Ðто изменит только отображаемое Ð¸Ð¼Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ рабочего проÑтранÑтва.", + }, + message: { + title: "Предлагаемые ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‡Ð°Ñ‚Ð°", + description: + "ÐаÑтройте ÑообщениÑ, которые будут предложены пользователÑм вашего рабочего проÑтранÑтва.", + add: "Добавить новое Ñообщение", + save: "Сохранить ÑообщениÑ", + heading: "ОбъÑÑните мне", + body: "преимущеÑтва AnythingLLM", + }, + pfp: { + title: "Изображение Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð½Ð¸ÐºÐ°", + description: + "ÐаÑтройте изображение Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð½Ð¸ÐºÐ° Ð´Ð»Ñ Ñтого рабочего проÑтранÑтва.", + image: "Изображение рабочего проÑтранÑтва", + remove: "Удалить изображение рабочего проÑтранÑтва", + }, + delete: { + delete: "Удалить рабочее проÑтранÑтво", + deleting: "Удаление рабочего проÑтранÑтва...", + "confirm-start": "Ð’Ñ‹ ÑобираетеÑÑŒ удалить веÑÑŒ ваш", + "confirm-end": + "рабочее проÑтранÑтво. Ðто удалит вÑе векторные вÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð² вашей векторной базе данных.\n\nОригинальные иÑходные файлы оÑтанутÑÑ Ð½ÐµÑ‚Ñ€Ð¾Ð½ÑƒÑ‚Ñ‹Ð¼Ð¸. Ðто дейÑтвие необратимо.", + }, + }, + chat: { + llm: { + title: "ПоÑтавщик LLM рабочего проÑтранÑтва", + description: + "Конкретный поÑтавщик и модель LLM, которые будут иÑпользоватьÑÑ Ð´Ð»Ñ Ñтого рабочего проÑтранÑтва. По умолчанию иÑпользуетÑÑ ÑиÑтемный поÑтавщик и наÑтройки LLM.", + search: "ИÑкать вÑех поÑтавщиков LLM", + }, + model: { + title: "Модель чата рабочего проÑтранÑтва", + description: + "ÐšÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ чата, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ иÑпользоватьÑÑ Ð´Ð»Ñ Ñтого рабочего проÑтранÑтва. ЕÑли пуÑто, будет иÑпользоватьÑÑ ÑиÑтемное предпочтение LLM.", + wait: "-- ожидание моделей --", + }, + mode: { + title: "Режим чата", + chat: { + title: "Чат", + "desc-start": "будет предоÑтавлÑÑ‚ÑŒ ответы Ñ Ð¾Ð±Ñ‰ÐµÐ¹ информацией LLM", + and: "и", + "desc-end": "найденный контекÑÑ‚ документов.", + }, + query: { + title: "ЗапроÑ", + "desc-start": "будет предоÑтавлÑÑ‚ÑŒ ответы", + only: "только", + "desc-end": "еÑли найден контекÑÑ‚ документов.", + }, + }, + history: { + title: "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ‡Ð°Ñ‚Ð°", + "desc-start": + "КоличеÑтво предыдущих чатов, которые будут включены в краткоÑрочную памÑÑ‚ÑŒ ответа.", + recommend: "Рекомендуем 20.", + "desc-end": + "Любое количеÑтво более 45 может привеÑти к непрерывным ÑбоÑм чата в завиÑимоÑти от размера Ñообщений.", + }, + prompt: { + title: "ПодÑказка", + description: + "ПодÑказка, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ иÑпользоватьÑÑ Ð² Ñтом рабочем проÑтранÑтве. Определите контекÑÑ‚ и инÑтрукции Ð´Ð»Ñ AI Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°. Ð’Ñ‹ должны предоÑтавить тщательно разработанную подÑказку, чтобы AI мог генерировать релевантный и точный ответ.", + }, + refusal: { + title: "Ответ об отказе в режиме запроÑа", + "desc-start": "Ð’ режиме", + query: "запроÑа", + "desc-end": + "вы можете вернуть пользовательÑкий ответ об отказе, еÑли контекÑÑ‚ не найден.", + }, + temperature: { + title: "Температура LLM", + "desc-start": + "Ðтот параметр контролирует, наÑколько 'креативными' будут ответы вашего LLM.", + "desc-end": + "Чем выше чиÑло, тем более креативные ответы. Ð”Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… моделей Ñто может привеÑти к неÑвÑзным ответам при Ñлишком выÑоких наÑтройках.", + hint: "БольшинÑтво LLM имеют различные допуÑтимые диапазоны значений. ПроконÑультируйтеÑÑŒ Ñ Ð²Ð°ÑˆÐ¸Ð¼ поÑтавщиком LLM Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñтой информации.", + }, + }, + "vector-workspace": { + identifier: "Идентификатор векторной базы данных", + snippets: { + title: "МакÑимальное количеÑтво контекÑтных фрагментов", + description: + "Ðтот параметр контролирует макÑимальное количеÑтво контекÑтных фрагментов, которые будут отправлены LLM Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ чата или запроÑа.", + recommend: "Рекомендуемое количеÑтво: 4", + }, + doc: { + title: "Порог ÑходÑтва документов", + description: + "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ†ÐµÐ½ÐºÐ° ÑходÑтва, Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы иÑточник ÑчиталÑÑ ÑвÑзанным Ñ Ñ‡Ð°Ñ‚Ð¾Ð¼. Чем выше чиÑло, тем более Ñхожим должен быть иÑточник Ñ Ñ‡Ð°Ñ‚Ð¾Ð¼.", + zero: "Без ограничений", + low: "Ðизкий (оценка ÑходÑтва ≥ .25)", + medium: "Средний (оценка ÑходÑтва ≥ .50)", + high: "Ð’Ñ‹Ñокий (оценка ÑходÑтва ≥ .75)", + }, + reset: { + reset: "Ð¡Ð±Ñ€Ð¾Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¾Ð¹ базы данных", + resetting: "ОчиÑтка векторов...", + confirm: + "Ð’Ñ‹ ÑобираетеÑÑŒ ÑброÑить векторную базу данных Ñтого рабочего проÑтранÑтва. Ðто удалит вÑе текущие векторные вÑтраиваниÑ.\n\nОригинальные иÑходные файлы оÑтанутÑÑ Ð½ÐµÑ‚Ñ€Ð¾Ð½ÑƒÑ‚Ñ‹Ð¼Ð¸. Ðто дейÑтвие необратимо.", + error: "Ðе удалоÑÑŒ ÑброÑить векторную базу данных рабочего проÑтранÑтва!", + success: "Ð’ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных рабочего проÑтранÑтва была Ñброшена!", + }, + }, + agent: { + "performance-warning": + "ПроизводительноÑÑ‚ÑŒ LLM, не поддерживающих вызовы инÑтрументов, Ñильно завиÑит от возможноÑтей и точноÑти модели. Ðекоторые ÑпоÑобноÑти могут быть ограничены или не функционировать.", + provider: { + title: "ПоÑтавщик LLM агента рабочего проÑтранÑтва", + description: + "Конкретный поÑтавщик и модель LLM, которые будут иÑпользоватьÑÑ Ð´Ð»Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° @agent Ñтого рабочего проÑтранÑтва.", + }, + mode: { + chat: { + title: "Модель чата агента рабочего проÑтранÑтва", + description: + "ÐšÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ чата, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ иÑпользоватьÑÑ Ð´Ð»Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° @agent Ñтого рабочего проÑтранÑтва.", + }, + title: "Модель агента рабочего проÑтранÑтва", + description: + "ÐšÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ LLM, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ иÑпользоватьÑÑ Ð´Ð»Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° @agent Ñтого рабочего проÑтранÑтва.", + wait: "-- ожидание моделей --", + }, + skill: { + title: "Ðавыки агента по умолчанию", + description: + "Улучшите еÑтеÑтвенные ÑпоÑобноÑти агента по умолчанию Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтих предуÑтановленных навыков. Ðта наÑтройка применÑетÑÑ ÐºÐ¾ вÑем рабочим проÑтранÑтвам.", + rag: { + title: "RAG и Ð´Ð¾Ð»Ð³Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¿Ð°Ð¼ÑÑ‚ÑŒ", + description: + "Позвольте агенту иÑпользовать ваши локальные документы Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð° на Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ попроÑите агента 'запомнить' чаÑти контента Ð´Ð»Ñ Ð´Ð¾Ð»Ð³Ð¾Ñрочного Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð· памÑти.", + }, + view: { + title: "ПроÑмотр и резюмирование документов", + description: + "Позвольте агенту перечиÑлÑÑ‚ÑŒ и резюмировать Ñодержание файлов рабочего проÑтранÑтва, которые в данный момент вÑтроены.", + }, + scrape: { + title: "Сбор данных Ñ Ð²ÐµÐ±-Ñайтов", + description: + "Позвольте агенту поÑещать и Ñобирать Ñодержимое веб-Ñайтов.", + }, + generate: { + title: "Создание диаграмм", + description: + "Включите возможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… типов диаграмм из предоÑтавленных данных или данных, указанных в чате.", + }, + save: { + title: "Создание и Ñохранение файлов в браузер", + description: + "Включите возможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ запиÑи файлов, которые можно Ñохранить и загрузить в вашем браузере.", + }, + web: { + title: "ПоиÑк в Интернете и проÑмотр в реальном времени", + "desc-start": + "Позвольте вашему агенту иÑкать в Интернете Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð° на ваши вопроÑÑ‹, подключаÑÑÑŒ к поÑтавщику поиÑка (SERP).", + "desc-end": + "ПоиÑк в Интернете во Ð²Ñ€ÐµÐ¼Ñ ÑеÑÑий агента не будет работать, пока Ñто не наÑтроено.", + }, + }, + }, + recorded: { + title: "Чаты рабочего проÑтранÑтва", + description: + "Ðто вÑе запиÑанные чаты и ÑообщениÑ, отправленные пользователÑми, упорÑдоченные по дате ÑозданиÑ.", + export: "ÐкÑпорт", + table: { + id: "Идентификатор", + by: "Отправлено", + workspace: "Рабочее проÑтранÑтво", + prompt: "ПодÑказка", + response: "Ответ", + at: "Отправлено в", + }, + }, + appearance: { + title: "Внешний вид", + description: "ÐаÑтройте параметры внешнего вида вашей платформы.", + logo: { + title: "ÐаÑтроить логотип", + description: + "Загрузите Ñвой логотип, чтобы перÑонализировать ваш чат-бот.", + add: "Добавить пользовательÑкий логотип", + recommended: "Рекомендуемый размер: 800 x 200", + remove: "Удалить", + replace: "Заменить", + }, + message: { + title: "ÐаÑтроить ÑообщениÑ", + description: + "ÐаÑтройте автоматичеÑкие ÑообщениÑ, отображаемые вашим пользователÑм.", + new: "Ðовое", + system: "ÑиÑтема", + user: "пользователь", + message: "Ñообщение", + assistant: "Чат-аÑÑиÑтент AnythingLLM", + "double-click": "Дважды щелкните, чтобы редактировать...", + save: "Сохранить ÑообщениÑ", + }, + icons: { + title: "ПользовательÑкие иконки в подвале", + description: + "ÐаÑтройте иконки в подвале, отображаемые внизу боковой панели.", + icon: "Иконка", + link: "СÑылка", + }, + }, + api: { + title: "API ключи", + description: + "API ключи позволÑÑŽÑ‚ владельцу программно получать доÑтуп к Ñтому ÑкземплÑру AnythingLLM и управлÑÑ‚ÑŒ им.", + link: "Прочитать документацию по API", + generate: "Создать новый API ключ", + table: { + key: "API ключ", + by: "Создано", + created: "Создано", + }, + }, + llm: { + title: "Предпочтение LLM", + description: + "Ðто учетные данные и наÑтройки Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ предпочтительного поÑтавщика чата и вÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ LLM. Важно, чтобы Ñти ключи были актуальными и правильными, иначе AnythingLLM не будет работать должным образом.", + provider: "ПоÑтавщик LLM", + }, + transcription: { + title: "Предпочтение модели транÑкрипции", + description: + "Ðто учетные данные и наÑтройки Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ предпочтительного поÑтавщика моделей транÑкрипции. Важно, чтобы Ñти ключи были актуальными и правильными, иначе медиафайлы и аудио не будут транÑкрибироватьÑÑ.", + provider: "ПоÑтавщик транÑкрипции", + "warn-start": + "ИÑпользование локальной модели whisper на машинах Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð½Ð¾Ð¹ оперативной памÑтью или процеÑÑором может привеÑти к завиÑанию AnythingLLM при обработке медиафайлов.", + "warn-recommend": + "Мы рекомендуем минимум 2ГБ оперативной памÑти и загружать файлы <10МБ.", + "warn-end": + "Ð’ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ будет автоматичеÑки загружена при первом иÑпользовании.", + }, + embedding: { + title: "ÐаÑтройки вÑтраиваниÑ", + "desc-start": + "При иÑпользовании LLM, который не поддерживает вÑтроенный механизм вÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ - возможно, потребуетÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ указать учетные данные Ð´Ð»Ñ Ð²ÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑта.", + "desc-end": + "Ð’Ñтраивание - Ñто процеÑÑ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта в векторы. Ðти учетные данные необходимы Ð´Ð»Ñ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… файлов и подÑказок в формат, который AnythingLLM может иÑпользовать Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸.", + provider: { + title: "ПоÑтавщик вÑтраиваниÑ", + description: + "Ðет необходимоÑти в наÑтройке при иÑпользовании вÑтроенного механизма вÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ AnythingLLM.", + }, + }, + text: { + title: "ÐаÑтройки Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ Ñегментации текÑта", + "desc-start": + "Иногда может понадобитьÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ñтандартный ÑпоÑоб Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ Ñегментации новых документов перед их вÑтавкой в векторную базу данных.", + "desc-end": + "Следует изменÑÑ‚ÑŒ Ñтот параметр только при полном понимании работы Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта и его побочных Ñффектов.", + "warn-start": "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð´ÐµÑÑŒ будут применÑÑ‚ÑŒÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к", + "warn-center": "новым вÑтроенным документам", + "warn-end": ", а не к ÑущеÑтвующим документам.", + size: { + title: "Размер Ñегмента текÑта", + description: + "Ðто макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ñимволов, которые могут приÑутÑтвовать в одном векторе.", + recommend: "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° модели вÑÑ‚Ñ€Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ ÑоÑтавлÑет", + }, + overlap: { + title: "Перекрытие Ñегментов текÑта", + description: + "Ðто макÑимальное перекрытие Ñимволов, которое проиÑходит при Ñегментации между Ð´Ð²ÑƒÐ¼Ñ Ñмежными Ñегментами текÑта.", + }, + }, + vector: { + title: "Ð’ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных", + description: + "Ðто учетные данные и наÑтройки Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, как будет функционировать ваш ÑкземплÑÑ€ AnythingLLM. Важно, чтобы Ñти ключи были актуальными и правильными.", + provider: { + title: "ПоÑтавщик векторной базы данных", + description: "ÐаÑтройка Ð´Ð»Ñ LanceDB не требуетÑÑ.", + }, + }, + embeddable: { + title: "Ð’Ñтраиваемые виджеты чата", + description: + "Ð’Ñтраиваемые виджеты чата - Ñто интерфейÑÑ‹ чата, ориентированные на публичное иÑпользование и привÑзанные к одному рабочему проÑтранÑтву. Они позволÑÑŽÑ‚ Ñоздавать рабочие проÑтранÑтва, которые затем можно публиковать в Интернете.", + create: "Создать вÑтраивание", + table: { + workspace: "Рабочее проÑтранÑтво", + chats: "Отправленные чаты", + Active: "Ðктивные домены", + }, + }, + "embed-chats": { + title: "Ð’Ñтраивание чатов", + description: + "Ðто вÑе запиÑанные чаты и ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ любого вÑтраиваниÑ, которое вы опубликовали.", + table: { + embed: "Ð’Ñтраивание", + sender: "Отправитель", + message: "Сообщение", + response: "Ответ", + at: "Отправлено в", + }, + }, + multi: { + title: "МногопользовательÑкий режим", + description: + "ÐаÑтройте ваш ÑкземплÑÑ€ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ вашей команды, активировав многопользовательÑкий режим.", + enable: { + "is-enable": "МногопользовательÑкий режим включен", + enable: "Включить многопользовательÑкий режим", + description: + "По умолчанию, вы будете единÑтвенным админиÑтратором. Как админиÑтратор, вы должны будете Ñоздавать учетные запиÑи Ð´Ð»Ñ Ð²Ñех новых пользователей или админиÑтраторов. Ðе терÑйте ваш пароль, так как только админиÑтратор может ÑброÑить пароли.", + username: "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи админиÑтратора", + password: "Пароль учетной запиÑи админиÑтратора", + }, + password: { + title: "Защита паролем", + description: + "Защитите ваш ÑкземплÑÑ€ AnythingLLM паролем. ЕÑли вы забудете его, метода воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ ÑущеÑтвует, поÑтому убедитеÑÑŒ, что вы Ñохранили Ñтот пароль.", + }, + instance: { + title: "Защитить ÑкземплÑÑ€ паролем", + description: + "По умолчанию, вы будете единÑтвенным админиÑтратором. Как админиÑтратор, вы должны будете Ñоздавать учетные запиÑи Ð´Ð»Ñ Ð²Ñех новых пользователей или админиÑтраторов. Ðе терÑйте ваш пароль, так как только админиÑтратор может ÑброÑить пароли.", + password: "Пароль ÑкземплÑра", + }, + }, + event: { + title: "Журналы Ñобытий", + description: + "ПроÑматривайте вÑе дейÑÑ‚Ð²Ð¸Ñ Ð¸ ÑобытиÑ, проиÑходÑщие в Ñтом ÑкземплÑре Ð´Ð»Ñ Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³Ð°.", + clear: "ОчиÑтить журналы Ñобытий", + table: { + type: "Тип ÑобытиÑ", + user: "Пользователь", + occurred: "Произошло в", + }, + }, + privacy: { + title: "КонфиденциальноÑÑ‚ÑŒ и обработка данных", + description: + "Ðто ваша ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, как подключенные Ñторонние поÑтавщики и AnythingLLM обрабатывают ваши данные.", + llm: "Выбор LLM", + embedding: "Предпочтение вÑтраиваниÑ", + vector: "Ð’ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных", + anonymous: "ÐÐ½Ð¾Ð½Ð¸Ð¼Ð½Ð°Ñ Ñ‚ÐµÐ»ÐµÐ¼ÐµÑ‚Ñ€Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°", + }, +}; + +export default TRANSLATIONS; diff --git a/frontend/src/locales/verifyTranslations.mjs b/frontend/src/locales/verifyTranslations.mjs index dccec76d3..93f7eaa68 100644 --- a/frontend/src/locales/verifyTranslations.mjs +++ b/frontend/src/locales/verifyTranslations.mjs @@ -9,12 +9,16 @@ function langDisplayName(lang) { function compareStructures(lang, a, b, subdir = null) { //if a and b aren't the same type, they can't be equal - if (typeof a !== typeof b) { + if (typeof a !== typeof b && a !== null && b !== null) { console.log("Invalid type comparison", [ { lang, a: typeof a, b: typeof b, + values: { + a, + b, + }, ...(!!subdir ? { subdir } : {}), }, ]); -- GitLab