From 887fec99ca97eb1e0f0d264b941dc8ad4f3e1c47 Mon Sep 17 00:00:00 2001 From: Marco Beretta <81851188+Berry-13@users.noreply.github.com> Date: Fri, 25 Aug 2023 02:11:27 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90:=20Russian=20Translation=20(#830)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Nav/SettingsTabs/General.tsx | 1 + client/src/localization/Translation.tsx | 4 + client/src/localization/languages/Eng.tsx | 1 + client/src/localization/languages/Ru.tsx | 202 ++++++++++++++++++ 4 files changed, 208 insertions(+) create mode 100644 client/src/localization/languages/Ru.tsx diff --git a/client/src/components/Nav/SettingsTabs/General.tsx b/client/src/components/Nav/SettingsTabs/General.tsx index b2b8e0087..f0d514f7f 100644 --- a/client/src/components/Nav/SettingsTabs/General.tsx +++ b/client/src/components/Nav/SettingsTabs/General.tsx @@ -112,6 +112,7 @@ export const LangSelector = ({ + ); diff --git a/client/src/localization/Translation.tsx b/client/src/localization/Translation.tsx index 3cecd9277..15586ca67 100644 --- a/client/src/localization/Translation.tsx +++ b/client/src/localization/Translation.tsx @@ -5,6 +5,7 @@ import Italian from './languages/It'; import Portuguese from './languages/Br'; import Spanish from './languages/Es'; import French from './languages/Fr'; +import Russian from './languages/Ru'; // === import additional language files here === // // New method on String allow using "{\d}" placeholder for @@ -47,6 +48,9 @@ export const getTranslations = (langCode: string) => { if (langCode === 'es') { return Spanish; } + if (langCode === 'ru') { + return Russian; + } // === add conditionals here for additional languages here === // return English; // default to English diff --git a/client/src/localization/languages/Eng.tsx b/client/src/localization/languages/Eng.tsx index 89886d9d6..6e90f6878 100644 --- a/client/src/localization/languages/Eng.tsx +++ b/client/src/localization/languages/Eng.tsx @@ -207,4 +207,5 @@ export default { com_nav_lang_french: 'Français ', com_nav_lang_italian: 'Italiano', com_nav_lang_brazilian_portuguese: 'Português Brasileiro', + com_nav_lang_russian: 'Русский', }; diff --git a/client/src/localization/languages/Ru.tsx b/client/src/localization/languages/Ru.tsx new file mode 100644 index 000000000..cdc142252 --- /dev/null +++ b/client/src/localization/languages/Ru.tsx @@ -0,0 +1,202 @@ +// Russian phrases + +export default { + com_ui_examples: 'Примеры', + com_ui_new_chat: 'Новый чат', + com_ui_example_quantum_computing: 'Объясните квантовые вычисления простыми словами', + com_ui_example_10_year_old_b_day: + 'У вас есть креативные идеи для дня рождения 10-летнего ребенка?', + com_ui_example_http_in_js: 'Как сделать HTTP-запрос в JavaScript?', + com_ui_capabilities: 'Возможности', + com_ui_capability_remember: 'Запоминает, что пользователь говорил ранее в разговоре', + com_ui_capability_correction: 'Позволяет пользователю вносить корректировки после ответа', + com_ui_capability_decline_requests: 'Обучен отклонять неподходящие запросы', + com_ui_limitations: 'Ограничения', + com_ui_limitation_incorrect_info: 'Иногда может генерировать некорректную информацию', + com_ui_limitation_harmful_biased: + 'Иногда может создавать вредные инструкции или предвзятое содержимое', + com_ui_limitation_limited_2021: 'Ограниченные знания о мире и событиях после 2021 года', + com_ui_input: 'Ввод', + com_ui_close: 'Закрыть', + com_ui_model: 'Модель', + com_ui_select_model: 'Выберите модель', + com_ui_use_prompt: 'Использовать подсказку', + com_ui_prev: 'Предыдущий', + com_ui_next: 'Следующий', + com_ui_prompt_templates: 'Шаблоны подсказок', + com_ui_hide_prompt_templates: 'Скрыть шаблоны подсказок', + com_ui_showing: 'Показано', + com_ui_of: 'из', + com_ui_entries: 'записей', + com_ui_pay_per_call: 'Все AI-разговоры в одном месте. Оплачивайте за звонки, а не за месяц', + com_auth_error_login: + 'Не удалось войти с предоставленной информацией. Пожалуйста, проверьте ваши учетные данные и попробуйте снова.', + com_auth_no_account: 'Еще нет аккаунта?', + com_auth_sign_up: 'Зарегистрироваться', + com_auth_sign_in: 'Войти', + com_auth_google_login: 'Войти с помощью Google', + com_auth_github_login: 'Войти с помощью Github', + com_auth_discord_login: 'Войти с помощью Discord', + com_auth_email: 'Email', + com_auth_email_required: 'Email обязателен', + com_auth_email_min_length: 'Email должен содержать не менее 6 символов', + com_auth_email_max_length: 'Email не может быть длиннее 120 символов', + com_auth_email_pattern: 'Вы должны ввести действительный адрес электронной почты', + com_auth_email_address: 'Адрес электронной почты', + com_auth_password: 'Пароль', + com_auth_password_required: 'Пароль обязателен', + com_auth_password_min_length: 'Пароль должен содержать не менее 8 символов', + com_auth_password_max_length: 'Пароль должен быть не более 128 символов', + com_auth_password_forgot: 'Забыли пароль?', + com_auth_password_confirm: 'Подтвердите пароль', + com_auth_password_not_match: 'Пароли не совпадают', + com_auth_continue: 'Продолжить', + com_auth_create_account: 'Создать аккаунт', + com_auth_error_create: + 'Возникла ошибка при попытке зарегистрировать ваш аккаунт. Пожалуйста, попробуйте еще раз.', + com_auth_full_name: 'Полное имя', + com_auth_name_required: 'Имя обязательно', + com_auth_name_min_length: 'Имя должно содержать не менее 3 символов', + com_auth_name_max_length: 'Имя должно быть короче 80 символов', + com_auth_username: 'Имя пользователя', + com_auth_username_required: 'Имя пользователя обязательно', + com_auth_username_min_length: 'Имя пользователя должно содержать не менее 3 символов', + com_auth_username_max_length: 'Имя пользователя должно быть не более 20 символов', + com_auth_already_have_account: 'Уже есть аккаунт?', + com_auth_login: 'Войти', + com_auth_reset_password: 'Сбросить пароль', + com_auth_click: 'Нажмите', + com_auth_here: 'ЗДЕСЬ', + com_auth_to_reset: 'ваш пароль.', + com_auth_reset_password_link_sent: 'Письмо отправлено', + com_auth_reset_password_email_sent: + 'На вашу почту было отправлено письмо с дальнейшими инструкциями по сбросу пароля.', + com_auth_error_reset_password: + 'При сбросе пароля возникла проблема. Пользователь с указанным адресом электронной почты не найден. Пожалуйста, попробуйте еще раз.', + com_auth_reset_password_success: 'Сброс пароля успешно выполнен', + com_auth_login_with_new_password: 'Теперь вы можете войти с новым паролем.', + com_auth_error_invalid_reset_token: 'Этот токен сброса пароля больше не действителен.', + com_auth_click_here: 'Нажмите здесь', + com_auth_to_try_again: 'чтобы попробовать снова.', + com_auth_submit_registration: 'Отправить регистрацию', + com_auth_welcome_back: 'С возвращением', + com_endpoint_bing_enable_sydney: 'Включить Сидней', + com_endpoint_bing_to_enable_sydney: 'Чтобы включить Сидней', + com_endpoint_bing_jailbreak: 'Jailbreak', + com_endpoint_bing_context_placeholder: + 'Bing может использовать до 7 тысяч токенов для "контекста", на который он может ссылаться в разговоре. Точный предел неизвестен, но превышение 7 тысяч токенов может вызвать ошибки.', + com_endpoint_bing_system_message_placeholder: + 'ПРЕДУПРЕЖДЕНИЕ: Неправильное использование этой функции может привести к БАНу на использование Bing! Нажмите на "Системное сообщение" для получения полных инструкций и значения по умолчанию, которое является предустановкой "Сидней", считающейся безопасной.', + com_endpoint_system_message: 'Системное сообщение', + com_endpoint_default_blank: 'по умолчанию: пусто', + com_endpoint_default_false: 'по умолчанию: false', + com_endpoint_default_creative: 'по умолчанию: креативный', + com_endpoint_default_empty: 'по умолчанию: пусто', + com_endpoint_default_with_num: 'по умолчанию: {0}', + com_endpoint_context: 'Контекст', + com_endpoint_tone_style: 'Стиль тона', + com_endpoint_token_count: 'Количество токенов', + com_endpoint_output: 'Вывод', + com_endpoint_google_temp: + 'Более высокие значения = более случайные результаты, более низкие значения = более фокусированные и детерминированные результаты. Мы рекомендуем изменять это или Top P, но не оба значения одновременно.', + com_endpoint_google_topp: + 'Top P изменяет то, как модель выбирает токены для вывода. Токены выбираются из наиболее вероятных (см. параметр topK) до наименее вероятных, пока сумма их вероятностей не достигнет значения top-p.', + com_endpoint_google_topk: + 'Top K изменяет то, как модель выбирает токены для вывода. Top K равное 1 означает, что выбирается наиболее вероятный токен из всего словаря модели (так называемое жадное декодирование), а Top K равное 3 означает, что следующий токен выбирается из трех наиболее вероятных токенов (с использованием температуры).', + com_endpoint_google_maxoutputtokens: + 'Максимальное количество токенов, которые могут быть сгенерированы в ответе. Укажите меньшее значение для более коротких ответов и большее значение для более длинных ответов.', + com_endpoint_google_custom_name_placeholder: 'Установите пользовательское имя для PaLM2', + com_endpoint_google_prompt_prefix_placeholder: + 'Установите пользовательские инструкции или контекст. Игнорируется, если пусто.', + com_endpoint_custom_name: 'Пользовательское имя', + com_endpoint_prompt_prefix: 'Префикс подсказки', + com_endpoint_temperature: 'Температура', + com_endpoint_default: 'по умолчанию', + com_endpoint_top_p: 'Top P', + com_endpoint_top_k: 'Top K', + com_endpoint_max_output_tokens: 'Максимальное количество токенов в выводе', + com_endpoint_openai_temp: + 'Более высокие значения = более случайные результаты, более низкие значения = более фокусированные и детерминированные результаты. Мы рекомендуем изменять это или Top P, но не оба значения одновременно.', + com_endpoint_openai_max: + 'Максимальное количество генерируемых токенов. Общая длина входных токенов и сгенерированных токенов ограничена длиной контекста модели.', + com_endpoint_openai_topp: + 'Альтернатива выбору с использованием температуры, называемая выбором по ядру, при которой модель учитывает результаты токенов с наибольшей вероятностью top_p. Таким образом, значение 0,1 означает, что рассматриваются только токены, составляющие верхние 10% вероятностной массы. Мы рекомендуем изменять это или температуру, но не оба значения одновременно.', + com_endpoint_openai_freq: + 'Число от -2.0 до 2.0. Положительные значения штрафуют новые токены на основе их частоты в тексте до сих пор, уменьшая вероятность модели повторить ту же строку дословно.', + com_endpoint_openai_pres: + 'Число от -2.0 до 2.0. Положительные значения штрафуют новые токены на основе того, появляются ли они в тексте до сих пор, увеличивая вероятность модели говорить о новых темах.', + com_endpoint_openai_custom_name_placeholder: 'Установите пользовательское имя для ChatGPT', + com_endpoint_openai_prompt_prefix_placeholder: + 'Установите пользовательские инструкции для включения в системное сообщение. По умолчанию: нет', + com_endpoint_anthropic_temp: + 'Диапазон значений от 0 до 1. Используйте значение temp ближе к 0 для аналитических / множественного выбора и ближе к 1 для креативных и генеративных задач. Мы рекомендуем изменять это или Top P, но не оба значения одновременно.', + com_endpoint_anthropic_topp: + 'Top P изменяет то, как модель выбирает токены для вывода. Токены выбираются из наиболее вероятных (см. параметр topK) до наименее вероятных, пока сумма их вероятностей не достигнет значения top-p.', + com_endpoint_anthropic_topk: + 'Top K изменяет то, как модель выбирает токены для вывода. Top K равное 1 означает, что выбирается наиболее вероятный токен из всего словаря модели (так называемое жадное декодирование), а Top K равное 3 означает, что следующий токен выбирается из трех наиболее вероятных токенов (с использованием температуры).', + com_endpoint_anthropic_maxoutputtokens: + 'Максимальное количество токенов, которые могут быть сгенерированы в ответе. Укажите меньшее значение для более коротких ответов и большее значение для более длинных ответов.', + com_endpoint_frequency_penalty: 'Штраф за частоту', + com_endpoint_presence_penalty: 'Штраф за присутствие', + com_endpoint_plug_use_functions: 'Использовать функции', + com_endpoint_plug_skip_completion: 'Пропустить завершение', + com_endpoint_disabled_with_tools: 'отключено с инструментами', + com_endpoint_disabled_with_tools_placeholder: 'Отключено с выбранными инструментами', + com_endpoint_plug_set_custom_instructions_for_gpt_placeholder: + 'Установите пользовательские инструкции для включения в системное сообщение. По умолчанию: нет', + com_endpoint_set_custom_name: 'Установите пользовательское имя, чтобы найти эту предустановку', + com_endpoint_preset_name: 'Имя предустановки', + com_endpoint_new_topic: 'Новая тема', + com_endpoint: 'Конечная точка', + com_endpoint_hide: 'Скрыть', + com_endpoint_show: 'Показать', + com_endpoint_examples: 'Примеры', + com_endpoint_completion: 'Завершение', + com_endpoint_agent: 'Агент', + com_endpoint_show_what_settings: 'Показать настройки {0}', + com_endpoint_save: 'Сохранить', + com_endpoint_export: 'Экспорт', + com_endpoint_save_as_preset: 'Сохранить как предустановку', + com_endpoint_not_implemented: 'Не реализовано', + com_endpoint_edit_preset: 'Редактировать предустановку', + com_endpoint_no_presets: 'Пока нет предустановок', + com_endpoint_not_available: 'Нет доступных конечных точек', + com_endpoint_clear_all: 'Очистить все', + com_endpoint_view_options: 'Просмотреть параметры', + com_endpoint_save_convo_as_preset: 'Сохранить разговор как предустановку', + com_endpoint_my_preset: 'Моя предустановка', + com_endpoint_agent_model: 'Модель агента (Рекомендуется: GPT-3.5)', + com_endpoint_completion_model: 'Модель завершения (Рекомендуется: GPT-4)', + com_endpoint_func_hover: 'Включить использование плагинов в качестве функций OpenAI', + com_endpoint_skip_hover: + 'Пропустить этап завершения, который проверяет окончательный ответ и сгенерированные шаги', + com_endpoint_config_token: 'Токен конфигурации', + com_nav_export_filename: 'Имя файла', + com_nav_export_filename_placeholder: 'Установите имя файла', + com_nav_export_type: 'Тип', + com_nav_export_include_endpoint_options: 'Включить параметры конечной точки', + com_nav_enabled: 'Включено', + com_nav_not_supported: 'Не поддерживается', + com_nav_export_all_message_branches: 'Экспортировать все ветви сообщений', + com_nav_export_recursive_or_sequential: 'Рекурсивно или последовательно?', + com_nav_export_recursive: 'Рекурсивно', + com_nav_export_conversation: 'Экспортировать разговор', + com_nav_theme: 'Тема', + com_nav_theme_system: 'Системная', + com_nav_theme_dark: 'Темная', + com_nav_theme_light: 'Светлая', + com_nav_clear: 'Очистить', + com_nav_clear_all_chats: 'Очистить все чаты', + com_nav_confirm_clear: 'Подтвердить очистку', + com_nav_close_sidebar: 'Закрыть боковую панель', + com_nav_open_sidebar: 'Открыть боковую панель', + com_nav_log_out: 'Выйти', + com_nav_user: 'ПОЛЬЗОВАТЕЛЬ', + com_nav_clear_conversation: 'Очистить разговоры', + com_nav_clear_conversation_confirm_message: + 'Вы уверены, что хотите очистить все разговоры? Это действие нельзя отменить.', + com_nav_help_faq: 'Помощь и Часто задаваемые вопросы', + com_nav_settings: 'Настройки', + com_nav_search_placeholder: 'Поиск сообщений', + com_nav_setting_general: 'Общие', +};