ugrás a tartalomhoz

Több nyelvűség

KJoci · 2006. Május. 18. (Cs), 11.56
Sziasztok,

Szeretnék érdeklődni, hogy ti hogyan oldanátok meg egy oldalon belül több nyelv között lehessen váltani.

Jelenleg Smartyban vannak a templatek amiket használ az oldal, azonban 2-3 nyelvre le kellene még fordítani és a késöbbekben továbbfejleszteni az oldalt.

Tehát az a megoldás nem túl nyerő, hogy lemásoljuk az összes templatet egy másik könyvtárba átirjuk a szövegeket és a template dirt módosítjuk. Mivel a változáskor 3-4 fileba kell a változásokat követni.

Drupál rendszert néztem meg, ott a stringeket átvezetik egy t('') függvényen, irjak egy smarty modifiert? Honnan érdemes szedni az adatokat (XML, CSV, adatbázis)?

Van-e erre valami általános megoldás? Mennyire lassitja a rendszert (elég nagy forgalom van már most az oldalon)?

A segítséget előre is köszönöm.
 
1

Több nyelvűség

Anonymous · 2006. Május. 18. (Cs), 12.29
Szerintem tedd a szövegeket smarty config fájlba. Utána már csak ezt kell több nyelvre fordítani. Akár fordítónak is elküldheted ;)

Mellesleg szupergyors, ugyanis a smarty php include-okba fordítja a config-ot.
2

ini

-zsolti- · 2006. Május. 18. (Cs), 13.19
Szerintem nem a megjelenítő rétegben kellene a rendszerhez hozzárendelni a nyelvi definíciókat, hanem még jóval előtte. Nálam ezek a definíciók már a környezeti osztályban rendelkezésre állnak egy asszociatív tömbben, és az egész onnét kerül átadsára a Smartynak egy változóban. Így lehetőség van arra, hogy pl. a rövid URL-ek is nyelvspecifikusak legyenek, tehát ha angolra váltok, akkor nemcsak a szövegek változnak, hanem pl. a www.domain.hu/tagok/beallitasok -ból is www.domain.hu/users/settings lesz, stb.

Tárolásra szekcionált ini fájlokat használok (modulonként külön-külön), ennek csak annyi előnye van az asszociatív tömbbel szemben, hogy könnyebben szerkeszthető. Egyébként utóbbi valamivel valószínűleg gyorsabb lenne, hiszen megspórolod a parse_ini_file függvényt.

Adatbázisba nem jó ötlet tenni, főleg nagy igénybevételnél. Xml-be, csv-be pedig majdnem olyan, mintha ini-ben lenne (csak valószínűleg erőforrás-igényesebb feldolgozni). Úgyhogy szvsz a legjobb, ha php fájlban van (tömbben), ha fontos a könnyebb szerkeszthetőség, akkor pedig ini.
4

re: ini

KJoci · 2006. Május. 18. (Cs), 16.48
Csak az a problémám, hogy a grafikus kollégánk általába dreamweaverbe szereti szerkesztgetni az oldalt és nem kifejezetten informatikusok, inkább marketingesek töltik a szövegeket, és sajnos ez egyenlőre nem tűnik olyannak, amit maguknak meg tudnak csinálni.
3

Van már megoldás

laxy · 2006. Május. 18. (Cs), 14.23
Nem kell modifiert írnod a smartyhoz, már valaki megtette helyetted. :)
ezen a linken megtalálod: http://freshmeat.net/projects/smarty-gettext/
5

Utánnanéztem!

KJoci · 2006. Május. 18. (Cs), 16.55
Közbe én is nézelődtem a Smarty Wiki oldalán és ott találtam én is elég sok megoldást közte ezt is. És mivel nem tűnik túl bonyinak a forráskódja, szerintem ebbe könnyen bele lehetne hackelni valami könnyen szerkeszthető interface-t (pl javascriptes input amelyik tovább postolja) amivel a nem infos zsenik is elboldogulnak. Köszi!