| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592 |
- import { SubmitKey } from "../store/config";
- import { PartialLocaleType } from "../locales/index";
- import { getClientConfig } from "../config/client";
- import { SAAS_CHAT_UTM_URL } from "@/app/constant";
- const isApp = !!getClientConfig()?.isApp;
- const ru: PartialLocaleType = {
- WIP: "Скоро...",
- Error: {
- Unauthorized: isApp
- ? `😆 В разговоре возникли некоторые проблемы, не переживайте:
- \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL})
- \\ 2️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️`
- : `😆 В разговоре возникли некоторые проблемы, не переживайте:
- \ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL})
- \ 2️⃣ Если вы используете частную версию развертывания, нажмите [здесь](/#/auth), чтобы ввести ключ доступа 🔑
- \ 3️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️
- `,
- },
- Auth: {
- Title: "Требуется пароль",
- Tips: "Администратор включил проверку пароля. Пожалуйста, введите код доступа ниже",
- SubTips: "Или введите ваш API-ключ OpenAI или Google",
- Input: "Введите код доступа здесь",
- Confirm: "Подтвердить",
- Later: "Позже",
- Return: "Назад",
- SaasTips: "Настройка слишком сложна, я хочу использовать это немедленно",
- TopTips:
- "🥳 Предложение по запуску NextChat AI: разблокируйте OpenAI o1, GPT-4o, Claude-3.5 и новейшие большие модели прямо сейчас",
- },
- ChatItem: {
- ChatItemCount: (count: number) => `${count} бесед`,
- },
- Chat: {
- SubTitle: (count: number) => `Всего ${count} бесед`,
- EditMessage: {
- Title: "Редактировать сообщение",
- Topic: {
- Title: "Тема чата",
- SubTitle: "Изменить текущую тему чата",
- },
- },
- Actions: {
- ChatList: "Просмотреть список сообщений",
- CompressedHistory: "Просмотреть сжатую историю подсказок",
- Export: "Экспортировать чат",
- Copy: "Копировать",
- Stop: "Остановить",
- Retry: "Повторить",
- Pin: "Закрепить",
- PinToastContent: "1 беседа закреплена в предустановленных подсказках",
- PinToastAction: "Просмотреть",
- Delete: "Удалить",
- Edit: "Редактировать",
- RefreshTitle: "Обновить заголовок",
- RefreshToast: "Запрос на обновление заголовка отправлен",
- },
- Commands: {
- new: "Новый чат",
- newm: "Создать чат из маски",
- next: "Следующий чат",
- prev: "Предыдущий чат",
- clear: "Очистить контекст",
- del: "Удалить чат",
- },
- InputActions: {
- Stop: "Остановить ответ",
- ToBottom: "Перейти к последнему",
- Theme: {
- auto: "Автоматическая тема",
- light: "Светлая тема",
- dark: "Темная тема",
- },
- Prompt: "Быстрая команда",
- Masks: "Все маски",
- Clear: "Очистить чат",
- Settings: "Настройки чата",
- UploadImage: "Загрузить изображение",
- },
- Rename: "Переименовать чат",
- Typing: "Печатает…",
- Input: (submitKey: string) => {
- var inputHints = `${submitKey} Отправить`;
- if (submitKey === String(SubmitKey.Enter)) {
- inputHints += ",Shift + Enter для новой строки";
- }
- return inputHints + ",/ для автозаполнения,: для команд";
- },
- Send: "Отправить",
- Config: {
- Reset: "Очистить память",
- SaveAs: "Сохранить как маску",
- },
- IsContext: "Предустановленные подсказки",
- },
- Export: {
- Title: "Поделиться историей чата",
- Copy: "Копировать все",
- Download: "Скачать файл",
- Share: "Поделиться в ShareGPT",
- MessageFromYou: "Пользователь",
- MessageFromChatGPT: "ChatGPT",
- Format: {
- Title: "Формат экспорта",
- SubTitle: "Можно экспортировать как Markdown текст или PNG изображение",
- },
- IncludeContext: {
- Title: "Включить контекст маски",
- SubTitle: "Показывать ли контекст маски в сообщениях",
- },
- Steps: {
- Select: "Выбрать",
- Preview: "Предпросмотр",
- },
- Image: {
- Toast: "Создание скриншота",
- Modal: "Длительное нажатие или правый клик для сохранения изображения",
- },
- },
- Select: {
- Search: "Поиск сообщений",
- All: "Выбрать все",
- Latest: "Последние сообщения",
- Clear: "Очистить выбор",
- },
- Memory: {
- Title: "Историческое резюме",
- EmptyContent: "Содержимое чата слишком короткое, чтобы суммировать",
- Send: "Автоматически сжать историю чата и отправить как контекст",
- Copy: "Копировать резюме",
- Reset: "[не используется]",
- ResetConfirm: "Подтвердить очистку исторического резюме?",
- },
- Home: {
- NewChat: "Новый чат",
- DeleteChat: "Подтвердить удаление выбранного чата?",
- DeleteToast: "Беседа удалена",
- Revert: "Отменить",
- },
- Settings: {
- Title: "Настройки",
- SubTitle: "Все параметры настроек",
- Danger: {
- Reset: {
- Title: "Сброс всех настроек",
- SubTitle: "Сброс всех параметров до значений по умолчанию",
- Action: "Сбросить сейчас",
- Confirm: "Подтвердить сброс всех настроек?",
- },
- Clear: {
- Title: "Очистить все данные",
- SubTitle: "Очистить все чаты и данные настроек",
- Action: "Очистить сейчас",
- Confirm: "Подтвердить очистку всех чатов и данных настроек?",
- },
- },
- Lang: {
- Name: "Language", // ATTENTION: если вы хотите добавить новый перевод, не переводите это значение, оставьте его как `Language`
- All: "Все языки",
- },
- Avatar: "Аватар",
- FontSize: {
- Title: "Размер шрифта",
- SubTitle: "Размер шрифта в чате",
- },
- FontFamily: {
- Title: "Шрифт чата",
- SubTitle:
- "Шрифт содержимого чата, оставьте пустым для применения глобального шрифта по умолчанию",
- Placeholder: "Название шрифта",
- },
- InjectSystemPrompts: {
- Title: "Вставить системные подсказки",
- SubTitle:
- "Принудительно добавлять системную подсказку, имитирующую ChatGPT, в начале каждого запроса",
- },
- InputTemplate: {
- Title: "Предварительная обработка пользовательского ввода",
- SubTitle:
- "Последнее сообщение пользователя будет подставлено в этот шаблон",
- },
- SendKey: "Кнопка отправки",
- Theme: "Тема",
- TightBorder: "Режим без границ",
- SendPreviewBubble: {
- Title: "Предварительный просмотр пузырьков",
- SubTitle:
- "Просмотр содержимого Markdown в пузырьках предварительного просмотра",
- },
- AutoGenerateTitle: {
- Title: "Автоматическое создание заголовка",
- SubTitle: "Создание подходящего заголовка на основе содержания беседы",
- },
- Sync: {
- CloudState: "Облачные данные",
- NotSyncYet: "Синхронизация еще не проводилась",
- Success: "Синхронизация успешна",
- Fail: "Не удалось синхронизировать",
- Config: {
- Modal: {
- Title: "Настройки облачной синхронизации",
- Check: "Проверить доступность",
- },
- SyncType: {
- Title: "Тип синхронизации",
- SubTitle: "Выберите предпочитаемый сервер синхронизации",
- },
- Proxy: {
- Title: "Включить прокси",
- SubTitle:
- "При синхронизации в браузере необходимо включить прокси для предотвращения ограничений кросс-домена",
- },
- ProxyUrl: {
- Title: "Адрес прокси",
- SubTitle: "Только для встроенного прокси в проекте",
- },
- WebDav: {
- Endpoint: "WebDAV адрес",
- UserName: "Имя пользователя",
- Password: "Пароль",
- },
- UpStash: {
- Endpoint: "UpStash Redis REST Url",
- UserName: "Имя резервной копии",
- Password: "UpStash Redis REST Token",
- },
- },
- LocalState: "Локальные данные",
- Overview: (overview: any) => {
- return `${overview.chat} бесед, ${overview.message} сообщений, ${overview.prompt} подсказок, ${overview.mask} масок`;
- },
- ImportFailed: "Не удалось импортировать",
- },
- Mask: {
- Splash: {
- Title: "Стартовая страница масок",
- SubTitle:
- "При создании нового чата отображать стартовую страницу масок",
- },
- Builtin: {
- Title: "Скрыть встроенные маски",
- SubTitle: "Скрыть встроенные маски во всех списках масок",
- },
- },
- Prompt: {
- Disable: {
- Title: "Отключить автозаполнение подсказок",
- SubTitle: "Введите / в начале строки для активации автозаполнения",
- },
- List: "Список пользовательских подсказок",
- ListCount: (builtin: number, custom: number) =>
- `Встроенные ${builtin}, пользовательские ${custom}`,
- Edit: "Редактировать",
- Modal: {
- Title: "Список подсказок",
- Add: "Создать",
- Search: "Поиск подсказок",
- },
- EditModal: {
- Title: "Редактировать подсказки",
- },
- },
- HistoryCount: {
- Title: "Количество истории сообщений",
- SubTitle: "Количество историй сообщений, отправляемых с каждым запросом",
- },
- CompressThreshold: {
- Title: "Порог сжатия длины истории сообщений",
- SubTitle:
- "Когда не сжатая история сообщений превышает это значение, происходит сжатие",
- },
- Access: {
- SaasStart: {
- Title: "Используйте NextChat AI",
- Label: "(Самое экономичное решение)",
- SubTitle:
- "Официально поддерживается NextChat, готов к использованию без настройки, поддерживает последние крупные модели, такие как OpenAI o1, GPT-4o и Claude-3.5",
- ChatNow: "Начать чат",
- },
- AccessCode: {
- Title: "Пароль доступа",
- SubTitle: "Администратор включил защиту паролем",
- Placeholder: "Введите пароль доступа",
- },
- CustomEndpoint: {
- Title: "Пользовательский интерфейс",
- SubTitle: "Использовать ли пользовательский Azure или OpenAI сервис",
- },
- Provider: {
- Title: "Провайдер модели",
- SubTitle: "Переключиться на другого провайдера",
- },
- OpenAI: {
- ApiKey: {
- Title: "API-ключ",
- SubTitle:
- "Использовать пользовательский OpenAI-ключ для обхода ограничений пароля",
- Placeholder: "OpenAI API-ключ",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Кроме адреса по умолчанию, должен содержать http(s)://",
- },
- },
- Azure: {
- ApiKey: {
- Title: "Ключ интерфейса",
- SubTitle:
- "Использовать пользовательский Azure-ключ для обхода ограничений пароля",
- Placeholder: "Azure API-ключ",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Пример:",
- },
- ApiVerion: {
- Title: "Версия интерфейса (azure api version)",
- SubTitle: "Выберите конкретную версию",
- },
- },
- Anthropic: {
- ApiKey: {
- Title: "Ключ интерфейса",
- SubTitle:
- "Использовать пользовательский Anthropic-ключ для обхода ограничений пароля",
- Placeholder: "Anthropic API-ключ",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Пример:",
- },
- ApiVerion: {
- Title: "Версия интерфейса (claude api version)",
- SubTitle: "Выберите конкретную версию API",
- },
- },
- Google: {
- ApiKey: {
- Title: "API-ключ",
- SubTitle: "Получите ваш API-ключ Google AI",
- Placeholder: "Введите ваш API-ключ Google AI Studio",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Пример:",
- },
- ApiVersion: {
- Title: "Версия API (только для gemini-pro)",
- SubTitle: "Выберите конкретную версию API",
- },
- GoogleSafetySettings: {
- Title: "Уровень фильтрации Google",
- SubTitle: "Настроить уровень фильтрации контента",
- },
- },
- Baidu: {
- ApiKey: {
- Title: "API-ключ",
- SubTitle: "Использовать пользовательский Baidu API-ключ",
- Placeholder: "Baidu API-ключ",
- },
- SecretKey: {
- Title: "Секретный ключ",
- SubTitle: "Использовать пользовательский Baidu Secret Key",
- Placeholder: "Baidu Secret Key",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle:
- "Не поддерживает пользовательскую настройку, перейдите в .env",
- },
- },
- ByteDance: {
- ApiKey: {
- Title: "Ключ интерфейса",
- SubTitle: "Использовать пользовательский ByteDance API-ключ",
- Placeholder: "ByteDance API-ключ",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Пример:",
- },
- },
- Alibaba: {
- ApiKey: {
- Title: "Ключ интерфейса",
- SubTitle: "Использовать пользовательский Alibaba Cloud API-ключ",
- Placeholder: "Alibaba Cloud API-ключ",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Пример:",
- },
- },
- AI302: {
- ApiKey: {
- Title: "Ключ интерфейса",
- SubTitle: "Использовать пользовательский 302.AI API-ключ",
- Placeholder: "302.AI API-ключ",
- },
- Endpoint: {
- Title: "Адрес интерфейса",
- SubTitle: "Пример:",
- },
- },
- CustomModel: {
- Title: "Название пользовательской модели",
- SubTitle:
- "Добавьте варианты пользовательских моделей, разделяя запятыми",
- },
- },
- Model: "Модель",
- CompressModel: {
- Title: "Модель сжатия",
- SubTitle: "Модель, используемая для сжатия истории",
- },
- Temperature: {
- Title: "Случайность (temperature)",
- SubTitle: "Чем больше значение, тем более случайные ответы",
- },
- TopP: {
- Title: "Ядро выборки (top_p)",
- SubTitle: "Похожие на случайность, но не изменяйте вместе с случайностью",
- },
- MaxTokens: {
- Title: "Ограничение на количество токенов за один раз (max_tokens)",
- SubTitle: "Максимальное количество токенов на одно взаимодействие",
- },
- PresencePenalty: {
- Title: "Наказание за новизну тем (presence_penalty)",
- SubTitle:
- "Чем больше значение, тем выше вероятность расширения на новые темы",
- },
- FrequencyPenalty: {
- Title: "Наказание за частоту (frequency_penalty)",
- SubTitle:
- "Чем больше значение, тем выше вероятность уменьшения повторяющихся слов",
- },
- },
- Store: {
- DefaultTopic: "Новый чат",
- BotHello: "Чем могу помочь?",
- Error: "Произошла ошибка, попробуйте позже",
- Prompt: {
- History: (content: string) =>
- "Это резюме истории чата как предыстория: " + content,
- Topic:
- "Укажите краткую тему этого сообщения в четырех-пяти словах, без объяснений, знаков препинания, междометий, лишнего текста или выделения. Если темы нет, просто напишите 'Болтовня'",
- Summarize:
- "Кратко подведите итоги содержимого беседы для использования в качестве последующего контекстного запроса, не более 200 слов",
- },
- },
- Copy: {
- Success: "Скопировано в буфер обмена",
- Failed: "Не удалось скопировать, предоставьте доступ к буферу обмена",
- },
- Download: {
- Success: "Содержимое успешно загружено в вашу директорию.",
- Failed: "Не удалось загрузить.",
- },
- Context: {
- Toast: (x: any) => `Содержит ${x} предустановленных подсказок`,
- Edit: "Текущие настройки чата",
- Add: "Добавить новый чат",
- Clear: "Контекст очищен",
- Revert: "Восстановить контекст",
- },
- Plugin: {
- Name: "Плагины",
- },
- FineTuned: {
- Sysmessage: "Вы - помощник",
- },
- SearchChat: {
- Name: "Поиск",
- Page: {
- Title: "Поиск в истории чатов",
- Search: "Введите ключевые слова для поиска",
- NoResult: "Результатов не найдено",
- NoData: "Нет данных",
- Loading: "Загрузка",
- SubTitle: (count: number) => `Найдено ${count} результатов`,
- },
- Item: {
- View: "Просмотр",
- },
- },
- Mask: {
- Name: "Маска",
- Page: {
- Title: "Предустановленные роли",
- SubTitle: (count: number) => `${count} предустановленных ролей`,
- Search: "Поиск ролей",
- Create: "Создать",
- },
- Item: {
- Info: (count: number) => `Содержит ${count} предустановленных диалогов`,
- Chat: "Диалог",
- View: "Просмотреть",
- Edit: "Редактировать",
- Delete: "Удалить",
- DeleteConfirm: "Подтвердить удаление?",
- },
- EditModal: {
- Title: (readonly: boolean) =>
- `Редактирование предустановленной маски ${
- readonly ? "(только для чтения)" : ""
- }`,
- Download: "Скачать предустановку",
- Clone: "Клонировать предустановку",
- },
- Config: {
- Avatar: "Аватар роли",
- Name: "Название роли",
- Sync: {
- Title: "Использовать глобальные настройки",
- SubTitle:
- "Будет ли текущий чат использовать глобальные настройки модели",
- Confirm:
- "Пользовательские настройки текущего чата будут автоматически заменены, подтвердите активацию глобальных настроек?",
- },
- HideContext: {
- Title: "Скрыть предустановленные диалоги",
- SubTitle:
- "После скрытия предустановленные диалоги не будут отображаться в чате",
- },
- Share: {
- Title: "Поделиться этой маской",
- SubTitle: "Создать прямую ссылку на эту маску",
- Action: "Скопировать ссылку",
- },
- },
- },
- NewChat: {
- Return: "Вернуться",
- Skip: "Начать сразу",
- NotShow: "Больше не показывать",
- ConfirmNoShow:
- "Подтвердить отключение? После отключения вы всегда сможете включить его снова в настройках.",
- Title: "Выберите маску",
- SubTitle: "Начните сейчас, столкнитесь с мыслями за маской",
- More: "Показать все",
- },
- URLCommand: {
- Code: "Обнаружен код доступа в ссылке, автоматически заполнить?",
- Settings:
- "Обнаружены предустановленные настройки в ссылке, автоматически заполнить?",
- },
- UI: {
- Confirm: "Подтвердить",
- Cancel: "Отмена",
- Close: "Закрыть",
- Create: "Создать",
- Edit: "Редактировать",
- Export: "Экспортировать",
- Import: "Импортировать",
- Sync: "Синхронизировать",
- Config: "Настройки",
- },
- Exporter: {
- Description: {
- Title: "Только сообщения после очистки контекста будут отображаться",
- },
- Model: "Модель",
- Messages: "Сообщения",
- Topic: "Тема",
- Time: "Время",
- },
- };
- export default ru;
|