ugrás a tartalomhoz

Többnyelvűség

Bear · 2016. Aug. 18. (Cs), 21.51
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 :)
 
1

ne akarj dönteni a

szabo.b.gabor · 2016. Aug. 18. (Cs), 23.56
ne akarj dönteni a felhasználó helyett.

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.
2

részben igaz

Pepita · 2016. Aug. 19. (P), 05.57
ne függjön mástól - cookie, meg session.
Ezzel vitatkoznék, lehet így is, nem kötelező url ben vinni a nyelvet, ha megadod lang="hu" stb attribútummal html ben.

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. )
5

A gond itt a linkekkel és a

inf3rno · 2016. Aug. 31. (Sze), 04.25
A gond itt a linkekkel és a kesselhetőséggel van.

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.
6

Rossz otlet

janoszen · 2016. Aug. 31. (Sze), 08.28
Ha kicsit is elolvasod a Google vonatkozo doksijait, ra fogsz jonni, hogy minden tartalomnak kulon URL kell. Igen, a kulonbozo nyelveknek is. Ha nem igy teszel, durva dolgok fognak tortenni, pl. megjelenik a Google indexben az oldal Magyar cimmel es angol szoveggel, stb.
3

Nyelv

janoszen · 2016. Aug. 19. (P), 07.23
Hosszu evek kiserletezese alapjan sikerult egy ideje megszulnom ezt a scriptet. A nyelv az URL-ben van, es ertelemszeruen at tud valtani a felhasznalo, ami megvaltoztatja a sutit is, hogy legkozelebb az adott nyelvre menjen.
4

Rendben, köszönöm.

Bear · 2016. Aug. 19. (P), 09.33
Rendben, köszönöm. Megpróbálom elsőnek a saját scriptet, már kialakult egy kép róla. Ha nem működik, akkor feltétlen megpróbálom ezzel. :)