Помощь - Поиск - Пользователи - Календарь
Полная версия: Русификация
Город Мастеров > РЕДАКТОРЫ > Dragon Age Toolset
Страницы: 1, 2, 3
Leon PRO
В conversation.gfx всего навсего 2 шрифта:
Один определяется как "$BodyFont" (возможно шрифт по умолчанию) а другой как "Dragon Text" и один из них только на английском.
А вообще этот файл - представляет функционал панели диалогов.

Замена естественно не подойдет. Это совершенно разные файлы с разными скриптами и функциональностью.
Ice Blade
Обещанный минимод:
http://depositfiles.com/files/ti2k9d3eg
или
http://www.mediafire.com/?99x393ben92r8px
Установка - как и любой DLC закинуть в DAUpdater затем искать в "других компаниях" в игре, либо соответственно в ....документах....\BioWare\Dragon Age\AddIns\Rus_mod\ - если хочется посмотреть на gff-ки прийдётся распаковать erf из data. Плейсибл (в названии "Рус") и диалог содержат вшитый русский соответственно никаких тлк-шек нет. Area layout на основе Arena и как ресурс в мод не включён - потому хз. будет он у "не" обладателей тулсета или нет.
Leon PRO
Брр, так что проверять то ? =)

Сейчас имеем: Диалог на русском, а табличка - квадратики, все верно?
Надо: табличка - читабельна ?

Спасибо Айс, но лучше б ты максимальное количество разных типов строк квадратиками забил smile.gif с полным набором Кириллицы.

UPD.1 У меня квадратики - квадратиками. Прдолжаю ковырять.
UPD.2 Попробую тулсет поставить =(
UPD.3 Установил тулсет, делаю первый модуль.
UPD.4 Слегка поосвоился с тулсетом, поковырял в HEX-редакторе .utp шки. К слову, вбивать текст можно прям через редактор и сохранять, не обязательно открывать GFF эдитором.
UPD.5 Иногда меня посещает ощущение, что копаем не в ту сторону, но пока что опыта слишком мало, чтобы предложить что-то другое.
Ice Blade
Цитата
UPD.4 Слегка поосвоился с тулсетом, поковырял в HEX-редакторе .utp шки. К слову, вбивать текст можно прям через редактор и сохранять, не обязательно открывать GFF эдитором.

Что интерестно, да - вот только потом открыть в тулсете нельзя - но нут виновата БД, ибо сейв происходит в БД - а вот экспорт в gff. С диалогами то же самое, написал и тут же экспортнул - диалог русский, написал - сохранил/открыл и диалог уже "????? ???? ????". Можно конечно условно скажем "выличить БД" - но помогает только диалогам, в остальном у нас квадратики.

Цитата
UPD.5 Иногда меня посещает ощущение, что копаем не в ту сторону, но пока что опыта слишком мало, чтобы предложить что-то другое.

В общем-то другое направление см. выше это использование тлк. Там всё работает как надо, вот только сам тулсет экспортит неправильно gff-ки. Х.з почему unknw.gif. В gff-ках из компании (включая некоторые диалоги), вообще текста нет, но при этом правильно работают TlkString-и и соответственно нормально подключается модульная тлк-шка с локализацией. Кстати всё хотел попробовать с экспортнутым диалогом, может тоже работает ?!? , а то как-то подозрительно выглядит присутствие TlkString вместо LocString-а
Ice Blade
Удалось запустить тлк !!!!!!!!!!! yahoo.gif yahoo.gif yahoo.gif
Короче верное оказалось предположение что тулсет глючит и записывает кое-что левое в gff-ку (ну не совсем левое скорее эхкммм.. немного лишнее)
Чуть позже попробую объяснить подробней. Но если в крацах, испльзуйте gff-editor скажем от Ведьмака, ну или НВН2 - костыли конечно но реально работающие good.gif

--------------------------------------------------------------
Краткий порядок действий:
Качаем любой "толковый" gff editor способный работать с gff v 3.2
К примеру этот сойдёт:
http://mods.starwarsknights.com/tk102/utils/nwn2gff_123.rar
Открываем экспортнутую gff-ку (в моём случае это была itp-шка)
Ищем ветки LocName, а так же LocPopup и удаляем к "чёртовой бабушке" все LocalString-и что к ним привязаны.
И о чудо mod_ru-ru.tlk - теперь работает.
Короче если подчищать всё gff-ки после экспорта - то с русским проблема решена, хоть и через большую Ж.
EqKeeper
Цитата(Ice Blade @ Nov 4 2010, 22:31) *
Удалось запустить тлк !!!!!!!!!!! yahoo.gif yahoo.gif yahoo.gif
Короче верное оказалось предположение что тулсет глючит и записывает кое-что левое в gff-ку (ну не совсем левое скорее эхкммм.. немного лишнее)
Чуть позже попробую объяснить подробней. Но если в крацах, испльзуйте gff-editor скажем от Ведьмака, ну или НВН2 - костыли конечно но реально работающие good.gif

--------------------------------------------------------------
Краткий порядок действий:
Качаем любой "толковый" gff editor способный работать с gff v 3.2
К примеру этот сойдёт:
http://mods.starwarsknights.com/tk102/utils/nwn2gff_123.rar
Открываем экспортнутую gff-ку (в моём случае это была itp-шка)
Ищем ветки LocName, а так же LocPopup и удаляем к "чёртовой бабушке" все LocalString-и что к ним привязаны.
И о чудо mod_ru-ru.tlk - теперь работает.
Короче если подчищать всё gff-ки после экспорта - то с русским проблема решена, хоть и через большую Ж.

yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif yahoo.gif
Сажусь за написание макроса для автоматизации очистки.
Дальнейшие изыскания продолжишь?

P.S. Кстати, как пользоваться tlk'шками? Как их подцеплять, как указывать в модуле на строки из них? smile.gif
Ice Blade
Цитата
Дальнейшие изыскания продолжишь?

Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ? В ДА сейчас мне скорее интересен "процесс" нежели результат. Потому всё зависит от того, какие отмазки "народ" придумает дальше - чтоб ничего не делать. Это я к тому что: - для кого вообще стараемся ? Темой интересуются от силы три с половиной человека, так что если и буду что-то разбирать - то очень "по настроению", но по вопросу руссификации попробую расписать что знаю, но позже.
EqKeeper
Макрос нарисовал, осталось немножко стабилизировать. Племянник выгоняет из-за машины, так что итоговую версию скину уже ближе к ночи. После (видел исходники) примусь за написание более цивильной программки, которая будет сама сносить все лишнее, без использования чужих редакторов. Подскажите заодно - какие форматы файлов нужно вычищать? Помимо *.uti
Leon PRO
Цитата
Удалось запустить тлк !!!!!!!!!!!

Пгастите, что я в танке, а в чем была проблема ? =D

Цитата
Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ?

Тоже самое, просто мозги хочется размять. Слишком много человекочасов требуют современные игры для удовлетворительного рещультата модов. А золотое школьное время прошло )
Ghost
Леончег танкист. smile.gif Трабл был в том, что кастомные тлк файлы были до лампочки. Не видела их игра. Теперь, благодаря шаманствам Айса, она вроде как их видит.
EqKeeper
Собственно, как и обещал. Макрос для массового изничтожения. Две версии под x64 и x86.
Поддерживается формат *.uti. Если нужны другие - пишите.
Тестировалось на группе файлов, проблем не обнаружено. Тем не менее - делайте бэкапы на первых парах.
Обо всех проблемах сразу же сообщайте.
Чтобы пользователь не смог помешать работе макроса, на время его выполнения полностью блокируется ввод с клавиатуры. Если что-то пойдет не так, и понадобится остановить работу - нажмите Alt+Ctrl+Del. Это вернет управление. Далее в трее (рядом с часами) щелкните правой кнопкой на появившийся там значок макроса и выберите в контекстном меню Exit.

http://www.rapidshare.ru/1678800
http://www.megaupload.com/?d=C3FM0SFA
http://webfile.ru/4876507
http://zalil.ru/29923901

А я начинаю раскапывать исходники эдитора, может смогу нарисовать свою программку для более цивилизованной очистки.
Arahna
Цитата(Ice Blade @ Nov 5 2010, 19:58) *
вопрос надо ли кому это, кроме собственно "меня" самого ?

НАДА!!! good.gif
Моей моральной поддержки таким зубрам маловато будет, но ... как могу... angel.gif
Цитата(Ghost @ Nov 5 2010, 22:25) *
Леончег танкист. smile.gif

А наши ЛЕДчики отважества полны! yahoo.gif
Ice Blade
Цитата
Собственно, как и обещал. Макрос для массового изничтожения. Две версии под x64 и x86.
Поддерживается формат *.uti. Если нужны другие - пишите.

Макрос пока не смотрел, но если по форматам - то это практически все gff-ки т.е: *.uti - предметы, *.utp - плейсиблы, *.utc (да и *.chr) - персонажи, *.are - локации, utm - торговцы - и ещё возможно много того с чем пока не сталкивались. В самих файлах как уже ясно надо надо чистить всё что имеет тип CEXLOCSTRING (LocString), в большинстве случаев это имя, описание и popup.
Правда есть ещё пара особых случаев это диалоги(*.dlg) и *.cif - первые вроде и так работают, а у второго несколько отличается формат - однако название, описание и пр. модуля ссылаются именно туда (в общем об этом ещё надо подумать, может и так всё неплохо работает Х.З вопросом сильно не занимался)
EqKeeper
Добавил поддержку означенных форматов (но не тестировал), поправил попутно выявленный баг:

http://www.rapidshare.ru/1678980
http://www.megaupload.com/?d=UDEIBLTM
http://webfile.ru/4877104
http://zalil.ru/29924909


Поковырял сырцы. Понял, что а) Ненавижу перл, б) Легче будет написать с нуля. smile.gif
Сейчас пошарю в Вики на предмет описания формата.
Ice Blade
Так ладно обещал в крацах рассказать о русификации, рассказываю (само собой для неподготовленых непонятно, но у меня щаз у самого каша в голове)

И так первое что надо - это проверить какую Foreign Tlk экспортит тулсет, смотреть в tools->options->general->Foreign Tlk Table to Export, там должно стоять Russian - Russia.

Далее просто делаем скажем плейсибл:
И вот тут уже надо решать что делать с полем Name (..Popup text).Если БД модифицирована - то можно попробовать записать чего-нить по русски, если нет то по барабану (хотя конечно стоит написать чего нить по английски, что бы в дальнейшем упростить себе жизнь).

Далее просто сохраняем (Save) и ставим плейсибл в area, можно кстати уже экспортить и плейсибл и area, а так же подчищать их на предмет наличия LocString-ов gff-editor-е.

Вот дальше как раз начинается самое интересное, а именно экспорт Foreign Talk table.:
По идее всё просто делаем Tools->Export->Export Foreign Talk table - и получем рабочую русскую тлк-шку (а точнее их несколько и одна из них на английском - но об этом потом).

В общем как раз "Великая проблемма №2" и заключается в содержимом этой самой тлк-шки. - это связанно в частности с механизмом Check In (Check Out). Как я понял он то и создаёт записи в тлк, а точнее список tlkString-ов для них. Русский не переваривает ни в каком виде, забивая всё на ??? ??? ?????? и чихать ему на модификацию ntext-а. Глюк вероятнее всего кроется где-то в имопрте/экспорте БД - но там сам чёрт ногу сломит. Потому пока могу предложить несколько вариантов действий:

1. Локализовывать собственный Мод - по средством внешнего тлк редактора. Главный недостаток - в тулсете прийдётся всё писать на латинице. - Что "censored" само по себе. Но зато с минимумом глюков. Механизм работы подробно описывать смысла нет: но если в крацах - внешним тлк редактором, ищем в тлк-шке нужные strRer-ы и переписываем их на русский, кстати DAOTlkEdit умеет брать strRer-ы прямо из экспортнутых Gff - что весьма сильно упрощает работу. Однако в нагрузку ко всему этому способу прийдётся переписывать и диалоги, ибо руский текст в *.dlg - уже не прокатит.

2. Отказаться вообще от механизма Check In (Check Out). Это вынуждает писать тлк-шку фактически с нуля, забивая в неё свои strRer-ы (с вышеупомянутым DAOTlkEdit не такая уж проблема).
А потому можно использовать модификацию text на ntext в БД. После чего Тулсет начнёт переваривать русский в именах, названиях, описаниях, диалогах (а может и почти везде). *.dlg файлы будут внутри содержать русский текст, так что необходимость в тлк-шке для диалогов - отпадёт сама по себе. Ну и конечно всё это можно сохранять и загружать ( главное обходить стороной Check In). Что интересно: как я уже упоминал проблема подчистки русского всплывает при передаче данных тулсетом в БД механизмом Check In, если в БД заменить полученные от тулсета ????? на что-то более русское, то оно даже экспортится в тлк.

Ghost
Второй вариант действий представляется особо непонятным. 0_о Прочитал несколько раз, но понимание пока смутно...
А первый способ таки смотрится съедобным. smile.gif
Ice Blade
Разница в том что во втором способе, ты работаешь в тулсете на русском, включая написание диалогов и имён, и палитра у тебя на русском. Как итог в выходную тлк-шку прийдётся забивать самому не только текст но и tlkString-и от названий и описаний, а вот зато диалоги к примеру будут экспортиться прямо с тулсета в исходном виде.
В первом же, ты полностью работаешь с тулсетом на английском, включая диалоги и всё прочее. Как следствие имеешь уже забитую tlk-шку, со стрингами - в которой просто меняешь английское написание на русское, но в нагрузку к именам и описаниям, - получаешь ещё и все диалоги.
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой. Правда за это прийдётся заплатить, совместимостью с будущими патчами тулсета (замечу не игры) - НО .. будут ли они ????

ЗЫ. Что касается конкретных, действий - то конечно могу описать поподробней, - но вся эта идея с починкой тулсета и тлк, пока на грани скорее "удавшегося эксперимента", - нежели конкретного патча. Уж больно много ещё всего неясно.
Arahna
Цитата(Ice Blade @ Nov 6 2010, 17:00) *
во втором способе, ты работаешь в тулсете на русском, включая написание диалогов и имён, и палитра у тебя на русском.

Не поняла насчет палитры... Точнее, просто поверить боюсь. Получается, что тулсет может заговорить со мной по-русски, как бабулька Аврора?
Цитата(Ice Blade @ Nov 6 2010, 17:00) *
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой.

Уточняю вопрос: в меню вместо "area" будет "область" вместо "new" - новая и т. д. Так получается?
Цитата(С.А.Есенин)
Из всех земных языков признаю только русский, и, если кому надобно со мной разговаривать, пусть учит русский язык.

Leon PRO
Цитата
Уточняю вопрос: в меню вместо "area" будет "область" вместо "new" - новая и т. д. Так получается?

Я думаю, Айс имел в виду что все "русскописные" модульные строки будут на русском, а не тулсет.

Кстати, для просмотра и редактирования всех полей в GFF структурах намного удобнее пользоваться вот этой программой.
Просто незаменима со времен NWN1
Например, там отображается то самое поле "LocPopupText", которое содержит "поп ап" текст и не выводится GFF редактором DA. Хотя, скорее всего редактор просто неверно интерпретирует тип этого поля, и вместо STRING выставляет LOCSTRING, хотя поле и содержит введенное в тулсете значение.

К сожалению GFF версии 4.0 она не открывает.

UPD. 1 Кстати в папочке tools вместе с тулсетом есть COM коспонента которая предоставляется интерфейсы для открытия, чтения и записи v4.0 GFF структур и ресурсных файлов (ERF, TLK и т.д.) и даже, кажется позволяет компилить скрипты. В компоненте есть .NET обертка. Странно, что ещё никто об этом не писал. По крайней мере гугл молчит.
UPD. 2 Кстати, теоретически, через этот интерфейс можно подключить любой внешний компонент для обсчета света по цепочке.
"DA COM Interface.3DMeshData(VertexData, IndexData)" -> ".NET or C++ COM Connector" и далее например -> "3DS Max mesh Importer" -> раcсчет света -> сохранение ресурсов рассчета (карт освещения).
Arahna
Цитата(Leon PRO @ Nov 6 2010, 22:27) *
Я думаю, Айс имел в виду что все "русскописные" модульные строки будут на русском, а не тулсет.

По всей видимости так и есть. Досадно, но не смертельно. Будем учиться по-басурмански. vava.gif
Да и не надо мне все меню! Только кнопочку "Help" по-русски бы... angel.gif
Цитата
Кстати, для просмотра и редактирования всех полей в GFF структурах намного удобнее пользоваться вот этой программой.

Спасибо, с WGR много чего натаскала, а именно эту прогу прогдядела. Точнее, просто не поняла, что она умеет. good.gif
Цитата
Кстати в папочке tools вместе с тулсетом есть COM коспонента которая предоставляется интерфейсы для открытия, чтения и записи v4.0 GFF структур и ресурсных файлов (ERF, TLK и т.д.) и даже, кажется позволяет компилить скрипты. В компоненте есть .NET обертка. Странно, что ещё никто об этом не писал. По крайней мере гугл молчит.

Действительно странно. Если Вы имели ввиду GffEditor, то я им ковыряла авроровские файлы (от DA пока боюсь напортачить). Открывает *.are, *.uti, *.itp - проще сказать, чего он НЕ открывает, это именно скриптовые *.nss и *.nсs -файлы. Но и их, если закатать в ерефку, отлично видит ErfEditor DA-тулсета. Вот только как компилировать, пока неясно. Сам тулсет их тоже видит, и экспортировать к себе предлагает, но... без проверки? sad.gif
Leon PRO
Цитата
Если Вы имели ввиду GffEditor

Нет, этот абзац относился к программистам, понимающим что дает COM+ компонента rolleyes.gif

P.S. Айс, а какую таблицу в БД ты редактировал, что он аначала рус. буквы записывать ?
P.P.S. Поменял collation столбца Text на Cyryllic в r_StringText, все также записывает в BD вопросы.
Ice Blade
Ладно, подробный план действий:
1. Качаем SQL Service Managment Studio 2005 (ну или аналог)
2. Открываем БД, и ищем таблицу dbo.t_StringText (Databases->bw_dragonage_content->Tables->dbo.t_StringText)
3. Жмём правой кнопкой на табице и выбераем Modyfy

4. В открывшейся панели, в поле Text меняем Data Type - text на ntext (Кстати в Description - тоже можно поменять)

5. Сохраняем таблицу (Правая кнопка мышы на Table - dbo.t_StringText и собственно Save t_StringText), появившиеся "матюки" игнорируем нажимая на всё ОК (там ничего серьёзного).

--------------------------------------------------------------------------
Всё теперь тулсет бутет переваривать руский, но не в механизме Check In.

Примечание:
В принцепе думаю и это можно починить, т.к если открыть эту таблицу (Open Table - вместо Modify) и забить в стринг что нибудь русское, то оно принимается БД и даже экспортится в тлк-шку

Соответственно в тулсете в Sting Editor-е (и соответственно в тлк-шке) имеем:

Отсюда вывод что глюк происходит при Check In. В БД довольно много скриптов да и самих таблиц - где может чего-то быть, но и есть вероятность что сам тулсет руку приложил. Х.З. Если эту проблему удастся решить, то тулсет фактически получит поддержку русского (с учётом подчистки gff-ок конечно). Впрочем даже в таком виде, всё довольно работоспособно - и при желании создать модуль на русском уже не проблема.

PS.
Цитата
P.P.S. Поменял collation столбца Text на Cyryllic в r_StringText, все также записывает в BD вопросы.

На collation - БД похоже сугубо чихать, в том смысле что текстовые стринги собственно не с чем не сравниваются и ни чем не ишутся. Правда в БД зачем-то есть скрипт на конверт text в ntext и наоборот, так что возможно есть ещё какие-то действия кроме простой передачи.
Leon PRO
Цитата
На collation - БД похоже сугубо чихать, в том смысле что текстовые стринги собственно не с чем не сравниваются и ни чем не ишутся.

Хм, почему-то в некоторых (под некоторыми я имею в виду MySql) БД для поддержки русского достаточно выставить для таблиц Collation в Unicode или Cyrillic вместо Latin.
---
Кстати, вчера возникла мысль, что все записи в БД производятся только через хранимые в БД процедуры. Например через хранимки "SetString" "CheckIn" и "CheckOut" (названия примерные, т.к. не помню точные уже, а БД на другом компе). Как правило в крупных проектах в большинстве случаев не используется запись в таблицы напрямую из-за связанности таблиц.
Понять бы еще как отдебажить хранимые процедуры в MSSQL, никаких аналогов для тестирования, (как в Oracle) чтобы можно было подать на вход параметры и отследить изменения в процессе трансформации и записи я пока не нашел =(
Надо написать программку, чтобы попробовать вызвать эти процедуры и передать им текстовый параметр. Если в итоге запишется как ????? ??, то у нас будет еще одна надежда, что сам тулсет обрабатывает и передает в БД кириллицу корректно, а во всем виновата только хранимка.
---
И ещё, я никак не могу взять в толк, чего к этому CheckOut CheckIn прикопались smile.gif ? Это же просто функции для эмуляции системы версии через БД. Как правило во время создания тестового модуля, за все время жизни объект просто создается один раз и далее модифицируется без всяких чек-аутов.
---
Спасибо за мануал. Попробую только сменить text на ntext, но, знаешь, у меня при конвертации этого столбца в collation = Cyrillic "ntext" там и так выставился.
Ой, кстати добавлю, что использую SQL 2008
Ice Blade
Цитата
. Как правило во время создания тестового модуля, за все время жизни объект просто создается один раз и далее модифицируется без всяких чек-аутов.

Я уже по-моему говол, что Check In - нужен только когда формируется тлк-шка. Впрочем это понятно, - т.к Х.З почему в StringText - пишется много мусора см.предпоследний скрин ID 1595937473 повторяется несколько раз. Мне вообще не очень понятно, почему Биовар вместо отдельной таблицы для каждого модуля (ведь тлк-шки то отдельные) сделали общую свалку для всего на свете, и это касается не только техт стрингов.

Цитата
Надо написать программку, чтобы попробовать вызвать эти процедуры и передать им текстовый параметр. Если в итоге запишется как ????? ??, то у нас будет еще одна надежда, что сам тулсет обрабатывает и передает в БД кириллицу корректно, а во всем виновата только хранимка.

Может я не так понял - но так и происходит, - как только забьешь имя в плейсибле и засейвишь - оно с кирилицей и появлется в БД, однако функции Check In это не касается там всё сразу забивается ??????.


EqKeeper
На дружественном (надеюсь) форуме, некоторые уверяют, что для корректного отображения русских букв достаточно "пропатчить" реестр патчиком от NWN. Есть те, кто говорят, что им это не помогло, но есть и такие, что божатся - у них все нормально.

Код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1252"="c_1251.nls"


Ну или сам фикс: http://data.virusman.ru/nwn/toolset/cp1252_fix.rar

Кстати, неплохо бы изучить что у товарищей уже раскопано по этому поводу, активно занимаются переводами и созданием своих модов.
http://da-world.ru/forum/10
Ice Blade
Старый добрый глюк с Cp хмм... наврятли, даже если шрифт примет русский, его не примет БД - а следовательно тлк, но... как показала практика на тлк в определёных условиях можно вообще чихать, так что стоит попробовать.
----------------------------------
Попробовал: nea.gif
Как и ожидалось - не работает, всё таки тлк пока остаётся единственным способом. cray.gif
Leon PRO
Блин, объясните мне, пожалста, как связать текст в к.л. кастомном ресурсе с ТЛК ???
Например я создал плейсибл, в нем есть PopUp text.

Как сделать, чтобы там был текст из ТЛК?
Повбивал несколько строк туда, сделал Export Foreign Talk table и просто Export Talk table, судя по логу создаются только "LNG01_en-us.tlk", заюитый моими русскими строками и "LNG01_c_en-us.tlk" в core - пустой.

Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\

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

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

В данный момент, я так понял проблема с использованием кириллицы именно в UI тулсета полностью решена через БД? Все строки пишутся по русски, сохраняются и снова загружаются корректно.
Ghost
Леоно, ты об этом?
Цитата
In the toolset there is no tool to manage foreign languages (I read an answer from a Bioware guy explaining that the language tool they use was not implemented in the toolset for players). If you want to manage foreign languages, you have to create your own talktables.
BUT, there is a bug with items you create (or modify I suppose). When you export them, the files generated contain an information saying to the game to not use foreign talktables ... so in game you will have the names and descriptions fulfilled in the toolset.
Here is a post (in french) about this problem and how to solve it (you have to handle files with an hexadecimal editor) http://social.bioware.com/forum/3/topic/50/index/1247210

unsure.gif

(откопано на формах Биовара)

И таки да, в шапке не помешал бы список достигнутого.
Leon PRO
Да, именно это, НО, оказалось, что Гриффон уже описывал это на первой странице:
http://www.city-of-masters.ru/forums/index...=6206&st=0#

Для помещения всего текста, нуждающегося в локализации в ТЛК надо просто напросто сделать чек-аут объекта. Строки сразу появятся в стринг эдиторе, и дальнейшая их правка там сразу отобразится и на связанных объектах.
В итоге весь русский текст попал в ТЛК, и после применения метода айса по включенияю ТЛК в игре все заработало!
Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда.

Что имеем, значит на данный момент:
1. Ввод-вывод локализованных строк в UI тулсета сделан через модификацию БД.
2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами.
Ну, значит получается, что всего-навсего осталось:
3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает.

И первое полноценное решение готово.
Поправьте меня если я не прав?
Ice Blade
Цитата
2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами.

А вот это интерестно, у меня кирилица в тлк так и не попадает. При Check In выбрасывает ???? ???? ????. Хм... Collation ? - Поподробней Лео. scratch_one-s_head.gif

-----------------
ААААа понял, причина в том что тестил на уже созданых плейсиблах, если плейсибл новый то проблемма с Check In отпадает good.gif - видать БД помнит, в каком виде были созданы стринги.

Короче остался только пункт 3:
Цитата
3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает.

И про рус. проблему можно вообще забыть.

Цитата
Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда.

См. пункт 1 - того списка где я описывал изменения в БД, - т.е Foreign Talk table в опциях, и должен будет будет использовать ru-ru, хотя на деле разницы особой нет.
Griffon
Благодарность Айсу, Леону и Киперу за титанический труд. thank_you.gif

Цитата(Ice Blade @ Nov 5 2010, 19:58) *
Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ? В ДА сейчас мне скорее интересен "процесс" нежели результат. Потому всё зависит от того, какие отмазки "народ" придумает дальше - чтоб ничего не делать. Это я к тому что: - для кого вообще стараемся ?

Надо. Интересующихся редактором ДА, на самом деле, очень мало, но они есть.

Цитата(Ice Blade @ Nov 6 2010, 17:00) *
Незнаю кому как, а мне приятней работать с изначально руссифицированой программой. Правда за это прийдётся заплатить, совместимостью с будущими патчами тулсета (замечу не игры) - НО .. будут ли они ????

ИМХО, патч, скорее всего, будет один и окажется последним. По идее, Био должны его выложить после выхода ДА2 и на этом их помощь сообществу успешно завершится.

Цитата(Leon PRO @ Nov 8 2010, 01:50) *
Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\

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

Пока не до конца въехал в суть решения русификации, видно придется восстановить редактор и пробовать. В связи с этим есть вопрос - при сносе тулса, также подтвердил снос SQL...... и какую версию мне теперь ставить?
Leon PRO
Пофиг какую. Можешь тулсетную вообще не ставить.

У айса вон 2005, у меня 2008 стояла, и я в нее залил дамп и пользовался, а тулсетную 2005 не ставил (отключил галку во время установки).
Если будешь модифицировать базу (для русификации) - понадобится еще и MS SQL management Studio подойдет Express версия для той версии БД что ты поставишь.

Но, если ничего не стоит вообще - ставь тулсетную, наверное. Меньше гимора будет с установками. Правда там какая-то мегапроблема была, если вин ХП не пропатчен до СП3, так что аккуратнее.

UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =)
virusman
Вполне вероятно, что те же французы тоже нашли решение и тоже на подобном форуме, но не отпостили на биоваревском. smile.gif
Leon PRO
Я французский не знаю, но единственное, что понял по скринам, что там копали HEX-ы, и явно не те что мы.
Ice Blade
Цитата
Благодарность Айсу, Леону и Киперу за титанический труд.

