Razvoj višejezičnog sajta
Počeo sam da radim na novom sajtu koji bi u budućnosti trebalo da bude na n jezika, pa razmišljam kako bi bilo pametno da se to uradi. Evo dokle sam stigao, voleo bih da me neko ispravi ako grešim:
Radeći na jednom ranijem sajtu, utvrdio sam da je detekcija preferiranog jezika u browseru jedna vrlo beskorisna stvar, pošto jako malo (naših) ljudi to drži podešeno kako valja. Preferirani jezik će se čuvati u cookie-u, a u slučaju da kukija nema sajt će biti na srpskom. Jezik se menja tako što se u adresu doda /sr, /en, /gr... a ja sa druge strane hvatam RegExpom dvoslovne stvari u URIju i proveravam da li se odnose na jezik. Sama višejezičnost je realizovana tako što u rootu sajta imam direktorijum za jezike, a u njemu poddirektorijume sr, en itd. U tim direktorijumima se nalaze sve sličice specifične za jezik i jedan include fajl u formatu: PHP kôd:
Any gotchas? |
Ne vidim falinke u tvojoj zamisli. Eventualno, probaj ULT (http://ult.datavoyage.com/). Mozda ti pomogne da brze resis visejezicnost.
|
Eventualni gotcha može da ti bude procedura prevođenja. Ako šalješ language fajlove agenciji na prevođenje, zgodno je da budu u nekom formatu kojim prevodioci znaju da barataju, ili za koji imaju gotove alate. Obično su to XML fajlovi.
|
Sve si lepo zamislio, osim sto si izmislio toplu vodu. Pretrazi forum, kjucna rec - gettext.
|
Da nastavim gde je Jablan stao. Mislim da bi bila dobra ideja da držiš te podatke u nekom od standardnih formata za lokalizaciju. De facto standard je TMX (guglaj) a u poslednje vreme je sve prisutniji XLIFF.
|
sto rece dinke, gettext sluzi za to i industrijski je standard, bar u unix svetu...
|
Malo offtopic, ali na jednom projektu sam koristio i detekciju IP adrese za default language..
Ako nije setovan cookie, onda IP proverom se gleda odakle je posetilac, ako je iz Srbije/CG/Cro/BiH, onda je default jezik srpski (i setuje se cookie), za sve ostale default je English.. Radilo je bas kako treba u 99% slucajeva.. |
Gettext mi je i bila prva ideja, ali sam se onda malo smorio kad sam u PHP manualu video "To use these functions you must download and install the GNU gettext package...". Nisam siguran da li hosting to podržava, pošto još nisam dobio parametre za login. A i vučem traume od pre nekoliko godina kad sam ceo jedan sajt razvio u Smarty-ju, a kasnije shvatio da ga hosting baš i ne podržava najbolje :(
Uz to, za neke manje sajtove (kao što će biti ovaj) mi je uvek draže da smućkam svoje rešenje, nego da učim da radim sa tuđim. Peđin ULT mi deluje zanimljivo, baciću pogled večeras. Hvala i na hintu za XML/TMX! GeoIP takođe nije loše rešenje, videću da ga implementiram kad sajt malo poraste (tj. kad dobije više jezika) |
gettext
Ako je manji projekat, mozes kako hoces, to kako si zapoceo je OK.
Za iole veci projekat, po meni je najbolje uzeti gettext, ako mozes srediti sa hosting provajderom da ti ga omoguci... (i u slucaju da se kesira locale da imas mogucnost restarta Apaca, mada na nekim dijeljenim hostinzima se i ne kesira). Znaci, ako je veci projekat, bolje se drzati provjerenih rjesenja, nece te glava boliti. Jer nije problem samo u startu razviti aplikaciju da radi sa vise jezika, nego to treba redovno odrzavati... znaci, kada dodas nesto, da imas lak mehanizam da pripremis razlike koje treba poslati prevodiocima. Mozes da pogledas i analizu brzine gettext rjesenja i tvoga rjesenja (ne znam da li je rezultat pouzdan): http://mel.melaxis.com/devblog/2006/...t-fast-enough/ |
Ja iskreno nikada nisam radio sa gettext jer nikada nisam imao podr[ku na serveru i uvek sam bio lenj da probam, meni je smarty za to savršen. Lako je i sve funkcioniše kako očekujem.
|
Vreme je GMT +2. Trenutno vreme je 17:25. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.