Automatikus felismerése oldal nyelvét felhasználó ip

A legtöbb többnyelvű weboldalak használata technológia automatikusan meghatározza a felhasználó nyelvét. Úgy néz ki, mint ez: A felhasználó hozzáfér a forrás oldalt lát tartalom anyanyelvükön neki. A legegyszerűbb módszer annak meghatározására - az IP minden látogató. A technológia egyszerű és kényelmes sokféleképpen látogatók számára. De vannak olyan árnyalatok.

Az IP, vagy pontosabban, GeoIP - a leginkább megfizethető és egyszerű módja. De ugyanakkor ez gyakran pontatlanok. Sok felhasználó panaszkodik, hogy amikor ezen kívül Oroszország, kezdetben minden területen betöltött nyelv az országban, ahol élnek. Ez vadul kényelmetlen, és a legérdekesebb az, hogy ez bűn, és az ilyen nagy területen, mint a Facebook.

  • egyszerű alkalmazás, végrehajtásának lehetőségét különböző nyelven
  • ha nem veszi figyelembe a fent leírt problémák - a nagy pontosságú meghatározása;
  • magas (pillanatnyi) sebesség - elég ahhoz, hogy az eredmény egy lekérdezést az adatbázisnak.

A hátrányok meghatározásának módszere a nyelvet IP következők:

  • annak szükségességét, hogy folyamatosan frissíteni az IP keretet;
  • lehetetlen ellenőrizni, mennyire megbízható adatok
  • IP adatok Oroszország nem mindig pontosak.

Az első és legegyszerűbb módja - használja a szabad könyvtár. Például egy PHP oldalon lehet használni GeoIP kiterjesztése. A link elérhető a részletes szerelési útmutató és más ajánlások.

A PHP vannak alapvető elemei $ _SERVER supeglobalnogo hogy meghatározzuk aypishnika és váltson át a megfelelő nyelvi változatot. Ez kifejezetten használt elem

Ő felelős az adatok továbbítására a szerver nyelvhasználó visszatérési értéke ru, en, vagy bármely más. Ez a megjelenés ezen adatok:

Az első érték - a nyelv, a második - a régióban, és az együttható jelzi a kiemelt (azaz milyen nyelven felhasználó kedveli). Ennek köszönhetően a logikát, például a kezdő oldalon a Google az orosz nyelvű felhasználókat, ami Ukrajnában, betöltődik az orosz, de Google.com.ua szerver.

Annak megállapításához, a nyelvet, akkor a következő kód:

preg_match_all ( '/ ([AZ] (: - [AZ])) (:; ??? q = ([0-9.] +)) /?', strtolower ($ _ SERVER [ "HTTP_ACCEPT_LANGUAGE"]), $ mérkőzések); // számolja megfelelés tömb $ mérkőzések

$ Langs = array_combine ($ matches [1], $ egyezés [2]); // Létrehozunk egy tömböt kulcsok $ matches [1] és az értékek az $ matches [2]

foreach ($ langs mint $ n => $ v)

$ Langs [$ n] = $ v. $ V. 1; // Ha nem q, majd állítsa be az 1 értéket

arsort ($ langs); // rendezése Csökkenő q

echo kulcs ($ langs); // megjeleníti az alapértelmezett nyelv

>







Egyszerűen telepítse a kód a helyszínen - és a látogatók kap feltölteni a jobb oldalon lévő olyan nyelven, amelyek nem teljesítenek további lépésekre. Itt van egy másik hasonló módszer:

preg_match ( '/ ^ \ w /', $ _ SERVER [ 'HTTP_ACCEPT_LANGUAGE'], $ illeszkedik);

kapcsoló (strtolower ($ matches [0]))

ügy "ru": $ accept_lang = "ru" break; // ha az orosz

ügy "de": $ accept_lang = "de"; break; // ha a német

ügy "en": case "uk": case "mi": $ accept_lang = "en"; break; // ha az angol

ügy "ua": $ accept_lang = "ua" break; // ha az ukrán

alapértelmezett: $ accept_lang = "en"; break; // ha nincs egyezés, akkor az alapértelmezett, például angol

echo $ accept_lang;

>












$ Sites = array (

// kap a nyelv

$ Lang = substr ($ _ SERVER [ 'HTTP_ACCEPT_LANGUAGE'], 0, 2); // vágja az első két betű

// ellenőrzés nyelvének

if (! in_array ($ lang, array_keys ($ oldalak)))

$ Lang = 'ru';

// átirányítani egy aldomain

header ( 'Location:' $ oldalak [$ lang].);
















Megtéve esetleges hibákat a meghatározás lehetővé teszi az egyszerű és világos képes manuálisan módosíthatja a kezelőfelület nyelve -, így még a helyszínen a karakterek egy orosz látogató megérteni, hogyan kell változtatni a nyelvet.

Kapcsolódó cikkek