RimWorld

RimWorld

36 ratings
Как переводить моды :Начальный уровень
By crtdgd
   
Award
Favorite
Favorited
Unfavorite
Описание
Данный гайд создан для RimWorld, но он содержит инструменты, которые будут полезны для любых игр. Данный гайд содержит информацию как перевести мод и загрузить перевод в Мастерскую.

Гайд разделен на несколько частей
  • Первая часть - базовая информация, установка программ, действия которые нужно сделать один раз

  • Вторая часть - алгоритм перевода модов, повторяющиеся действия

  • Все остальное это дополнительная информация, для тех, кто хочет получить максимум

Информация расположена в порядке изучения.
Ответы на вопросы
- Переводить моды это сложно?

Это легко. Специальные навыки здесь не требуются.

- Сколько времени занимает перевод модов?

Это зависит от объема текста и опыта. Например, полный алгоритм перевода с публикацией для небольшого мода может занять всего несколько минут.

- Стоит ли переводить мод, если в Мастерской уже есть готовый перевод?

Если вы можете сделать лучше, если вы хотите сделать свою версию, если вам нравится переводить моды - да.

- Стоит ли использовать Переводчик либо ИИ для перевода модов?

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

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

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

Структура папки перевода

Папка перевода (любое название)
- Папка About
- - Файл About.xml
- - Файл Preview.png
- Папка Languages
- - Папка Russian
- - - (папки с текстом)

About.xml

About.xml - это текстовый файл с информацией о вашем моде.

Поля
  • name - название мода

  • packageId - ID мода

  • loadAfter - список packageId модов, после которых нужно загрузить ваш мод

  • author - ваш никнейм

  • description - описание мода, которое отображается в игре

  • supportedVersions - для каких версий игры сделан мод

About файл перевода заполняется на основе данных из About файла мода, для которого будет сделан перевод.

Пример заполненного файла
<?xml version="1.0" encoding="utf-8"?> <ModMetaData> <name>Перевод Dubs Mint Minimap</name> <packageId>crtdgd.ru.DubsMintMinimap</packageId> <loadAfter> <li>dubwise.dubsmintminimap</li> </loadAfter> <author>crtdgd</author> <description></description> <supportedVersions> <li>1.0</li> <li>1.1</li> <li>1.2</li> <li>1.3</li> <li>1.4</li> <li>1.5</li> <li>1.6</li> <li>1.7</li> <li>1.8</li> <li>1.9</li> </supportedVersions> </ModMetaData>

В supportedVersions я указываю версии с запасом, чтобы не добавлять их в случае выхода новой версии игры - для мода-перевода это ок. Версия 1.9 выбрана последней, т.к неизвестно какая версия будет следующая 1.10 или 2.0.

Preview.png

Preview.png - превью мода. В качестве превью перевода обычно берется превью мода и накладывается стикер, чтобы было понятно что это перевод.

Папки с текстом

Виды
  • Keyed - текст интерфейса (.xml)

  • DefInjected - текст игровых объектов (.xml)

  • Strings, WordInfo - наборы слов или словосочетаний, например, набор слов для генерации имен поселенцев (.txt)

Мод может иметь одну папку с текстом или несколько - это зависит от того, какой контент он добавляет. Мод может иметь текст в своем коде, но не иметь файлов с текстом, потому что автор решил их не добавлять или по другим причинам. Мод может вообще не иметь текста.

Структура папок с текстом

Структура папки Keyed может быть любой - файлы и папки могут иметь любое название и могут быть вложены в другие папки.

Папка DefInjected состоит из определенных подпапок, название которых соответствует названию категорий игровых объектов. Структура подпапок может быть любой.

Strings, WordInfo - имеют определенную структуру.

Откуда берется текст

Текст мода находится в его файлах, обычно в папке \Languages\English.

Папка Languages может находится в подпапках, например, может быть несколько таких папок для каждой версии игры:

1.3\Languages
1.4\Languages
1.5\Languages
итд

В папке Languages может находится папка не English, а какой-нибудь другой язык. Или языков может быть несколько.

Как загружается текст

Текст загружается из той папки, название которой соответствует языку выбранному в настройках игры. Т.е если в файлах мода есть папка Russian и в игре у вас установлен язык Russian, то будет загружен текст из данной папки.

Если в файлах мода нет папки с вашим языком, то загрузится текст по умолчанию, который находится в коде мода.

Как выглядит текст

Текст в файлах .xml находится между элементами разметки и выглядит так: <{тег}>{текст}</{тег}>. Саму разметку трогать не надо. Также не нужно трогать такие штуки как {0} {PAWN}, которые можно встретить в тексте - вместо них игра подставляет различные значения.

