Update ru-ru locale (#4522) * Work on tl * eslint fix * Update data-i18n attribute for expand view button * Add data-i18n to button --------- Co-authored-by: Yokayo <nonameutubecomm@gmail.com> Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>

1e05eac7dfcc744086f92d6d0830c09db9be6e82

Yokayo <52032299+Yokayo@users.noreply.github.com>

Signed
9 files changed, +148 -51Showing whitespace changes
public/index.html+1 -1
@@ -5340,7 +5340,7 @@
53405340 <i class="fa-solid fa-wand-magic"></i>
53415341 <span data-i18n="Auto-select">Auto-select</span>
53425342 </div>
53435343 <label for="add_bg_button" id="add_background_button_top" class="menu_button menu_button_icon interactable" data-i18n="[title]Add a new background" title="Add a new background">
53445344 <i class="fa-solid fa-plus"></i>
53455345 <span data-i18n="Add Background">Add Background</span>
53465346 </label>
public/locales/ru-ru.json+120 -28
@@ -24,7 +24,7 @@
2424 "Mirostat_Tau_desc": "Целевая перплексия.",
2525 "Mirostat_Eta_desc": "Скорость обучения Mirostat.",
2626 "Temperature Last": "Температура последней",
2727 "LLaMA / Mistral / Yi models only": "Только для моделей LLaMA / Mistral / Yi. Перед этим обязательно выберите подходящий токенизатор.\nПоследовательности, которых не должно быть на выходе.\nОдна на строку. Текст или [идентификаторы токенов].\nМногие токены имеют пробел впереди. Используйте счетчиксчётчик токенов, если не уверены, что правильно их определяете.",
2828 "Example: some text [42, 69, 1337]": "Пример:\nкакой-то текст\n[42, 69, 1337]",
2929 "Classifier Free Guidance. More helpful tip coming soon": "Classifier Free Guidance. Чуть позже опишем более подробно",
3030 "Scale": "Scale",
@@ -91,7 +91,7 @@
9191 "Impersonation prompt": "Промпт для перевоплощения",
9292 "Prompt that is used for Impersonation function": "Промпт, применяемый при генерации действий от лица пользователя",
9393 "Logit Bias": "Смещение логитов",
9494 "Helps to ban or reenforce the usage of certain words": "Запрещает или поощряет использование определенных слов.",
9595 "View / Edit bias preset": "Просмотр / Редактирование пресета смещения",
9696 "Add bias entry": "Добавить правило смещения",
9797 "Connect": "Подключиться",
@@ -201,8 +201,8 @@
201201 "Bubbles": "Пузыри",
202202 "No Blur Effect": "Отключить размытие",
203203 "No Text Shadows": "Отключить тень текста",
204204 "Waifu Mode": "Режим вайфувизуальной новеллы",
205205 "Message Timer": "ТаймерДлительность генерации сообщений",
206206 "Model Icon": "Значки моделей",
207207 "Advanced Character Search": "Расширенный поиск по персонажам",
208208 "Allow {{char}}: in bot messages": "Показывать {{char}}: в ответах",
@@ -211,12 +211,12 @@
211211 "Lorebook Import Dialog": "Показывать окно импорта лорбука",
212212 "MUI Preset": "Пресет MUI:",
213213 "If set in the advanced character definitions, this field will be displayed in the characters list.": "Если это поле задано в расширенных параметрах персонажа, оно будет отображаться в списке персонажей.",
214214 "Relaxed API URLS": "Смягчённые\"Ленивые\" адреса API",
215215 "Custom CSS": "Пользовательский CSS",
216216 "Mancer Model": "Модель Mancer",
217217 "API Type": "Тип API",
218218 "Aphrodite API key": "Ключ от API Aphrodite",
219219 "Relax message trim in Groups": "МягкаяСмягчить обрезкатребования сообщенийк сообщениям ИИ в группах",
220220 "Characters Hotswap": "HotSwap (смена персонажей на лету)",
221221 "Request token probabilities": "Запрашивать вероятность токена",
222222 "Movable UI Panels": "Подвижные панели UI",
@@ -229,10 +229,10 @@
229229 "Text Shadow Width": "Размер теней текста",
230230 "Swipes": "Свайпы",
231231 "Miscellaneous": "Разное",
232232 "Background Sound Only": "Только фоновыйфоновые звукзвуки",
233233 "Auto-load Last Chat": "Автозагрузка последнего чата",
234234 "Auto-save Message Edits": "Автоматически сохранять отредактированные сообщения",
235235 "Auto-fix Markdown": "Автоисправление разметки Markdown",
236236 "Auto-scroll Chat": "Автоматическая прокрутка чата",
237237 "Send on Enter": "Отправка на Enter",
238238 "Debug Menu": "Меню отладки",
@@ -329,7 +329,7 @@
329329 "Global Lore First": "Сначала глобальный лор",
330330 "Recursive Scan": "Рекурсивное сканирование",
331331 "Case Sensitive": "Учитывать регистр",
332332 "Alert On Overflow": "Оповещение о переполнениипревышении бюджета",
333333 "Use Probability": "Использовать вероятность",
334334 "Exclude from recursion": "Исключить из рекурсии",
335335 "Entry Title/Memo": "Название или заметка о записи",
@@ -354,7 +354,7 @@
354354 "Chat Background": "Фон чата",
355355 "UI Background": "Фон UI",
356356 "Mad Lab Mode": "Режим безумца",
357357 "Show Message Token Count": "СчетчикПоказывать кол-во токенов сообщенияв сообщении",
358358 "Compact Input Area (Mobile)": "Компактная зона ввода",
359359 "Zen Sliders": "Дзен слайдеры",
360360 "UI Border": "Границы UI",
@@ -363,7 +363,7 @@
363363 "Tags as Folders": "Теги как папки",
364364 "Streaming FPS": "FPS для стриминга",
365365 "Gestures": "Жесты",
366366 "Message IDs": "IDНомера сообщений",
367367 "Prefer Character Card Prompt": "Приоритет промпту из карточки персонажа",
368368 "Prefer Character Card Jailbreak": "Приоритет джейлбрейку из карточки персонажа",
369369 "Press Send to continue": "Кнопка отправки продолжает сообщение",
@@ -372,7 +372,7 @@
372372 "Never resize avatars": "Не менять размер аватарок",
373373 "Show avatar filenames": "Показывать названия файлов аватарок",
374374 "Import Card Tags": "Импортировать теги карточки",
375375 "Confirm message deletion": "ПодтверждениеСпрашивать удаленияпри удалении сообщений",
376376 "Spoiler Free Mode": "Режим без спойлеров",
377377 "Auto-swipe": "Автоматические свайпы",
378378 "Minimum generated message length": "Минимальная длина сгенерированных сообщений",
@@ -392,11 +392,11 @@
392392 "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Всегда показывать полный список действий с сообщением, а не прятать их за '...'.",
393393 "Alternative UI for numeric sampling parameters with fewer steps": "Уменьшить кол-во шагов для параметров, регулируемых слайдерами.",
394394 "Entirely unrestrict all numeric sampling parameters": "Снять ограничения со всех числовых сэмплеров.",
395395 "Time the AI's message generation, and show the duration in the chat log": "ВремяЗасекать генерациивремя, сообщенийза ИИкоторое было сгенерировано сообщение, и егоотображать показэту винформацию журналев чатачате.",
396396 "Show a timestamp for each message in the chat log": "Показывать временную метку для каждого сообщения в журнале чата.",
397397 "Show an icon for the API that generated the message": "ПоказатьПоказывать значок API, сгенерировавшего сообщение.",
398398 "Show sequential message numbers in the chat log": "Показывать порядковые номера сообщений в журнале чатачате.",
399399 "Show the number of tokens in each message in the chat log": "ПоказатьПоказывать количество токенов в каждом сообщении в журнале чатачате.",
400400 "Single-row message input area. Mobile only, no effect on PC": "Однорядная область ввода сообщений. Только для мобильных устройств, на ПК не работает.",
401401 "In the Character Management panel, show quick selection buttons for favorited characters": "На панели управления персонажами будут отображены кнопки быстрого выбора для избранных персонажей.",
402402 "Show tagged character folders in the character list": "Отобразить теговые папки с персонажами в списке персонажей.",
@@ -404,7 +404,7 @@
404404 "Only play a sound when ST's browser tab is unfocused": "Воспроизводить звук только тогда, когда вкладка браузера ST не выбрана.",
405405 "Reduce the formatting requirements on API URLs": "Снижение требований к форматированию URL-адресов API.",
406406 "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Спрашивать разрешение на импорт лорбука для всех персонажей со встроенным лорбуком. При выключенной опции вместо этого будет показываться короткое сообщение",
407407 "Restore unsaved user input on page refresh": "Восстановление несохраненного пользовательского запросасообщения при обновлении страницы.",
408408 "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Позволяет перемещать некоторые элементы интерфейса путем их перетаскивания. Только для ПК, на телефонах не работает.",
409409 "MovingUI preset. Predefined/saved draggable positions": "Пресет для MovingUI. Предопределенные/сохраненные позиции для перетаскивания.",
410410 "Save movingUI changes to a new file": "Сохранение изменений MovingUI в новый файл.",
@@ -419,7 +419,7 @@
419419 "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Показывать кнопки со стрелками на последнем сообщении в чате, чтобы генерировать альтернативные ответы ИИ. Как для ПК, так и для мобильных устройств.",
420420 "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Позволяет использовать жесты смахивания на последнем сообщении в чате, чтобы вызвать альтернативную генерацию. Только для мобильных устройств, на ПК не работает.",
421421 "Save edits to messages without confirmation as you type": "Сохранять правки в сообщениях без подтверждения по мере ввода текста.",
422422 "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Не кодировать символы < и > в тексте сообщения, что позволяет использовать подмножествочасть возможностей HTML-разметки, а также разметку Markdown.",
423423 "Allow AI messages in groups to contain lines spoken by other group members": "Разрешить ИИ в группах генерировать строчки за других участников группы в своих сообщениях.",
424424 "Requests logprobs from the API for the Token Probabilities feature": "Запросить логпробы из API для функции Token Probabilities.",
425425 "Automatically reject and re-generate AI message based on configurable criteria": "Автоматическое отклонение и повторная генерация сообщений AI на основе настраиваемых критериев.",
@@ -549,7 +549,7 @@
549549 "Character Management": "Управление персонажами",
550550 "Locked = Character Management panel will stay open": "Закреплено = Панель управление персонажами останется открытой",
551551 "Select/Create Characters": "Выбрать/Создать персонажа",
552552 "Token counts may be inaccurate and provided just for reference.": "СчетчикСчётчик токенов может быть неточным, используйте как ориентир",
553553 "Click to select a new avatar for this character": "Нажмите чтобы выбрать новый аватар для этого персонажа",
554554 "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Пример:\n [{{user}} is a 28-year-old Romanian cat girl.]",
555555 "Toggle grid view": "Сменить вид сетки",
@@ -1024,10 +1024,10 @@
10241024 "image_inlining_hint_2": ". Также это можно сделать через меню",
10251025 "image_inlining_hint_3": ".",
10261026 "Contest Winners": "Победители конкурса",
10271027 "Rename backgroundBackground": "Переименовать фон",
10281028 "Lock": "Закрепить",
10291029 "Unlock": "Открепить",
10301030 "Delete backgroundBackground": "Удалить фон",
10311031 "Export all": "Экспортировать всё",
10321032 "Export all your prompts to a file": "Экспортировать все промпты в виде файла",
10331033 "Don't add character names.": "Не добавлять имя персонажа",
@@ -1621,7 +1621,7 @@
16211621 "Auxiliary": "Вспомогательный",
16221622 "Post-History Instructions": "Инструкции после истории",
16231623 "Current persona updated": "Текущая персона изменена",
16241624 "Your messages will now be sent as ${0}": "Ваши сообщенияТеперь будутвы отправлятьсябудете отподписываться лицакак ${0}",
16251625 "Copied!": "Скопировано!",
16261626 "Are you sure you want to delete this message?": "Вы точно хотите удалить это сообщение?",
16271627 "Delete Message": "Удалить сообщение",
@@ -1977,7 +1977,7 @@
19771977 "Importing Tags": "Импорт тегов",
19781978 "Couldn't import tags:": "Не удалось импортировать теги:",
19791979 "Allow fallback models": "Разрешить резервные модели",
19801980 "Allow fallback providers": "Разрешить fallback-резервных провайдеров",
19811981 "To use instruct formatting, switch to OpenRouter under Text Completion API.": "Переключитесь на OpenRouter в Text Completion API, чтобы использовать форматирование Instruct-режима.",
19821982 "Select providers. No selection = all providers.": "Выберите провайдера. Нет выбранного = выбраны все.",
19831983 "Model Providers": "Провайдеры моделей",
@@ -2406,7 +2406,7 @@
24062406 "${0} is a system assistant. Choose another character.": "Персонаж ${0} выбран в качестве системного помощника. Выберите другого.",
24072407 "Set ${0} as your assistant.": "Персонаж ${0} установлен в качестве помощника.",
24082408 "${0} is no longer your assistant.": "Персонаж ${0} снят с роли помощника.",
24092409 "Manage API keys": "УправлениеМенеджер ключамиключей",
24102410 "Key:": "Ключ:",
24112411 "No secrets saved.": "Ключей нет.",
24122412 "Add Secret": "Добавить ключ",
@@ -2433,7 +2433,7 @@
24332433 "prompt_post_processing_semi_tools": "Semi-strict (чередовать роли, функции включены)",
24342434 "prompt_post_processing_strict_tools": "Strict (чередовать роли, сначала пользователь; функции включены)",
24352435 "prompt_post_processing_single": "Только одно сообщение пользователя (функции отключены)",
24362436 "prompt_post_processing_merge_tools": "Объединять идущие подряд сообщениесообщения с одной ролью (функции включены)",
24372437 "completions note prefix": "Постфикс ",
24382438 "suffix will be added automatically.": "будет добавлен автоматически.",
24392439 "Tabby Model": "Модель Tabby",
@@ -2548,7 +2548,7 @@
25482548 "Default (top of context)": "По умолчанию (наверху контекста)",
25492549 "Bind Model to Templates": "Связать модель с шаблоном",
25502550 "Persona Auto Selected": "Персона автоматически изменена",
25512551 "Auto-selected persona based on ${0} connection.<br />Your messages will now be sent as ${1}.": "Персона выбрана автоматически на основе следующего критерия: ${0}<br />Ваши сообщенияТеперь будутвы отправлятьсябудете отподписываться лицакак ${1}",
25522552 "Filter to specific generation types.": "Применять промпт только при определённых типах генерации.",
25532553 "Quiet": "Тихая",
25542554 "Swipe": "Свайп",
@@ -2601,7 +2601,7 @@
26012601 "sd_snap_txt": "Корректировать автоматически выбранное разрешение",
26022602 "sd_snap": "Подгонять картинки с фиксированным соотношением сторон (фоны, портреты) к ближайшему известному разрешению (рекомендуется для SDXL)",
26032603 "Source": "API",
26042604 "Hint: Save an API key in AI Horde API settings to use it here.": "ПодсказкаСовет: сохраните ключ от API в настройках API на сайте AI Horde, чтобы использоватьавтоматически подтянуть его автоматическисюда.",
26052605 "Sanitize prompts (recommended)": "Прогонять промпты через санитайзер (рекомендуется)",
26062606 "Sampling method": "Метод сэмплинга",
26072607 "Resolution": "Целевое разрешение",
@@ -2652,5 +2652,97 @@
26522652 "sd_auto_auth_warning_1": " запускайте Stable Diffusion с флагом",
26532653 "sd_auto_auth_warning_2": "! Адрес SD должен быть доступен с сервера SillyTavern.",
26542654 "Upscale by": "Множитель апскейлинга",
26552655 "Hires steps (2nd pass)": "Кол-во шагов Hires (на втором проходе)",
2656+ "Disallow embedded media from other domains in chat messages": "Запретить медиафайлы со сторонних доменов в сообщениях чата.",
2657+ "Add Background": "Добавить фон",
2658+ "Add a new background": "Добавить новый фон",
2659+ "Backgrounds": "Фоны",
2660+ "ext_regex_debugger_desc": "Дополнительные инструменты отладки",
2661+ "ext_regex_debugger": "Отладка",
2662+ "ext_regex_presets": "Пресеты",
2663+ "ext_regex_presets_desc": "Переключайтесь между разными группами активных рег. выражений.",
2664+ "ext_regex_preset_create": "Создать новый пресет",
2665+ "ext_regex_preset_update": "Обновить текущий пресет",
2666+ "ext_regex_preset_apply": "Перезагрузить текущий пресет",
2667+ "ext_regex_preset_delete": "Удалить текущий пресет",
2668+ "[No presets saved]": "[Пресет не выбран]",
2669+ "Enter a name for the new regex preset:": "Введите имя нового пресета:",
2670+ "ext_regex_debugger_active_rules": "Активные скрипты",
2671+ "No regex rules found.": "Скриптов не найдено.",
2672+ "ext_regex_debugger_testing_area": "Зона тестирования",
2673+ "ext_regex_debugger_run_test": "Протестировать",
2674+ "ext_regex_debugger_display_replace": "Заменить",
2675+ "ext_regex_debugger_display_highlight": "Посдветить",
2676+ "ext_regex_debugger_render_text": "Отображать как текст",
2677+ "ext_regex_debugger_render_message": "Отображать как сообщение",
2678+ "ext_regex_debugger_save_order": "Сохранить порядок",
2679+ "ext_regex_debugger_save_order_help": "Сохранить текущий порядок скриптов",
2680+ "Regex script order saved!": "Порядок сохранён!",
2681+ "ext_regex_debugger_raw_input": "Исходный текст",
2682+ "ext_regex_debugger_step_by_step": "Пошаговая трансформация",
2683+ "ext_regex_debugger_final_output": "Итоговый результат",
2684+ "Expand view": "Развернуть",
2685+ "Global Rules": "Глобальные скрипты",
2686+ "Scoped Rules": "Локальные скрипты",
2687+ "Edit Rule": "Редактировать скрипт",
2688+ "Global": "Глобальный",
2689+ "Scoped": "Локальный",
2690+ "Captured:": "Зафиксировано:",
2691+ "Added:": "Добавлено:",
2692+ "Removed:": "Удалено:",
2693+ "Total Captured:": "Всего зафиксировано:",
2694+ "Total Added:": "Всего добавлено:",
2695+ "Total Removed:": "Всего удалено:",
2696+ "ext_regex_debugger_run_test_help": "Прогнать текст через данный набор скриптов",
2697+ "After:": "После:",
2698+ "Are you sure you want to delete this regex preset?": "Точно хотите удалить этот пресет?",
2699+ "Regex preset updated": "Пресет обновлён",
2700+ "Regex preset saved": "Пресет сохранён",
2701+ "Regex preset deleted": "Пресет удалён",
2702+ "Enhance": "Улучшить",
2703+ "Enables prompt enhancing (passes prompts through an LLM to add detail).": "Включить улучшение промпта (дополнительно прогоняет промпт через LLM, чтобы добавить больше деталей)",
2704+ "Use ADetailer (Face)": "Использовать ADetailer (для лиц)",
2705+ "You can find your API key in the Stability AI dashboard.": "Ключ от API можно найти на дашборде на сайте Stability AI",
2706+ "sd_stability_style_preset": "Стиль",
2707+ "Avoid spending Anlas": "Стараться не тратить Anlas",
2708+ "Automatically adjust generation parameters to ensure free image generations.": "Автоматически подгонять параметры таким образом, чтобы генерация получалась бесплатной.",
2709+ "View my Anlas": "Узнать баланс Anlas",
2710+ "Hint: Save an API key in the NovelAI API settings to use it here.": "Совет: сохраните API-ключ в настройках API NovelAI, чтобы автоматически подтянуть его сюда.",
2711+ "Hint: Save an API key in the Hugging Face (Text Completion) API settings to use it here.": "Совет: сохраните API-ключ в настройках API HuggingFace (раздел Text Completion), чтобы автоматически подтянуть его сюда.",
2712+ "Model ID": "Идентификатор модели",
2713+ "<Enter Model ID above>": "<Введите идентификатор в поле выше>",
2714+ "Hint: Save an API key in the NanoGPT (Chat Completion) API settings to use it here.": "Совет: сохраните API-ключ в настройках API NanoGPT (раздел Chat Completion), чтобы автоматически подтянуть его сюда.",
2715+ "Hint: Save an API key in the Electron Hub (Chat Completion) API settings to use it here.": "Совет: сохраните API-ключ в настройках API Electron Hub (раздел Chat Completion), чтобы автоматически подтянуть его сюда.",
2716+ "sd_drawthings_auth_txt": " запускайте DrawThings только со включенным в UI флажком HTTP API! Сервер должен быть доступен с хоста, на котором запущена SillyTavern.",
2717+ "Send me a picture of:": "Пришли мне...",
2718+ "sd_Yourself": "Свою фотографию",
2719+ "sd_Your_Face": "Своё лицо",
2720+ "sd_Me": "Мою фотографию",
2721+ "sd_The_Whole_Story": "Изображение всей истории",
2722+ "sd_The_Last_Message": "Изображение посл. сообщения",
2723+ "sd_Raw_Last_Message": "Изображение посл. сообщения до обработки",
2724+ "sd_Background": "Фотографию фона",
2725+ "ext_regex_title": "Регулярные выражения",
2726+ "ext_sum_title": "Саммари (пересказ)",
2727+ "Image Generation": "Генерация изображений",
2728+ "ext_translate_title": "Перевод чата",
2729+ "Select TTS Provider": "Выберите TTS-движок",
2730+ "tts_enabled": "Включить",
2731+ "Narrate user messages": "Озвучивать сообщения пользователя",
2732+ "Auto Generation": "Автоматическая генерация",
2733+ "Narrate by paragraphs (when streaming)": "Озвучивать по параграфу за раз (при вкл. стриминге)",
2734+ "Narrate by paragraphs (when not streaming)": "Озвучивать по параграфу за раз (при выкл. стриминге)",
2735+ "Only narrate quotes": "Озвучивать только текст \"в кавычках\"",
2736+ "Ignore text, even quotes, inside asterisk": "Не озвучивать *текст, даже \"в кавычках\", если он внутри звёздочек*",
2737+ "Narrate only the translated text": "Озвучивать только переведённый текст",
2738+ "Skip codeblocks": "Пропускать блоки кода",
2739+ "Skip tagged blocks": "Пропускать блоки с <тегами>",
2740+ "Pass Asterisks to TTS Engine": "Передавать звёздочки TTS-движку",
2741+ "Different voices for quotes and text inside asterisks": "Разные голоса для \"кавычек\", *звёздочек* и остального текста.",
2742+ "Requires auto generation to be enabled.": "Работает только при включенной функции \"Автоматическая генерация\"",
2743+ "tts_refresh": "Обновить",
2744+ "Uses the voices provided by your operating system": "Используем стандартные голоса вашей ОС",
2745+ "Your browser or operating system doesn't support speech synthesis": "Ваш браузер либо ОС не поддерживают синтез речи",
2746+ "Works best when: Pass Asterisks to TTS Engine is enabled, and both Only narrate quotes and Ignore *text, even 'quotes', inside asterisks* are disabled.": "Работает лучше всего, когда: одновременно включена опция \"Передавать звёздочки TTS-движку\", а также отключены обе опции: \"Не озвучивать *текст, даже \"в кавычках\", если он внутри звёздочек*\", и \"Озвучивать только текст \"в кавычках\"\"",
2747+ "Available voices": "Доступные голоса"
26562748}
public/scripts/extensions/regex/debugger.html+5 -1
@@ -11,6 +11,7 @@
1111 <button
1212 id="regex_debugger_save_order"
1313 class="menu_button menu_button_icon interactable"
14+ data-i18n="[title]ext_regex_debugger_save_order_help"
1415 title="Save current rule order"
1516 tabindex="0"
1617 >
@@ -53,6 +54,7 @@
5354 <button
5455 id="regex_debugger_run_test"
5556 class="menu_button menu_button_icon interactable"
57+ data-i18n="[title]ext_regex_debugger_run_test_help"
5658 title="Run the test pipeline"
5759 tabindex="0"
5860 >
@@ -115,6 +117,7 @@
115117 <div
116118 id="regex_debugger_expand_steps"
117119 class="menu_button menu_button_icon"
120+ data-i18n="[title]Expand view"
118121 title="Expand view"
119122 >
120123 <i class="fa-solid fa-expand"></i>
@@ -132,6 +135,7 @@
132135 <div
133136 id="regex_debugger_expand_final"
134137 class="menu_button menu_button_icon"
138+ data-i18n="[title]Expand view"
135139 title="Expand view"
136140 >
137141 <i class="fa-solid fa-expand"></i>
@@ -158,7 +162,7 @@
158162 <code class="rule-regex"></code>
159163 <small class="rule-scope"></small>
160164 </div>
161165 <div class="menu_button menu_button_icon edit_rule" data-i18n="[title]Edit Rule" title="Edit Rule">
162166 <i class="fa-solid fa-pencil"></i>
163167 </div>
164168 </li>
public/scripts/extensions/regex/index.js+7 -7
@@ -969,7 +969,7 @@ function populateDebuggerRuleList(container) {
969969
970970 const allScripts = getRegexScripts();
971971 if (!allScripts || allScripts.length === 0) {
972972 rulesContainer.append('<div class="regex-debugger-no-rules">' + t`No regex rules found.` + '</div>');
973973 return;
974974 }
975975
@@ -1002,7 +1002,7 @@ function populateDebuggerRuleList(container) {
10021002 ruleElement.find('.rule-name').text(script.scriptName);
10031003 ruleElement.find('.rule-regex').text(script.findRegex);
10041004 // @ts-ignore
10051005 ruleElement.find('.rule-scope').text(script.isScoped ? 't`Scoped'` : 't`Global'`);
10061006 ruleElement.find('.rule-enabled').prop('checked', !script.disabled);
10071007 // @ts-ignore
10081008 ruleElement.find('.edit_rule').on('click', () => onRegexEditorOpenClick(script.id, script.isScoped));
@@ -1035,14 +1035,14 @@ function populateDebuggerRuleList(container) {
10351035 };
10361036
10371037 if (globalScripts.length > 0) {
10381038 rulesContainer.append('<div class="list-header regex-debugger-list-header">' + t`Global Rules` + '</div>');
10391039 const globalList = $('<ul id="regex_debugger_rules_global" class="sortable-list"></ul>');
10401040 globalScripts.forEach(script => globalList.append(renderRule(script)));
10411041 rulesContainer.append(globalList);
10421042 }
10431043
10441044 if (scopedScripts.length > 0) {
10451045 rulesContainer.append('<div class="list-header regex-debugger-list-header">' + t`Scoped Rules` + '</div>');
10461046 const scopedList = $('<ul id="regex_debugger_rules_scoped" class="sortable-list"></ul>');
10471047 scopedScripts.forEach(script => scopedList.append(renderRule(script)));
10481048 rulesContainer.append(scopedList);
@@ -1106,9 +1106,9 @@ async function onRegexDebuggerOpenClick() {
11061106 // Set the ID on the TOP-LEVEL element that is being appended.
11071107 stepElement.find('>:first-child').attr('id', `step-result-${script.id}`);
11081108 const stepHeader = stepElement.find('.step-header');
11091109 stepHeader.find('strong').text(t`After:` + ` ${script.scriptName}`);
11101110
11111111 const metricsHtml = `'<span class="step-metrics">' + t`Captured:` + ` ${result.charsCaptured}, ` + t`Added:` + ` +${result.charsAdded}, ` + t`Removed:` + ` -${result.charsRemoved}</span>`;
11121112 stepHeader.append(metricsHtml);
11131113
11141114 if (displayMode === 'highlight') {
@@ -1128,7 +1128,7 @@ async function onRegexDebuggerOpenClick() {
11281128
11291129 const summaryHtml = `
11301130 <div id="regex_debugger_final_summary" class="regex-debugger-summary">
11311131 <strong>` + t`Total Captured:` + `</strong> ${totalCharsCaptured} | <strong>` + t`Total Added:` + `</strong> +${totalCharsAdded} | <strong>` + t`Total Removed:` + `</strong> -${totalCharsRemoved}
11321132 </div>
11331133 `;
11341134 finalOutput.before(summaryHtml);
public/scripts/extensions/stable-diffusion/dropdown.html+1 -1
@@ -1,6 +1,6 @@
11<div id="sd_dropdown">
22 <ul class="list-group">
33 <span data-i18n="Send me a picture of:">Send me a picture of:</span>
44 <li class="list-group-item" id="sd_you" data-value="you" data-i18n="sd_Yourself">Yourself</li>
55 <li class="list-group-item" id="sd_face" data-value="face" data-i18n="sd_Your_Face">Your Face</li>
66 <li class="list-group-item" id="sd_me" data-value="me" data-i18n="sd_Me">Me</li>
public/scripts/extensions/stable-diffusion/index.js+1 -1
@@ -1705,7 +1705,7 @@ async function loadModels() {
17051705 models = await loadStabilityModels();
17061706 break;
17071707 case sources.huggingface:
17081708 models = [{ value: '', text: 't`<Enter Model ID above>'` }];
17091709 break;
17101710 case sources.electronhub:
17111711 models = await loadElectronHubModels();
public/scripts/extensions/stable-diffusion/settings.html+6 -6
@@ -90,15 +90,15 @@
9090 <i><b data-i18n="Important:">Important:</b></i><i data-i18n="sd_drawthings_auth_txt"> run DrawThings app with HTTP API switch enabled in the UI! The server must be accessible from the SillyTavern host machine.</i>
9191 </div>
9292 <div data-sd-source="huggingface">
9393 <i data-i18n="Hint: Save an API key in the Hugging Face (Text Completion) API settings to use it here.">Hint: Save an API key in the Hugging Face (Text Completion) API settings to use it here.</i>
9494 <label for="sd_huggingface_model_id" data-i18n="Model ID">Model ID</label>
9595 <input id="sd_huggingface_model_id" type="text" class="text_pole" data-i18n="[placeholder]e.g. black-forest-labs/FLUX.1-dev" placeholder="e.g. black-forest-labs/FLUX.1-dev" value="" />
9696 </div>
9797 <div data-sd-source="electronhub">
9898 <i data-i18n="Hint: Save an API key in the Electron Hub (Chat Completion) API settings to use it here.">Hint: Save an API key in the Electron Hub (Chat Completion) API settings to use it here.</i>
9999 </div>
100100 <div data-sd-source="nanogpt">
101101 <i data-i18n="Hint: Save an API key in the NanoGPT (Chat Completion) API settings to use it here.">Hint: Save an API key in the NanoGPT (Chat Completion) API settings to use it here.</i>
102102 </div>
103103 <div data-sd-source="vlad">
104104 <label for="sd_vlad_url">SD.Next API URL</label>
@@ -143,7 +143,7 @@
143143 View my Anlas
144144 </div>
145145 </div>
146146 <i data-i18n="Hint: Save an API key in the NovelAI API settings to use it here.">Hint: Save an API key in the NovelAI API settings to use it here.</i>
147147 </div>
148148 <div data-sd-source="aimlapi">
149149 <div class="flex-container flexnowrap alignItemsBaseline marginBot5">
@@ -204,7 +204,7 @@
204204 <a href="https://pollinations.ai">Pollinations.ai</a>
205205 </p>
206206 <div class="flex-container">
207207 <label class="flex1 checkbox_label" for="sd_pollinations_enhance" data-i18n="[title]Enables prompt enhancing (passes prompts through an LLM to add detail)." title="Enables prompt enhancing (passes prompts through an LLM to add detail).">
208208 <input id="sd_pollinations_enhance" type="checkbox" />
209209 <span data-i18n="Enhance">
210210 Enhance
@@ -297,7 +297,7 @@
297297 </div>
298298 </div>
299299 <div class="flex-container">
300300 <label class="flex1 checkbox_label" for="sd_google_enhance" data-i18n="[title]Enables prompt enhancing (passes prompts through an LLM to add detail)." title="Enables prompt enhancing (passes prompts through an LLM to add detail).">
301301 <input id="sd_google_enhance" type="checkbox" />
302302 <span data-i18n="Enhance">
303303 Enhance
public/scripts/extensions/tts/settings.html+2 -2
@@ -12,7 +12,7 @@
1212 <div class="tts_block">
1313 <select id="tts_provider" class="flex1">
1414 </select>
1515 <input id="tts_refresh" data-i18n="[value]tts_refresh" class="menu_button" type="submit" value="Reload" />
1616 </div>
1717 <div>
1818 <label class="checkbox_label" for="tts_enabled">
@@ -88,7 +88,7 @@
8888 <form id="tts_provider_settings">
8989 </form>
9090 <div class="tts_buttons">
9191 <input id="tts_voices" class="menu_button" data-i18n="[value]Available voices" type="submit" value="Available voices" />
9292 </div>
9393 </div>
9494 </div>
public/scripts/extensions/tts/system.js+5 -4
@@ -2,6 +2,7 @@ import { isMobile } from '../../RossAscends-mods.js';
22import { getPreviewString } from './index.js';
33import { saveTtsProviderSettings } from './index.js';
44export { SystemTtsProvider };
5+import { t } from '../../i18n.js';
56
67/**
78 * Chunkify
@@ -96,13 +97,13 @@ class SystemTtsProvider {
9697
9798 get settingsHtml() {
9899 if (!('speechSynthesis' in window)) {
99100 return 't`Your browser or operating system doesn\'t support speech synthesis'`;
100101 }
101102
102103 return `'<p>' + t`Uses the voices provided by your operating system` + `</p>
103104 <label for="system_tts_rate">` + t`Rate:` + ` <span id="system_tts_rate_output"></span></label>
104105 <input id="system_tts_rate" type="range" value="${this.defaultSettings.rate}" min="0.1" max="2" step="0.01" />
105106 <label for="system_tts_pitch">` + t`Pitch:` + ` <span id="system_tts_pitch_output"></span></label>
106107 <input id="system_tts_pitch" type="range" value="${this.defaultSettings.pitch}" min="0" max="2" step="0.01" />`;
107108 }
108109