Доколе, доколе я буду видеть это?
Когда-то, а конкретно 20 лет назад, эту технологию знали многие, но спустя годы она была утеряна, я сейчас говорю про автоматическую локализацию карты для любого патча, начиная от 1.03 и заканчивая 1.32.10.
Неужели не у кого не было вопроса, а что же это за такая графа язык в MPQ editor'е
А весь наш текст находится в файле WTS, читаем подробнее о структуре файлов WC3
По умолчанию из карты считывается war3map.wts нейтрального языка
war3map.wts
STRING 1
{
LocaleTest
}

STRING 2
{
UNKNOWN
}

STRING 3
{
NODESCRIPT
}

STRING 4
{
UNKNOWN
}

STRING 7
{
Test String
}

STRING 8
{
Player 1
}

STRING 9
{
Player 2
}

STRING 10
{
Clan 1
}

STRING 11
// Units: hspt (Test Unit), Name (Name (unam))
{
Test Unit
}
Однако, если загрузить второй файл, то игра при проверке нашей локализации игры, прочитает уже файл war3map#0419
war3map#0419
STRING 1
{
ТЕСТ ЛОКАЛИЗАЦИИ
}
STRING 2
{
Не важно
}
STRING 3
{
Описание отсутствует
}
STRING 4
{
Неизвестно
}
STRING 7
{
ТЕСТОВАЯ СТОКА
}
STRING 8
{
ИГРОК 1
}
STRING 9
{
ИГРОК 2
}
STRING 10
{
Клан 1
}
STRING 11
Units: hspt (Test Unit), Name (Name (unam))
{
ТЕСТОВЫЙ ЮНИТ
}

Практика

С теорий разобрались, а теперь практика. Так как мы на XGM, где преобладает русскоговорящее комьюнити, то основной язык у нас будет русский, а язык перевода - английский, и я рекомендую работать именно так, и никак не наоборот (основной английский, перевод русский).
Вот допустим мы сделали свою карту на русском языке, у нас там способности, куча текста в триггерах и так далее, пришло время её перевести.
  1. Извлекаем war3map.wts из карты в любое удобное для нас место
  2. Переводим все строки или выборочно, например я переведу только 1 способность в STRING 12
STRING 12
// Способности: Asps (Похищение магии), Tip (Подсказка: используется)
{
Похищение Русского языка (|cffffcc00T|r)
}
ну и напишу там вот так вот
STRING 12
// Способности: Asps (Похищение магии), Tip (Подсказка: используется)
{
Stealing russian language (|cffffcc00T|r)
}
Да простят меня англоговорящие
  1. Переименовываем war3map.wts в war3map1.wts, чтобы его не перезаписало при импорте
  2. Помещаем наш файл war3map1.wts в корневую папку карты
  3. Устанавливаем нашему файлу локализацию => Установить язык файлов
  1. Переименовываем, чтобы в конечном итоге получилось вот так:
Всё наш файл превратился в war3map#0409.wts
ВАЖНО
Манипуляции по добавлению файла перевода, необходимо будет проводить в самую последнюю очередь, все переводы будут удалены при сохранении карты в World Editor.
Остаётся только проверить, английской версии 1.26 у меня нет, поэтому я буду проверять на Рефордже, но поверьте и на более старых патчах всё будет работать.
И помните, чем древнее ваш способ, и патч на котором вы работаете, тем вы круче (С), но и про современные способы не забываем
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
Это статья берги или перевод аналогичной статьи с хайва?
33
Это моя статья, примерно полгода goodlyhero скинул карту в дискорд XGM, я ещё тогда глянул, как оно устроено и разобрался, тут в принципе просто всё. Опубликовал, потому что меня триггернул grylll, своими скринами на которых по 2 языка в абилках👿

А то что аналогичное вышло на хайве 2 дня назад, это так совпало 😂

Вот у меня есть небольшой пруф
где я скачивал карту из дискорда в феврале, но она там ещё раньше появилась
Загруженные файлы
12
А вот и комментарий от Daro.
Все же перевод карты даже если ограничиваться файлом .wts долгий и трудоемкий процесс, который так или иначе придется делать в ручную. Привести весь файл ,wts целиком автоматически через какой-то онлайн переводчик , тоже не получится и мало кто захочет так заморачиваться.
Если рассматривать только патч 1.26.То у нас будет куча сложностей, текстовые строки в триггерах и в коде , которые не идут в .wts файл а остаются (пример: local string s = "|c00FF0303Я не могу носить два предмета одного класса!|r"). Так что делать в таком случае, выносить весь игровой текст, который выводится на экран в глобалки? Делать базу перевода в ручную с проверкой локализации?
Дальше заметил такой факт , что wts заполняется странно и довольно таки рандомно, огрызки от описания одной способности могут быть раскиданы очень далеко от друга. Дальше придется как-то обновлять версию перевода (англ) каждый раз после сохранения карты и добавлении изменений. Либо вести параллельно 2 и обновлять 2 версии текста самостоятельно каждый раз.
Все кажется что перевести англ. карту на русский язык для нас будет легче, чем наоборот.
Я не знаю может у кого есть скрипт на Пайтоне и что-то подобное , чтоб автоматически правильно перевести файл wts.
33
Daro, да хорошие замечания, способ идеально подойдёт для тех, кто очень много работает с ро и пишет текст целиком на через ГУИ, я думаю для Lord_Teo или же для grylll, с учетом их структуры карт, надо пробовать. Хочу и сам попробовать перевести какую-нить карту на английский или на русский, для образца, кидайте свой пример, мб что получится
12
Bergi, Даро тогда может попробовать перевести свою карту - Lich Defense на англ язык, как раз простая ГУИ+РО карта. Посмотреть что из этого получиться в итоге. Всего 1800 строк wts.
15
Daro, при конвертации ГУИшных строк в JASS они заменяются на строку формата "TRIGSTR_XXXX", где XXXX - число. Собственно в wts файле эти константы как раз определены, поэтому локальные строки по-любому можно вынести туда.
23
Может кто подскажет? В карте длина паузы в диалогах зависит от длины текста. Если делать мультиязычную карту по описанному выше методу, то при игре двух игроков с разными настройками языка будет десинк. Есть какие идеи обхода этой проблемы?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.