• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
[HOWTO] Локализация
MaeStro74
Чемпион

Для начало узнаем, что же такое локализация [кликабельно]. Каждый уважающий Админ желает чем то украсить свой сервер, хотя вы конечно скажите какое отношение имеет локализация к украшению, а я скажу, что самое прямое. Не каждый игрок в совершенстве знает Английский и ему будет на много легче и самое главное приятнее прочитать текст на своем родном языке.

Все примеры будут на основе баз для эмулятора TrinityCore. Для другие базы я разберу позже, но по сути там все аналогично. Отличия составляют только, в названиях имен таблиц и колонок. Вот набор таблиц в которых осуществляется локализация.

  • locales_item

Эта таблица отвечает за имена и подписи вещей которые может использовать персонаж.

  • locales_creature

Эта таблица отвечает за имена и "гильдии" мобов(NPC)

  • locales_gossip_menu_option

Эта таблица отвечает за диалоговое окно между игроком и NPC

  • locales_item_set_names

Эта таблица отвечает за имена отображаемые в качестве имен комплекта сета( я ей никогда не пользовался)

  • locales_achievement_reward

Эта таблица отвечает за имена наград даваемые после получения достижения

  • locales_gameobject

Эта таблица отвечает за имена игровых объектов

  • locales_npc_text

Эта таблица отвечает за текст воспроизводимый у NPC

  • locales_page_text

Эта таблица отвечает за так называемые "книжки" или другие объекты, которые можно прочитать

  • locales_points_of_interest

Загадочная таблица, мне не известна ее назначение.

  • locales_quest

Эта таблица отвечает за диалоговые окна квеста (описание/цель/награды)

Структура каждой из таблиц очень похожа и состоит в основном из 1 колонки характеризующую ID (Идентифика́тор) предмета которого так сказать "русифицируем" . И колонок виде name_loc*/description_loc*/subname_loc*/bot_text_loc* и так далее по аналогии. Где "*" это число от 1 до 8. Числа эти обозначают основные языки кодировки. Что какие числа означают можно увидеть ниже:

  • 1 - Корейский 
  • 2 - Французский 
  • 3 - Немецкий 
  • 4 - Китайский 
  • 5 - Тайваньский 
  • 6 - Испанский 
  • 7 - Латиноамериканский 
  • 8 - Русский

Quote
В нашем случае интересная колонка для нас будет с номером 8, а именно name_loc8/description_loc8/subname_loc8/bot_text_loc8 и так далее по аналогии.
Если вы не сильный знаток базы сервера советую вам почитать вот этот источник. По сути в нем расписано тоже самое, что я пытаюсь сейчас донести до вас. Но более подробно и на английском языке, если отсутствие знаний в английском языке вас не пугают милости прошу вас туда. Там вы найдете не мало интересного.

Приведу пример локализации на основе таблицы  locales_item:

Эта таблица состоит из 3 типов колонок, как писалось выше колонка entry оно же ID (соответствует реальному предмету, который расположен в таблице item_template), колонка name_loc1-8 и description_loc1-8 . Итак нас интересует колонки  name_loc8 и description_loc8, естественно и entry. И так пример пример локализации выглядит так:
Quote
INSERT INTO `locales_item` ( `entry`, `name_loc8`, `description_loc8`) VALUES

(ID_вещи*, "Желаемое имя**", "И подпись**");

Примечание: *берется из таблицы item_template;

** произвольно из любых символов

Все хорошо, но как загрузить этот файл в базу? Это сделать очень просто, самый простой способ по моему мнению это вставить наш код в обычный текстовый редактор по имени "блокнот" и сохранить с расширением .sql  Зайти в программу и при загрузить файл, выбрав кодировки "windows-1251" если мне не изменяет память. Перезапустить сервер и вуаля, наша вещь имеет русское имя и подпись.

На этом все, спасибо за внимание.
Перечислю возможные проблемы, которые могут возникнуть при локализации.

  •  Q: Я все сделал по вашим указаниям, но вещь/моб/книжка так и не стала русифицированной 
  •  F: Проверьте правильно ли вы указали имена колонок/имя таблицы, почистили ли вы Cache в своем клиенте.

  •  Q: В игре у меня какие то каракули, а не буквы. 
  •  F: Возможно вы залили патч не в той кодировке, перезалейте его в правильной, изменив в коде патче INSERT INTO на REPLACE INTO.

Сообщение # 1 написано 31.03.2012 в 16:39
  • Страница 1 из 1
  • 1
Поиск: