-
-
Notifications
You must be signed in to change notification settings - Fork 8
DEV LANGUAGE_rus
Мы изменяем API отображения текстов...
Отныне, все текстовые данные должны содержаться в LANGUAGE.XXX файлах, где XXX - код языка.
Таким образом, получится добиться простого перевода без необходимости менять код и выпускать разные версии для разных языков.
Что же касается языко-зависимых аудио файлов, так мы реализуем их на русском и английском языках
DRRP v0.4.0+
В связи с переходом на GZDoom 4.x, мы снова изменяем API отображения текстов!
Теперь все строки и переводы хранятся в этой Google Docs таблице.
Обновить переводы в моде можно с помощью командыbash ./tools/updateLocalization.sh
.
Изменения в LANGUAGE.* файлах (для более старых версий GZDoom) придётся делать вручную
--------------------------------------------------------------------------------------------
Текст ниже содержит описание старых LANGUAGE-файлов, но сами правила именования строк не изменились.
--------------------------------------------------------------------------------------------
// Это комментарий
[enu default]
// Это - секция с текстами на американском английском (enu -> en US) используется по умолчанию (default)
// Формат: ID = "Текст";
DRRP_G_NEWGAME = "New game";
DRRP_INTRO_4 = "You picked up a\n" // Для переноса строки используется символ \n
"Medkit. Access\n" // Несколько строк текста в кавычках в разных строках воспринимаются
"your inventory\n" // как одна строка, если не используется \n
"menu and use it\n"
"to restore health\n"
"if you become se-\n"
"verely wounded."; // В конце всегда ставится `;`
[rus]
// А это - русский перевод (rus) для строк выше
DRRP_G_NEWGAME = "Новая игра";
DRRP_INTRO_4 = "Вы подобрали ап-\n"
"течку. Зайдите в\n"
"инвентарь и\n"
"используйте её\n"
"для восстановле-\n"
"ния здоровья при\n"
"тяжелых ранениях";
Подробнее про формат LANGUAGE файла можно прочитать на ZDoom WIKI
Все игровые текстовые вставки должны располагаться в LANGUAGE.XXX файлах
Для улучшения читабельности и во избежание конфликтов, все ключевые слова должны начинаться с префикса DRRP_
.
Далее следует инфикс секции применения.
Список секций применения:
- G - Элементы интерфейса (GUI)
- M - Названия монстров (Monster)
- E - Названия объектов (Entity)
- I - Названия предметов (Items)
- W - Название оружия (Weapon)
- B - Всё то, что не подходит под критерии выше (Base)
- D - Всё, что добавлено (не заменено, а добавлено) проектом DRRP (DRRP)
В качестве инфиксов для текстов, размещаемых на картах, используется название .wad файла этой карты в папке maps
После инфикса идёт суффикс, обозначающий идентификатор текстовой вставки. Например, для карты это число [1; ∞), для монстра - его название (без пробелов).
- DRRP_E_GUERARD
- DRRP_I_MEDKIT
- DRRP_W_SHOTGUN
- DRRP_SEC1_3
- DRRP_REAC_15
- DRRP_M_HELLHOUND
- DRRP_B_INVALIDCODE
- DRRP_D_BUGUNDEFMONOLOGUE
- DRRP_G_NEWGAME
- Инфикс b (Base) используется из-за того, что в оригинальной игре подобные текстá хранились в файле base.str;
- Отличия
e
отm
иi
в том, что Monster - Entity, который атакует игрока, Item - Entity, который игрок может подобрать, а Entity - всё, что не не Monster и не Item (персонажи, декорации, т.п.) ; - Для применения текста из LANGUAGE файла в ACS необходимо поставить формат
l
(например,print(l:"DRRP_SEC3_2");
), в DECORATE - поставить в начале знак$
("$DRRP_M_DEMONWOLF"
), а в ZScript - применить методStringtable.Localize("$DRRP_G_NEWGAME");
, MAPINFO - аналогично DECORATE; - Для текстов, которые размещаются на карте, нельзя превышать ширину строки в 17 символов;