Набор инструментов для работы с локализацией игры RimWorld от создателя сервера Vanilla Russian Expanded и проекта переводов модов Vanilla Russian Expanded.
| Версия | Windows (минимальная версия) | .NET |
|---|---|---|
| название.exe | Windows 10 x64 1607 | .NET 8 (любой вариант) |
| название.7z | Windows 10 x64 1607 | - |
Фактически программе ничто не мешает работать на x86 системах и (с минимальными правками кода) на более старых версиях Windows. Мне эти конфигурации неинтересны, поэтому я их не публикую, но вы можете собрать себе желаемую версию из исходников (см. dotnet publish).
Для создания Case, Plural и Gender файлов потребуется до 800 Мбайт ОЗУ, в остальных сценариях - до 30.
Программу не нужно устанавливать - она запускается из папки, где ее разместили. Для полного удаления можно удалить сохраненные настройки. Они расположены в по стандартному пути для .net-приложений "C:\Users\%ваш__пользователь%\AppData\Local\OliveWizard"
Из-за того, что игру переводит сообщество, работа над переводом начинается только после выхода обновления и может продолжаться значительное время. Более того, в саму игру он попадает с большой задержкой. Данная программа позволяет скачать самую последнюю версию перевода и сразу добавить его в игру. Для работы необходимо указать путь до корневой папки с игрой (та, где есть папка "Data" и файл "RimWorldWin64.exe"), а потом выбрать в игре язык "Russian (GitHub)" вместо "Russian (Русский)".
Преимущества по сравнению с консольным скриптом заключаются в том, что:
- Ничего не скачивает, если нет новой версии
- Не записывает данные лишний раз
- Может использоваться для обновления не только русской локализации игры
Дополнительные возможности:
- Поле с "Ludeon/RimWorld-ru". Позволяет выбрать другой репозиторий для загрузки языка. Полезно для других языков и собственных форков.
- Поле с "Russian (GitHub)". Позволяет задать название языка в игре. Часть "Russian" стоит менять только если вы играете с другим языком.
- Кнопка "Сбросить значения". Сбрасывает номер текущей версии перевода. Для принудительного обновления перевода.
- Кнопка "Вернуть значения". Возвращает все настройки к исходным (как при первом запуске).
- Не стоит проверять обновления локализации слишком часто (речь о десятках раз в час), так как это может привести к временной блокировке по IP.
Программа позволяет выбрать папку и применить ко всем файлам в ней одно из действий:
- Добавить комментарии
- Избавиться от одинаковых имен файлов
- Транскрипция имен
- Создать Case, Plural и Gender файлы
- Исправление кодировки
- Анализ тегов
- Поиск сломанных файлов
- Поиск изменений в тексте
Программа добавит во все .xml файлы в выбранной папке и во всех подпапках комментарии с исходным текстом. Ожидается, что файлы уже обработаны RimTrans или его аналогом.
Исходный текст:
<VBE_StartInsertion>Bring Syrup</VBE_StartInsertion>
<VBE_StartInsertionDesc>Bring a syrup to the soda fountain to start processing</VBE_StartInsertionDesc>
<VBE_CancelBringingSyrup>Cancel Bringing Syrup</VBE_CancelBringingSyrup>
<VBE_CancelBringingSyrupDesc>Cancel bringing syrup to the soda fountain.</VBE_CancelBringingSyrupDesc>
Обработанный текст:
<!-- EN: Bring Syrup -->
<VBE_StartInsertion>Bring Syrup</VBE_StartInsertion>
<!-- EN: Bring a syrup to the soda fountain to start processing -->
<VBE_StartInsertionDesc>Bring a syrup to the soda fountain to start processing</VBE_StartInsertionDesc>
<!-- EN: Cancel Bringing Syrup -->
<VBE_CancelBringingSyrup>Cancel Bringing Syrup</VBE_CancelBringingSyrup>
<!-- EN: Cancel bringing syrup to the soda fountain. -->
<VBE_CancelBringingSyrupDesc>Cancel bringing syrup to the soda fountain.</VBE_CancelBringingSyrupDesc>
Программа добавит всем .xml файлам приписку к имени, соответствующей имени папки самого верхнего уровня до («Languages»).
Исходный файл
Vanilla Furniture Expanded Russian Language pack\Architect\Languages\Russian\DefInjected\TerrainDef\Terrain_Floors_Arch.xml
Обработанный файл:
Vanilla Furniture Expanded Russian Language pack\Architect\Languages\Russian\DefInjected\TerrainDef\Terrain_Floors_Arch_Architect.xml
Программа прочитает все .txt файлы и создаст дубли с припиской "_NEW", текст в которых будет транслитерирован согласно правилам из словаря. Для работы требуется файл dictionary.txt, который можно скачать из данного репозитория или создать самостоятельно. Он состоит из нескольких строк:
- Четырехбуквенные части
- Трехбуквенные части
- Двухбуквенные части
- Однобуквенные части
- Не имеющие транскрипции части
- Правила для начала слова
- Правила для конца слова
Порядок их проверки: 6 - 7 - 5 - 1 - 2 - 3 - 4
Правила словаря представляют собой последовательность пар, разделенных запятой (в конце и начале строки запятая не ставится) Каждая пара разделена двоеточием (':'). Слева английский текст, справа русский. Пробелы в правилах не используются. Для обозначения пустоты используется символов равенства (=).
Для корректного склонения названий объектов игре требуются дополнительные файлы:
- Case.txt - склонение слова по падежам
- Plural.txt - склонение слова по числам
- Female.txt, Male.txt, Neuter.txt и Plural.txt в папке "Gender" - распределение слов по родам.
Программа проанализирует все названия объектов мода и попытается сделать все за вас. Сделает она это далеко не идеально, поэтому текст необходимо дорабатывать вручную. Однако объем работы все равно будет сильно сокращен. За склонение отвечает библиотека Cyriller.
Все, что программа совсем не смогла опознать, будет помещено в файл "Undefined.txt". Обратите внимание, что программа добавит немного больше объектов, чем требуется. Не стесняйтесь удалять лишнее.
Программе нужно указать корневую папку перевода.
При выгрузке из внешних сервисов, например, Crowdin, файлы скачиваются в неправильной кодировке. Программа пересохраняет каждый файл в кодировке UTF-8 BOM, с табуляцией в два пробела и окончанием строк CRLF.
Программа собирает статистику использования тегов и defs в переводе и сохраняет ее в текстовые файлы в папке исполняемого файла. Может быть полезно?
Позволяет найти в переводе сломанные по той или иной причине файлы, которые не будут считываться игрой или просто не соответствовать стандартам xml.
Позволяет сравнить исходный текст перевода и текущий текст мода. Результат выводится в текстовые файлы в папке исполняемого файла. Результат представляет собой связку из defName и нового текста. Чтобы все получилось, файлы мода должны быть уже обработаны и иметь вид как для добавления комментариев. defName иногда бывают неунакальны и в такум случае к ним при записи добавляются 4 уникальные цифры. Из-за этого такие строки проверить не получится.