Megfelelő azonosítása a felhasználó nyelvén savepearlharbor
Hogyan kell az információk megjelenítésére különböző nyelveken itt beszéd nem fog menni. Fogunk beszélni, hogyan kell meghatározni a nyelvet a felhasználó, és válassza ki a rendelkezésre álló nyelvi változatok az oldalon a legalkalmasabb.
És így van:
- PHP
- CodeIgniter keret (class írt ebben a keretben, de bárhol használható, azáltal, hogy kis változások)
célkitűzés:
Annak megállapításához, a felhasználó nyelvét és ha a felhasználó vengerskogovoryaschy (Magyarország, Fehéroroszország, ukrán teljes lista itt) azt mutatják neki az információt az orosz. Ha nem, akkor angolul.
Mindezt úgy, hogy a forma egy osztály vagy függvény azzal a képességgel, hogy gyorsan meghatározza valami hasonló linkeket egyik nyelvről a felhasználó a legjobban megérteni az oldalon.
megoldás:
Annak megállapításához, a nyelv, a felhasználó a szuperglobális $ _SERVER, vagy inkább - elemében $ _SERVER [ „HTTP_ACCEPT_LANGUAGE”] leírja a kliens preferenciáit nyelvet. Ezt az információt kivonjuk a HTTP-fejléc Accept-Language, amely elküldi a kliens a szervernek.
Az én esetemben ez egy húr
Ez a sor tartalmazza a felhasználó nyelvének, amely jobban kedveli, és ezek a prioritások fejezik q, q evett a nyelv nincs megadva, azt feltételezzük, hogy ez lesz egyenlő 1 Ha megpróbálja megjeleníteni egy kevésbé olvasható formában ez így néz ki:
Ezért egyértelmű, hogy én inkább a magyar nyelv és a második helyen az angol.
Nyelvek írt két formátum nyelvi kód «ru» és «en» esetemben, amely kapcsolódik a yazykoyvm ISO 639
És a fő nyelv kódja - hosszú nyelv kódját az én esetemben ez «ru-ru» és «en-us» majd a fejlett nyelvi kód jelzi az nyelvhasználat a régió I Egyesült Államokban.
Időnként zavar van a jel mindkét nyelven, amikor felsorolja az ISO kódok egyaránt tartalmaznak kétbetűs és hárombetűs kódok (néha több hárombetűs kódok). Most minden érvényes kódokat szerepel ugyanabban a IANA registry. hogy a nyelv mindössze egy értéket az ISO listákat. Ha megjelenik egy kétbetűs ISO-kód, ez lesz az egyik a rendszerleíró adatbázisban. Ellenkező esetben a regisztrációs tartalmaz egy hárombetűs kód. Ez leegyszerűsíti a dolgokat.
Az elmélet szerint rendezve megy gyakorlat:
Írja meg a kivitelező vezérlő osztályban:
Itt feldolgozni a húr által visszaadott $ _SERVER [ „HTTP_ACCEPT_LANGUAGE”] úgy, hogy kiderült, a fajta tömb
Rendezve csökkenő fontossági sorrendben nyelv (érték q)
Aztán egy olyan módszer, amely visszaadja a legmegfelelőbb nyelvet.
Először paremetrom továbbított a használt nyelv alapértelmezés szerint a második sor, amikor a kulcs a nyelvek, amelyek a helyszínen, és az értékek hivatkozásokat más nyelvekben tömb így néz ki:
A funkciók vágott Nyelv language-formátumban - kiterjesztett nyelvi kódot kell formázni a fő nyelv kódot szükségességét angol és amerikai változata a nyelv nem valószínű, hogy előfordul, és akkor mindig befejezi, ha szükséges.
Az eredmény annak végrehajtása lesz a legmegfelelőbb nyelven a felhasználó, a formátum ISO 639 az alapértelmezett nyelv, átmentem angol és a nyelvek, amelyek nem a tömbben kerül vissza $ langs en.
Töltse könyvtára itt lehetséges