Lecția 25

Practic parte:
Pentru a începe, trebuie să ne înregistreze dosarul nostru dicționar:

În mod implicit, fișierul trebuie să fie în directorul ./cstrike/addons/amxmodx/data/lang. În fișierul dicționar (test_dictionary.txt) scrie următorul text:

# 91; en # 93;
TD_HELLO = Bună ziua, lume!

# 91; # 93 ru;
TD_HELLO = Bună ziua lume!


Salvați fișierul în format UTF-8 fără BOM. Luați în considerare ceea ce am scris. Am creat un fișier de dicționar, care acceptă traducerea în două limbi: engleză și română. ro și ru - sunt valorile lang (setinfo "lang" "en") cheie. TD_HELLO - o variabilă, Bună ziua, lume! și Bună ziua lume! - importanța sa pentru limbile engleză și română, respectiv. Variabile de linie dispusă sub [en]. se referă la traducerea în limba engleză. Prin urmare, variabilă, string situat sub [ru]. se referă la traducerea în limba română. Acum inregistram comanda de a fi executat ca toți jucătorii din camera de chat va fi afișat mesajul nostru:

Adăugați comanda / Hello (posturi O) funcție de procesare:

Obținem o funcție simplă a mesajului de ieșire „Bună ziua, lume! „Sau“ Bună ziua lume! „(În funcție de setările de limbă ale mesajelor jucător-destinatar) la comanda / salut. După cum probabil ați înțeles deja caracterele din mesajul% L se înlocuiesc cu valoarea pe care corespunde TD_HELLO variabilei. Adăugați un jucător mesaj pseudonim care solicită această funcție (executa comanda / salut):

Acum, mesajul nostru este de forma: „jucător: Bună ziua, lume! „Sau“ jucător: Salut lume! “. În acest caz, am folosit LANG_PLAYER constantă (puteți utiliza, de asemenea, constant LANG_SERVER. Sau codul destinatarului. Dar mai mult pe aceasta mai târziu). Rețineți că constantă LANG_PLAYER este întotdeauna în fața TD_HELLO variabilă și între ele nu trebuie să existe alte argumente. Asta este, aceste opțiuni:


greșit, și fie nu funcționează deloc sau nu va funcționa corect. De asemenea, pentru fiecare variabilă a trebuie să fie declarată propria constantă. Să considerăm un exemplu specific. Adăugați la dicționar fișier altă variabilă:

# 91; en # 93;
TD_HELLO = Bună ziua, lume!
TD_SAID = spus

# 91; # 93 ru;
TD_HELLO = Bună ziua lume!
Said TD_SAID =


Adăugați o nouă variabilă în raportul nostru:

Acum, mesajul a luat următoarea formă: „Bună ziua, lume! (Said Player) 'sau' Bună ziua lume! (I-am spus Player)“. Având în vedere că partea principală sortate, vom trece la detalii. Să examinăm, în unele cazuri, este necesar să se utilizeze LANG_PLAYER constantă. indicele LANG_SERVER și destinatar.

LANG_PLAYER trebuie utilizat în cazurile în care beneficiarul indicelui nu este cunoscut în prealabil. De exemplu, la trimiterea unui mesaj către toți jucătorii pe care le-am făcut mai sus. În toate celelalte cazuri, este de dorit să se utilizeze indicele destinatarului. Să considerăm un exemplu. Adăugați în dicționar altă variabilă:

# 91; en # 93;
TD_HELLO = Bună ziua, lume!
TD_SAID = spus
TD_HEALTH = Sănătatea ta

# 91; # 93 ru;
TD_HELLO = Bună ziua lume!
Said TD_SAID =
TD_HEALTH = Sănătatea ta


modificăm puțin codul nostru:

Acum, mesajul nostru este de forma: „Sănătatea ta: 100“ sau „Sănătatea ta: 100“. După cum puteți vedea, în loc de o constantă la o TD_HEALTH LANG_PLAYER variabilă este indicele destinatar, id-ul. pe setările de limbă, care vor fi orientate sistem pentru trimiterea de mesaje.

LANG_SERVER trebuie utilizat în cazurile în care doriți atunci când trimiteți un mesaj sau un sistem de formatare a fost orientată la configurația serverului de limbă. De asemenea, această constantă poate fi folosită în aceleași cazuri ca LANG_PLAYER (de exemplu, în cazul în care beneficiarul a indicelui nu se cunoaște dinainte). În practică, un relativ rare, dar uneori poate fi foarte util pentru rezolvarea sarcinilor non-standard.

Detalii importante:
Ei bine, ultimele detalii care ar trebui să fie remarcat. Ca și în pregătirea dicționarului fișierul cu numele corect variabile. Eu nu accidental la începutul fiecărei variabile au TD_ prefix (primele litere ale numelui plugin-ului, „Test de dicționar“). Variabilele cu același nume poate fi „traversat“ unele cu altele, ca urmare, putem observa în fișa de comunicare nu este textul care este listat în acest fișier dicționar. Pentru a preveni acest lucru, trebuie doar pentru a evita apariția unor variabile cu același nume în diferite fișiere ale dicționarului.

Și unul mai mic, dar nu mai puțin important lucru despre care ar trebui să știi și amintiți-vă că numele variabilelor sunt cazuri sensibile, adică, TD_HEALTH și TD_health - acestea sunt două variabile diferite și vom obține o eroare de tip ML_NOTFOUND în astfel de incoerențe: TD_HEALTH. ceea ce înseamnă că TD_HEALTH variabilă nu a fost găsit în fișierul dicționar.

Știri asociate:

    Format nu a fost găsit: nu /templates/smartphone/relatednews.tplTemplate găsit: /templates/smartphone/relatednews.tplTemplate nu a fost găsit: /templates/smartphone/relatednews.tplTemplate nu a fost găsit: /templates/smartphone/relatednews.tplTemplate nu a fost găsit: / template-uri /smartphone/relatednews.tpl

informații