A console-program for comparing Defs folder with DefInjected folder.

Started by KviEt, September 01, 2016, 05:48:33 AM

Previous topic - Next topic

KviEt

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 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.

Ivanzyfer


KviEt

Спасибо, исправил.
Какую версию defs ты используешь если не секрет?

Ivanzyfer

Не понял вопроса про версию defs

Скрипт запустился.
Теперь вот такие строки добавляет .None.(хотя перевод у шоколада есть)
http://i.imgur.com/UGfRnNh.png

KviEt

Defs разные в зависимости от версии игры...

Спасибо ещё раз, теперь точно должен работать, какая-то подстава от питона, на 2.7.9 у меня этой ошибки не было...

Ivanzyfer

Спасибо! Теперь всё работает как надо. Плохо только что весь текст подряд идёт. Без пустых строк. Глаза болеть будут, если много смотреть. 8)

KviEt

Глаза будут болеть это плохо, в отчете ведь есть пустые строки они разделяют текст по смыслу или этого мало? Могу тогда попробовать сделать файл с отчетом вместо Python Shell сделать какой-нибудь word документ.

I fixed script.

Ivanzyfer

В папке DefInjectedRaw генерируются вот такие файлы: http://i.imgur.com/KhpPIYN.png
Все строки без разделения

KviEt

Изменил, так пойдет? Наверное, надо ещё чтобы комментарии сохранялись?

Судя по твоему отчету у тебя старая версия скрипта, желательно обновить его...

Ivanzyfer

Скачал только что программу. Почему могут быть такие ошибки?
http://i.imgur.com/l26wINP.png

KviEt

Это моя ошибка, папка defs имеет более сложную структуру(больше вложностей), я сделал чтобы это учитывалось и работало, но допустил ошибку поэтому у тебя программа не работает, позже исправлю(сегодня).

KviEt

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

Ivanzyfer

А можно как-то группировать строки с одинаковым defname?
Чтобы получалось не так - http://i.imgur.com/kv2R2PB.png, а вот так- http://i.imgur.com/YDDH9fq.png ?
=================
Ещё иногда в модах бывает что defname берётся из Core и просто изменяются параметры.
Получается двойной перевод.(в Core и в моде) Можно как-то это обойти? Дополнительную проверку добавить?

KviEt

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? Папок для мода может быть несколько?
Я просто не использую в игре моды, поэтому мне эта система не знакома совсем...

Ivanzyfer

У каждого мода своя папка. По типу Core. Перевод у каждого мода отдельный.
В некоторых модах кроме внесения новых вещей в игру есть изменение оригинальных дефов.
В таком случае в моде не нужен перевод этого defname, потому что он уже есть в Core.(иначе будут жёлтые ошибки о дубликате)