RimWorld

RimWorld

Not enough ratings
Translation Tools
By crtdgd
   
Award
Favorite
Favorited
Unfavorite
Описание
Полезные инструменты для переводчиков модов RimWorld.
Инструменты
GetText

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

Инструмент автоматически создает папку для перевода, с заполненным About файлом и модифицированным превью.

Чтобы скрипт модифицировал превью мода, корректировал размер и добавлял стикер, дополнительно нужно установить программу ImageMagick и создать стикер для превью.

По умолчанию ImageMagick устанавливается и обновляется автоматически, для отключения данной опции нужно поменять настройку "Install ImageMagick". Устанавливается независимо от ручной установки в отдельную папку. Для удаления программы нужно удалить папку “%UserProfile%\scoop”.

Ручная установка ImageMagick
https://imagemagick.org/script/download.php#windows

Стикер должен иметь название sticker.png и находится в папке User. Размер превью мода подстраивается под размер фона стикера, рекомендуемый размер фона - 640х360.

Как создать стикер
  1. Установить Paint.NET
    https://www.getpaint.net/download.html

  2. Запустить программу, поменять размер изображения на 640х360: "Изображение" => "Изменить размер"

  3. Выбрать инструмент "Волшебная палочка", нажать на изображение, нажать клавишу DELETE - фон станет прозрачным

  4. Найти подходящий стикер, открыть его в новой вкладке в Paint.NET, уменьшить размер стикера, чтобы он помещался на изображение. Высота моего стикера равна 120 - это треть от изображения.

  5. Выбрать инструмент "Выбор области", выделить стикер, нажать "CTRL + C", вставить стикер на изображение с прозрачным фоном, разместить в нужном месте

    Чтобы четко попадать в пиксели нужно менять масштаб "CTRL + колесиком мыши" и перемещать изображение стрелочками на клавиатуре.

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

CreateLoads

Один перевод может содержать текст для нескольких модов, например, для оригинального мода и для измененной версии или для мода и его дополнений.

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

CreatePack

Инструмент для создания пака переводов.

Есть два способа создать пак переводов:

1 - объединить все папки Languages в одну
2 - использовать LoadFolders

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

При использовании LoadFolders будет создана папка Misc/DidNotLoadAnyContent-Skip, которая загружается всегда, чтобы не было ошибки в случае отсутствия модов, для которых сделан перевод.

GetData

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

Статистика это интересно, особенно если переводов много.

GetTranslations

Инструмент для получения ваших переводов из папки с модами.

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

EditFormat

Скрипт создает копию переводов и приводит к формату Translation Tools.

Скрипт перезаписывает xml файлы в папках Keyed и DefInjected, чтобы они имели кодировку и заголовок UTF8. Также корректирует отступы заменяя их на табуляцию.
Аддон
CheckChanges

Данный инструмент сравнивает текст модов и текст переводов, и находит новые и старые строки.

CreatePreview

Инструмент для обновления превью переводов. Берет превью из модов, накладывает стикер, создает папки с превью. Если перевод относится к нескольким модам, то будет выбран мод который идет первым в LoadAfter.

Если в папке мода отсутствует превью, например оно есть только в Мастерской, то вы можете скачать его, переименовать в PackageID мода и поместить в папку User\ModsPreview. Превью в данный папке имеет выше приоритет чем превью в папке мода, это также можно использовать для переопределения логики "выбрать мод который идет первым в LoadAfter".

CreateModIcon

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

Upload

Инструмент для обновления переводов в Мастерской.

Для загрузки в Мастерскую используется официальный инструмент SteamCMD. Для использования требуются ваш Steam логин и пароль. Для безопасности, ваш логин и пароль нигде не сохраняются, поэтому их каждый раз нужно вводить заново. Если у вас активен Guard, то при первом запуске нужно будет ввести проверочный код который придет на почту.

Чтобы обновить описание перевода, добавьте файл с описанием "Description.txt" в папку перевода.

В папку User можно добавить файлы "Translation_PreDescription.txt" и "Translation_PostDescription.txt", которые добавят к описанию префикс и постфикс, например, префиксом могут быть теги, а постфиксом ссылки автора. Еще в папку User можно добавить файл “Translation_DefaultDescription.txt”, который будет использован если отсутствует файл "Description.txt", т.е это описание по умолчанию. Все тоже самое можно сделать для пака переводов используя “Pack_” в начале файлов.

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

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

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

Если при обновлении мода локальные файлы совпадают с файлами в Мастерской, то мод не будет обновлен, будет обновлена только информация на странице мода - описание, превью и прочее.

