-
Notifications
You must be signed in to change notification settings - Fork 19
Формат файлів перекладу
Файл має відповідати наступним вимогам:
- Кодування: UTF-8 with BOM
- Відступи: табуляція а не
пробіли - В кінці файлу має бути пустий рядок
У каталозі Strings та його підкаталогах знаходяться здебільшого прості текстові файли, в яких кожне слово знаходиться на окремому рядку.
Наприклад, файл Strings/NameBanks/Colors.txt містить рядки:
//Simple colors only, no mauve and puce
червоний
синій
зелений
фіолетовий
чорний
білий
сірий
помаранчевий
Ці слова використовуються, наприклад, при випадковій генерації назв для фракцій чи описів витворів мистецтва.
У каталозі Keyed знаходяться здебільшого XML-файли певної тематики. Вони використовуються, наприклад, самим інтерфейсом гри. Оригінальні файли ви можете знайти в каталозі path/to/rimworld/root/directory/Mods/Core/Languages/English/Keyed або за посиланням: https://github.com/RimWorld-zh/RimWorld-English/tree/master/Keyed
У каталозі Strings та його підкаталогах знаходяться XML-файли, теги якого є шляхом, за яким відбувається підставлення рядків у ресурсах гри (Defs). Зазвичай мають досить складну вкладену структуру.
Припустимо, що в файлі Mods/Core/Defs/Tutor/Concepts_NotedSelfshow.xml ресурсів гри знаходиться об'єкт
<ConceptDef>
<defName>Stockpiles</defName>
<label>Stockpiles</label>
<priority>40</priority>
<helpText>Your colonists need somewhere to store items. Designate a STOCKPILE for them to store things.\n\nFind the stockpile in the ZONES section of the ARCHITECT menu in the lower-left.</helpText>
<highlightTags>
<li>MainTab-Architect-Closed</li>
<li>DesignationCategoryButton-Zone-Closed</li>
<li>Designator-ZoneAddStockpile_Resources</li>
</highlightTags>
</ConceptDef>
<ConceptDef>
- вказує на шлях, за яким гра буде шукати рядки для поточної локалізації, тобто в каталозі Mods/Core/Languages/Ukrainian/DefInjected/ConceptDef. Назва файлу не має значення для гри.
<defName>Stockpiles</defName>
- вказує на ім'я об'єкта. В цьому випадку: Stockpiles.
<label>Stockpiles</label>
, <priority>40</priority>
- назви та значення атрибутів об'єкта Stockpiles.
У файлі перекладу ConceptDef/Concepts_NotedSelfshow.xml ви бачите рядки:
<Stockpiles.label>Позначте склад</Stockpiles.label>
<Stockpiles.helpText>Ваші колоністи повинні мати склад, щоб зберігати речі. Позначте СКЛАД для використання з цією метою.\n\nЦе можна зробити на вкладці ЗОНИ в меню СТВОРИТИ в лівому нижньому куту екрана.</Stockpiles.helpText>
У цьому випадку рядок <Stockpiles.label>Позначте склад</Stockpiles.label>
означає, що значення атрибута label об'єкта Stockpiles буде замінено на Позначте склад
.
У свою чергу, рядок <Stockpiles.helpText>Ваші колоністи повинні мати склад, щоб зберігати речі. Позначте СКЛАД для використання з цією метою.\n\nЦе можна зробити на вкладці ЗОНИ в меню СТВОРИТИ в лівому нижньому куту екрана.</Stockpiles.helpText>
відповідає за заміну значення атрибута helpText того ж об'єкта.
Інколи в описі ігрових об'єктів зустрічаються списки. У файлі перекладу вони просто нумеруються починаючи з нуля. Наприклад, об'єкту з ресурсів гри:
<HediffDef ParentName="DiseaseBase">
<defName>Asthma</defName>
<label>asthma</label>
...
<stages>
<li>
<label>minor</label>
...
</li>
<li>
<label>major</label>
...
</li>
<li>
<label>major</label>
...
</li>
</stages>
</HediffDef>
відповідає переклад
<Asthma.label>астма</Asthma.label>
<Asthma.stages.0.label>легка</Asthma.stages.0.label>
<Asthma.stages.1.label>помірна</Asthma.stages.1.label>
<Asthma.stages.2.label>важка</Asthma.stages.2.label>
Ці підставлені значення буде видно у грі.
Якщо в перекладі який-небудь очікуваний переклад відсутній, то гра при старті в режимі розробника виведе відповідне попередження в лог.
В ресурсах гри всі об'єкти описані за шляхом Mods/Core/Defs/. Вони розбиті за підкаталогами. Також дані, необзідні для перекладу цих об'єктів, але у більш зручному для сприйняття вигляді можна знайти за посиланням: https://github.com/RimWorld-zh/RimWorld-English/tree/master/DefInjected
В переклади файли формату DefInjected знаходяться за шляхом Mods/Core/Languages/Ukrainian/DefInjected/, теж розподілені за каталогами.
Назви каталогів змінювати не можна. Файли всередині каталогів можна називать будь-яким чином, та все ж раджу вам називати їх у відповідності до інших переклад, наприклад, німецького. Це значно спрощує у майбутньому пошук.