Итак мануал о том как сделать мультиязычный клиент своими руками.
Для работы нам понадобится:
Для начала нужно составить список файлов, которые нам понадобятся. Для этого в любом файловом менеджере (проводник, Total Commander и т. п.) открываем папку с клиентом еврооффа и делаем поисковый запрос "*-e.*" (кавычки ставить не нужно).
Поиск покажет Вам все файлы с окончанием на "-e" - это и есть файлы с английской локализацией. Теперь нужно по полученному списку вынуть из клиента руоффа аналогичные файлы с окончанием "-ru".
Вся локализация заключается в файлах *.dat и Lineage2RU.ini, которые находятся в системной папке, файле L2Font-ru.utx в папке SysTextures и файлах русской озвучки в папке Voice.
Хочу заметить, что у русского клиента файлов локализации будет немного больше чем у оригинального. Это связано с тем что Иннова напихала в него какой-то отсебятины, которая с EU-клиентом работать все равно не будет, поэтому отбирайте только те файлы, которые будут парой -e/-ru.
Далее *.dat нужно будет пропатчить, как это сделать было написано множество раз, поэтому не будем вдаваться в подробности. Хочу только сказать, что лучше всего сперва проверить работоспособность нашего "ру-патча", чтобы удостовериться что все файлы читаются нормально и клиент работает с ними без ошибок.
После того как Вы разместили все русские файлы на своих местах в оригинальном клиенте можно приступать к самой интересной части.
Находим в системной папке клиента файл localization.ini и раскодируем его при помощи L2EncDec'а (кодировать обратно при этом не обязательно, клиент будет работать и так). Для того чтобы включить в клиенте выбор языка нужно поменять несколько параметров. После редактирования файл должен выглядеть примерно так:
Неиспользуемые языки и блоки можно удалить.
После данных манипуляций, если все было проделано правильно, в клиенте должна включиться опция выбора языка в настройках.
Во всей данной работе есть один недостаток - в настройках клиента русский язык будет отображаться как Japanese, но где наши танки не ходили
Раскодируем файл interface.u и открываем в hex-редакторе.
Так как файлы различных версий скорее всего отличаются смещениями, то писать конкретные адреса искомых байтов не вижу смысла. Тем не менее найти их довольно просто.
В текстовом блоке редактора выполняем поиск по запросу "Japanese", первое же найденное совпадение это и есть то что мы ищем. Байты, составляющие слово, нужно заменить на "Russian ". В слове "Russian" меньше букв, поэтому замените лишний байт в конце слова пробелом. Сохраните файл и закодируйте его в обратном порядке.
Enjoy
Для работы нам понадобится:
- L2EncDec.
- Любой hex-редактор. Лично я использовал Hex Workshop.
- Файлы русской локализации.
Для начала нужно составить список файлов, которые нам понадобятся. Для этого в любом файловом менеджере (проводник, 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, но где наши танки не ходили
Раскодируем файл interface.u и открываем в hex-редакторе.
Так как файлы различных версий скорее всего отличаются смещениями, то писать конкретные адреса искомых байтов не вижу смысла. Тем не менее найти их довольно просто.
В текстовом блоке редактора выполняем поиск по запросу "Japanese", первое же найденное совпадение это и есть то что мы ищем. Байты, составляющие слово, нужно заменить на "Russian ". В слове "Russian" меньше букв, поэтому замените лишний байт в конце слова пробелом. Сохраните файл и закодируйте его в обратном порядке.
Enjoy