Как загружать и обновлять моды
- Первая загрузка или обновление тегов: Через игру
- Все остальное: Через скрипт
Формат Translation Tools
Name перевода: "{префикс} {очищенное название мода}"
PackageID перевода: "{префикс} {очищенное, упрощенное и без пробелов название мода}"
Название папки перевода: "{префикс} {очищенное и упрощенное название мода}"
Название xml файлов: "{тип файла}_{очищенное, упрощенное и без пробелов название мода} "

***
очищенное название мода - без (*),[*],{*} конструкций
упрощенное название мода - только английские символы и цифры
***
Настройки
Если настройка может иметь несколько значений, например несколько папок, то их нужно отделить запятой.

Некоторые настройки могут быть пустыми, в таком случае настройка не будет выполнять свою функцию. Например, пустая настройка PrefixForTranslationName не будет добавлять префикс к названию перевода.

В значения настроек можно подставлять значения из других настроек. для этого в значение настройки нужно добавить {ключ другой настройки}. Например, CurrentVersion: {RimWorldFolder}\version.txt

Настройка
Описание
SystemLanguage

SystemLanguageCode
[readonly настройки, можно использовать для подстановки в другие настройки]

Язык системы.

Код языка системы.
RimWorldFolder

ModsFolders

TranslationsFolder
Путь до папки с игрой.

Путь до папок с модами.
[может быть несколько значений]

Путь до папки с переводами.
SourceLanguage

TargetLanguage

TargetLanguageCode
Язык с которого будет делаться перевод.

Язык на который будет делаться перевод.

Код языка на который будет делаться перевод.
AddCommentWithSourceFile

AddCommentWithSourceText

RemoveTextFromString

AddEmptyStringBetweenStrings

CreateDescriptionFile

CommentWithSourceFileStyle

CommentWithSourceTextStyle

ResultInfoStyle
[настройки для извлечения текста]

Добавить комментарий с файлом из которого взят текста.

Добавить комментарий с оригинальным текстом.

Удалить текст из строки.

Добавить пустую строку между строками.

Создать Description.txt файл в папке перевода.

Стиль комментария с файлом: одной строкой / перенести путь на отдельную строку.

Стиль комментария с текстом: кратко / подробно.

Стиль вывода результата: кратко / подробно.
AuthorName
Ваш никнейм.
PrefixForTranslationName

PrefixForTranslationPackageID

PrefixForTranslationFolderName
Префикс для названия перевода.

Префикс для PackageID переводов.

Префикс для папок переводов. Это нужно для группировки переводов, например, если вы перенесли их в папку Mods, чтобы они не смешивались с другими модами.
GameVersions

CurrentVersion

IgnoreOldVersions
Версии игры которые нужно указать в About.xml и в LoadFolders.xml.
[может быть несколько значений]

Путь до файла с текущей версией игры. Можно указать версию вручную.

Игнорировать старые версии игры при получении текста. Будут игнорироваться версии которые находятся позади CurrentVersion в GameVersions.
PackCreatingMode

AddModsListToPackDescriptionFile


ModsListTitle

RimWorldModsFolder

CopyPacksToRimWolrdModsFolder
Режим создания пака.

Добавить список модов из пака в файл с описанием пака.


Заголовок списка модов.

Путь до папки с локальными модами.

Копировать паки из папки Result в папку с локальными модами.
InstallImageMagick

TranslationPreviewBrightness
Автоматическая установка и обновление программы ImageMagick.

Множитель осветленности превью. Например, 0.7 означает уменьшить осветленность на 30%.
ApplyResultForSourceFiles
Применять результат из папки Result к исходным файлам. Исходные файлы будут перемещены в папку User/Backup. Работает для CreatePreview.
UploadFolder

UploadWithoutFiles

ModVisibility

UpdateTitle

UpdateDescription

UpdatePreview

UpdateVisibility

PostfixForTranslationTitle

PostfixForTranslationsPackTitle

CheckDescriptionFiles
Папка для переводов которые нужно обновить. Структура папки Upload может быть любой, моды в ней будут определены автоматически если в них есть файл About.xml.

Файлы которые нужно игнорировать при загрузке мода. Если добавить файл Preview.png, то он будет загружен в Мастерскую, но не будет отображаться в игре, потому что будет убран из файлов - это значительно снижает вес мода, т.к обычно превью весит много относительно текста.

Видимость мода: Public - публичный, FriendsOnly - только для друзей, Private - приватный, Unlisted - доступный по ссылке.

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

Обновить описание мода.

Обновить превью мода.

