Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Przekierownie strony w zaleznosci od jezyka przegladarki uzytkownika
kondorekk
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 5.12.2005

Ostrzeżenie: (0%)
-----


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


--------------------
To cholerne wino pozbawia mnie myślenia
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
cornholio666
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Może poczytaj o

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


I sprawdzasz jak jest z Polski to includujesz odpowiedni plik...

Ten post edytował cornholio666 12.02.2007, 17:06:40


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
siemakuba
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@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.
Go to the top of the page
+Quote Post
kondorekk
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 5.12.2005

Ostrzeżenie: (0%)
-----


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.


--------------------
To cholerne wino pozbawia mnie myślenia
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


tak poza tematem... co to za jezyk "szwabski"?
Go to the top of the page
+Quote Post
kwiateusz
post
Post #6


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




Niemiecki smile.gif proszę nie odchodzić od tematu winksmiley.jpg
Go to the top of the page
+Quote Post
siemakuba
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@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.
Go to the top of the page
+Quote Post
kondorekk
post
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 5.12.2005

Ostrzeżenie: (0%)
-----


Fajnie jeszcze raz dziekuje @siemakuba
Pozdrawiam
Konrad


--------------------
To cholerne wino pozbawia mnie myślenia
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:37