Implementarea multilingvismului în php

Și din 00 de ani sau ceva nu sa schimbat dramatic. Dacă citiți Kament, devine evident că unii oameni inventează o bicicletă în proiectele lor și le obțin ca urmare a gettextului. În general, au făcut-o, iar modulul i18n a primit gettext.







Aș recomanda astfel. gettext este folosit pentru schimbarea rareori a informațiilor. Meniu, diverse inscripții pe care să le realizați. În acest sens, obținem o serie de avantaje:

1) Formatul este disponibil timp de mulți ani și rulează pe un număr mare de platforme. Și aceasta înseamnă că va fi ușor de înțeles pentru oricine știe despre asta, chiar dacă o persoană nu este familiarizată cu limba în care este scris sistemul. Ie toate avantajele standardelor. Bicicletele trebuie, de asemenea, să înțeleagă cum funcționează.

2) Caching. gettext este stocat activ în memoria RAM.

3) Abundență de software pentru traducători.

4) Suport pentru numere multiple. Nu toate bicicletele sunt considerate ca fiind în gettext.

5) Suport pentru gettext în motoare șablon.

6) Cu gettext puteți lucra nu numai din PHP. De fapt, pe proiecte eterogene.







Vă recomand să plasați partea de conținut la nivelul bazei de date. Personal, folosesc o tabelă separată pentru fiecare limbă. În plus, în comparație cu stocarea într-o coloană separată - lipsa ALTER-urilor la adăugarea / eliminarea unei limbi.

Îmi place opțiunea când
$ lang ['mTitle'] = 'Acasă';
$ lang ['mAbout'] = 'Despre noi';

În primul rând, se numește limba originală și apoi limba curentă, dacă este diferită de cea originală. Astfel, dacă nu există traducere, atunci puteți obține ceva.
Deși php utilizează cu succes gettext (de exemplu, în phpmyadmine), dar este mai dificil de introdus. Utilități necesare, care sunt numeroase pentru diferite sisteme.

Sunt un aderent al constantelor de șir, adică construirea formularului i18n :: get ('Hello% s!', $ username) sau abreviat l ('Hello% s', $ username). Dar folosesc șiruri pentru benzi, nu un depozit global. Este implementat foarte simplu (deschis, citit, adăugat, salvat) și este convenabil ca noua linie să fie adăugată automat la sesiune și salvată.


Personal, pentru mine, în orice i18n cred că este important să se importe și locațiile de export (înainte de utilizare CSV, dar din cauza unor probleme cu UTF rândul său, pe PO), suport de formare a cuvintelor în diferite limbi (1 mar, 2 mere, 6 mere), cache și accelerată (prin meta construct) localizarea fișierelor de vizualizare.


Din păcate, toate acestea fac parte din cadrul, dar la cerere pot trimite fișiere cu explicații.







Articole similare

Trimiteți-le prietenilor: