diff --git a/frontend/src/locales/ru/common.js b/frontend/src/locales/ru/common.js index 25c4730acde..d1547e0be64 100644 --- a/frontend/src/locales/ru/common.js +++ b/frontend/src/locales/ru/common.js @@ -1,51 +1,59 @@ // Anything with "null" requires a translation. Contribute to translation via a PR! const TRANSLATIONS = { onboarding: { - survey: { - email: null, - useCase: null, - useCaseWork: null, - useCasePersonal: null, - useCaseOther: null, - comment: null, - commentPlaceholder: null, - skip: null, - thankYou: null, - title: null, - description: null, - }, home: { - title: null, - getStarted: null, + title: "Добро пожаловать в", + getStarted: "Начать", }, llm: { - title: null, - description: null, + title: "Предпочитаемые LLM", + description: + "AnythingLLM может работать с различными провайдерами LLM. Этот сервис будет обеспечивать обработку чата.", }, userSetup: { - title: null, - description: null, - howManyUsers: null, - justMe: null, - myTeam: null, - instancePassword: null, - setPassword: null, - passwordReq: null, - passwordWarn: null, - adminUsername: null, - adminUsernameReq: null, - adminPassword: null, - adminPasswordReq: null, - teamHint: null, + title: "Настройка пользователя", + description: "Настройте параметры пользователя.", + howManyUsers: "Сколько пользователей будут использовать этот экземпляр?", + justMe: "Только я", + myTeam: "Моя команда", + instancePassword: "Пароль экземпляра", + setPassword: "Хотите установить пароль?", + passwordReq: "Пароль должен содержать не менее 8 символов.", + passwordWarn: + "Важно сохранить этот пароль, так как способа его восстановления не существует.", + adminUsername: "Имя пользователя для учётной записи администратора", + adminUsernameReq: + "Имя пользователя должно состоять не менее чем из 6 символов и содержать только строчные буквы, цифры, символы подчеркивания и дефисы без пробелов.", + adminPassword: "Пароль для учётной записи администратора", + adminPasswordReq: "Пароль должен содержать не менее 8 символов.", + teamHint: + "По умолчанию, вы будете единственным администратором. После завершения настройки вы сможете создавать учётные записи и приглашать других пользователей или администраторов. Не потеряйте пароль, так как только администраторы могут его сбросить.", }, data: { - title: null, - description: null, - settingsHint: null, + title: "Обработка данных и конфиденциальность", + description: + "Мы стремимся обеспечить прозрачность и контроль в отношении ваших персональных данных.", + settingsHint: "Эти настройки можно изменить в любое время в настройках.", + }, + survey: { + title: "Добро пожаловать в AnythingLLM", + description: + "Помогите нам сделать AnythingLLM, созданным с учётом ваших потребностей (необязательно).", + email: "Какой у вас адрес электронной почты?", + useCase: "Для чего вы будете использовать AnythingLLM?", + useCaseWork: "Для работы", + useCasePersonal: "Для личного использования", + useCaseOther: "Другое", + comment: "Откуда вы узнали о AnythingLLM?", + commentPlaceholder: + "Reddit, Twitter, GitHub, YouTube и т.д. — сообщите, где вы о нас узнали!", + skip: "Пропустить опрос", + thankYou: "Спасибо за ваш отзыв!", }, workspace: { - title: null, - description: null, + title: "Создайте ваше первое рабочее пространство", + description: + "Создайте ваше первое рабочее пространство и начните работу с AnythingLLM.", }, }, common: { @@ -58,9 +66,9 @@ const TRANSLATIONS = { save: "Сохранить изменения", previous: "Предыдущая страница", next: "Следующая страница", - optional: null, - yes: null, - no: null, + optional: "Необязательный", + yes: "Да", + no: "Нет", }, settings: { title: "Настройки экземпляра", @@ -87,9 +95,9 @@ const TRANSLATIONS = { admin: "Администратор", tools: "Инструменты", "experimental-features": "Экспериментальные функции", - contact: "联系支持Связаться с Поддержкой", + contact: "Связаться с Поддержкой", "browser-extension": "Расширение браузера", - "system-prompt-variables": null, + "system-prompt-variables": "Переменные системного запроса", }, login: { "multi-user": { @@ -509,181 +517,219 @@ const TRANSLATIONS = { anonymous: "Анонимная телеметрия включена", }, connectors: { - "search-placeholder": null, - "no-connectors": null, + "search-placeholder": "Поиск коннекторов данных", + "no-connectors": "Коннекторы данных не найдены.", github: { - name: null, - description: null, - URL: null, - URL_explained: null, - token: null, - optional: null, - token_explained: null, - token_explained_start: null, - token_explained_link1: null, - token_explained_middle: null, - token_explained_link2: null, - token_explained_end: null, - ignores: null, - git_ignore: null, - task_explained: null, - branch: null, - branch_loading: null, - branch_explained: null, - token_information: null, - token_personal: null, + name: "Репозиторий GitHub", + description: + "Импортируйте весь публичный или приватный репозиторий GitHub одним кликом.", + URL: "URL репозитория GitHub", + URL_explained: "URL репозитория GitHub, который вы хотите собрать.", + token: "Токен доступа GitHub", + optional: "необязательно", + token_explained: "Токен доступа для предотвращения ограничения запросов.", + token_explained_start: "Без ", + token_explained_link1: "личного токена доступа", + token_explained_middle: + ", API GitHub может ограничить количество файлов для сбора из-за лимитов запросов. Вы можете ", + token_explained_link2: "создать временный токен доступа", + token_explained_end: ", чтобы избежать этой проблемы.", + ignores: "Игнорирование файлов", + git_ignore: + "Список в формате .gitignore для исключения определённых файлов при сборе. Нажмите Enter после каждой записи, которую хотите сохранить.", + task_explained: + "После завершения все файлы будут доступны для внедрения в рабочие пространства через выбор документов.", + branch: "Ветка, из которой нужно собрать файлы.", + branch_loading: "-- загрузка доступных веток --", + branch_explained: "Ветка, из которой нужно собрать файлы.", + token_information: + "Если не заполнить поле Токен доступа GitHub, этот коннектор данных сможет собрать только файлы верхнего уровня репозитория из-за ограничений публичного API GitHub.", + token_personal: + "Получите бесплатный личный токен доступа с аккаунтом GitHub здесь.", }, gitlab: { - name: null, - description: null, - URL: null, - URL_explained: null, - token: null, - optional: null, - token_explained: null, - token_description: null, - token_explained_start: null, - token_explained_link1: null, - token_explained_middle: null, - token_explained_link2: null, - token_explained_end: null, - fetch_issues: null, - ignores: null, - git_ignore: null, - task_explained: null, - branch: null, - branch_loading: null, - branch_explained: null, - token_information: null, - token_personal: null, + name: "Репозиторий GitLab", + description: + "Импортируйте весь публичный или приватный репозиторий GitLab одним кликом.", + URL: "URL репозитория GitLab", + URL_explained: "URL репозитория GitLab, который вы хотите собрать.", + token: "Токен доступа GitLab", + optional: "необязательно", + token_explained: "Токен доступа для предотвращения ограничения запросов.", + token_description: + "Выберите дополнительные сущности для получения через API GitLab.", + token_explained_start: "Без ", + token_explained_link1: "личного токена доступа", + token_explained_middle: + ", API GitLab может ограничить количество файлов для сбора из-за лимитов запросов. Вы можете ", + token_explained_link2: "создать временный токен доступа", + token_explained_end: ", чтобы избежать этой проблемы.", + fetch_issues: "Получать задачи как документы", + ignores: "Игнорирование файлов", + git_ignore: + "Список в формате .gitignore для исключения определённых файлов при сборе. Нажмите Enter после каждой записи, которую хотите сохранить.", + task_explained: + "После завершения все файлы будут доступны для внедрения в рабочие пространства через выбор документов.", + branch: "Ветка, из которой нужно собрать файлы", + branch_loading: "-- загрузка доступных веток --", + branch_explained: "Ветка, из которой нужно собрать файлы.", + token_information: + "Если не заполнить поле Токен доступа GitLab, этот коннектор данных сможет собрать только файлы верхнего уровня репозитория из-за ограничений публичного API GitLab.", + token_personal: + "Получите бесплатный личный токен доступа с аккаунтом GitLab здесь.", }, youtube: { - name: null, - description: null, - URL: null, - URL_explained_start: null, - URL_explained_link: null, - URL_explained_end: null, - task_explained: null, - language: null, - language_explained: null, - loading_languages: null, + name: "Транскрипция YouTube", + description: + "Импортируйте транскрипцию целого видео с YouTube по ссылке.", + URL: "URL видео на YouTube", + URL_explained_start: + "Введите URL любого видео с YouTube для получения транскрипции. Видео должно иметь ", + URL_explained_link: "субтитры", + URL_explained_end: " (закрытые титры).", + task_explained: + "После завершения транскрипция будет доступна для внедрения в рабочие пространства через выбор документов.", + language: "Язык транскрипции", + language_explained: "Выберите язык транскрипции, которую хотите собрать.", + loading_languages: "-- загрузка доступных языков --", }, "website-depth": { - name: null, - description: null, - URL: null, - URL_explained: null, - depth: null, - depth_explained: null, - max_pages: null, - max_pages_explained: null, - task_explained: null, + name: "Сбор ссылок с сайта", + description: "Соберите сайт и его подстраницы до заданной глубины.", + URL: "URL сайта", + URL_explained: "URL сайта, который вы хотите собрать.", + depth: "Глубина обхода", + depth_explained: + "Количество уровней вложенных ссылок, которое следует пройти от исходного URL.", + max_pages: "Максимальное количество страниц", + max_pages_explained: "Максимальное число ссылок для сбора.", + task_explained: + "После завершения весь собранный контент будет доступен для внедрения в рабочие пространства через выбор документов.", }, confluence: { - name: null, - description: null, - deployment_type: null, - deployment_type_explained: null, - base_url: null, - base_url_explained: null, - space_key: null, - space_key_explained: null, - username: null, - username_explained: null, - auth_type: null, - auth_type_explained: null, - auth_type_username: null, - auth_type_personal: null, - token: null, - token_explained_start: null, - token_explained_link: null, - token_desc: null, - pat_token: null, - pat_token_explained: null, - task_explained: null, + name: "Confluence", + description: "Импортируйте целую страницу Confluence одним кликом.", + deployment_type: "Тип развертывания Confluence", + deployment_type_explained: + "Укажите, размещён ли ваш Confluence в облаке Atlassian или на собственном сервере.", + base_url: "Базовый URL Confluence", + base_url_explained: "Это базовый URL вашего пространства Confluence.", + space_key: "Ключ пространства Confluence", + space_key_explained: + "Это ключ вашего пространства Confluence, который будет использоваться. Обычно начинается с ~", + username: "Имя пользователя Confluence", + username_explained: "Ваше имя пользователя в Confluence", + auth_type: "Тип аутентификации Confluence", + auth_type_explained: + "Выберите тип аутентификации для доступа к страницам Confluence.", + auth_type_username: "Имя пользователя и токен доступа", + auth_type_personal: "Личный токен доступа", + token: "Токен доступа Confluence", + token_explained_start: + "Необходимо предоставить токен доступа для аутентификации. Вы можете сгенерировать его ", + token_explained_link: "здесь", + token_desc: "Токен доступа для аутентификации", + pat_token: "Личный токен доступа Confluence", + pat_token_explained: "Ваш личный токен доступа для Confluence.", + task_explained: + "После завершения содержимое страницы будет доступно для внедрения в рабочие пространства через выбор документов.", }, + manage: { - documents: null, - "data-connectors": null, - "desktop-only": null, - dismiss: null, - editing: null, + documents: "Документы", + "data-connectors": "Коннекторы данных", + "desktop-only": + "Редактирование этих настроек доступно только на настольном устройстве. Пожалуйста, перейдите на ПК для продолжения.", + dismiss: "Закрыть", + editing: "Редактирование", }, directory: { - "my-documents": null, - "new-folder": null, - "search-document": null, - "no-documents": null, - "move-workspace": null, - name: null, - "delete-confirmation": null, - "removing-message": null, - "move-success": null, - date: null, - type: null, - no_docs: null, - select_all: null, - deselect_all: null, - remove_selected: null, - costs: null, - save_embed: null, + "my-documents": "Мои документы", + "new-folder": "Новая папка", + "search-document": "Поиск документа", + "no-documents": "Нет документов", + "move-workspace": "Переместить в рабочее пространство", + name: "Название", + "delete-confirmation": + "Вы уверены, что хотите удалить эти файлы и папки?\nЭто действие удалит файлы из системы и автоматически уберёт их из всех рабочих пространств.\nЭто действие необратимо.", + "removing-message": + "Удаляется {{count}} документов и {{folderCount}} папок. Пожалуйста, подождите.", + "move-success": "Успешно перемещено {{count}} документов.", + date: "Дата", + type: "Тип", + no_docs: "Нет документов", + select_all: "Выбрать всё", + deselect_all: "Снять выбор со всех", + remove_selected: "Удалить выбранные", + costs: "*Единоразовая стоимость за внедрение", + save_embed: "Сохранить и внедрить", }, upload: { - "processor-offline": null, - "processor-offline-desc": null, - "click-upload": null, - "file-types": null, - "or-submit-link": null, - "placeholder-link": null, - fetching: null, - "fetch-website": null, - "privacy-notice": null, + "processor-offline": "Процессор документов недоступен", + "processor-offline-desc": + "Мы не можем загрузить ваши файлы, так как процессор документов недоступен. Пожалуйста, попробуйте позже.", + "click-upload": "Нажмите для загрузки или перетащите файл", + "file-types": + "поддерживаются текстовые файлы, CSV, таблицы, аудиофайлы и другое!", + "or-submit-link": "или отправьте ссылку", + "placeholder-link": "https://example.com", + fetching: "Загрузка...", + "fetch-website": "Получить сайт", + "privacy-notice": + "Эти файлы будут загружены в процессор документов на этом экземпляре AnythingLLM. Файлы не отправляются и не передаются третьим лицам.", }, pinning: { - what_pinning: null, - pin_explained_block1: null, - pin_explained_block2: null, - pin_explained_block3: null, - accept: null, + what_pinning: "Что такое закрепление документа?", + pin_explained_block1: + "Когда вы закрепляете документ в AnythingLLM, мы вставляем всё его содержимое в окно запроса, чтобы LLM мог полностью его понять.", + pin_explained_block2: + "Это работает лучше всего с моделями с большим контекстом или небольшими файлами, критичными для базы знаний.", + pin_explained_block3: + "Если по умолчанию ответы AnythingLLM вас не удовлетворяют, закрепление — отличный способ получить более качественные ответы одним кликом.", + accept: "Хорошо, понял", }, watching: { - what_watching: null, - watch_explained_block1: null, - watch_explained_block2: null, - watch_explained_block3_start: null, - watch_explained_block3_link: null, - watch_explained_block3_end: null, - accept: null, + what_watching: "Что делает функция наблюдения за документом?", + watch_explained_block1: + "Когда вы наблюдаете за документом в AnythingLLM, мы автоматически синхронизируем его содержимое с оригинальным источником через регулярные интервалы. Это автоматически обновляет содержимое во всех рабочих пространствах, где используется этот файл.", + watch_explained_block2: + "Эта функция поддерживает только онлайн-контент и недоступна для документов, загруженных вручную.", + watch_explained_block3_start: + "Вы можете управлять наблюдением за документами через ", + watch_explained_block3_link: "Файловый менеджер", + watch_explained_block3_end: " в режиме администратора.", + accept: "Хорошо, понял", }, }, chat_window: { - welcome: null, - get_started: null, - get_started_default: null, - upload: null, - or: null, - send_chat: null, - send_message: null, - attach_file: null, - slash: null, - agents: null, - text_size: null, - microphone: null, - send: null, + welcome: "Добро пожаловать в ваше новое рабочее пространство.", + get_started: "Чтобы начать, либо", + get_started_default: "Чтобы начать", + upload: "загрузите документ", + or: "или", + send_chat: "отправьте сообщение в чате.", + send_message: "Отправить сообщение", + attach_file: "Прикрепить файл к чату", + slash: "Просмотреть все доступные слэш-команды для чата.", + agents: "Просмотреть всех доступных агентов для чата.", + text_size: "Изменить размер текста.", + microphone: "Произнесите ваш запрос.", + send: "Отправить запрос в рабочее пространство", }, + profile_settings: { - edit_account: null, - profile_picture: null, - remove_profile_picture: null, - username: null, - username_description: null, - new_password: null, - passwort_description: null, - cancel: null, - update_account: null, - theme: null, - language: null, + edit_account: "Редактировать учётную запись", + profile_picture: "Изображение профиля", + remove_profile_picture: "Удалить изображение профиля", + username: "Имя пользователя", + username_description: + "Имя пользователя должно состоять только из строчных букв, цифр, символов подчеркивания и дефисов без пробелов", + new_password: "Новый пароль", + passwort_description: "Пароль должен содержать не менее 8 символов", + cancel: "Отмена", + update_account: "Обновить учётную запись", + theme: "Предпочтения темы", + language: "Предпочитаемый язык", }, };