Autor Zpráva
Costím
Profil *
Ahoj,
Jak zjistit v PHP jazyk návštěvníka po příchodu na stránku?
Snažím se udělat vícejazyčný web, ale nenapadá mě jak to vyřešit...
Na internetu sem toho moc o zjištění jazyka nebo aspon státu nenašel :-(
Díky...
Nox
Profil
http://php.vrana.cz/phpminadmin-preklady.php
Costím
Profil *
To mi nějak nefungovalo =( nevím ale proč =(
Jan Tvrdík
Profil
Costím:
Můžeš se inspirovat metodou detectLanguage z Nette Frameworku.
Costím
Profil *
tak to jsem nepochopil =(
HamStet
Profil *
$user['lang'] = $_SERVER["HTTP_ACCEPT_LANGUAGE"];


Tahle proměnná vrací různé texty podle typu prohlížeče, vždy ale obsahují 'cs' pro české mutace prohlížečů. Mám to ještě ošetřeno pomocí reguláru - mám je dvě verze webu, tuzemcům pošlu českou a všem ostatním anglickou. Ještě to kombinuju s explicitním zadáním z GET:

  if (isset($_GET['lng'])) {                     //retezec jazyk, ma jen dve mozne hodnoty
    $p = strtolower($_GET['lng']);
    if($p == "cs") { $par['lng'] = "cs"; }
  }                                                      //vycteno z parametru agenta
  else {
    $p = $user['lang'];
    if(eregi("cs", $p)) { $par['lng'] = "cs"; }
  }


proměnná $par['lng'] mi pak řídí výběr jazykově závislých textů.
Mastodont
Profil
function preferred_lang() {
  if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
    preg_match_all('#([a-z-]+) *(?:; *q=([0-9.]+))?#', strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]), $matches);
    $accept = array_combine($matches[1], $matches[2]);
    // doplni vychozi hodnoty, zaroven prevede na typ float
    foreach ($accept as $key => $val)
      $accept[$key] = $val == '' ? 1.0 : (float) $val;
    arsort($accept);
    return substr(array_shift(array_keys($accept)),0,2);
  } else {
    return DEFAULT_LANG;
  }
}


DEFAULT_LANG je konstanta definovaná jinde.
Costím
Profil *
Hej tak to nechápu =(

Poslal sem to čechům, vypsalo to - cs
Poslal sem to slovákům - vypsalo to - cs
Poslal sem to do španělska - vypsalo to - cs

Jak je možný že to furt vypisuje cs a ne správnej jazyk ??
Hledal jsem po internetu a jediný naco sem narážel bylo
$_SERVER["HTTP_ACCEPT_LANGUAGE"];

který ukazuje furt cs..

Plz existuje vubec script, kterej vypíše správnej jazyk?

Díky moc!
karbon
Profil *
Tam záleží, co měli ti Češi, Slováci či Španělé v prohlížeči za jazyk. V prohlížečích je často možnost změny jazyka, tak si ten skript můžete zkusit pro různé jazyky.
Costím
Profil *
No ale vždyť Slováci i Španělé meli svůj jazyk.. a ne český jazyk =)
Je to jako by to bralo jazyk ze serveru a ne z prohlížeče...
Prosím jak to udělat aby to fungovalo ? Nikde to fakt nejde najít... všude stejnej script...
AM_
Profil
Costím
Poslal sem to do španělska - vypsalo to - cs
Poslals to tam poštou a vypsalo to na kus papíru? musíš se přesně vyjádřit. Komu jsi co poslal (předpokládám, že link), co (která instance toho skriptu) kam vypsalo cs....

Tobě to pochopitelně vždycky bude vypisovat cs, jim zase jejich jazyk...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: