Update ru-ru locale (#4401) * Work on tl * Small fix --------- Co-authored-by: Yokayo <nonameutubecomm@gmail.com>
Signed| @@ -3641,7 +3641,7 @@ | ||
| 3641 | 3641 | </div> |
| 3642 | 3642 | <div id="aimlapi_form" data-source="aimlapi"> |
| 3643 | 3643 | <h4> |
| 3644 | 3644 | <span data-i18n="AI/ML API Key">AI/ML API Key</span> |
| 3645 | 3645 | </h4> |
| 3646 | 3646 | <div class="flex-container"> |
| 3647 | 3647 | <input id="api_key_aimlapi" name="api_key_aimlapi" class="text_pole flex1" value="" type="text" autocomplete="off"> |
| @@ -3650,7 +3650,7 @@ | ||
| 3650 | 3650 | <div data-for="api_key_aimlapi" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you click 'Connect'."> |
| 3651 | 3651 | For privacy reasons, your API key will be hidden after you click 'Connect'. |
| 3652 | 3652 | </div> |
| 3653 | 3653 | <h4 data-i18n="AI/ML Model">AI/ML Model</h4> |
| 3654 | 3654 | <select id="model_aimlapi_select"> |
| 3655 | 3655 | </select> |
| 3656 | 3656 | </div> |
| @@ -21,12 +21,10 @@ | ||
| 21 | 21 | "Maximum Temp": "Макс. температура", |
| 22 | 22 | "Exponent": "Экспонента", |
| 23 | 23 | "Mirostat Mode": "Режим", |
| 24 | 24 | "Mirostat TauMirostat_Tau_desc": "TauЦелевая перплексия.", |
| 25 | 25 | "Mirostat EtaMirostat_Eta_desc": "EtaСкорость обучения Mirostat.", |
| 26 | - "Variability parameter for Mirostat outputs": "Вариативность для выходных данных Mirostat.", | |
| 27 | - "Learning rate of Mirostat": "Скорость обучения Mirostat.", | |
| 28 | 26 | "Temperature Last": "Температура последней", |
| 29 | 27 | "LLaMA / Mistral / Yi models only": "Только для моделей LLaMA / Mistral / Yi. Перед этим обязательно выберите подходящий токенизатор.\nПоследовательности, которых не должно быть на выходе.\nОдна на строку. Текст или [идентификаторы токенов].\nМногие токены имеют пробел впереди. Используйте счетчик токенов, если не уверены, что правильно их определяете.", |
| 30 | 28 | "Example: some text [42, 69, 1337]": "Пример:\nкакой-то текст\n[42, 69, 1337]", |
| 31 | 29 | "Classifier Free Guidance. More helpful tip coming soon": "Classifier Free Guidance. Чуть позже опишем более подробно", |
| 32 | 30 | "Scale": "Scale", |
| @@ -157,7 +155,7 @@ | ||
| 157 | 155 | "Advanced Formatting": "Расширенное форматирование", |
| 158 | 156 | "Context Template": "Шаблон контекста", |
| 159 | 157 | "Replace Macro in Stop Strings": "Заменять макросы в пользовательских стоп-строках", |
| 160 | 158 | "Story String": "СтрокаОбщий историишаблон", |
| 161 | 159 | "Example Separator": "Разделитель примеров сообщений", |
| 162 | 160 | "Chat Start": "Начало чата", |
| 163 | 161 | "Activation Regex": "Рег. выражение для активации", |
| @@ -301,7 +299,7 @@ | ||
| 301 | 299 | "Trim Incomplete Sentences": "Удалять неоконченные предложения", |
| 302 | 300 | "Include Newline": "Добавлять новую строку", |
| 303 | 301 | "Non-markdown strings": "Строки без разметки", |
| 304 | 302 | "Replace Macro in Sequences": "ЗаменитьЗаменять макросы в строках", |
| 305 | 303 | "Presets": "Пресеты", |
| 306 | 304 | "Start Reply With": "Начинать ответ с", |
| 307 | 305 | "Show reply prefix in chat": "Показывать префикс ответов в чате", |
| @@ -428,7 +426,7 @@ | ||
| 428 | 426 | "Persona Description": "Описание персоны", |
| 429 | 427 | "Your Persona": "Ваша персона", |
| 430 | 428 | "Show notifications on switching personas": "Показывать уведомления при смене персоны", |
| 431 | 429 | "In Story String / Prompt Manager": "В строкеобщем историишаблоне / Менеджере промптов", |
| 432 | 430 | "Top of Author's Note": "Сверху от заметок автора", |
| 433 | 431 | "Bottom of Author's Note": "Снизу от заметок автора", |
| 434 | 432 | "How do I use this?": "Как пользоваться?", |
| @@ -610,7 +608,7 @@ | ||
| 610 | 608 | "Select this as default persona for the new chats.": "Выбирать эту персону по умолчанию для всех новых чатов.", |
| 611 | 609 | "Change persona image": "Сменить аватар персоны", |
| 612 | 610 | "Delete persona": "Удалить персону", |
| 613 | 611 | "Reduced Motion": "СокращениеУрезать анимацийанимации", |
| 614 | 612 | "Auto-select": "Авто-выбор", |
| 615 | 613 | "Automatically select a background based on the chat context": "Автоматический выбор фона в зависимости от контекста чата", |
| 616 | 614 | "Filter": "Фильтр", |
| @@ -2272,7 +2270,17 @@ | ||
| 2272 | 2270 | "characters": "перс.", |
| 2273 | 2271 | "character": "персонаж", |
| 2274 | 2272 | "in this group": "в группе", |
| 2275 | 2273 | "Chatting Since": "ПерваяПервый беседачат", |
| 2274 | + "Chat Time": "Общее время чата", | |
| 2275 | + "Swipes": "Свайпов сделано", | |
| 2276 | + "First Interaction": "Первое взаимодействие", | |
| 2277 | + "User Messages": "Сообщений отправлено пользователем", | |
| 2278 | + "Character Messages": "Сообщений отправлено персонажем", | |
| 2279 | + "User Words": "Слов отправлено пользователем", | |
| 2280 | + "Character Words": "Слов отправлено персонажем", | |
| 2281 | + "stats_header_User": "пользователю", | |
| 2282 | + "stats_header_Character": "персонажу", | |
| 2283 | + "${0} Stats": "Статистика по ${0}", | |
| 2276 | 2284 | "Context": "Контекст", |
| 2277 | 2285 | "Response": "Ответ", |
| 2278 | 2286 | "Connected": "Подключено", |
| @@ -2376,8 +2384,8 @@ | ||
| 2376 | 2384 | "Delete Tag": "Удалить тег", |
| 2377 | 2385 | "Do you want to delete the tag": "Вы точно хотите удалить тег", |
| 2378 | 2386 | "If you want to merge all references to this tag into another tag, select it below:": "Если хотите заменить ссылки на этот тег на какой-то другой, то выберите из списка:", |
| 2379 | 2387 | "Open Folder (Show all characters even if not selected)": "Открытая папка (показатьпоказывает всех персонажей, включаядаже невыбранныхесли не выбрана)", |
| 2380 | 2388 | "Closed Folder (Hide all characters unless selected)": "Закрытая папка (скрыть всехпоказывает персонажей, крометолько выбранныхесли выбрана)", |
| 2381 | 2389 | "No Folder": "Не папка", |
| 2382 | 2390 | "Show only favorites": "Показать только избранных персонажей", |
| 2383 | 2391 | "Show only groups": "Показать только группы", |
| @@ -2527,7 +2535,7 @@ | ||
| 2527 | 2535 | "Avoid sending sensitive information. Provider's outputs may include ads.": "Не отправляйте чувствительную информацию. Тексты от провайдера могут содержать рекламу.", |
| 2528 | 2536 | "Pollinations Model": "Модель Pollinations", |
| 2529 | 2537 | "Character details are hidden.": "Информация о персонаже скрыта.", |
| 2530 | 2538 | "Allow / Forbid the use of global styles for this character.": "Разрешить/запретить использование персонажемприменение глобальных стилей к этому персонажу.", |
| 2531 | 2539 | "Choose how to apply CSS style tags if they are defined in Creator's Notes of this character:": "Выберите, к чему применять CSS-теги, объявленные в Заметках создателя у этого персонажа:", |
| 2532 | 2540 | "CAUTION: Malformed styles may cause issues.": "ОСТОРОЖНО: некорректно размеченные стили могут приводить к неожиданному поведению.", |
| 2533 | 2541 | "Just to Creator's Notes": "Только к Заметкам создателя", |
| @@ -2551,5 +2559,29 @@ | ||
| 2551 | 2559 | "If you want to do it later, select 'Regex' from the extensions menu.": "Если захотите включить их позже, выберите в меню расширений пункт \"Regex\".", |
| 2552 | 2560 | "Are you sure you want to delete the selected regex scripts?": "Вы точно хотите удалить выбранные скрипты?", |
| 2553 | 2561 | "Regex script \"${0}\" imported.": "Успешно импортирован скрипт ${0}", |
| 2554 | 2562 | "Invalid regex object.": "Некорректный объект рег. выражения.", |
| 2563 | + "Sequences as Stop Strings": "Строки из шаблона в качестве стоп-строк", | |
| 2564 | + "Story String Sequences": "Строки для общего шаблона", | |
| 2565 | + "Used in Default position only.": "Только для позиции \"По умолчанию\"", | |
| 2566 | + "Story String Prefix": "Префикс для общего шаблона", | |
| 2567 | + "Inserted before a Story String.": "Вставляется перед общим шаблоном", | |
| 2568 | + "Story String Suffix": "Постфикс для общего шаблона", | |
| 2569 | + "Inserted after a Story String.": "Вставляется после общего шаблона", | |
| 2570 | + "Default (top of context)": "По умолчанию (наверху контекста)", | |
| 2571 | + "Bind Model to Templates": "Связать модель с шаблоном", | |
| 2572 | + "Persona Auto Selected": "Персона автоматически изменена", | |
| 2573 | + "Auto-selected persona based on ${0} connection.<br />Your messages will now be sent as ${1}.": "Персона выбрана автоматически на основе следующего критерия: ${0}<br />Ваши сообщения будут отправляться от лица ${1}", | |
| 2574 | + "Filter to specific generation types.": "Применять промпт только при определённых типах генерации.", | |
| 2575 | + "Quiet": "Тихая", | |
| 2576 | + "Swipe": "Свайп", | |
| 2577 | + "Triggers": "Триггеры", | |
| 2578 | + "All types (default)": "Всегда (по умолчанию)", | |
| 2579 | + "Disabling is not recommended.": "Рекомендуем не отключать.", | |
| 2580 | + "Toggle search bar": "Показать/скрыть поисковую строку", | |
| 2581 | + "Fireworks AI API Key": "Ключ от API Fireworks AI", | |
| 2582 | + "Fireworks AI Model": "Модель Fireworks AI", | |
| 2583 | + "Moonshot AI API Key": "Ключ от API Moonshot AI", | |
| 2584 | + "Moonshot AI Model": "Модель Moonshot AI", | |
| 2585 | + "AI/ML API Key": "Ключ от API AI/ML", | |
| 2586 | + "AI/ML Model": "Модель AI/ML" | |
| 2555 | 2587 | } |
| @@ -4,6 +4,7 @@ import { getRequestHeaders, characters, this_chid } from '../script.js'; | ||
| 4 | 4 | import { humanizeGenTime } from './RossAscends-mods.js'; |
| 5 | 5 | import { callGenericPopup, POPUP_TYPE } from './popup.js'; |
| 6 | 6 | import { registerDebugFunction } from './power-user.js'; |
| 7 | +import { t, translate } from './i18n.js'; | |
| 7 | 8 | |
| 8 | 9 | let charStats = {}; |
| 9 | 10 | |
| @@ -106,23 +107,24 @@ function createHtml(statsType, stats) { | ||
| 106 | 107 | .duration(stats.date_last_chat - stats.date_first_chat) |
| 107 | 108 | .humanize(); |
| 108 | 109 | } |
| 110 | + let statsTypeTranslated = translate(statsType, `stats_header_${statsType}`); | |
| 109 | 111 | |
| 110 | 112 | // Create popup HTML with stats |
| 111 | 113 | let html = `'<h3>' + t`${statsTypestatsTypeTranslated} Stats` + '</h3>`'; |
| 112 | 114 | if (statsType === 'User') { |
| 113 | 115 | html += createStatBlock('t`Chatting Since'`, `${chatAge} ago`); |
| 114 | 116 | } else { |
| 115 | 117 | html += createStatBlock('t`First Interaction'`, `${chatAge} ago`); |
| 116 | 118 | } |
| 117 | 119 | html += createStatBlock('t`Chat Time'`, timeStirng); |
| 118 | 120 | html += createStatBlock('t`User Messages'`, stats.user_msg_count); |
| 119 | 121 | html += createStatBlock( |
| 120 | 122 | 't`Character Messages'`, |
| 121 | 123 | stats.non_user_msg_count - stats.total_swipe_count, |
| 122 | 124 | ); |
| 123 | 125 | html += createStatBlock('t`User Words'`, stats.user_word_count); |
| 124 | 126 | html += createStatBlock('t`Character Words'`, stats.non_user_word_count); |
| 125 | 127 | html += createStatBlock('t`Swipes'`, stats.total_swipe_count); |
| 126 | 128 | |
| 127 | 129 | return callGenericPopup(html, POPUP_TYPE.TEXT); |
| 128 | 130 | } |