Собственно столкнулся с произволом! Граждане переводят плагины криво, меняя кодировку непосредственно у исходника. Давайте не будем совершать ошибки. Метод ваш - хорош, но жутко неудобен, когда хочется перевести под себя, где-то поправить и прочь..
Итак по порядку:
1) Есть в нашем плагине такая функция, и выглядит она примерно так:
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}
Собственно это главная функция, в ней мы и регистрируем наш файл с переводом, который надо положить в data\lang
Сам файл надо сохранять в кодировке utf-8(обязательно без сигнатур)
Вот как выглядит это в плагине:
register_dictionary("myperevod.txt")
2) После объявления файла для перевода надо бы что то такое, что можно перевести
Ну вот например я хочу вывести в чат русское сообщение
client_print(0, print_chat, "%L", LANG_PLAYER, "MY_MESS" )
Собственно умный человек и сам поймёт, что тут написанно, но тем неменее небольшие заметки:
цифра 0 - это ID клиентов, при значении 0 - отображаться сообщение будет всем, если же хотим конкретному юзеру, то тут лучше ставить id. Как с этим работать id - расписывать не стану, ибо это уже из другой оперы.
Далее
"%L" - сюда то и будет подставляться ваш перевод
LANG_PLAYER - это означает, что текст будет на том языке, какой установлен у пользователя. Если же тут прописать LANG_SERVER - текст будет на языке, установленном по умолчанию на сервере.
"MY_MESS" - это код вашего сообщения. Тут очень важно то, что если этот код повторится в другом файле с переводом(допустим hpk.txt) то неизвестно, что за текст тут отобразится. В любом случае код должен быть уникальным.
3) Ну вот, с самим исходником всё. Теперь файл с переводом (у нас он myperevod.txt)
Открываем его, и там вписываем:
[ru]
MY_MESS = мой текст
[en]
MY_MESS = my text
MY_MESS = мой текст
[en]
MY_MESS = my text
Обратите внимание, что во всех файлах перевода порядок и количество языков должно быть соблюдено одинаково.
Т.е. тут у нас русский и английский и в других должно быть также. Если вы перепутаете порядок и будет у вас сначала английский, потом русский в одном, русский и английский в другом - начнётся беспорядок и тексты у вас будут сразу на двух языках
Мой совет, всегда соблюдайте такой порядок:
[ru]
перевод
[en]
перевод
перевод
[en]
перевод
Если кому непонятно - посмотрите исходники amxx мода. Думаю с этим маленьким мануалом вам станет понятнее языковой поддержки в нём.
4) Ну и наконец заключение: некоторые элементы не переводятся, например названия меню(мне не удалось подобным способом перевести название amx_super menu :buba: ), поэтому для этого и подходит фокус с кодировкой самого исходника.
Ну вот на этом пока всё, статья возможно будет редактироватся и дополнятся :spiteful:
Copyright © Rockon