Több féle metódus van több-nyelvű honlapok készítésére. Elsősorban a rendszer mértetét figyelembe véve érdemes meghatározni a komplexitást.
Az én implementációm és igényem a következő volt: többnyelvű, dinamikusan növelhető egyszerű statikus tartalmat kellett létrehoznom, dinamikus fotó feltöltési lehetőséggel. A fotókat is további kommentekkel láthatják el a honlap karbantartói.
Rendszer felépítése:
- be/kijelentkező felület
- többnyelvű statikus oldalak
- odalakhoz fotók csatolása (mint galéria)
- fotókhoz kommentek csatolása (összes nyelven)
A megvalósításhoz a a yii i18n-t és a Yii:t() metódust használtam. /protected/messages/hu/app.php fájlba tettem a nyelvi cimkéket egybe.
MySQL-t használtam az adatok tárolásához. Külön nyelvi táblában tároltam a nyelvekhez kötődő szövegeket, így dinamikus nyelvekkel bővíthető lett a honlap.
Dióhéjban az adatbázis felépítése:
languages
pages
pages_lang (id, pgcontent, pgtext, …)
photos (id_page, …)
photos_lang (id_page, id_lang, id_photo, title, …)
URL-ek lokalizálásáról:
három főbb lehetőségünk van a nyelvek URL-ben való kezelésére
[list=1][] http://en.honlapom.h…ntroller/action[] http://honlapom.hu/e...ntroller/action[*] http://honlapom.hu/c.../action?lang=hu[/list]
SEO szempontból az első példa csak nagy forgalmu rendszerknél használatos (10.000 felhasználó / nap), szóval ez számomra nem érdekes.
A második példa szebb megoldás, de az is tagolja az url-ek kinézetét.
A harmadik módszerben a csak egyszer állítjuk be GET-el, majd SESSION-ben tároljuk le a kiválasztott nyelvet.
URL action részének fépéítéséről:
Még egyenlőre hírek jellegű tartalmat nem készítettem, de valami hasonló url képzést valósítanék meg.
http://honlapom.hu/e...he_little_mouse
http://honlapom.hu/ge/news/a_kiseger