Текст в файлах .txt это строки со словами или словосочетаниями.

Комментарии

Текст в файлах .xml который находится между символами "<!-- {текст} -->" является комментарием. Комментарии не учитываются при обработке файлов и в них можно добавлять все что угодно.

В .txt файлах тоже могут быть комментарии, например, "// {текст}" или "# {текст}" .

Как получить файлы текста

Когда вы подписываетесь на мод, папка с его файлами скачивается на ваш компьютер и вы можете ее открыть.

Чтобы получить текст, нужно копировать папку English (или папку с другим языком, если English отсутствует), и переименовать папку в Russian.

Как получить прочие файлы

Файлы About.xnl и Preview.png находятся в папке мода в папке About.

Получение DefInjected

Папка DefInjected часто может отсутствовать в файлах мода и ее нужно создавать самостоятельно.

Текст для данной папки берется из папки мода из папки Defs. Папка Defs состоит из .xml файлов и является базой данных, которая хранит свойства игровых объектов включая текст.

В моде может быть папка Defs, но без текстовых данных. В моде может не быть папки Defs. Соответственно в данных случаях папки DefInjected быть не может.

Теги в файлах DefInjected выглядят так: {название объекта}.{путь до элемента с текстом}.{элемент}. {текст} берется из элемента. Сами файлы должны находится в папке, которая соответствует названию {категории объекта}. В фигурных скобках я обозначил данные которые, нужно получить из Defs файлов.

Пускай есть такой Defs файл
<?xml version="1.0" encoding="utf-8"?> <Defs> <KeyBindingCategoryDef> <defName>MintMinimap</defName> <label>Mint Minimap</label> <description>Keybinds for Dubs Mint Minimap.</description> <isGameUniversal>true</isGameUniversal> </KeyBindingCategoryDef> </Defs>

Категория объекта - KeyBindingCategoryDef
Название объекта - MintMinimap
Путь до элемента - здесь простая структура где элемент находится там же где и название объекта, т.е путь отсутствует
Элемент - label
Текст - Mint Minimap

Значит DefInjected файл будет выглядеть так
<?xml version="1.0" encoding="utf-8"?> <LanguageData> <MintMinimap.label>Mint Minimap</MintMinimap.label> </LanguageData>

И находится в папке "Languages\Russian\DefInjected\KeyBindingCategoryDef".

Данный раздел показывает как создается DefInjected на простом примере. Создавать DefInjceted вручную - это нереалистично, потому что структура Defs может быть сложная, элементов может быть куча и вы не можете знать какие элементы отвечают за текст.

Автоматизация

Как можно понять из информации выше, перед тем как приступить к переводу текста, нужно выполнить некоторые действия, чтобы организовать папку перевода. Делать это вручную может быть затруднительно, особенно для больше кол-ва переводов. Получить DefInjected вручную и вовсе не получится.

Здесь на помощь приходят различные программы, основная задача которых извлечь DefInjected, а также помочь с выполнением других задач. В идеале программа должна организовывать все файлы за вас, чтобы вам осталась только одна задача - перевести текст.
Установка программ
VSCode

Редактор кода, который также используется для редактирования текста.

https://code.visualstudio.com/

Настройка
  1. Запустить программу

  2. Нажать "Extensions" (изображение кубиков слева)

  3. Набрать в поиске и установить расширение "Russian Language Pack". После установки расширения, справа снизу появится предложения применить язык => Нажать "Change Language and Restart".

  4. Снова открыть расширения и установить

    • Code Spell Checker, Code Spell Checker Russian - проверка орфографии, установить нужно оба

    • XMl - проверка разметки .xml файлов (текстовые файлы которые нужно будет переводить)

  5. В строке поиска, которая находится сверху программы, набрать ">open user settings (json)" и открыть файл с настройками settings.json

  6. Копировать в файл настройки ниже, нажать "Файл" => "Сохранить"

    { // Вкл проверку орфографии "cSpell.language": "en,ru", // Не отображать путь до текущего редактора "breadcrumbs.enabled": false, // Не отображать заголовки блоков кода при прокрутке "editor.stickyScroll.enabled": false, // Не отображать приветственную страницу если нет открытых редакторов "workbench.startupEditor": "none", // Не отображать панель вкладок открытых редакторов "workbench.editor.showTabs": "none", // Вкл перенос слов чтобы весь текст помещался на экран "editor.wordWrap": "on", // Всегда отображать полоску прокрутки "editor.minimap.showSlider": "always", // Положение панели действий сверху "workbench.activityBar.location": "top", // Положение основной панели справа "workbench.sideBar.location": "right", // Помещать новые редакторы в конец списка "workbench.editor.openPositioning": "last" }

  7. Нажать ПКМ на пустом пространстве рядом со значком расширений, убрать галочки "Система управления версиями" и "Запуск и отладка"

  8. Нажать на "Проводник" (находится на той же панели что и "Расширения"), нажать на "..." справа от слова "Проводник", поставить галочку "Открытые редакторы", убрать галочки "Структура" и "Временная шкала"

  9. Перенести "Открытые редакторы" в ту же панель, где находится Проводник с Расширениями

  10. Нажать ПКМ на "Строку состояния", которая находится внизу программы, убрать все галочки, кроме "Кодировка в редакторе" и "Язык редактора"

    Готово. В результате получился удобный минималистичный редактор.

Чтобы по умолчанию открывать файлы в VSCode, нужно нажать ПКМ на файл, далее "Открыть с помощью", далее "Выбрать другое приложение", выбрать VSCode и нажать "Всегда".

Чтобы быстро сохранить файлы после редактирования, нужно нажать "Сохранить все".

Чтобы сбросить все настройки, нужно удалить папку "%APPDATA%\Code".

Чтобы поменять язык после сброса настроек, нужно набрать в поиске ">configure display language".

Translation Tools

Инструменты для переводчиков модов RimWorld.

Установка: Discord[discord.gg] => Канал #translation-tools => Скачать архив и распаковать в удобное место

Настройка: Запустить программу => Открыть "Settings" => Поменять значение в поле AuthorName на ваш никнейм => Если путь до папки с модами отличается от стандартного, поменять значение в поле ModsFolders => Нажать "Save". Остальные настройки пока можно оставить по умолчанию.
Стикер для превью
Чтобы при извлечении текста на превью мода был автоматически добавлен стикер, нужно добавить файл sticker.png в папку "Translation Tools\User".

Стикер - это картинка на прозрачном фоне. Рекомендуемый размер фона - 640x360.

Можете использовать готовый стикер

Перевод модов
I. Получить текст модов
  1. Запустить Translation Tools

  2. Подписаться на нужные моды, подождать пока они установятся/обновятся

  3. Копировать ID модов - последние цифры в адресе страницы
    Harmony
    https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2009463077
    => 2009463077

  4. Вставить ID модов в поле ModsID. Если ID несколько, то их нужно вставить через пробел.

  5. Нажать кнопку "Get Text", подождать выполнение, результат будет в папке Result

II. Перевести текст

III. Перенести переводы в папку с модами

Перенести нужно в "RimWorld\Mods": Открыть библиотеку Steam => ПКМ на игру => "Управление" => "Посмотреть локальные файлы".

IV. Проверить текст в игре
  1. Зайти в игру

  2. Включить режим разработчика, чтобы он отображал ошибки, если будут

  3. Включить моды, включить моды-переводы

  4. Перезагрузить игру

  5. Проверить текст, он должен помещаться в интерфейс

V. Опубликовать переводы
  1. Зайти в игру, далее в "Моды"

  2. Нажать на мод => "Расширенные настройки" => "Загрузить в Мастерскую Steam" => Поставить галочку "Отметить как перевод" => "Подтвердить"

  3. Подождать пока мод загрузится, открыть страницу мода, поменять видимость "Для себя" => "Для всех"

Чтобы обновить мод, нужно выполнить первые два шага из алгоритма публикации, только вместе кнопки "Загрузить" будет кнопка "Обновить".

Продвинутый уровень
Дополнительную информацию можно найти в Discord.

[Старая версия]
Установка программ
Notepad++

Текстовый редактор с множеством полезных функций.

https://notepad-plus-plus.org/downloads

Как по умолчанию открывать файлы в Notepad++
  1. ПКМ на нужный файл => "Открыть с помощью" => "Выбрать другое приложение"

  2. Поставить галочку "Всегда использовать это приложение" => Нажать "Еще приложения" => Далее "Найти другое приложение на этом компьютере"

  3. Зайти в папку "Notepad++" => Выбрать программу "notepad++.exe"

Как добавить проверку орфографии в Notepad++
  1. Открыть программу => "Плагины" => "Управление плагинами"

  2. Найти и выбрать "DSpellCheck" => "Установить"

  3. "Плагины" => "DSpellCheck" => "Settings" => "Download" => Выбрать "English (United States)" и "Russian (Russia)" => "Install Selected"

  4. В поле "Language" выбрать "Multiple Languages", далее выбрать установленные языки, нажать ОК

Если в слове будет ошибка, оно будет подчеркнуто красной линией. Если нажать ПКМ на слово с ошибкой, то можно выбрать предложенный вариант исправления.

Как добавить проверку разметки .xml в Notepad++
  1. Открыть программу => "Плагины" => "Управление плагинами"

  2. Найти и выбрать "XML Tools" => "Установить"

Чтобы весь текст помещался на экран, можно включить перенос строк: "Вид" => "Перенос строк".

Чтобы отобразить открытые файлы в удобном формате: "Вид" => "Список файлов".

Paint.NET

Редактор изображений. Пригодится, чтобы создать простое превью.

https://www.getpaint.net/download.html

RimTrans

Программа для извлечения текста из модов RimWorld.

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3384868911
Перевод модов
I. Открыть папку с файлами мода
  1. Подписаться на нужный мод

  2. Зайти в игру, далее в "Моды"

  3. Нажать на мод => "Расширенные настройки" => "Открыть папку"

II. Проверить наличие папок "Languages" и "Defs"

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

При наличии папки "Defs", извлечь текст с помощью программы RimTrans. Инструкция как это сделать есть в гайде с установкой программы, который был выше.

III. Подготовить файлы мода-перевода
  1. Создать на рабочем столе новую папку

    1. Копировать в нее папку "Languages" из папки мода, удалить из нее все папки, кроме папки "English", переименовать ее в "Russian" (если был использован RimTrans, то нужно удалить все папки, кроме папки "Russian")

    2. Копировать в нее папку-шаблон "About" (в которой находится файл "About.xml")

  2. Открыть файл "About.xml" в папке мода, копировать название мода из строки "<name>"

  3. Переименовать новую папку в название мода. Далее вместо "новая папка" я буду использовать "папка мода-перевода".

  4. Открыть файл "About.xml" в папке мода-перевода и заполнить нужные данные используя "About.xml" из папки мода, чтобы получилось примерно так
    <?xml version="1.0" encoding="utf-8"?>
    <ModMetaData>
    <name>Перевод Dubs Mint Minimap</name>
    <loadAfter>
    <li>dubwise.dubsmintminimap</li>
    </loadAfter>
    <packageId>crtdgd.ru.dubsmintminimap</packageId>
    <author>crtdgd</author>
    <description></description>
    <supportedVersions>
    <li>1.0</li>
    <li>1.1</li>
    <li>1.2</li>
    <li>1.3</li>
    <li>1.4</li>
    <li>1.5</li>
    <li>1.6</li>
    <li>1.7</li>
    <li>1.8</li>
    <li>1.9</li>
    </supportedVersions>
    </ModMetaData>

    (в loadAfter указывается packageId мода)

  5. Открыть в Paint.NET файл Preview.png из папки мода (можно запустить программу и перенести в нее файл мышью)

    1. Скорректировать размер изображения, чтобы оно было не больше 640x360: "Изображение" => "Изменить размер"

    2. Добавить стикер в новый слой (можете использовать готовый ниже)

    3. Объединить слои и сохранить в формате .png в папку "About" мода-перевода


IV. Перевести текст

Текст который нужно перевести находится в файлах в папке Languages. Текст находится между элементами разметки и выглядит так: <{тег}>{текст}</{тег}>. Саму разметку трогать не надо. Также не нужно трогать такие штуки как {0} {PAWN}, которые можно встретить в тексте - вместо них игра подставляет различные значения.

После изменения файлов, их нужно сохранить: Notepad++ => "Файл" => "Сохранить все".

V. Перенести мод-перевод в папку с модами

Перенести нужно в "RimWorld\Mods": Открыть библиотеку Steam => ПКМ на игру => "Управление" => "Посмотреть локальные файлы".

VI. Проверить текст в игре
  1. Зайти в игру

  2. Включить режим разработчика, чтобы он отображал ошибки, если будут

  3. Включить мод, включить мод-перевод

  4. Перезагрузить игру

  5. Проверить текст, он должен помещаться в интерфейс

VII. Опубликовать мод-перевод
  1. Зайти в игру, далее в "Моды"

  2. Нажать на мод => "Расширенные настройки" => "Загрузить в Мастерскую Steam" => Поставить галочку "Отметить как перевод" => "Подтвердить"

  3. Подождать пока мод загрузится, открыть страницу мода, поменять видимость "Для себя" => "Для всех"

Автор
Если нужно что-то исправить или добавить, напишите в Discord[discord.gg]
Оповещения о новинках и изменениях будут в группе VK[vk.com]
Поддержать автора Twitch[www.twitch.tv]
1 Comments
AlekSSoulS 31 May @ 10:06am 
Спасибо за руководство, переводчиков надо продвигать в массы! Я и сам неоднократно пытался переводить, ну переводить то дело не сложное было конечно, но я очко ленивое, поэтому быстро бросал дело.