Skip to content

Набор инструментов для работы с локализацией RimWorld

License

Notifications You must be signed in to change notification settings

OneCodeUnit/RimLangKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Набор инструментов для работы с локализацией игры 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.

Для переводчиков

Работа программы

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

Добавить комментарии

Программа добавит во все .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, который можно скачать из данного репозитория или создать самостоятельно. Он состоит из нескольких строк:

  1. Четырехбуквенные части
  2. Трехбуквенные части
  3. Двухбуквенные части
  4. Однобуквенные части
  5. Не имеющие транскрипции части
  6. Правила для начала слова
  7. Правила для конца слова

Порядок их проверки: 6 - 7 - 5 - 1 - 2 - 3 - 4

Синтаксис словаря:

Правила словаря представляют собой последовательность пар, разделенных запятой (в конце и начале строки запятая не ставится) Каждая пара разделена двоеточием (':'). Слева английский текст, справа русский. Пробелы в правилах не используются. Для обозначения пустоты используется символов равенства (=).

Создать Case, Plural и Gender файлы

Для корректного склонения названий объектов игре требуются дополнительные файлы:

  • 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 уникальные цифры. Из-за этого такие строки проверить не получится.

About

Набор инструментов для работы с локализацией RimWorld

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •