Все способы локализовать карту
Всем привет, сидите на рефордже, но ваша карта поддерживает только 1 язык? Не беда — всё проще чем вы думаете.
Авто определение языка
Если мне не изменяет память, то возможность локализации подвезли в 1.29+ а конкретно функцию BlzGetLocale() она автоматически считывает язык батлнет клиента и может иметь следующие значения:
Скопировать в буфер
«ruRU» — русский «enUS» — английский
В этом случае игроку ничего даже выбирать не придётся, но рассмотрим все способы, как это использовать и разумеется с примерами
Функция L()
На мой взгляд это самый простейший способ, и я остановился на нём
Скопировать в буфер
function L(ru, en) if en==»» then en=ru end return BlzGetLocale()==»ruRU» and ru or en end
и пример использования:
print(L(«Русский текст», «English Text»))
В любую функцию, где должен быть текст, мы подставляем L(«русский»,»Другой язык»), если другой язык не указан, то текст всё равно будет русским, однако помните, что не у всех иностранцев стоит кириллица, скорее всего они просто увидят пустые сроки вместо нашего, как они говорят «dog language» или «monkey language». Хотя в варкрафте к нам относятся хорошо, но это уже другая тема для разговора.
Как изменить язык в dota 2? Как сделать доту 2 на Английском языке в 2022 году?
if . else
Способ аналогичный верхнему, можно даже совместить с BlzGetLocale() или менять язык через выбор диалога
Создаём массив языков, циклом или ручками
Скопировать в буфер
local ls = «Текст по умолчанию» if GetLocalPlayer() == GetTriggerPlayer() then if lang == 1 then ls = «Текст изменён на язык 1» else ls = «Текст изменён на язык 2» end end print(ls) — подставляем ls в нужном месте например в игровых сообщениях, описании фрейма, плавающем тексте
Или второй вариант, можно делать локализованные модели, например чтобы табличка над таверной была переведена
Скопировать в буфер
langPlayer = < 1, 1, 1, 2 >— Первые 3 игрока русский язык, последний — иной, заполняется как угодно, например стартовый диалогом или локалью local langModel = «enter» if langPlayer[GetPlayerId(GetLocalPlayer())] == 1 then langModel=»pathToRUModel» else langModel = «pathToENGModel» end AddSpecialEffect(langModel, x, y)
Для каждого игрока будет своя локализованная модель эффекта
Через WTS строки
Как только вы создаёте карту в ней появляется папка с названием _Locales
Скопировать в буфер
ruRU.w3mod zhCN.w3mod enUS.w3mod dede.w3mod kokr.w3mod и куча других
Внутри каждой папки есть war3map.wts, многие замечали, что англоязычные карты не отображают текст в нашей русской локале вообще, потому что war3map.wts заполнена только в enUS.w3mod
Простейший пример как это использовать, можно разово прогнать просто файл через переводчик
Скопировать в буфер
STRING 132 // Items: I000 (Healing Rune), Name (Name)
а на китайском это вот так
Скопировать в буфер
STRING 132 // Items: I000 (Healing Rune), Name (Name)
Как видите, это вообще автозаполнение из РО, кстати первые 2 способа для РО не очень удобно применять, там есть заморочки, придётся нагружать карту лишним кодом BlzSetAbilityExtendedTooltip
Как сделать доту 2 на русском языке/ на английском языке
А чтобы это использовать вне РО например в описании фреймов или вывод текста на экран достаточно написать
print(«TRIGSTR_132»)
Опять же, весьма неудобно ибо придётся подглядывать в WTS и смотреть, а что же у тебя там в 465 строке
Это уже на ваш, выбор.
Примеры локализованных карт, что мне известны
Источник: xgm.guru
Локализация аддонов на русский язык
Данный гайд посвящен разработчикам аддонов и просто любителям, которые решили провести локализацию (перевод) любимого аддона на свой родной язык. Гайд расписан поэтапно, а потому всё рассказано доходчиво и вразумительно.
Как перевести аддон
- Для перевода аддонов не потребуется особых знаний ( LUA , к примеру). Достаточно желания, свободного времени и минимальных знаний переводимого языка.
- Программы которые потребуются для перевода: Notepad++ , Lingvo . Каждую из этих программ можно бесплатно скачать в интернете
- После установки всех программ, открываете файл * toc программой Notepad++ и видите там DKPmon_BossAuction.toc . Выбираете в программе кодировку UTF-8 и это главное не только в * toc файлах. Прописываете всё, что считаете нужным, а именно заметку по-русски (имя аддона, к примеру). Обязательно пропишите файл русской локализации localization.ruRU.lua . В разных аддонах он может быть своим, но разобраться не составит труда. Если в файле * toc вы не нашли указаний на файлы локализации, то поищите в соседних * XML , потому что иногда разработчики прячут всё там.
- Теперь приступаете к файлу самой локализации. Создайте файл для русского языка ruRU по образцу соседних файлов с различными языками и поправьте в его названии ruRU, чтобы не ошибиться, возьмите переделанный (к примеру, немецкий файл) на ruRU и из английского перенесите текст аддона. Очень важно прописать все данные и в самом аддоне. Для удобства, откройте уже созданный ru аддон и посмотрите по примеру, как всё сделано там. Перевод в 95% случаев будет прятаться в папке locale , файлах Core String или папке Modul . Очень редко, локализация кодируется в самом аддоне, тогда, как правило, файл локализации прячется в самом большом (по весу) файле аддона.
- После самого создания файла, начинаете править и переводить его. Перевод должен оставаться строго в пределах кавычек. Не нарушая синтаксис программы, переводите все строки на желаемый язык. Ни в коем случае не выкидывайте тэги «%s«, «%d» и подобные. Если попадаются слова, начинающиеся с символа «» (к примеру: m), то оставляйте всё как есть. Все кавычки (одинарные и двойные) менять нельзя ни в коем случае! Самое главное — перед переводом на русский язык, сохраняйте все данные в кодировке UTF-8.
- Повторяюсь еще раз: не нарушайте кодировки аддона, иначе потом, когда посыпятся ошибки, Вы не сможете ничего разобрать. Не выходите за рамки строки, к примеру: если написано Mon (сокращенно от Monday), то пишите на русском Пон (сокращенно от Понедельник), но не всё слово Понедельник сразу. Из-за этого в самой игре аддона может вылезать за рамки и получится сплошная каша.
- Не переводите весь аддон целиком, даже если он очень прост. Лучше переводите частями, к примеру: перевели 1/10 часть — зайдите в игру и проверьте, что всё работает правильно и ничего не сдвинулось. Если перевод будет неудачен, Вы всегда сможете вернуться к изначальному виду в самом графическом редакторе. Аддон проверяется непосредственно в самой игре, поэтому приготовьтесь почаще заходить и сверяться с адекватностью и правильностью перевода.
- Ошибки выявить очень просто. Поставьте !BugGrabber BugSack — ловец ошибок (при нажатии клавиши shift он перезагрузит UI) или Swatter. Они выявят все ошибки, которые вызываются аддоном. В редакторе исправляете все ошибки, указанные проверкой. Аддон может перестать работать из-за самых мелких проблем (где-то не поставлена кавычка), поэтому если какая-то функция была нарушена, ловец ошибок покажет Вам проблемную строку и выделит проблему. Очень важно скачивать самую последнюю версию аддона с сайта разработчика, чтобы добиться максимального результата.
- На этом локализация аддона завершена! Если вы желаете, чтобы Ваш перевод добавили официально — отправьте сообщение автору и расскажите о своей доработке/модификации или выложите перевод в общий доступ, не забыв подписаться под ним. На этом локализация окончена.
Источник: wow-create.ru
Научиться произносить Варкрафт
Ваш аудио
Поздравляю! Вы заработали > points Попробуйте снова
Поскольку вы превысили свой лимит времени, ваша запись была остановлена. ОК
Вы можете произносить это слово лучше
или произносить в разных акцента ?
Содействовать режиме
Нажмите на кнопку записи, чтобы произнести К сожалению, этот браузер не поддерживает запись голоса К сожалению, это устройство не поддерживает запись голоса
Нажмите кнопку записи еще раз, чтобы закончить запись
Играть в Остановка Запись снова Делать вклад add use
Вы можете внести свой вклад в этот аудио произношение Варкрафт до HowToPronounce словарь.
Делать вклад
Вы закончили запись?
Да Нет я хочу продолжения
Вы закончили запись?
Да Нет я хочу продолжения
Спасибо за участие Поздравляем! У вас правильное произношение Варкрафт. Держать себя. К сожалению! Похоже, ваше произношение Варкрафт не правильно.
Вы можете попробовать еще раз.
Оригинальный аудио
Ваш аудио
Поздравляю! Вы заработали > points Попробуйте снова
Источник: ru.howtopronounce.com