- Открываем все скрипты блокнотом++(notepad++)
- Просматриваем файлы, в которых есть вывод текста(читайте ниже, - как найти вывод текста).
- Закрываем остальные файлы - где текста нет.
- Оставшиеся файлы с текстом, переводим в кодировку UTF8 без BOM.(В notepad++ пункт меню - Кодировки\Преобразовать в UTF-8 без BOM).
- Начинаем перевод.
В sqf файлах, ищите слова(привожу основные функции и примеры, для простых функций):
- cutText - выводит текст по центру экрана
cutText ["Для данного объекта, пристыковка не поддерживается.", "PLAIN DOWN"];
- systemChat - выводит текст в окно чата
systemChat ("<АнтиЧит>: Вы нажимаете запрещенную клавишу!");
- call RE - в серверных скриптах, используется для вывода текста по центру экрана, для всех игроков
[nil,nil,rTitleText,"Техника в торговых зонах, будет телепортирована через 2 минуты!", "PLAIN",10] call RE;
- BIS_fnc_dynamicText - выводит заранее подготовленный текст, в указаных координатах
- ctrlSetText - вписывает текст или картинку в меню
_displayCtrl ctrlSetText "Убито зомби";
text = "Изготовление предметов";
Вы можете просто переводить все сообщения на необходимый язык, напрямую заменяя текст в файлах.
Так же можно создать мультиязыковую поддержку.
Для создания мультиязыковой поддержки:
- Создайте файл Stringtable.xml в папке Вашей миссии.(Подключать его не надо).
- В файле впишите(пример файла Stringtable.xml):
<?xml version="1.0" encoding="utf-8" ?> <Project name="Ultima"> <Package name="Language"> <Container name="Welcom"> <Key ID="Ultima_WM_Welcom"> <Original>Welcom to server:</Original> <English>Welcom to server:</English> <Russian>Добро пожаловать на сервер:</Russian> </Key> <Key ID="Ultima_WM_Admins"> <Original>Administration:</Original> <English>Administration:</English> <Russian>Администрация:</Russian> </Key> </Container> <Container name="Map_Markers"> <Key ID="Ultima_TC_Stary"> <Original>Trader city - Stary</Original> <English>Trader city - Stary</English> <Russian>Торговый город - Старый</Russian> </Key> <Key ID="Ultima_TC_Klen"> <Original>Trader city - Klen</Original> <English>Trader city - Klen</English> <Russian>Торговый город - Клен</Russian> </Key> <Key ID="Ultima_TC_Bash"> <Original>Trader city - Bash</Original> <English>Trader city - Bash</English> <Russian>Торговый город - Баш</Russian> </Key> </Container> </Package> </Project>
Теперь разберемся, что тут есть:
Как видите, сам файл состоит из тегов.
Теги:
- xml
- Project
- Package
Теги:
- Containter - контейнер блока. Удобно разбивать перевод на блоки - например локализацию названий на карте удобно вынести в отдельный блок, чтобы не путаться в дальнейшем. Хотя всю локализацию можно выполнить внутри одного блока.
- Key - Ключ с уникальным идентификатором, указывающим на локализацию.
Теги локализации - перевода:
- Original - если у игрока не выбрана локализация, будет отображен текст из данного тега
- English - Английский вариант
- Russian - Русский вариант
- *Вы можете добавить еще языковые теги - см. на сайте богемии.
Для примера я взял одну строку из скрипта - Приветствие на сервере:
http://rnrportal.ru/...тимизированное/
Теперь добавим локализацию, для одной из строк:
Было:
,["Администрация сервера: ",["NoNameUltima","Mizantrop666","Djonik"]]Стало:
,[localize "Ultima_WM_Admins",["NoNameUltima","Mizantrop666","Djonik"]]