![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#76
|
|
Трехмерный Маньяк ![]() Класс: Мастер Оружия Характер: Lawful Neutral Раса: Нежить NWN: Контент Проклятие Левора ![]() |
Старый добрый глюк с Cp хмм... наврятли, даже если шрифт примет русский, его не примет БД - а следовательно тлк, но... как показала практика на тлк в определёных условиях можно вообще чихать, так что стоит попробовать.
---------------------------------- Попробовал: (IMG:style_emoticons/kolobok_light/nea.gif) Как и ожидалось - не работает, всё таки тлк пока остаётся единственным способом. (IMG:style_emoticons/kolobok_light/cray.gif) |
![]()
Сообщение
#77
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Блин, объясните мне, пожалста, как связать текст в к.л. кастомном ресурсе с ТЛК ???
Например я создал плейсибл, в нем есть PopUp text. Как сделать, чтобы там был текст из ТЛК? Повбивал несколько строк туда, сделал Export Foreign Talk table и просто Export Talk table, судя по логу создаются только "LNG01_en-us.tlk", заюитый моими русскими строками и "LNG01_c_en-us.tlk" в core - пустой. Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\ В принципе, сейчас, раз все в тулсете сохраняется-загружается, пишется и отображается, а также сохраняется в файлы с русскими буквами, как положено - хочу покопать ТЛК. И, кстати предлагаю сделать каой-то закрепленный пост в начале, где перечислить по пунктам все существующие проблемы, а то, лично из-за пока еще малого времени работы с тулсой постоянно путаюсь - что заработало а что нет. В данный момент, я так понял проблема с использованием кириллицы именно в UI тулсета полностью решена через БД? Все строки пишутся по русски, сохраняются и снова загружаются корректно. |
![]()
Сообщение
#78
|
|
Level 19 ![]() ![]() ![]() ![]() ![]() ![]() Класс: Рейнджер Характер: Lawful Neutral Раса: Эльф ![]() |
Леоно, ты об этом?
Цитата 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 (IMG:style_emoticons/kolobok_light/unsure.gif) (откопано на формах Биовара) И таки да, в шапке не помешал бы список достигнутого. |
![]()
Сообщение
#79
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Да, именно это, НО, оказалось, что Гриффон уже описывал это на первой странице:
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")и корректно работает. И первое полноценное решение готово. Поправьте меня если я не прав? |
![]()
Сообщение
#80
|
|
Трехмерный Маньяк ![]() Класс: Мастер Оружия Характер: Lawful Neutral Раса: Нежить NWN: Контент Проклятие Левора ![]() |
Цитата 2. Вывод в ТЛК автоматически производится по чк-аут и проблем тут нет. Все строки корректно пишутся сами. А вот это интерестно, у меня кирилица в тлк так и не попадает. При Check In выбрасывает ???? ???? ????. Хм... Collation ? - Поподробней Лео. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) ----------------- ААААа понял, причина в том что тестил на уже созданых плейсиблах, если плейсибл новый то проблемма с Check In отпадает (IMG:style_emoticons/kolobok_light/good.gif) - видать БД помнит, в каком виде были созданы стринги. Короче остался только пункт 3: Цитата 3. Сделать тулзу, которая во время (или, лучше после) экспорта, в фоне, или по запуску, пакетно чистит все GFFv3.2 ресурсы от LocString-ов. Для GFFv4.0 эта операция не нужна, т.к. там ресурс хоть и содержит ресреф и локстринг, но пишется по другому ("REF:LocString")и корректно работает. И про рус. проблему можно вообще забыть. Цитата Кстати, у меня так и экспортит en-us.tlk, но модуль берет строки оттуда. См. пункт 1 - того списка где я описывал изменения в БД, - т.е Foreign Talk table в опциях, и должен будет будет использовать ru-ru, хотя на деле разницы особой нет. |
![]()
Сообщение
#81
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Благодарность Айсу, Леону и Киперу за титанический труд. (IMG:style_emoticons/kolobok_light/thank_you.gif)
Ну я скорее из вредности копал(ю), нежели из-за какой либо конкретной цели - другой вопрос надо ли кому это, кроме собственно "меня" самого ? В ДА сейчас мне скорее интересен "процесс" нежели результат. Потому всё зависит от того, какие отмазки "народ" придумает дальше - чтоб ничего не делать. Это я к тому что: - для кого вообще стараемся ? Надо. Интересующихся редактором ДА, на самом деле, очень мало, но они есть. Незнаю кому как, а мне приятней работать с изначально руссифицированой программой. Правда за это прийдётся заплатить, совместимостью с будущими патчами тулсета (замечу не игры) - НО .. будут ли они ???? ИМХО, патч, скорее всего, будет один и окажется последним. По идее, Био должны его выложить после выхода ДА2 и на этом их помощь сообществу успешно завершится. Я сначала предполагал, что все строки с флагом RequiresReTranslation автоматом скидываются в ТЛК и связываются через ResRef прозрачно для пользователя, но, видимо ошибся =\ Думаю эту строку создавали для последующего переписывания ткш-ных файлов на языки локилизаций, но насколько я понял из форумных сообщений она не работает. Вернее, работает не совсем правильно. Пока не до конца въехал в суть решения русификации, видно придется восстановить редактор и пробовать. В связи с этим есть вопрос - при сносе тулса, также подтвердил снос SQL...... и какую версию мне теперь ставить? |
![]()
Сообщение
#82
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Пофиг какую. Можешь тулсетную вообще не ставить.
У айса вон 2005, у меня 2008 стояла, и я в нее залил дамп и пользовался, а тулсетную 2005 не ставил (отключил галку во время установки). Если будешь модифицировать базу (для русификации) - понадобится еще и MS SQL management Studio подойдет Express версия для той версии БД что ты поставишь. Но, если ничего не стоит вообще - ставь тулсетную, наверное. Меньше гимора будет с установками. Правда там какая-то мегапроблема была, если вин ХП не пропатчен до СП3, так что аккуратнее. UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =) |
![]()
Сообщение
#83
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Вполне вероятно, что те же французы тоже нашли решение и тоже на подобном форуме, но не отпостили на биоваревском. (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#84
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Я французский не знаю, но единственное, что понял по скринам, что там копали HEX-ы, и явно не те что мы.
|
![]()
Сообщение
#85
|
|
Трехмерный Маньяк ![]() Класс: Мастер Оружия Характер: Lawful Neutral Раса: Нежить NWN: Контент Проклятие Левора ![]() |
Цитата Благодарность Айсу, Леону и Киперу за титанический труд. Цитата UPD.1 Ахах, народ, вы поняли, что рускоязычное (не пишу русское, т.к. тут не только из России товарисчи есть ) ) комюнити по ходу - первое в мире, которое смогло локализовать тулсет в приемлимом виде. И не просто локализовать, а найти универсальное решение для всех языков. =) Как бы так или иначе - всё в этом топипе руку приложили. Тут не с каждого перепою догадаешься что проблема может быть в двух-трёх и более местах. Однако она в нормальном виде ещё не решена см. вышеописанный пункт №3 - макрос EqKeeper - конечно очень замечательно, но хочется чего-то более быстрого и стабильного, НУ - есть тут у нас кто-нибудь "добрый дядька программист". GFF как формат вроде давно неплохо расписан. Что про SQL, русификацию, тлк и прочее - то ДА, - уже чувствуется необходимость в F.A.Q-е, и в принципе есть что туда записать, надо только мыслями собраться (у меня последнее время это не очень получается (IMG:style_emoticons/kolobok_light/wacko.gif) ) А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик". |
![]()
Сообщение
#86
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
По п.3 я займусь. Если не найдется к.л. школьника, студента с бОльшим количеством свободного времени, нежели "после работы".
|
![]()
Сообщение
#87
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Сейчас отпуск и огромное количество проектов, но, возможно, удастся выкроить один денек.
http://social.bioware.com/wiki/datoolset/i....0_and_GFF_V3.2 Ткните пальчиком, какие типы полей неугодны и их надо убивать? |
![]()
Сообщение
#88
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Нене, это 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# парсинг структурных файлов - занятие весьма унылое (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#89
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Хм... только дочерние? А сами ноды оставлять?
Ну да, на С++ это на порядок удобнее, хотя и на шарпе уже делал. (IMG:style_emoticons/kolobok_light/smile.gif) (а вот кто такой Managed C# не знаю >_>) |
![]()
Сообщение
#90
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Да, сами ноды оставлять без изменения.
C# он как бы Managed по умолчанию (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#91
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
А я этого термина не понимаю. (IMG:style_emoticons/kolobok_light/smile.gif) Самоучка. (IMG:style_emoticons/kolobok_light/smile.gif) Так что теория у меня на нуле + немного MSDN. (IMG:style_emoticons/kolobok_light/smile.gif)
P.S. Ой... мы опять оффтопим. х_х |
![]()
Сообщение
#92
|
|
Level 2 ![]() Класс: Бард Характер: Lawful Good Раса: Человек ![]() |
За темой слежу давно, но, так как сказать было нечего, молчал.
Я к тому, что в необходимости решения этой проблемы сомневаться не надо (IMG:style_emoticons/kolobok_light/smile.gif) Я решал проблему кардинально(на примере предмета): 1. Экспортировал и редактировал Foreign tlk. 2. В GFF-редакторе удалял текст из строк Name и Description. После этого игра начинала читать текст из tlk-файла. А так как вы тут уже почти решили всё, я с нетерпением жду (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#93
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик". Поддерживаю идею. Тогда на выходных ставлю редактор и возьму создание двух локаций - внутренняя и внешняя. Правда, много времени уделить не смогу..... 2-3 часа по выходным. Попутно буду изучать создание ролика при помощи катсцен (покосился в сторону Леона (IMG:style_emoticons/kolobok_light/biggrin.gif) ). |
![]()
Сообщение
#94
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
GFF Tool
День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа (IMG:style_emoticons/kolobok_light/wacko.gif) День 2. Ловил баги вчерашнего дня. Сегодня ЭТО уже в состоянии под дебагером читать структуру верхнего уровня и Labels нод из которых она состоит. День 3. Добавил еще обработчиков на внутренние структуры GFF. Дошел как раз до CExoString и CExoLocString, которые нужны для исправления. Занялся оптимизацией классов чтения файла. Все разобрал, ничего не работает, собрать не успел ) -------------------------------------------------------------------------- Текущий статус - все разобрано, ничего не работает (IMG:style_emoticons/kolobok_light/crazy.gif) -------------------------------------------------------------------------- |
![]()
Сообщение
#95
|
|
Level 2 ![]() Класс: Бард Характер: Lawful Good Раса: Человек ![]() |
Попутно буду изучать создание ролика при помощи катсцен Туториал на русском Griffon: Спасибо за ссылку. Почисть почту... не смог ПМ-ку отправить. (IMG:style_emoticons/kolobok_light/smile.gif) А ещё лучше, попытаться сделать какой-нить простенький модуль открытого так сказать типа - дабы всем скопом попытаться решить возникшие проблемы, - а то чувствую что кириллица не самая большая беда ДА. Вот только это я уже не потяну в одиночку ибо чем ближе "новый год" - тем больше нагрузка на работе, да и специализация у меня узкая - "типичный контентщик". В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие.
|
![]()
Сообщение
#96
|
|
Трехмерный Маньяк ![]() Класс: Мастер Оружия Характер: Lawful Neutral Раса: Нежить NWN: Контент Проклятие Левора ![]() |
Цитата Лег в 4 утра. опоздал на работу на 3 часа Ты это.. аккуратней, ты нам живой-здоровый нужен (IMG:style_emoticons/kolobok_light/good.gif) ( ..само собой пока тулсу не доделаешь (IMG:style_emoticons/kolobok_light/biggrin.gif) ) Цитата В принципе никаких проблем с тулсом не замечал, всё достаточно ровно работает. Если только с локациями траблы какие. Ну кроме множества болезней лок, ещё скрипты, VO и опять же сама БД - вызывают некоторые опасения. Да и с более глубокими модификациями вроде шаренья по 2да - есть проблемы с теми же придельными стрингами. В общем проблемы есть, только степень их пока не определена, да и настораживает сам факт того что даже англоязычные, не шибко-то взялись за написание полноценных модулей.
|
![]()
Сообщение
#97
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Кстати, я столкнулся с проблемой, что при попытке удалить ресурс, даже если ссылки наи него не остались нигде (плейсибл удален из локи и с него снят конверсейшн тэг) все равно пишет, что ссылка на него осталась в локе и на конверсейшне.
Если эти ссылки хранятся в БД, то вылечить можно, т.к. действительно, все (не уверен, конечно, но, может почти все (IMG:style_emoticons/kolobok_light/smile.gif) ) манипуляции с БД тулсет делает через хранимые в БД процедуры, которые можно править!!! Также, возможно получиться избавиться и от некоторых других ошибок или/и улучшить работу с существующими функциями. Цитата Туториал на русском Клево. Большой объем работы сделан! |
![]()
Сообщение
#98
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
GFF Tool День 1. Кой как разобрался с довольно неплохим способом чтения бинарных файлов и преобразования в структуры. Все бажит страшно. Технологию вижу впервые и совсем не разбираюсь еще. Лег в 4 утра. опоздал на работу на 3 часа (IMG:style_emoticons/kolobok_light/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(); Запись аналогичным образом. (IMG:style_emoticons/kolobok_light/crazy.gif) Сообщение отредактировал EqKeeper - Nov 10 2010, 14:07 |
![]()
Сообщение
#99
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Я примерно также и читаю, только чуть попроще не каждый байт, а все сразу, только там нашлось несколько подводнх камней с маршаллингом, в бодании с которыми я провел несколько часов, чтобы структуры приходили чистые.
Код 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 конента, собственно я С# выбрал именно из-за того, что не надо работать напрямую с указателями, ссылками и памятью, но без этого слишком долго управляемый десериализатор писать придется =( |
![]()
Сообщение
#100
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Хмм... подводные камни именно из-за способа чтения или вообще? (у самого проблем не было)
--- Да, и кто есть _br? (IMG:style_emoticons/kolobok_light/smile.gif) А то у FileStream я .ReadBytes не вижу =\ Сообщение отредактировал EqKeeper - Nov 11 2010, 17:37 |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 04:05 |