ДвижкиРуководстваFAQPatreonDiscordСкачать
Войти
RuneTranslate · перевод игр с японского и 30+ языков
ДвижкиРуководстваСравнениеТекст на картинкахРедактор сохраненийРежим читовFAQСкачатьИзмененияTrustpilotPatreonDiscordYouTubeКонфиденциальностьУсловияКонтакты
Все статьи
exclusions · regex · filters

Исключайте ненужные строки из перевода с помощью regex-фильтров

24 июл. 2026 г.·7 мин чтения

Отладочные строки, пути к ресурсам и остатки служебного текста могут проскользнуть мимо автоисключения. Regex-фильтры RuneTranslate, настраиваемые для каждого проекта, исключают любую строку, исходный текст которой совпадает с шаблоном — с живым предпросмотром того, что именно они отлавливают — так что вы никогда не потратите перевод на мусор. Бесплатно, на любом тарифе.

Укажите RuneTranslate на игру, и он вытянет все переводимые строки, какие только сможет найти. Большая часть из них — это настоящие диалоги и текст меню, но кое-что оказывается мусором: оставшиеся отладочные строки, имена файлов ресурсов, внутренние флаги и случайные идентификаторы, которые игра никогда не показывает игроку. RuneTranslate уже исключает очевидные случаи для каждого движка и помечает их красными строками с возможностью включения вручную, но каждая игра индивидуальна, и часть мусора специфична именно для того проекта, над которым вы работаете.

Именно для этого нужны regex-фильтры исключения. Вы задаёте RuneTranslate один или несколько шаблонов, и любая строка, исходный текст которой совпадает с шаблоном, убирается из прогона — переводчик её пропускает, а сама она отображается красной строкой с возможностью включения вручную, которую вы всегда можете вернуть обратно. Это тот же механизм, что и встроенные исключения движков, только управляемый вашими собственными правилами и сохраняемый вместе с проектом. И это ничего не стоит: в отличие от глоссария и памяти переводов, regex-исключения бесплатны на любом тарифе.

Зачем вообще исключать строки?

Есть две причины — одна очевидная, а вторая важнее:

  • Стоимость и время. Каждая переведённая мусорная строка — это квота провайдера (или лимит бесплатного скрапера), потраченная на текст, который никто никогда не прочитает. В масштабах целой игры это складывается в заметную величину.
  • Сохранение работоспособности игры. Вот это по-настоящему важно. Некоторые строки — вовсе не текст: это ключи, пути к файлам или операнды логики, которые движок разрешает по значению. Переведите bg_office_01 или EV_FLAG_TRUE — и вы можете незаметно сломать переход между сценами или поиск переменной. Их исключение сохраняет стабильность собранной сборки.

Где это найти

Откройте проект, затем на панели инструментов редактора откройте меню ⋯ Ещё и выберите Regex-исключения. Откроется панель Пользовательские фильтры исключения — вы добавляете шаблоны, наблюдаете, что именно они отлавливают, и применяете — всё в одном окне.

Живой предпросмотр — в этом весь смысл

Вы никогда не применяете шаблон вслепую. Пока вы вводите regex, RuneTranslate показывает Совпадений: N из TOTAL строк и выводит несколько реальных строк, которые он отловит, обновляя всё это на каждое нажатие клавиши. Некорректный шаблон мгновенно отмечается с описанием ошибки, так что сохранить сломанный вы не сможете.

Поскольку предпросмотр показывает реальные строки именно вашего проекта, вы подстраиваете шаблон, пока он не начнёт отлавливать ровно мусор и ничего настоящего, а затем применяете его. Одна деталь, которую стоит запомнить: шаблоны сопоставляются с исходным текстом — оригинальным японским или каким угодно вашим исходным языком — а не с переводом. Шаблоны вы пишете под непереведённый текст.

Готовые шаблоны

В панели есть готовые чипы в один клик для шаблонов, которые встречаются почти в каждой японской игре:

  • Только ASCII — ^[\x00-\x7F]+$ — строка, в которой вообще нет символов исходного языка (оставшийся английский, ромадзи или идентификатор). Обычно её безопасно отбросить, если ваш исходный язык — японский.
  • Путь к ресурсу — \.(png|jpe?g|gif|webp|ogg|mp3|wav|webm|mp4)$ — всё, что заканчивается расширением медиафайла.
  • Переменная — ^[a-z_]+\.[a-z_] — точечные ссылки в коде вроде f.page или state.flag.
  • Токен ЗАГЛАВНЫМИ — ^[A-Z0-9_]+$ — константы и флаги, такие как EVENT_FLAG_3.
  • Числа / символы — ^[\d\s.,:%/+\-]+$ — строки только из цифр и маски тайлов вроде 11111112222.
  • Тег в скобках — ^\[.*\]$ — целая строка, состоящая только из [tag].

В панели также есть компактная шпаргалка для составления собственных шаблонов: ^ и $ привязывают к началу и концу строки, . — любой символ, * и + означают «ноль или больше» и «один или больше», ? — необязательный элемент, \d — цифра, \w — символ слова, а \s — пробельный символ.

Как писать собственные фильтры

Готовые шаблоны покрывают типовые случаи; для всего, что специфично для конкретной игры, вы пишете собственное регулярное выражение JavaScript. Несколько практических правил:

  • Привязывайте к строке целиком. Голое debug совпадёт с любой строкой, содержащей это слово, — включая настоящий диалог про отладку. ^DEBUG: совпадает только со строками, которые начинаются с этого маркера, а заключение шаблона в ^...$ сопоставляет строку целиком. Привязка — самый безопасный вариант по умолчанию.
  • Следите за счётчиком в предпросмотре. Если шаблон вдруг перескочил с 12 мусорных строк на 400, вы почти наверняка зацепили настоящий текст — проверьте примеры и сузьте шаблон.
  • Опирайтесь на структуру, а не на слова. Мусор обычно узнаётся по форме — заглавные буквы, точечные пути, расширения файлов на конце, чистые числа — а не по конкретным словам. Структурные шаблоны обобщаются на весь проект.
  • Одно правило на одну идею. Несколько небольших и понятных шаблонов проще осмыслить — и позже удалить — чем один гигантский нечитаемый.

Применение и отмена

Нажмите Применить и сохранить. RuneTranslate сохранит шаблоны вместе с проектом и заново классифицирует каждую строку, а затем сообщит, что именно произошло — например, Исключено 340 строк · 5 восстановлено. Число восстановленных — это строки, которые фильтр раньше отлавливал, но больше не отлавливает, возвращённые автоматически.

Всё полностью обратимо: удалите шаблон, примените снова — и его строки вернутся. Фильтры распоряжаются только своими собственными исключениями — они никогда не переопределяют автоисключение движка — и вы всё так же можете вручную вернуть любую отдельную строку переключателем в её ряду, если фильтр оказался чуть слишком широким.

Запрос на сброс отфильтрованных переводов

Один случай RuneTranslate берёт на себя: что, если вы отфильтровали строки, которые уже перевели? Исключённая строка экспортирует свой исходный текст, но старый перевод всё ещё к ней привязан. Поэтому сразу после применения, если какие-то только что отфильтрованные строки уже имели перевод, RuneTranslate спрашивает, сбросить ли их в статус «ожидает» — убрав перевод, чтобы при экспорте чисто откатиться к источнику — или оставить их. Обычно нужен именно сброс, ведь вы исключили эти строки как раз потому, что не хотели их переводить.

Как это сочетается со всем остальным

Regex-фильтры — это инструмент «последней мили». Адаптеры движков уже исключают тот структурный мусор, о котором знают для каждого формата, так что в хорошо поддерживаемой игре ИИ никогда не увидит путь к ресурсу. Фильтры нужны для остатков: специфичного для игры маркера, одного странного отладочного канала или строк, которые нишевый движок выдаёт наружу и которые не совсем являются диалогом.

Используйте в редакторе фильтр по статусу Исключённые, чтобы просмотреть всё, что сейчас отложено — исключения движка и ваши regex-исключения вместе — и вернуть в перевод что угодно из этого. И там, где фильтры убирают строки, глоссарий делает обратное: он фиксирует выбранные термины, чтобы они всегда переводились одинаково. Вдвоём они дают вам контроль и над тем, что переводится, и над тем, как.

Пять минут с панелью фильтров в начале проекта — добавьте пару готовых чипов, взгляните на предпросмотр, примените — экономят квоту на каждом последующем прогоне и полностью держат рискованный не-текст подальше от переводчика. Скачайте RuneTranslate, откройте любую игру и загляните в меню ⋯ Ещё в поисках пункта Regex-исключения.

Похожие материалы
01

RuneSight: нейросеть, которая отличает текст от кода

runesightexclusionsaifeature18 сент. 2026 г. · 7 мин
Читать →
02

Переведённая игра не запускается? Найдите строку

troubleshootingworkflowexportexclusions29 авг. 2026 г. · 11 мин
Читать →
03

RuneLingua: перевод теперь входит в вашу подписку RuneTranslate

runelinguaproviderspricingfeature19 сент. 2026 г. · 6 мин
Читать →

Готовы попробовать RuneTranslate?

Бесплатный тариф открывает все движки и всех провайдеров перевода. Supporter ($3.99/mo) открывает полную скорость.

Скачать для Windows