Hi, i apologize for bad English in advance. I help to translate for Russian team.
Because i can't use Python 3.0 i created script on Python 2.7.
The console-program saves results of comparing into Result.doc. Creates XML files with translation and missed lines without translation into DefInjectedRaws folder.
The Result.doc consist of:
1. Text which perhaps needs to be translated.
2. Folders which perhaps have wrong name in DefInjected folder.
3. Missed labels with text.
4. Labels which absent in Defs folder, probably the labels must be deleted, check a log in games for this.
You can translate the XML files in DefInjectedRaws folder and place it into DefInjected folder. The XML files must work in the game.
The console-program not write all text which perhaps needs to be translated, example: Hidden, because Defs have much words with upper symbol.
The console-program can also miss what should be translated. It's possible with new version of Defs when new tags were added and old tags are changed or i missed the tags.
I will also update and fix whenever possible the console-program.
The console-program of version 0.7.* is expected Defs folder of version 0.15.1284.
How to use?
Download archive with CompareAndAddXML (https://github.com/KviEt/RimWorldHelpInTranslation/releases) console-program.
Unpack archive in any directory. Put Defs and DefInjected folders into the directory. Run the console-program.
If the console-program have bugs or i missed tags for translation or the console-program doesn't work for you or u have wishes to the console-program tell me about it.
Почему-то не хочет работать скрипт :-\
http://i.imgur.com/pJ0Vffh.png
Спасибо, исправил.
Какую версию defs ты используешь если не секрет?
Не понял вопроса про версию defs
Скрипт запустился.
Теперь вот такие строки добавляет .None.(хотя перевод у шоколада есть)
http://i.imgur.com/UGfRnNh.png
Defs разные в зависимости от версии игры...
Спасибо ещё раз, теперь точно должен работать, какая-то подстава от питона, на 2.7.9 у меня этой ошибки не было...
Спасибо! Теперь всё работает как надо. Плохо только что весь текст подряд идёт. Без пустых строк. Глаза болеть будут, если много смотреть. 8)
Глаза будут болеть это плохо, в отчете ведь есть пустые строки они разделяют текст по смыслу или этого мало? Могу тогда попробовать сделать файл с отчетом вместо Python Shell сделать какой-нибудь word документ.
I fixed script.
В папке DefInjectedRaw генерируются вот такие файлы: http://i.imgur.com/KhpPIYN.png
Все строки без разделения
Изменил, так пойдет? Наверное, надо ещё чтобы комментарии сохранялись?
Судя по твоему отчету у тебя старая версия скрипта, желательно обновить его...
Скачал только что программу. Почему могут быть такие ошибки?
http://i.imgur.com/l26wINP.png
Это моя ошибка, папка defs имеет более сложную структуру(больше вложностей), я сделал чтобы это учитывалось и работало, но допустил ошибку поэтому у тебя программа не работает, позже исправлю(сегодня).
Исправил, проверил, вроде работает.
Если программа что-то пропускает и ты понимаешь какой тэг пропущен, то скажи - я добавлю его или могу сделать чтобы тэги считывались с файла, тогда ты сможешь сам спокойно указывать программе какие тэги тебе требуется.
А можно как-то группировать строки с одинаковым defname?
Чтобы получалось не так - http://i.imgur.com/kv2R2PB.png, а вот так- http://i.imgur.com/YDDH9fq.png ?
=================
Ещё иногда в модах бывает что defname берётся из Core и просто изменяются параметры.
Получается двойной перевод.(в Core и в моде) Можно как-то это обойти? Дополнительную проверку добавить?
Quote from: Ivanzyfer on September 15, 2016, 01:18:50 AM
А можно как-то группировать строки с одинаковым defname?
Чтобы получалось не так - http://i.imgur.com/kv2R2PB.png, а вот так- http://i.imgur.com/YDDH9fq.png ?
=================
Ещё иногда в модах бывает что defname берётся из Core и просто изменяются параметры.
Получается двойной перевод.(в Core и в моде) Можно как-то это обойти? Дополнительную проверку добавить?
1. По defname можно, сделаю.
2. Плохо осознал проблему... у игры есть Core - это основная папка, в первую очередь игра берет отсюда перевод, а потом игра, если есть мод, из папки для мода берет значения, которые перезаписывают основные значения взятые из Core? Папок для мода может быть несколько?
Я просто не использую в игре моды, поэтому мне эта система не знакома совсем...
У каждого мода своя папка. По типу Core. Перевод у каждого мода отдельный.
В некоторых модах кроме внесения новых вещей в игру есть изменение оригинальных дефов.
В таком случае в моде не нужен перевод этого defname, потому что он уже есть в Core.(иначе будут жёлтые ошибки о дубликате)
Но если у мода отдельная папка Core и перевод у каждого мода отдельный, то программе надо передать папку Defs мода, она создаст xml файлы именно для этого мода, и никаких повторов из оригинального Core быть не должно, судя по твоему описанию...
В чем же проблема?
Немного не так. У каждого мода есть папка Defs. Но в этой папке могут быть Defname, которые есть и в Core.
То есть мод берёт оригинальный defname, который есть в Core и изменяет его свойства(ресурсы для постройки, стоимость, количество здоровья и прочее)
Если добавлять перевод этого Defname и в Core и в моде, то будет ошибка о дубликате перевода.
Но программа не создает перевод если в свойствах defname нету описания, которое показывается в игре, она игнорирует такие свойства как (ресурсы для постройки, стоимость, количество здоровья и прочее)
Поэтому если использовать Defs мода отдельно от основного Defs дубликатов быть не должно... да даже теоретически если их использовать вместе дубликаты не появятся...
Может все же мод не только изменяет свойства у defname но и изменяет описание перезаписывая основное? Тогда проблема мне понятна...
изменяет описание перезаписывая основное
Именно так и происходит.
Берётся полностью defname и перезаписывается с другими параметрами.
Хорошо, базовая проблема ясна.
Что относительно модов? Они могут перезаписывать значения друг у друга? У них есть какой-то порядок чтения?
Ты обсуждал эту проблему с разработчиком? По хорошему, такой проблемы как дубликаты в данном случаи быть не должно, перевод мода должен перезаписывать основной перевод и никаких ошибок быть не должно. Иначе получается проблема с переводом игры, если игрок удалит мод, тогда ему потребуется основной перевод, а его не будет так как он брал перевод для мода и у него выскочат ошибки о том, что таких тэгов не существует...
Такой проблемы как отсутствие перевода после удаления мода не будет - весь перевод дефов, которые есть в Core находится в Core.
Просто не нужно в модах добавлять перевод дефов, которые есть в Core.
С разработчиком бесполезно говорить. Он даже перевод бэкстори не может организовать.
Про то что моды перезаписывают друг друга не видел такого, но вполне возможно что такое тоже есть. Не уверен точно.
Хм, но если игнорировать значения из модов, то перевод будет неполным для мода... тебя и игроков устраивает такой расклад?
Плохо я объяснил. Попробую на примере. Допустим есть мод, которые берет дефнэйм bed и изменяет ресурсы, необходимые для постройки. Этот дефнэйм оказывается в папке defa мода. Но этот же дефнэйм остаётся в папке defs Core. Если добавить перевод дефнэйма bed в мод, то будет ошибка о дубликате перевода.( Потому что перевод уже есть в Core)
Выходит что значения мод перезаписывают, а перевод не может переписать.