Többnyelvűség
Sziasztok!
A régi nyelvrendszerem működött, de most már szeretnék újítani, de sajnos elakadtam. Az előzőnél az volt a probléma /vagy nem probléma/ hogy cookieban tárolta az adatokat, és $_GET-el lehetett őket módosítani. Egy dinamikus honlap, saját rendszerrel. Csak egyetlen egy index.php fájl van, az adatok mysql-ből jönnek (a beállított nyelv szerint) illetve az alap dolgok (főoldal, kapcsolat, etc.) egy másik (vagy is kettő, angol-magyarnál) fájlból jönnek. Ha nyelvet változtattál ugyanazon az oldalon maradtál, ahol voltál (ez fontos!).
Szóval, a mostani nyelvrendszerem úgy nézne ki, hogy:
A felhasználó GeoIP-vel ellenőrizve van, hogy magyar-e (eddig semmi probléma), majd átirányítva a www.domainem.com/hu-ra. Az aloldalaim keresőbarát URL-ek (lásd: www.oldalam.com/contact). Eddig nem is probléma, ha magyar át is irányítja, az lapozgatásnál úgy oldottam meg, hogy elé írtam változóval a hu/-t, ha magyar volt (elég alpári megoldás). De vannak ennél összetettebb url-jeim is, amihez nem jó dolog egyesével beszúrni a hu/-t, azt szeretném ha az ember IP címe magyar akkor a www.oldalam.com/oldal-ról egyből a www.oldalam.com/hu/oldal-ra kerüljön. Illetve a nyelvváltoztatásnál maradjon az eredeti oldalon, ez mind fordítva is. Ha nincs $_GET-ben változtatva nyelv és az illető nem is magyar akkor a www.oldalam.com/hu/oldal irányítsa át a www.oldalam.com/oldal-ra. Próbálkoztam $_SESSION-el, de nem nagyon tudtam megoldani. Várom az ötleteket.
Ha véletlen tudtok ilyen előre megírt rendszert véletlen, akkor az jól jönne. Fontos, hogy az angolnál maradjon a default www.oldalam.com és csak a magyarnál legyen www.oldalam.com/hu. Nem kész scriptet kérek, az is elég lenne ha elmagyaráznátok hogyan lenne célszerű megoldani.
Előre is köszönöm a segítséget :)
■ A régi nyelvrendszerem működött, de most már szeretnék újítani, de sajnos elakadtam. Az előzőnél az volt a probléma /vagy nem probléma/ hogy cookieban tárolta az adatokat, és $_GET-el lehetett őket módosítani. Egy dinamikus honlap, saját rendszerrel. Csak egyetlen egy index.php fájl van, az adatok mysql-ből jönnek (a beállított nyelv szerint) illetve az alap dolgok (főoldal, kapcsolat, etc.) egy másik (vagy is kettő, angol-magyarnál) fájlból jönnek. Ha nyelvet változtattál ugyanazon az oldalon maradtál, ahol voltál (ez fontos!).
Szóval, a mostani nyelvrendszerem úgy nézne ki, hogy:
A felhasználó GeoIP-vel ellenőrizve van, hogy magyar-e (eddig semmi probléma), majd átirányítva a www.domainem.com/hu-ra. Az aloldalaim keresőbarát URL-ek (lásd: www.oldalam.com/contact). Eddig nem is probléma, ha magyar át is irányítja, az lapozgatásnál úgy oldottam meg, hogy elé írtam változóval a hu/-t, ha magyar volt (elég alpári megoldás). De vannak ennél összetettebb url-jeim is, amihez nem jó dolog egyesével beszúrni a hu/-t, azt szeretném ha az ember IP címe magyar akkor a www.oldalam.com/oldal-ról egyből a www.oldalam.com/hu/oldal-ra kerüljön. Illetve a nyelvváltoztatásnál maradjon az eredeti oldalon, ez mind fordítva is. Ha nincs $_GET-ben változtatva nyelv és az illető nem is magyar akkor a www.oldalam.com/hu/oldal irányítsa át a www.oldalam.com/oldal-ra. Próbálkoztam $_SESSION-el, de nem nagyon tudtam megoldani. Várom az ötleteket.
Ha véletlen tudtok ilyen előre megírt rendszert véletlen, akkor az jól jönne. Fontos, hogy az angolnál maradjon a default www.oldalam.com és csak a magyarnál legyen www.oldalam.com/hu. Nem kész scriptet kérek, az is elég lenne ha elmagyaráznátok hogyan lenne célszerű megoldani.
Előre is köszönöm a segítséget :)
ne akarj dönteni a
legyen meg minden tartalomnak a saját linkje, meg legyen meg az oldalakon a másik nyelvre a hivatkozás.
mi van ha egy magyar ember külföldről akarja megnézni az oldalad, vagy ha egy külföldi magyarországról..
ha gondolod legyen minden hivatkozás elején hu vagy en előtag, vagy csinálhatod másképp is, a lényeg, hogy ugyanaz az url mindig ugyanazt a tartalmat adja vissza. ne függjön mástól - cookie, meg session.
szerintem.
részben igaz
A választás mindenképp kell, kiindulási pontnak pedig jobbnak tartom a böngésző accept language.
(Megj. Kíváncsi lennék, hogy ha süti ben tároltad, azt hogy láttad $_GET tömbben. )
A gond itt a linkekkel és a
Ha nem tudod átírni az Accept Language header-t, hogy egy linkre kattintva más nyelvet igényeljen az oldal, akkor csak az URI a járható út. Szerintem legalábbis elég gáz, ha egy bizonyos nyelven idéznek tartalmat, rámegyek a linkre, aztán egy tök másik nyelven kapom meg ugyanazt.
A kesselhetőséggel meg az a gond, hogyha a magyar és angol oldalaknál is ugyanaz az URI, és csak az alapján kesselsz, akkor a hálózaton lévő összes cache egy random látogató által választott nyelven fogja letárolni a tartalmat, szóval előfordulhat, hogy magyart szeretnél, de angolt kapsz, stb. Hozzá lehet adni másodlagos kulcsként header-eket a Vary header használatával, de akkor meg ugyanott tartunk, mint az előző paragrafusban, hogy nem tudsz olyan linket gyártani, ami felülírja őket a kérésnél.
Ha Accept-Language header-t akarsz használni, akkor csak JS-el tudod megkerülni ezeket a problémákat. Ha viszont az oldalad nem épül teljesen JS-re, akkor meg kénytelen vagy URI-be vinni ezeket a másodlagos kulcsokat, hogy a kérésekbe is belekerüljenek.
Rossz otlet
Nyelv
Rendben, köszönöm.