Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Przekierownie strony w zaleznosci od jezyka przegladarki uzytkownika
Forum PHP.pl > Forum > Przedszkole
kondorekk
Witam wszystkich.

Proszę napiszcie mi czy jest jakiś sposób na coś takiego:
Mam trzy proste pliki .php (.php bo mam na nich formularz kontaktowy) jeden z tekstem w języku polskim, drugi angielskim i trzeci szwabskim. i chciałbym, aby te strony wczytywały sie oglądającemu w zależności od używanego przez jego przeglądarkę jezyka.
Czyli Anglik używający np Firefoxa z angielskim zobaczy ten plik po angielsku, Polak uzywający spolszczonej wersji Firefoxa po polsku itd.

myślałem, żeby zastosować trzy oddzelne pliki jezykowe i je includować, ale nie wiem czy dla tak prostej konstrukcji jest to konieczne.

Dziekuję z góry za jakies info na ten temat.
Pozdrawiam
Konrad
cornholio666
Może poczytaj o

  1. <?php
  2. $_SERVER['GEOIP_COUNTRY_CODE'];
  3. ?>


I sprawdzasz jak jest z Polski to includujesz odpowiedni plik...
siemakuba
@cornholio666 - tobie też przydała by się lektura na ten temat ;) to, że serwer na którym pracujesz być może udostępnia odpowiedni moduł Apache (GeoIP) wcale nie znaczy że inne serwery też go mają. Więcej, jestem gotów się założyć, że większość jednak nie obsługuje ;)

Lepiej chyba zajrzeć do $_SERVER['HTTP_ACCEPT_LANGUAGE'].
U mnie ma wartość
Kod
pl,en-us;q=0.7,en;q=0.3


Pozostaje później tylko przetworzyć te informacje, zdecydować czy obsługujemy język główny (pl), czy może kolejny (en-us). Jeżeli żadnego nie obsługujemy, pokazujemy domyślny.

pozdr.
kondorekk
Dzieki siemakuba
czyli mógłbym zastosowac takie coś
  1. <?php
  2. $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  3. switch($lang) {
  4. case 'pl': $redirect = 'include/polski.php';
  5. break;
  6. case 'en': $redirect = 'include/english.php';
  7. break;
  8. case 'de': $redirect = 'include/deutsch.php';
  9. break;
  10. default: $redirect = 'include/english.php';
  11. }
  12. header ('location: $redirect');
  13. ?>

i powinno działać, a najwyżej dodatkowo gdzieś u góry gify flag z bezpośrednim przekierowaniem na odpowiedni plik językowy.
Crozin
tak poza tematem... co to za jezyk "szwabski"?
kwiateusz
Niemiecki smile.gif proszę nie odchodzić od tematu winksmiley.jpg
siemakuba
@kondorekk: no prawie takie :) Wszystko jest OK, poza tym, że $_SERVER['HTTP_ACCEPT_LANGUAGE']; niekoniecznie będzie zawierał dokładnie string 'pl', 'de' czy 'en'. Musisz jeszcze ten string zbadać na okoliczonść sprawdzenia co tam w nim sie ukrywa.
Ja stosuję coś mniej więcej takiego:

  1. <?php
  2. $lng = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
  3. preg_match_all('/(en|de|pl)/i', $lng, $matches);
  4. ?>


W tablicy $matches będziesz miał znalezione języki, spośród oczywiście tych podanych. Pierwszy z języków ($matches[0]) to domyślny język przeglądarki.

pozdr.
kondorekk
Fajnie jeszcze raz dziekuje @siemakuba
Pozdrawiam
Konrad
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.