Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Поддержка мультиязычности в клиенте Lineage 2
#1
Итак мануал о том как сделать мультиязычный клиент своими руками.

Для работы нам понадобится:
  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, но где наши танки не ходили Big Grin

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

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

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

Enjoy Smile
Ответ
#2
Ах да, и еще... Все данные манипуляции могут привести к непредвиденным проблемам, например к таким как нестыковка путей к текстурам, в результате чего местами возникнут черные поля, или неожиданные критические ошибки клиента. Те кто понял основную идею и немного понимает структуру hex-кода разберется дальше сам. Желаю удачи в ломании Smile
Ответ
#3
Проблемка, при загрузке после выбора чара, черный экран)) тобишь лоадинг скрина нету.как то поправимо?
Если помог, ткни плюсеГ, это же так просто
Ответ
#4
Ultimate Написал:Проблемка, при загрузке после выбора чара, черный экран)) тобишь лоадинг скрина нету.как то поправимо?
Да, в файле interface.u заменить все L2Font-j на L2Font-e или L2Font-ru. Первый случай проще.
Ответ
#5
оу, круто. кстати не обязательно же кодировать обратно файл.
и еще вопросик. в игре карта только на русском. Ни как не выходит на англ сделать. В файле локализации все верно путь прописан. =(
Если помог, ткни плюсеГ, это же так просто
Ответ
#6
Ultimate Написал:оу, круто. кстати не обязательно же кодировать обратно файл.
и еще вопросик. в игре карта только на русском. Ни как не выходит на англ сделать. В файле локализации все верно путь прописан. =(
Дело в том, что в клиенте Эпилога, в зависимости от того какой сет выбран в файле localization.ini, всегда будут загружаться только звуки и текстуры языка по-умолчанию, независимо от выбранного в данный момент. На Фрее уже все в норме Smile
Ответ
#7
хм чет не появляется выбор языка =\
Ответ
#8
Интересная тема ! Спасибо
Ответ
#9
2DreamTheater

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

Может есть какие идеи?
Ответ
#10
Спасибо . Статья очень хорошая ,время потраченное на чтение не прошло даром =) Хотя я больше придерживаюсь мнения что лучше выложить патчи под различные языки ибо все эти манипуляции жрут место на винте ,а следовательно и больше трафика при скачивании патча у игроков.

ma4o,

Код:
[LanguageSet]
Language=2
1=English
2=Russian
EnableEngSelection=True

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


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Список анонсов Lineage 2 KateKate7912 8 7,133 05-04-2024, 09:02 PM
Последний пост: l2topru
  Ищу программиста на Lineage II high five Paul Nettle 0 622 08-08-2023, 08:27 AM
Последний пост: Paul Nettle
  Lineage 2 PTS Server с нуля iCurious 21 38,645 02-03-2018, 06:01 PM
Последний пост: SevenWitches
  Создание рецепта для сервера Lineage II – Инструкция Casper 1 7,643 01-18-2012, 07:15 PM
Последний пост: Джол
  Полный гайд по замене Музыки в Lineage Plush_Hero 0 13,870 04-05-2011, 11:34 PM
Последний пост: Plush_Hero

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)