|
Вторник, 30.09.2014, 14:35 | Сообщение # 1
|
|
Для начало узнаем, что же такое локализация [кликабельно]. Каждый уважающий Админ желает чем то украсить свой сервер, хотя вы конечно скажите какое отношение имеет локализация к украшению, а я скажу, что самое прямое. Не каждый игрок в совершенстве знает Английский и ему будет на много легче и самое главное приятнее прочитать текст на своем родном языке.
Все примеры будут на основе баз для эмулятора TrinityCore. Для другие базы я разберу позже, но по сути там все аналогично. Отличия составляют только, в названиях имен таблиц и колонок. Вот набор таблиц в которых осуществляется локализация.
Эта таблица отвечает за имена и подписи вещей которые может использовать персонаж.
Эта таблица отвечает за имена и "гильдии" мобов(NPC) - locales_gossip_menu_option
Эта таблица отвечает за диалоговое окно между игроком и NPC
Эта таблица отвечает за имена отображаемые в качестве имен комплекта сета( я ей никогда не пользовался) - locales_achievement_reward
Эта таблица отвечает за имена наград даваемые после получения достижения
Эта таблица отвечает за имена игровых объектов
Эта таблица отвечает за текст воспроизводимый у NPC
Эта таблица отвечает за так называемые "книжки" или другие объекты, которые можно прочитать - locales_points_of_interest
Загадочная таблица, мне не известна ее назначение.
Эта таблица отвечает за диалоговые окна квеста (описание/цель/награды)
Структура каждой из таблиц очень похожа и состоит в основном из 1 колонки характеризующую ID (Идентифика́тор) предмета которого так сказать"русифицируем" . И колонок виде name_loc*/description_loc*/subname_loc*/bot_text_loc* и так далее по аналогии. Где "*" это число от 1 до 8. Числа эти обозначают основные языки кодировки. Что какие числа означают можно увидеть ниже: - 1 - Корейский
- 2 - Французский
- 3 - Немецкий
- 4 - Китайский
- 5 - Тайваньский
- 6 - Испанский
- 7 - Латиноамериканский
- 8 - Русский
В нашем случае интересная колонка для нас будет с номером 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. И так пример пример локализации выглядит так: 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.
-
|
|