Darkest Dungeon®

Darkest Dungeon®

Not enough ratings
Автоматический перевод любых модов
By ͘͘
Это руководство поможет вам перевести любой мод из мастерской Steam.
   
Award
Favorite
Favorited
Unfavorite
Введение


Думаю, что каждый, кто хоть раз устанавливал моды из мастерской сталкивался с "голубыми надписями", которые показывают, что мод не переведён на ваш язык.



Но чтобы перевести мод нужно потратить много времени и сил, что хочется далеко не всем. Для ускорения данного процесса, я написал скрипт, который поможет перевести моды скачанные из мастерской Steam.


Перевод через скрипт
  1. Копируем мод
    Для того чтобы перевести мод нужно в начале скопировать его из папки мастерской в локальные моды игры.
    Если этого не сделать Steam скачает изменённые файлы заново.

    Для этого переходим в папку модов и находим нужный мод.
    Например: G:\SteamLibrary\steamapps\workshop\content\262060\2200558948

    И копируем его в папку модов в корне игры.
    Например: G:\SteamLibrary\steamapps\common\DarkestDungeon\mods

  2. Теперь нужно проверить можно ли перевести мод.
    Для этого заходим в папку мода, который мы только что скопировали, и проверяем количество количество файлов .xml в папке localization:

    • Есть хотя бы один файл '.xml' - перевести мод можно.
    • Есть несколько файлов '.xml' - либо автор мода создал отдельный '.xml' файл для каждого языка, на который был переведён мод (или один .xml для всех остальных), либо текст раскидан по нескольким '.xml' файлам. Нужно проверять xml файлы, чтобы понять это.
    • Нет '.xml' файлов - перевести мод не получится, но можно скопировать файл перевода от другого языка.

    Для скрипта, в папке localization должен быть один файл '.xml', в котором будут все строки для перевода. Можно оставить больше файлов, но тогда нужно учитывать какой файл скрипт подхватит первым (можно настроить).

    Также стоит выбрать язык, с которого нужно будет перевести мод. Для этого в xml-файле находим теги language, каждому из которых присвоен id соответствующих языков.
    Часто бывает так, что мод переведён только на один язык полностью, а для других языков некоторые строки становятся пустыми/пропущенными, или без перевода.
    Этот момент нужно учесть, так как не все переводчики умеют автоматически распознавать язык текста и лучше выбирать тот тег language, где все строки на одном языке.

    Теперь можно переходить к настройке скрипта.

  3. Скачайте DDMT с github. [github.com]
    В репозитории показан пример установки с git, но можно обойтись без него. Для этого нажимаем зелёную кнопке "Code" -> "Local" -> "Download ZIP".
    После этого скрипт нужно будет распаковать.

    Для использования скрипта у вас должен быть установлен python. Его можно скачать с официального сайта.

    Далее нужно создать виртуальную среду и установить необходимые библиотеки (подробнее на странице репозитория).

  4. Изменяем настройки
    Все настройки хранятся в main.py файле. Открыть его можно и в блокноте, но можно установить IDE (VS code, Sublime Text и др.) или Notepad++, чтобы подсветить синтаксис. Там нужно указать путь до мода, который мы скопировали, а также настроить язык с которого вы хотите перевести мод, а также переводчик и т.д.

    Остановлюсь только на переводчиках, остальное можете посмотреть в документации на том же github.

    Среди доступных переводчиков есть:

    • GoogleTranslator - не требует API-ключ для работы. Переводит быстро, но качество не очень. Подойдёт для того, чтобы хоть что-то было вместо голубых надписей или поржать над переводом. Если язык с которого переводить не сложный, то сойдёт. Имеет функцию автоматического распознавания языка, что позволит переводить теги language с текстом на нескольких языках.

    • DeepL - Лучше чем прошлый, но местами может оставлять текст без перевода. Требует API-ключ, для получения которого потребуется указать банковскую карту. Бесплатно дают 500.000 символов в месяц, что не очень много. Не умеет в автоматическое распознание языка текста, поэтому есть костыль в виде языкового детектора (API ключ нужно получать отдельно на сайте), но небольшие части текста может распознавать неправильно.

    • LLM - можно настроить скрипт, для перевода через LLM. Пробовал DeepSeek-r1 справляется хорошо, и даже моды с китайского более-менее переводит. Требует API-ключ, и возможно вам потребуется настроить отправку запросов и промт для модели, если вы хотите использовать определённого провайдера. К плюсам можно отнести, что не нужно явно указывать язык, с которого нужно перевести, и если модель достаточно умная, то сама всё поймет и переведёт.

    Стоит учесть, что каждый переводчик может иметь разное качество, в зависимости от языка текста и целевого языка.

    После редактирования настроек, сохраняем main.py.

  5. Запустить скрипт
    Можно запустить через IDE или командную строку.
    Если через cmd:
    1. Открываем папку со скриптом.
    2. Пишем cmd в адресной строке проводника. Должна открыться командная строка с текущей папкой.
    3. Вводим: python main.py
      Должен пойти процесс перевода. Для отображения, что подаётся в переводчик можно установить 'translator_debug' в True.

      После окончания работы, скрипт должен написать, что перевод завершён, и можно тестировать перевод в игре.
Заключение
Скрипт помогает перевести разные моды на нужные вам языки, но на моём опыте любые переводы нужно дорабатывать ручками до идеала, но в теории при хорошем промте для мощной LLM можно добиться около идеальных результатов, так что пробуйте разные переводчики и модели пока не получите удовлетворительные результаты.