Обновить видимость мода.

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

По аналогии с предыдущем пунктом, только данный постфикс добавляется к паку переводов.

Проверять Description.txt файлы перед загрузкой модов (наличие файла, наличие строк в файле).

Дополнительные настройки

Файлы, которые можно добавить в папку User
- Translation_ModIcon.png

Файлы которые можно добавить в папку пака
- Pack_Preview.png
- Pack_ModIcon.png
- Pack_PublishedFileId.txt
- Pack_Description.txt

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

Структура главной папки TranslationsFolder может быть любой, папки в ней будут определены автоматически по следующим правилам:

Если в папке есть файл \About\About.xml и если есть папка \Languages либо папка \LoadFolders, то это папка перевода.

Если в папке есть файл \Pack_About.txt, то это папка пака переводов.

Пример структуры:

TranslationsFolder
- Pack1
- - Group1
- - - Translation1
- - - Translation2
- - - Translation3
- - Group2
- - - Translation1
- - - Translation2
- - - Translation3
- Pack2
- - Translation1
- - Translation2
- - Translation3
- {any user files}
Использование
Общее
- создать коллекцию с переводами
- создать коллекцию с переведенными модами

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

  2. Копировать ID модов. ID мода - это последние цифры в адресе страницы.

  3. Вставить ID модов в поле “Mods ID”. Если модов несколько то их нужно добавить через пробел. Можно добавить только одно слово "all", в таком случае текст будет извлечен из всех модов.

  4. Запустить скрипт

CreateLoads
  1. Создать папку LoadFolders в папке перевода

  2. Поместить в папку LoadFolders папки которые нужно загружать при наличии определенных модов

  3. Создать в каждой папке файл PackageID.txt, добавить в него ID модов. Если ID несколько, то каждый нужно указать в отдельной строке.

  4. Запустить скрипт

  5. Копировать с заменой папки с LoadFolders.xml в папки с переводами

CreatePack
  1. Создать файл Pack_About.txt в папке пака, добавить в данный файл название и packageid пака
    name {Название пака} packageid {PackageID пака}

  2. Поместить в папку пака папки с переводами. Удобнее добавить все переводы в одну папку затем данную папку добавить в папку пака.

  3. Запустить скрипт

GetTranslations
  1. Подписаться на переводы, подождать пока они установятся

  2. Запустить скрипт

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

  2. Запустить скрипт

CreatePreview
  1. Добавить sticker.png в папку User

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

  3. Запустить скрипт

  4. Копировать с заменой папки с превью в папки с переводами

CreateModIcon
  1. Добавить ModIcon.png в папку User

  2. Запустить скрипт

  3. Копировать с заменой папки с иконками в папки с переводами

Upload
  1. Перенести в папку Upload переводы которые нужно обновить

  2. Ввести ваш Steam логин и пароль в соответствующие поля

  3. Запустить скрипт
Общее
Как установить

Discord => Открыть канал #translations-tools => Скачать и распаковать архив в удобное место

Как обновить

Скачать новый архив, поместить в папку Translation Tools, запустить программу.

Новости обновлений

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

Особенности

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

Условия использования

Данная программа задокументированная, ее запрещено редактировать и публиковать.

План

- скрипт для редактирования about.xml
- кеширование оригинального текста и прочих данных для отслеживания изменений
- при извлечении текста к нему добавляется авто переведенная копия, которую можно использовать в качестве подсказки; или использовать как готовый машинный перевод
- поддержка, оптимизация, реализация ваших идей
Updates
2025.09.15

GetText
- Reworked script

GetData
- Script display more data

EditFormat
- Script rewrites xml files

===

Removed settings
- UploadWithoutPreviewInFiles
- OpenVisibility

Added settings
- SystemLanguage
- SystemLanguageCode
- TargetLanguageCode
- AddCommentWithSourceFile
- AddCommentWithSourceText
- RemoveTextFromString
- AddEmptyStringBetweenStrings
- CreateDescriptionFile
- CommentWithSourceFileStyle
- CommentWithSourceTextStyle
- ResultInfoStyle
- PackCreatingMode
- ModsListTitle
- UpdateDescription
- UpdatePreview
- UpdateVisibility
- UploadWithoutFiles
- ModVisibility
- PostfixForTranslationTitle
- PostfixForTranslationsPackTitle
- CheckDescriptionFiles

===

Changed files names: Translation_Description.txt => Translation_DefaultDescription.txt

Changed the way Preview is overridden.

Added Misc/IgnoreError_DidNotLoadAnyContent folder when creating a pack using LoadFolders.