Ce folositi pentru localizare

Plecand de la un reply al lui de pe aici al lui @AdrianBasalic care spunea ca localizarea de la Laravel nu e una extraordinara. Vin cu urmatoarea intrebare: ce folositi pentru “localizare” in php(in special pentru language si mai putin pentru format de date, separatoare zecimale/mii,etc).

2 Likes

Nu ii zice internationalizare? (chiar nu vreau sa fac pe desteptul)

translation != localization != internationalization

ontopic: gettext + https://poeditor.com :stuck_out_tongue:

offtopic: am folosit “localizare” pentru ca asa am vazut aici pe forum. Eu unul ii zic: “langualization” pentru ca de obicei ma ocup doar de partea de limba.

Un wrapper foarte simplu în jurul lui gettext, pentru că gettext chior nu suportă parametri în texte:

__('Salut {name}, lorem ipsum!', ['name' => $user->name]);

Asta nu face altceva decat interpolare cu str_replace și apoi apeleaza gettext. Erau vremuri când foloseam soluții complexe, care suportau nșpe tipuri de storage pentru definiții. PO-uri, tabele in DB, flat files cu array-uri PHP, etc. Apoi cu vremea am taiat si am taiat pana am ajuns la minimul necesar pentru nevoile pe care le-am avut pana acum.

oricum cel mai complicat lucru de care aia vea nevoie in plus ar fi plurale, pt care mai poti pune lejer un parametru.

1 Like

Cand spui plural te referi la asta?

  • 0 paini
  • 1 paine
  • 2 paini
  • 21 de paini
  • 100 paini

exact

ngettext("%d paine", "%d paini", 5);

Sunt limbi care au 5 variante de plurale (araba de ex) cu zero/one/two/few/many

@AdrianBasalic si “de”-ul? :smile:

fisierul .po arata cam asa:

msgid "item"
msgid_plural "items"
msgstr[0] "paine"
msgstr[1] "de paini"
msgstr[2] "paini"

si comanda

ngettext("%d item", "%d items", 5);

considera msgid si msgid_plural labeluri. (desi de cele mai multe ori se folosesc chiar textele in sine.)

1 Like

Tot gettext folosesc. Este standard (nu doar pentru PHP).