Цитата
UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =)

Как бы так или иначе - всё в этом топипе руку приложили. Тут не с каждого перепою догадаешься что проблема может быть в двух-трёх и более местах. Однако она в нормальном виде ещё не решена см. вышеописанный пункт №3 - макрос EqKeeper - конечно очень замечательно, но хочется чего-то более быстрого и стабильного, НУ - есть тут у нас кто-нибудь "добрый дядька программист". GFF как формат вроде давно неплохо расписан.

Что про SQL, русификацию, тлк и прочее - то ДА, - уже чувствуется необходимость в F.A.Q-е, и в принципе есть что туда записать, надо только мыслями собраться (у меня последнее время это не очень получается wacko.gif )
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".
Leon PRO
По п.3 я займусь. Если не найдется к.л. школьника, студента с бОльшим количеством свободного времени, нежели "после работы".
EqKeeper
Сейчас отпуск и огромное количество проектов, но, возможно, удастся выкроить один денек.
http://social.bioware.com/wiki/datoolset/i....0_and_GFF_V3.2
Ткните пальчиком, какие типы полей неугодны и их надо убивать?
Leon PRO
Нене, это Eclipse GFF, а надо работать с Aurora GFF. Его структура тут:
http://nwn.bioware.com/developers/Bioware_..._GFF_Format.pdf

Там в корне списка в грязном файле ноды выглядят вот так (для наглядности написал в XML формате):
Neverwinter Script
<cexolocstring name="LocName" strref="991556708">
      <phrase language="english">werwerwe</phrase>
      <phrase language="english">werwerwerwerwerew</phrase>
</cexolocstring>
<cexolocstring name="LocPopupText" strref="991556709">
      <phrase language="english">фыфвфв</phrase>
      <phrase language="english">вфывфы</phrase>
</cexolocstring>

Так вот, у нод с именем "LocName" и "LocPopupText" (это конкретно у UTP GFF), а возможно просто у всех нод (универсальное решение, требующее проверки на разных типах GFF) с типом "cexolocstring" надо удалить дочерние элементы.

Тоже сел за проектик, на на Managed C# парсинг структурных файлов - занятие весьма унылое smile.gif
EqKeeper
Хм... только дочерние? А сами ноды оставлять?
Ну да, на С++ это на порядок удобнее, хотя и на шарпе уже делал. smile.gif (а вот кто такой Managed C# не знаю >_>)
Leon PRO
Да, сами ноды оставлять без изменения.
C# он как бы Managed по умолчанию biggrin.gif
EqKeeper
А я этого термина не понимаю. smile.gif Самоучка. smile.gif Так что теория у меня на нуле + немного MSDN. smile.gif

P.S. Ой... мы опять оффтопим. х_х
kelamor
За темой слежу давно, но, так как сказать было нечего, молчал.
Я к тому, что в необходимости решения этой проблемы сомневаться не надо smile.gif

Я решал проблему кардинально(на примере предмета):
1. Экспортировал и редактировал Foreign tlk.
2. В GFF-редакторе удалял текст из строк Name и Description.

После этого игра начинала читать текст из tlk-файла.

А так как вы тут уже почти решили всё, я с нетерпением жду smile.gif
Griffon
Цитата(Ice Blade @ Nov 8 2010, 17:51) *
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".

Поддерживаю идею. Тогда на выходных ставлю редактор и возьму создание двух локаций - внутренняя и внешняя. Правда, много времени уделить не смогу..... 2-3 часа по выходным. Попутно буду изучать создание ролика при помощи катсцен (покосился в сторону Леона biggrin.gif ).
Leon PRO
GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа wacko.gif
День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит.
День 3. Добавил еще обработчиков на внутренние структуры GFF. Дошел как раз до CExoString и CExoLocString, которые нужны для исправления. Занялся оптимизацией классов чтения файла. Все разобрал, ничего не работает, собрать не успел )

--------------------------------------------------------------------------
Текущий статус - все разобрано, ничего не работает crazy.gif
--------------------------------------------------------------------------
kelamor
Цитата(Griffon @ Nov 9 2010, 16:50) *
Попутно буду изучать создание ролика при помощи катсцен
Туториал на русском Griffon: Спасибо за ссылку. Почисть почту... не смог ПМ-ку отправить. smile.gif

Цитата(Ice Blade @ Nov 8 2010, 23:51) *
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик".
В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.
Ice Blade
Цитата
Лег в 4 утра. опоздал на работу на 3 часа

Ты это.. аккуратней, ты нам живой-здоровый нужен good.gif ( ..само собой пока тулсу не доделаешь biggrin.gif )

Цитата
В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.
Ну кроме множества болезней лок, ещё скрипты, VO и опять же сама БД - вызывают некоторые опасения. Да и с более глубокими модификациями вроде шаренья по 2да - есть проблемы с теми же придельными стрингами. В общем проблемы есть, только степень их пока не определена, да и настораживает сам факт того что даже англоязычные, не шибко-то взялись за написание полноценных модулей.
Leon PRO
Кстати, я столкнулся с проблемой, что при попытке удалить ресурс, даже если ссылки наи него не остались нигде (плейсибл удален из локи и с него снят конверсейшн тэг) все равно пишет, что ссылка на него осталась в локе и на конверсейшне.

Если эти ссылки хранятся в БД, то вылечить можно, т.к. действительно, все (не уверен, конечно, но, может почти все smile.gif ) манипуляции с БД тулсет делает через хранимые в БД процедуры, которые можно править!!!

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

Цитата
Туториал на русском

Клево. Большой объем работы сделан!
EqKeeper
Цитата(Leon PRO @ Nov 10 2010, 03:05) *
GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа wacko.gif
День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит.


Имеем FileStream с доступом на чтение Stream. Имеем структуру data класса SData.
Код
Stream.Position = 0; // С какого места будем читать
byte[] buffer = new byte[Marshal.SizeOf(typeof(SData))];
int i = 0;
while (i < buffer.Length) { i += Stream.Read(buffer, i, buffer.Length - i); }
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
data = (SData)Marshal.PtrToStructure(handle.AddrOfPinnedO
bject(), typeof(SData));
handle.Free();


Запись аналогичным образом. crazy.gif
Leon PRO
Я примерно также и читаю, только чуть попроще не каждый байт, а все сразу, только там нашлось несколько подводнх камней с маршаллингом, в бодании с которыми я провел несколько часов, чтобы структуры приходили чистые.

Код
22     byte[] buff = _br.ReadBytes(Marshal.SizeOf(typeof(T)));
23     GCHandle handle = GCHandle.Alloc(buff, GCHandleType.Pinned);
24     T resultStruct = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T));
25     handle.Free();

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

Меня раньше передергивало от любого Unsafe конента, собственно я С# выбрал именно из-за того, что не надо работать напрямую с указателями, ссылками и памятью, но без этого слишком долго управляемый десериализатор писать придется =(
EqKeeper
Хмм... подводные камни именно из-за способа чтения или вообще? (у самого проблем не было)

---

Да, и кто есть _br? smile.gif А то у FileStream я .ReadBytes не вижу =\
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.