Не буду показывать весь исходник, а покажу только самое основное.
Для этого нужен будет AMX Mod X Studio
Итак... для того чтобы задекларировать словарь - добавляем строчку в процедуру plugin_init public plugin_init() { ... ... register_dictionary(\"VirusNade.txt\") }
Все словари находятся в дирректории cstrike\\addons\\amxmodx\\data\\lang\\. Поэтому мы создаём текстовый файл VirusNade.txt именно в этой дирректории
Чтение из словаря происходит двумя параметрами и объявляется в тексте одним... Объявляется знаками \"%L\"(Предполагаю, что сокращённо от LANG).. Пример:
client_print(id,print_console,\"%L\" ... или: client_print(id,print_console,\"Player %L has been kicked\" ...
Что появляется вместо \"%L\"? Появляется значение, которое будет взято из словаря... Как я уже сказал чтение производится двумя параметрами: \"Язык\" и \"Параметр\"... Функция LANG_SERVER возвращает значение - язык, на котором играет сервер... Чтение:
\"%L\", LANG_SERVER, \"GUMUS\"
Это значит что из словаря
VirusNade.txt будет считываться параметр GUMUS из раздела (Чтобы это понять - будет рассмотрен пример с Virus SmokeNade 1.3)
Далее просматриваем код на надписи на инглише... Хоп! Находим:
print( id, \"You\'re not allowed to buy an antidote!\" );
Заменяем на:
print( id, \"%L\",LANG_SERVER,\"VN_NOT\" );
И в словаре пишем перевод:
[ru] ... ... VN_NOT = Вы не можете купить антидот! ... ...
И так далее... Незабываем под теми же параметрами поставить и английские значения(Вдруг если сервер на инглише)
[en] ... ... VN_NOT = You\'re not allowed to buy an antidote! ... ...
Схема заполнения словаря такова:
[] = = =
И ещё, надо учитывать последовательность языков в словаре.. Может произойти ошибка и чтения словаря вернёт значение: ML_NOTFOUND: ...
Последовательность такова:
[ru] [en] [de] [sr] [tr] [fr] [sv] [da] [pl] [nl] [es] [bp] [cz] [fi]
Не знаю почему, но это рекомендованная последовательность языков... Если нет у вас значений на каком то языке, то можно их не писать.
|