avtomatska izbira jezika glede lokacije
6 naročnikov
6 naročnikov
Ali kdo pozna kaka skripto za implementirati v obstoječo skripto, da ko zazna IP uporabnika avtomatsko nastavi jezik?
Vnaprej hvala za odgovore.
13 odgovorov
Jaz imam nekako takole nastavljeno:
$ip = (pac neki s čemer dobiš ip uporabnika);
include_once("geoip.inc");
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$countries = array();
$cid = geoip_country_code_by_addr($gi, $ip);
if (strtolower($cid) == "si") {
$lang = "slovenian";
} elseif (strtolower($cid) == "hr") {
$lang = "hrvatski";
} elseif (empty($cid)) {
$lang = "slovenian";
} else {
$lang = "english";
}
Datoteko geoip.dat pa dobiš tukaj:
http://www.maxmind.com/app/geolitecountry
geoip.inc:
http://geolite.maxmind.com/download/geoip/api/php/geoip.inc
Opozarjam te, da to ni pametno početje!
Primer: Sam imam prenosnik, grem v nemčijo in ti mi boš prikazal stran v nemškem jeziku. Ok to še gre ker nekaj znam nemško in bom zamenjal jezik (če se to da). Pomislu pa kakega nemca, da pride v Slovenijo in ti mu stran prikažeš v Slovenščini. Ni najbol pametno.
Razmisli o tem, da zaznavaš jezik brskalnika.
je dejansko s ipji bol primerno kot recimo tako:
$langb = substr($SERVER['HTTPACCEPTLANGUAGE'], 0, 2);
Verjetnost, da bo recimo Nemec prišel na tvojo stran iz Slovenije, je tudi zanemarljivo majhna. In če že pride, bo verjetno hitro ugotovil, da ima na strani tudi možnost izbire jezika.
Jaz recimo vedno uporabljam angleško različico brskalnika in v tem primeru mi bo vedno pokazalo angleški jezik, kar pa spet ni pravilno.
To o čemer se pogovarjate, naj preverja samo ob 1. obisku oz. v primeru ko user nima shranjenega privzetega jezika v cookijuali/in profilu.
Sam se pa ponavadi raje odločim za HTTPACCEPTLANGUAGE kot pa IP.
Pa še to, jaz imam nastavljeno, da vsem botom prikaže slovensko različico strani. Tako da sploh ne preverja njegov IP naslov oziroma jezik, ampak ga spusti mimo te zanke.
No po želji....toda izbira preko IPja ni primerna :D (kdor je bil na zadnji PHP konferenci je tudi slišal)
Pa še to....v različnih državah govorijo veliko jezikov.....v katerem jeziku boš prikazal stran nekomu katerega IP je iz švice?
Mogoče imaš tukaj prav, jaz imam stran prevedeno v 3 jezike: slovenščina, hrvaščina in angleščina. In glede na to da pride na stran skoraj 95% slovensko govorečih obiskovalcev, se ne mislim obremenjevati ali bo obiskovalec prihajal iz Nemčije ali Francije. Drugače pa je seveda, da imaš več tujih jezikov in v tem primeru je mogoče bolje da ne uporabljaš ip-jev.
Res pa, da do tega trenutna nisem razmišljal da bi namesto IP-jev raje uporabljal HTTPACCEPTLANGUAGE - thanks for the tip ;)
Sam sem se lotil prevod v sloveniščino, pa so mi določene fraze zelo težke, tako, da sem jim rekel, da se matram, ampak ne gre ravno po tekočem traku :)
Kako ima to rešeno google npr.??