Wielojęzyczne strony WWW
Kodowanie znaków
Nie używaj tuzina kodowań ISO, a tylko i wyłącznie UTF-8. To kodowanie potrafi przedstawić praktycznie wszystkie znaki ze wszystkich języków na raz.
Dzięki temu można używać jednego i takiego samego kodowania w HTML, skryptach po stronie serwera, bazie danych, a nawet URL-ach i nazwach plików.
Schemat adresów stron w różnych językach
Używaj osobnych domen albo przynajmniej osobnych ścieżek (katalogów) na różne wersje językowe strony.
Jeśli będziesz umieszczać wszystkie wersje pod tym samym adresem (i np. wybierać język za pomocą cookies albo nagłówków HTTP), to wyszukiwarki nie będą potrafiły zaindeksować wszystkich wersji językowych!
http://pl.example.com http://en.example.com http://de.example.com
lub
http://example.com/pl/ http://example.com/fr/ http://example.com/es/
Gdy będziesz mieć osobne adresy na osobne języki, to przełączanie się między językami będzie bardzo proste — wystarczy, że umieścisz linki do tej samej strony w innych językach.
Możesz zrobić automatyczne przekierowanie statusem 302 z „neutralnej” domeny na domenę preferowanego przez użytkownika języka:
http://example.com/ → http://pl.example.com/
Tworząc przekierowania uważaj na przypadki, gdy użytkownik podaje więcej, niż jeden preferowany język, gdy twoja strona nie ma wersji w żadnym z preferowanych języków i gdy nie da się ustalić, jaki język użytkownik preferuje.
Wykrywanie preferowanego języka
HTTP
ok. 5% użytkowników będzie miało źle skonfigurowane „preferowane” języki.
Listę preferowanych języków przeglądarki podają w nagłówku HTTP Accept-Language:
Accept-Language: pl, en, en-gb;q=0.9, en-us;q=0.8
Lista będzie zawierała języki oddzielone przecinkami, a po nazwie języka opcjonalnie może być wartość jak bardzo jest preferowany. Dokładny opis składni.
IP i domeny
Można odgadnąć kraj, z którego łączy się użytkownik za pomocą bazy IP → kraj lub revDNS, ale:
- użytkownicy mogą łączyć się przez proxy w innym kraju,
- ISP użytkownika może mieć źle skonfigurowaną sieć i kierować dane przez inny kraj (np. AOL UK),
- bazy IP → kraj, szczególnie darmowe, zawierają błędy,
- revDNS może mieć neutralną domenę
.com/.net, itp. - nie każdy zna język kraju, z którego się łączy (np. turysta w kafejce),
- w niektórych krajach używa się więcej, niż jednego języka (np. Kanada).
W przeciwieństwie do listy preferowanych języków wysyłanych przez przeglądarkę, użytkownik zazwyczaj nie ma możliwości zmiany swojego IP.
Ponieważ obie metody nie są 100% skuteczne, zawsze musisz dać możliwość zmiany języka strony.
Unikaj używania flag do symbolizowania języka
Angielski, niemiecki, francuski i hiszpański są używane w wielu krajach. Mieszkańcy tych krajów nie zawsze sympatyzują z krajami, z którymi utożsamiany jest używany przez nich język.
Źródła
- http://www.cs.tut.fi/~jkorpela/flags.html – Flag as a symbol of language — stupidity or insult?
- http://googlewebmastercentral.blogspot.com/2008/08/how-to-start-multilingual-site.html
Zmodyfikowano: 16.08.2009, 23:05
