Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> autowybór języka
warpech
post 19.10.2004, 19:50:40
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.10.2003
Skąd: Gdańsk

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


na czym oprzeć automat decydujący o wyborze języka strony głównej serwisu? znacie jakieś sprawdzone, skuteczne metody? mam oczywiście chorągiewkę polską i angielską, ale dla wygody uzytkownika przydałoby się automatyczne wykrywanie.

z moich obserwacji wynika, że najdokładniejsza metoda to przeszukiwanie bazy numerów IP, ale to zupełnie niewydajne i nie ma racji bytu na stronie internetowej.
Go to the top of the page
+Quote Post
bregovic
post 19.10.2004, 19:55:05
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Tja... sprobuj znalezc tak jak to robi php.net - oni zdaje sie nie przeszukuja bazy ip, tylko maja jakis algorytm na ip range (a moze pierdziele?).

Ja zawsze uzywam jezyka przegladarki - jesli uzytkownik uzywa dobrej przegladarki (mozilla, opera) to moze sam zdefiniowac jaki jezyk mu najbardziej odpowiada. Zazwyczaj jak potrzebuje zrobic wybieranie jezyka to uzywam zmodyfikowanego skryptu z phpmyadmin'a - jest bardzo ok, jesli tylko wywalic z niego charset'y winksmiley.jpg

edit:
php.net uzywaja bazy ip-to-country - jest tam nawet przykladowy skrypt php!

Ten post edytował bregovic 19.10.2004, 20:00:09


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
wassago
post 19.10.2004, 20:30:46
Post #3





Grupa: Przyjaciele php.pl
Postów: 701
Pomógł: 0
Dołączył: 26.06.2002
Skąd: Londyn

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


alternatywnym sposobem moze byc wyciagniecie ze stringu
  1. <?php
  2. $_SERVER['HTTP_USER_AGENT']; 
  3. // Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3
  4. ?>

jezyka przegladarki.


--------------------
Go to the top of the page
+Quote Post
rogrog
post 19.10.2004, 20:42:26
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


  1. <?php
  2.  
  3. $_SERVER['HTTP_ACCEPT_LANGUAGE']
  4.  
  5. ?>


jest ustawiane przez przeglądarkę, co znaczy że nie zawsze musi być (myślę że wystarczy do Twoich potrzeb bo w razie jakby przeglądarka nie wysyłała tego, co rzadko się zdarza, to zawsze są chorągiewki)

była kiedyś (dosc dawno tongue.gif) dyskusja na temat możliwych wartości tego pola - poszukaj..., powinno byc biggrin.gif


--------------------
Go to the top of the page
+Quote Post
yavaho
post 19.10.2004, 21:02:28
Post #5





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


Ja mam tak: ciasteczka + sesje
Jezeli klient byl juz na tej stronie i recznie wybral jezyk to zapisuje jego wybor w ciasteczkach.

Po pierwsze sprawdzam czy ma ciasteczko.
Jezeli nie ma ciasteczka to pobieram jezyk przegladarki za pomoca $_SERVER['HTTP_ACCEPT_LANGUAGE'];
W ty miejscu mozna zastosowac inne sposoby.
Jezeli zaden z tych sposobow nie rozpoznal jezyka przyjmuje domyslny jezyl "PL" ale wtedy uzytkownik moze sam dokonac wyboru i zapisze to w ciasteczkach.

  1. <?php
  2. if(isset($_COOKIE['ciacho_lang']))
  3. $_SESSION['lang'] = $_COOKIE['ciacho_lang'];
  4. elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
  5. $_SESSION['lang'] = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  6. else
  7. $_SESSION['lang'] = 'pl';
  8. ?>


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
hawk
post 20.10.2004, 08:21:01
Post #6





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


@yavaho: Tak, ale nagłówek Accept-Language wcale nie ma wartośi "pl" lub "en". No może czasem, przypadkiem. Generalnie to on ma znacznie bardziej złożoną postać i głupio by było gdyby skrypt w tym momencie zgłupiał.

Podobnie jak rogrog, odsyłam to wątku, który o tym właśnie był. Mieliśmy tam burzliwą dyskusję o rzeczonym nagłówku smile.gif
Go to the top of the page
+Quote Post
rogrog
post 20.10.2004, 15:32:47
Post #7





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


dokładnie tak.

@yavaho: twój skrypt nie sprawdza w ogóle czy język z podanej wartości jest w Twoim serwisie dostępny (nawet zakładając że wartości są dwuliterowe) więc skrypt zgłupieje przy pierwszym wejściu z języka, którego nie masz

@warpech: numery IP nie załatwią Ci sprawy, bo przecież nawet jeśli ktoś łączy się z danego kraju to nie musi używać języka tego kraju; do tego dochodzą państwa wielojęzyczne - skąd będziesz znał konkretny język? pomijając już to, że wykluczasz możliwość korzystania przez użytkowników z zagranicznego proxy... generalnie trzeba rozróżnić dwie rzeczy - kraje i języki smile.gif więcej - poszukajcie...


--------------------
Go to the top of the page
+Quote Post
warpech
post 20.10.2004, 23:48:27
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.10.2003
Skąd: Gdańsk

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


właśnie niczego nie chcę wykluczać, tylko szukam sprawdzonej metody

pytam was dlatego, bo znane mi są problemy z zagranicznymi proxy, przeglądarkami które nie mają domyślnie ustawionego polskiego języka i bazy adresów ip o objętości prawie 2MB (jak ip-to-country)

póki co, najlepsza wydaje mi się metoda cookie+język przeglądarki, ale jeszcze poszperam w archiwum. dzięki za pomoc i proszę o więcej sprawdzonych rozwiązań :]

@bregovic - gdzie moge poczytać o tym jak to robią na php.net i dlaczego nie obciąża im to za bardzo serwera?
Go to the top of the page
+Quote Post
bela
post 21.10.2004, 14:00:50
Post #9


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


@warpech: popatrz troche smile.gif masz link "show source" na kazdej stronie


--------------------
Go to the top of the page
+Quote Post
rogrog
post 21.10.2004, 14:11:11
Post #10





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


jeśli chodzi o baze IP to nie jest aż tak straszne obciążenie serwera - jedna tabelka z kilkoma polami, proste zapytanie więc nie powinno byc strasznie wolne


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