урок 25

Практическа част:
За да започнете, трябва да се регистрирате нашия речник файл:

По подразбиране, файлът трябва да бъде в ./cstrike/addons/amxmodx/data/lang директория. В речника файл (test_dictionary.txt) напиши следния текст:

# 91; ен # 93;
TD_HELLO = Здравей, свят!

# 91; # 93 RU;
TD_HELLO = Здравей, свят!


Запазете файла в UTF-8 без BOM. Помислете за това, което сме написали. Създали сме речника файл, който може да превежда на два езика: английски и български език. ен и ЖП - са ценности Ланг (setinfo "Lang" "ен") ключ. TD_HELLO - променлива, Здравей, свят! и Здравей, свят! - неговото значение за български и английски език, съответно. Променливите в линейно разположени под [ен]. отнасят до превода на английски език. Съответно, променлива, низ намира под [RU]. отнасят до превода на български език. Сега ние се регистрирате заповедта да бъде изпълнена, че всички играчи в стаята за чат ще бъдат показани нашето послание:

Добавяне на командата / здравей (мнения O) функция за обработка на:

Получаваме проста функция на изходния съобщението "Здравей, свят! "Или" Здравей, свят! "(В зависимост от езиковите настройки на съобщенията за играч-реципиенти) на команда / здравей. Както може би вече разбирам героите в съобщение% L се заменя със стойността, която съответства на променлива TD_HELLO. Добавяне на псевдоним съобщение играч, който нарича тази функция (изпълни командата / здравей):

Сега, нашето послание е от вида: "Player: Здравейте, свят! "Или" Играч: Здравей, свят! ". В този случай, ние използвахме LANG_PLAYER константа (можете да използвате и константата на LANG_SERVER. Или код на получателя. Но повече за това по-късно). Имайте предвид, че LANG_PLAYER постоянно винаги е в предната част на променлива TD_HELLO и между тях не трябва да има никакви други аргументи. Това означава, че тези опции:


погрешно, и или не работи изобщо или няма да работи правилно. Също така, за всяка променлива е трябва да се декларира своя собствена постоянна. Помислете за един конкретен пример. Добави в речника файл друга променлива:

# 91; ен # 93;
TD_HELLO = Здравей, свят!
TD_SAID = каза

# 91; # 93 RU;
TD_HELLO = Здравей, свят!
Споменатите TD_SAID =


Добавяне на нова променлива в нашия доклад:

Сега съобщението, е взето следното форма: "Здравей, свят! (Саид Player) "или" Здравей, свят! (Казах Player) ". Тъй като основната част подредени, се пристъпва към детайлите. Нека да разгледаме това, в някои случаи е необходимо да се използва LANG_PLAYER постоянна. индекс LANG_SERVER и получател.

LANG_PLAYER трябва да се използва в случаите, когато получателят на индекса не е известен предварително. Например, когато се изпраща съобщение до всички играчи, които направихме по-горе. Във всички други случаи, е желателно да се използва индексът на получателя. Помислете за пример. Добавяне в речника друга променлива:

# 91; ен # 93;
TD_HELLO = Здравей, свят!
TD_SAID = каза
TD_HEALTH = Вашето здраве

# 91; # 93 RU;
TD_HELLO = Здравей, свят!
Споменатите TD_SAID =
TD_HEALTH = Вашето здраве


Леко променят нашия код:

Сега, нашето послание е от вида: "Вашето здраве: 100" или "Вашето здраве: 100". Както можете да видите, вместо постоянно да променлива LANG_PLAYER TD_HEALTH е индекс получател, идентификационен номер. от езиковите настройки на които ще бъдат ориентирани към система за изпращане на съобщения.

LANG_SERVER трябва да се използва в случаите, когато искате, когато ви изпрати съобщение или форматиране система е ориентирана към конфигурацията на език сървър. Също така, тази константа може да се използва в случаите като LANG_PLAYER (т.е., ако получателят на индекса не е известна предварително). На практика, сравнително рядко, но понякога може да бъде много полезен за решаване на нестандартни задачи.

Важни подробности:
Е, последните детайли, които трябва да се отбележи. Както и при подготовката на речниковия файл правилно нарича променливи. Аз не случайно в началото на всяка променлива има TD_ префикс (първите букви от името на плъгина, "Тест речник"). Променливи със същото име, може да се "кръстосват" един с друг, в резултат можем да наблюдаваме в щепсела на комуникациите не е текстът, който в този речник файл е в списъка. За да се предотврати това да се случи, просто трябва да се избегне появата на променливи със същите имена в различни файлове от речника.

И един по-малък, но не по-малко важно нещо, за което трябва да знаете, и не забравяйте, че имената на променливите е от значение, това е, TD_HEALTH и TD_health - това са две различни променливи и ние получите съобщение за грешка тип ML_NOTFOUND в такива несъответствия: TD_HEALTH. което означава, че променливата TD_HEALTH не е намерен във файла речник.

Свързани новини:

    Шаблон не е намерена: не /templates/smartphone/relatednews.tplTemplate намерено: /templates/smartphone/relatednews.tplTemplate не е намерена: /templates/smartphone/relatednews.tplTemplate не е намерена: /templates/smartphone/relatednews.tplTemplate не е намерена: / шаблони /smartphone/relatednews.tpl

информация