ru.ts
25.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
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:
"Последнее сообщение пользователя будет подставлено в этот шаблон",
},
Update: {
Version: (x: string) => `Текущая версия: ${x}`,
IsLatest: "Установлена последняя версия",
CheckUpdate: "Проверить обновления",
IsChecking: "Проверка обновлений...",
FoundUpdate: (x: string) => `Найдено новое обновление: ${x}`,
GoToUpdate: "Перейти к обновлению",
},
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:
"Когда не сжатая история сообщений превышает это значение, происходит сжатие",
},
Usage: {
Title: "Проверка баланса",
SubTitle(used: any, total: any) {
return `Использовано в этом месяце $${used}, всего по подписке $${total}`;
},
IsChecking: "Проверка…",
Check: "Проверить снова",
NoAccess: "Введите API-ключ или пароль доступа для просмотра баланса",
},
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: "Пример:",
},
},
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;