Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Обучающие статьи (https://forum.zone-game.info/forumdisplay.php?f=180)
-   -   Поддержка мультиязычности в клиенте Lineage 2 (https://forum.zone-game.info/showthread.php?t=9887)

DreamTheater 28.08.2010 23:21

Поддержка мультиязычности в клиенте Lineage 2
 
Итак мануал о том как сделать мультиязычный клиент своими руками.

Для работы нам понадобится:
  1. L2EncDec.
  2. Любой hex-редактор. Лично я использовал Hex Workshop.
  3. Файлы русской локализации.

Для начала нужно составить список файлов, которые нам понадобятся. Для этого в любом файловом менеджере (проводник, Total Commander и т. п.) открываем папку с клиентом еврооффа и делаем поисковый запрос "*-e.*" (кавычки ставить не нужно).

Поиск покажет Вам все файлы с окончанием на "-e" - это и есть файлы с английской локализацией. Теперь нужно по полученному списку вынуть из клиента руоффа аналогичные файлы с окончанием "-ru".

Вся локализация заключается в файлах *.dat и Lineage2RU.ini, которые находятся в системной папке, файле L2Font-ru.utx в папке SysTextures и файлах русской озвучки в папке Voice.

Хочу заметить, что у русского клиента файлов локализации будет немного больше чем у оригинального. Это связано с тем что Иннова напихала в него какой-то отсебятины, которая с EU-клиентом работать все равно не будет, поэтому отбирайте только те файлы, которые будут парой -e/-ru.

Далее *.dat нужно будет пропатчить, как это сделать было написано множество раз, поэтому не будем вдаваться в подробности. Хочу только сказать, что лучше всего сперва проверить работоспособность нашего "ру-патча", чтобы удостовериться что все файлы читаются нормально и клиент работает с ними без ошибок.

После того как Вы разместили все русские файлы на своих местах в оригинальном клиенте можно приступать к самой интересной части.

Находим в системной папке клиента файл localization.ini и раскодируем его при помощи L2EncDec'а (кодировать обратно при этом не обязательно, клиент будет работать и так). Для того чтобы включить в клиенте выбор языка нужно поменять несколько параметров. После редактирования файл должен выглядеть примерно так:
Код:

[LanguageSet]
Language=2
1=English
2=Russian
EnableEngSelection=True

[English]
English_Code=e
English_Font=L2Font-e.SmallFont-e
English_Glyph=SmallFont-e.gly
English_Font2=L2Font-e.LargeFont-e
English_Glyph2=LargeFont-e.gly
English_Minimap=L2Font-e.Minimap.worldmap
English_LogoTexture=L2Font-e.start_logo-e
English_LoadingTexture=L2Font-e.loading02-e
English_MiniLogoTexture=L2Font-e.mini_logo-e
English_TownMap=L2Font-e.TownMap
English_ReplayLogoTexture=L2Font-e.Replay_logo-e

[Russian]
Russian_Code=ru
Russian_Font=L2Font-ru.SmallFont-ru
Russian_Glyph=SmallFont-ru.gly
Russian_Font2=L2Font-ru.LargeFont-ru
Russian_Glyph2=LargeFont-ru.gly
Russian_Minimap=L2Font-ru.Minimap.worldmap
Russian_LogoTexture=L2Font-ru.start_logo-ru
Russian_LoadingTexture=L2Font-ru.loading02-ru
Russian_MiniLogoTexture=L2Font-ru.mini_logo-ru
Russian_TownMap=L2Font-ru.TownMap
Russian_ReplayLogoTexture=L2Font-ru.Replay_logo-ru

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

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

Во всей данной работе есть один недостаток - в настройках клиента русский язык будет отображаться как Japanese, но где наши танки не ходили :D

Раскодируем файл interface.u и открываем в hex-редакторе.

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

В текстовом блоке редактора выполняем поиск по запросу "Japanese", первое же найденное совпадение это и есть то что мы ищем. Байты, составляющие слово, нужно заменить на "Russian ". В слове "Russian" меньше букв, поэтому замените лишний байт в конце слова пробелом. Сохраните файл и закодируйте его в обратном порядке.

Enjoy :)

DreamTheater 30.08.2010 00:46

Re: Поддержка мультиязычности в клиенте Lineage 2
 
Ах да, и еще... Все данные манипуляции могут привести к непредвиденным проблемам, например к таким как нестыковка путей к текстурам, в результате чего местами возникнут черные поля, или неожиданные критические ошибки клиента. Те кто понял основную идею и немного понимает структуру hex-кода разберется дальше сам. Желаю удачи в ломании :)

Ultimate 02.09.2010 14:59

Re: Поддержка мультиязычности в клиенте Lineage 2
 
Проблемка, при загрузке после выбора чара, черный экран)) тобишь лоадинг скрина нету.как то поправимо?

DreamTheater 03.09.2010 02:28

Re: Поддержка мультиязычности в клиенте Lineage 2
 
Цитата:

Сообщение от Ultimate (Сообщение 86353)
Проблемка, при загрузке после выбора чара, черный экран)) тобишь лоадинг скрина нету.как то поправимо?

Да, в файле interface.u заменить все L2Font-j на L2Font-e или L2Font-ru. Первый случай проще.

Ultimate 03.09.2010 08:57

Re: Поддержка мультиязычности в клиенте Lineage 2
 
оу, круто. кстати не обязательно же кодировать обратно файл.
и еще вопросик. в игре карта только на русском. Ни как не выходит на англ сделать. В файле локализации все верно путь прописан. =(

DreamTheater 03.09.2010 13:29

Re: Поддержка мультиязычности в клиенте Lineage 2
 
Цитата:

Сообщение от Ultimate (Сообщение 86480)
оу, круто. кстати не обязательно же кодировать обратно файл.
и еще вопросик. в игре карта только на русском. Ни как не выходит на англ сделать. В файле локализации все верно путь прописан. =(

Дело в том, что в клиенте Эпилога, в зависимости от того какой сет выбран в файле localization.ini, всегда будут загружаться только звуки и текстуры языка по-умолчанию, независимо от выбранного в данный момент. На Фрее уже все в норме :)

simon 02.11.2010 00:02

Re: Поддержка мультиязычности в клиенте Lineage 2
 
хм чет не появляется выбор языка =\

Deazer 02.11.2010 00:07

Re: Поддержка мультиязычности в клиенте Lineage 2
 
Интересная тема ! Спасибо

ma4o 30.03.2011 01:59

Re: Поддержка мультиязычности в клиенте Lineage 2
 
2DreamTheater

Мне вот интересно вставал вопрос чтобы в выпадающем меню сделать 3 языка.
Саму обработку кода я "вписал", но вот с выбором что-то никак. Выпадает всё равно 2, но там нет места чтобы воткнуть еще, и что-то немного "сложноватый" кусок.

Может есть какие идеи?

Plush_Hero 30.03.2011 02:25

Re: Поддержка мультиязычности в клиенте Lineage 2
 
Спасибо . Статья очень хорошая ,время потраченное на чтение не прошло даром =) Хотя я больше придерживаюсь мнения что лучше выложить патчи под различные языки ибо все эти манипуляции жрут место на винте ,а следовательно и больше трафика при скачивании патча у игроков.

ma4o,

Код:

[LanguageSet]
Language=2
1=English
2=Russian
EnableEngSelection=True

Параметр Language смнени с 2 на 3 , ну или сколько у тя там языков и допиши нужный тебе . Например 3=Albanskiy.
Если не поможет значит в НЕХ надо лазить . На досуге пороюсь , отпишу если чтото найду.


Текущее время: 04:15. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot