Языковый файлы хранятса в addons\amxmodx\data\lang, в принципе создание плагинов с языковыми файлами не сложно, но сущетсвуют некоторые, вещи на которых люди часто делают ошибки... Приступим например часть из нашего кода выглядит вот-так:
new score = get_user_frags(id) // записуем в переменну score фраги игрока
client_print(id, print_chat, "[AMXX] У вас %d фрагов", score)[color="#006400"]
И мы вдруг захотели зделать ето же через языковой файл. Для начала создадим .txt файл в папке addons\amxmodx\data\lang
пусть назвём его например "failik.txt". Вот что написать в файле:
[en] // английский тест:
MSG_FRAGS = You have %d frags
[ru] // руский текст:
MSG_FRAGS = У вас %d фрагов
//Вы можетье зделать и больше переводов на другие языки,
// переводя например с помощю онлайн словарей...
MSG_FRAGS ето название текстовой переменной, вы можете назвать ее как угодно но ( АНГЛ БУКВАМИ и БЕЗ ПРОБЕЛОВ )
В plugin_init() вы обезательно должны указать название языкового файла через register_dictionary("НАЗВАНИЕ.txt")
public plugin_init()
{
...
//указать для загрузки ваш языковой файл
register_dictionary("failik.txt")
}
Далее выводим сообщение всем игрокам сервера, таким вот образом:
new score = get_user_frags(id)
client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_FRAGS", score )
В том месте где вы поставилил %L будет ваше сообщение с Языкового файла... Каждое сообщение имеет как минимум 2 параметра
LANG_PLAYER(для того чтоб показать всем игрокам языковую строку
В скобках переменную сообщения, которую "вписать" в сообщение, в нашем случае ето "MSG_FRAGS"
Если же мы хотим вывести сообщение одному игроку то вместо LANG_PLAYER будем писать id того игрока:
new score = get_user_frags(id)
client_print(id, print_chat, "[AMXX] %L", id, "MSG_FRAGS", score )
Кроме %L вы можете также выводить переменные, вот их коды в сообщениях:
%s - string ( переменная с текстом )
%d или %i - integer ( целое число) н/п: 1, 213, -60
%f - float ( дроби ) н/п: 0.231 -231.2 24.4434
%c - charecter ( силвол (1 буква) )
%L - lang ( языковая переменная)