The forum has been set to read-only mode. For community discussion and questions, head over to our Discord: https://discord.taleoftwowastelands.com

TTW Eng 2 Rus (0.01 Pre-Alpha)

Have something to say about Tale of Two Wastelands or have an idea for a new feature? Let us know here.
Trust
Posts: 37
Joined: Fri Mar 29, 2013 8:04 am

Скрипт добавляет в словарь не

Post by Trust » Tue Apr 23, 2013 3:57 pm

Скрипт добавляет в словарь не только языковые строки, но и... игровые скрипты. Записи типа TOPIC содержат subrecord RESPONCE - скрипт не все их прожёвывает, далеко не все. Кроме того, есть неучтённые типы записей: GMST например. Этот скрипт надо научить работать с определёнными записями, и наверно ещё и с массивами двухмерными, так-как диалоги представляют из себя таблицы. Кроме того, надо из каждого плагина выписать отдельный словарь, а потом все словари смерджить в особом порядке! Скрипт должен ещё и руководствоваться логикой "когда завершать работы над строкой"... как я понимаю для этого нужна инфа EDID для каждой записи... тоесть: скрипт должен что-ли оперировать таблицами "Заголовок EDID, а внутри два сопоставленных двухмерных массива."


Паскалевский синтаксис я понимаю хорошо, надо только почитать мануалы по xEdit ...  smiley



«Trust-the-Parrot is Raggae-singer

 in Crabcore garage-band»



User avatar
zilav
Gary
Posts: 225
Joined: Tue Apr 09, 2013 4:03 pm

Скрипт работает со всеми

Post by zilav » Tue Apr 23, 2013 4:21 pm

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


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


Мануала по xEdit нет, мне его некогда писать.



Trust
Posts: 37
Joined: Fri Mar 29, 2013 8:04 am

А вот смотри: если

Post by Trust » Tue Apr 23, 2013 5:47 pm

А вот смотри: если мастерфайлы добавлять через GECK - то ведь там много чего на автомате, ага?.. Я имею в виду, что я делаю русификатор, но он весь состоит из инъекций, что естественно очень плохо... мало у кого он вообще загружается, а у кого и загружается то очень долго. Так вот ты вкратце объяснил из-за чего возникают инъекции, так вот мне интересно: если перед тем, как мерджить русификаторы все, добавить к ним мастера через гекк все необходимые (одинаковый список), то это предотвратит инъекции?


Если да, то я сразу начну всю работу заново, переделаю QQQ.


QQQ это смердженные русификаторы в определённом порядке, с ... вручную исправленными конфликтами. У меня он работает хорошо, этот QQQ - но хочется чтоб он быстро грузился и не вешал игру при запуске.



«Trust-the-Parrot is Raggae-singer

 in Crabcore garage-band»



User avatar
zilav
Gary
Posts: 225
Joined: Tue Apr 09, 2013 4:03 pm

Даже не знаю с какой стороны

Post by zilav » Tue Apr 23, 2013 6:33 pm

Даже не знаю с какой стороны подойти чтобы такое исправить... по идее надо взять запись с инъекцией, посмотреть на ее порядок загрузки (первые две цифры в FormID), затем по EditorID определить из какого она мастер файла, добавить этого мастера или изменить порядок загрузки существующих чтобы индексы совпали, и повторить для других инъекций. Что-то в этом роде, но гарантий никаких, так как плагин по сути уже битый и бог его знает что там еще не так помимо инъекций.



Trust
Posts: 37
Joined: Fri Mar 29, 2013 8:04 am

Всё о чём я забыл написать:

Post by Trust » Wed Apr 24, 2013 4:13 pm

Всё о чём я забыл написать: Из первого архива надо взять шрифты, из второго esp-файл пофикшеный, удалить FalloutNV_lang.esp (и вообще все языковые файлы, загрузка которых форсирована), можно ещё открыть QQQ..esp в GECK как Active, дождаться загрузки и просто сохранить (это может предотвратить зависания в главном меню и ускорить загрузку на четверть)


Это на случай, если у кого-то вообще хватило терпения дочитать до этого места или дождаться загрузки...




Zilav, понимаешь... как-бы это сказать: когда есть инъекции в раздельных плагинах, то меняя порядок этих плагинов мне удаётся увернуться от всех инъекций почти, другое дело что надо потом всё это пофиксить, а в 12 отдельных файлах фиксить это всё неудобно, приходится делать слияние. Так мне просто интересно: можно-ли, с помощью каких-то действий избежать инъекций которые возникают на стадии слияния?


