[ sekvoja @ 24.04.2010. 12:10 ] @
Pokusavam da koristeci gettext uradim internacionalizaciju sajta,
ali imam cudan problem...

Evo koda koji koristim:
Code:
$language = 'de_DE';
//putenv("LANG=$language"); 
setlocale(LC_MESSAGES, $language);

$domain = 'messages';
bindtextdomain($domain, "./locale"); 
textdomain($domain);


echo _("Hello World!")

To radi ali samo prvih 5 prikaza stranice :) Tacnije, svaki peti
put kada refresujem stranicu text se prikazuje na engleskom,
zatim opet pet puta na nemackom i tako u krug... I uvek je pet
puta, ni manje ni vise.
Radi i sa i bez komentovanog reda.

Koristim Slackware, lighttpd, PHP5.
Kako ovo da ispravim da bi se tekst uvek prikazivao u zavisnosti
od $language value?
[ Nikola Poša @ 24.04.2010. 13:09 ] @
A što si zakomentarisao taj deo sa putenv? I jesi siguran da se tvoji .mo fajlovi sa prevodima nalaze na putanji ./locale/de_DE/LC_MESSAGES/messages.mo?
[ Goran Rakić @ 24.04.2010. 13:27 ] @
Htedoh prvo da napišem kako to nije moguće, da te stvari ne rade tako (pet puta radi, pet puta ne radi), a onda se setih sjajne priče o e-pošti koja radi samo u krugu od 800km ;) http://www.ibiblio.org/harris/500milemail.html

Verovatno problem pravi neka druga skripta ili program unutar istog procesa koji na serveru vrati setlocale na podrazumevano ponašanje. Pogledaj po lighttpd dokumentaciji kako se prenose promenljive okruženja. Bitno je i da napišeš povratnu vrednost setlocale/putenv funkcija.
[ sekvoja @ 24.04.2010. 13:58 ] @
Citat:
Nikola Poša: A što si zakomentarisao taj deo sa putenv? I jesi siguran da se tvoji .mo fajlovi sa prevodima nalaze na putanji ./locale/de_DE/LC_MESSAGES/messages.mo?


Zakomentarisao sam taj deo zato sto nema efekta... ne znam sto.

Hehe, ja sam napravio gresku oko putanja do mo fajlova, ccccc...
Ali da se razumemo, uopste nema veze da li se folder zove de ili de_DE,
Nemacki radi! Bitno je samo da je $language = 'de_DE', dakle mora da
postoji i cantry code, ne moze $language = 'de'.

Ali recimo Srpski ne radi, ili Francuski. Srpski prikaze svaki deseti put :)
pa onda devet puta Engleski.Stvarno mi nije jasan ovaj problem...
Probao sam sa sr_RS i sr, Francuski sa fr i fr_FR (Francuski uopste ne radi).

Sta ciniti?
[ sekvoja @ 26.04.2010. 08:56 ] @
Ha, nikad nemojte da radite u virtuelnoj masini na svom kompu,
Nikad rezultati nece biti isti kao da testirate direktno online...
Zato meni nije radilo, jer sam sve testirao na vm, sada online radi.

Ali, uvek postoji neko ali :)

Javlja se problem ukoliko zamenim .mo fajl sa novim. Recimo
dodao sam nove stringove za prevod u stranu i sa poedit sam
izvuko te stringove i preveo i updateoavo katalog i .mo fajl.
Onda sve to bacim na server preko starog .mo fajla.

E tu se javi problem.

Ukoliko refresujem stranu prikaze se prazna strana, bez htmla.
I tako par puta, dok se sve ne stabilizuje. Posle radi ok.
Pada mi na pamet samo caching problem, mada koliko znam,
samo apache ima problem sa time, lighty ne bi trebalo da koristi
stari .mo fajl i trebao bi automatski da refresuje ukoliko ima
promena...

Jel imao neko slicno iskustvo?
Ovo moram da resim kako umem i znam zato je svaka pomoc dobrodosla.