Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wykrywanie języka uzytkownika/przeglądarki, macie jakieś pomysly jak to zrobić
Dynuel
post 18.06.2005, 13:42:23
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


witam

robię rozne wersje jezykowe na stronie i chcialbym aby skrypt automatycznie wykrywał i ustawiał dany język. czy istnieje możliwość wykrycia domyślnego języka przegladarki/uzytkownika/systemu nie mam pojęcia czego, bynajmniej aby to byl język osoby która przegląda serwis.

szukałem tutaj na forum jak to rozwiązać, lecz niczego nie znalazlem, poza wzmianką o "serwer WWW ma na podstawie nagłówków wysłanych przez przeglądarkę klienta ustalić, którą wersję językową pliku ma mu zapodać (manual do apache'a jest zrobiony w taki właśnie sposóB)" lecz ja bym chciał zrobić to jakoś skryptowo, abym tłumaczenie mógł ładować np. z bazy danych lub pliku.

wielkie dzięki, pozdrawiam


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
strife
post 18.06.2005, 14:32:45
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Znalazłem to:
  1. <?php
  2.  
  3. function orderedLanguages()
  4. {
  5.  $languages = split(&#092;",\", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
  6.  $lang_q = Array();
  7.  foreach( $languages as $aLang ) {
  8.  $lang_array = split(&#092;";q=\", trim( $aLang ) );
  9.  $lang = trim( $lang_array[0] );
  10.  if( !isset( $lang_array[1] ) )
  11.  $q = 1;
  12.  else
  13.  $q = trim($lang_array[1]);
  14.  $lang_q[&#092;"$lang\"] = (float)$q;
  15.  }
  16.  arsort($lang_q);
  17.  //extra code for making the languages key indexed
  18.  $i = 0;
  19.  $lang_index = Array();
  20.  foreach($lang_q as $lang => $q) {
  21.  // $lang_q[$i] = $lang; //add to the same array the index key/language
  22.  $lang_index[$i] = $lang; //add to a new array the index key/language
  23.  $i++;
  24.  }
  25.  
  26.  //return $lang_index; // uncomment for returning array with keys={0..n-1}, values={most..least preferred}
  27.  return $lang_q;
  28. }
  29.  
  30. ?>


źródło: pl.php.net/manual/pl

Możesz do tego dodać coś takiego:
  1. <?php
  2.  
  3. $z = orderedLanguages();
  4.  
  5. foreach($z as $k => $c)
  6. {
  7. if($c == 1)
  8. {
  9. $jezyk = $k;
  10. }
  11. }
  12. echo 'Teraz jest jezyk ' . $jezyk;
  13.  
  14. // ... a potem wczytywanie pliku przez np. switch
  15.  
  16. switch($jezyk)
  17. {
  18. case pl: require_once('polish.php'); break;
  19. case en: require_once('english.php'); break;
  20. default: require_once('polish.php'); break; // jezyk domyslny
  21. }
  22.  
  23. ?>


Zakładając oczywiście że pliki językowe masz w pliku... możesz to sobie przerobić aby wczytywało jakieś rekordy w bazie etc.

pozdro!


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 17.06.2025 - 11:20