Вот ещё что, как я это сделал: (Есть у меня две утилиты на джаве FNV Plugin Utility и FO3 Plugin Utility - слияние производится ими)


 Я слил по-порядку все FO3-русификаторы в один esp, и от FNV в другой... Перед этим: я добавил каждому плагину все мастера как они прописаны в TaleOfTwoWastelands.esm (включая и сам TTW.esm) и каждый русификатор по-отдельности обработал скриптом TTW-Conversion в xEdit ... после чего изменил версию плагина FO3-русификатора на версию NV-мастерфайла, загрузил толстый FO3-русификатор в FNV Plugin Utility и слил внутрь него толстый FNV-русификатор (благодаря такому порядку каким-то чудесным образом ответы неписей и реплики PC в диалогах не затирается английским текстом)


После чего я заметил: название локаций написано не заглавными буквами, а отображаются только буквы верхнего регистра ... что было делать? - Скриптовый язык для этого изучать было лень, поторму я набрал вручную все названия локаций в верхнем регистре...


Ещё я заметил, что TTW-шный Overhaul брони частично затирается пустыми записями (в основном русификаторов FO3), и нет возможности что-либо изменить в FNVEdit ... Тогда я открыл плагин в TES Snip / Секцию брони > для каждой шмотки удалил три последних записи вручную, сохранил, после чего повытаскивал эти записи из TTW.esm и других мастеров...


Не говоря уже о том, что я поставил на место как TTW-шные скрипты так и оригинальные, пофиксил частично квесты, всё работает, хоть и я ничего не перевёл на русский сам лично, а говоря абсурдным языком "привёл к тому виду, когда они стали оно"




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


Что я заметил: скрипт хоть и не различает записи и ходит по ссылкам рекурсивно, диалоги он русифицирует на 50% - ответы неписей в основном английские, реплики игрока в основном русские. Скрипт в словарь записывает игровые скрипты, а после обработки им мастерфайлов - на протектронах например слетают текстуры (на голову натягиваются две текстуры: обычная и анклавовская, из DLC которая... с остального "тела" текстура слетает полностью, остаётся только на "рюкзаке с рычажками") ... так вот скрипты ведь невидимые, что наводит на некоторые мысли.


Я пока попробую натравить скрипт на QQQ - много чего русским мож станет. Свой плаг я и починить потом могу накрайняк.



«Trust-the-Parrot is Raggae-singer

 in Crabcore garage-band»



User avatar
zilav
Gary
Posts: 225
Joined: Tue Apr 09, 2013 4:03 pm

В тех плагинах для

Post by zilav » Wed Apr 24, 2013 6:32 pm

В тех плагинах для русификации было очень много непереведенного текста, а что еще хуже - измененного. Т.е. в русской записи добавлен пробел/возврат каретки в начале/конце строки, но сам текст английский. А так как с точки зрения скрипта текст не совпадает, он помещает в словарь как перевод.


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


Хорошо, а буду проверять не строки а конкретно записи где текст есть, обновлю скрипт когда время будет.



Trust
Posts: 37
Joined: Fri Mar 29, 2013 8:04 am

А регулярные выражения там

Post by Trust » Wed Apr 24, 2013 7:58 pm

А регулярные выражения там можно писать? Можно поудалять двойные-тройные-N-ные пробелы... либо было-бы хорошо перегрузить str_replace массивами... Рег-выражениями вообще можно снести все пробельные символы лишние: снести в конце и начале строк, удалить дублирующиеся итд.


Если можно массивом перегружать... хотя впринципе можно каждую строку во вложенных циклах обработать...


Снести лишние пробелы было-бы логично.



«Trust-the-Parrot is Raggae-singer

 in Crabcore garage-band»



User avatar
zilav
Gary
Posts: 225
Joined: Tue Apr 09, 2013 4:03 pm

Их нельзя просто так снести,

Post by zilav » Thu Apr 25, 2013 5:48 am

Их нельзя просто так снести, иначе форматирование текста в терминалах полетит.



Trust
Posts: 37
Joined: Fri Mar 29, 2013 8:04 am

Если я не запамятовал, то

Post by Trust » Thu Apr 25, 2013 6:37 am

Если я не запамятовал, то терминалы находядся в секции TERM...


Само-собой, небрежно к записям нельзя относиться, но хотя-бы если-бы был фильтр который подсвечивает секции и записи которые содержат пробельные символы (и отображает сами эти невидимые символы), то я-бы напрягся, и выборочно бы руками посносил дубликаты там где это можно, причём очень аккуратно, пять раз проверяя всё. (А что ещё можно ожидать от такого ленивого луддита как я, которому лень скачать нормальный браузер и не юзать IE?)



«Trust-the-Parrot is Raggae-singer

 in Crabcore garage-band»



User avatar
zilav
Gary
Posts: 225
Joined: Tue Apr 09, 2013 4:03 pm

Обновил скрипт, стало

Post by zilav » Thu Apr 25, 2013 1:59 pm

Обновил скрипт, стало работать побыстрее. Но теперь уж сам проверяй, может я где-то что-то забыл добавить.



Post Reply