Jakie są najlepsze praktyki dla stron wielojęzycznych?

Chcę stworzyć wielojęzyczną stronę, tak aby wszystkie lub prawie wszystkie strony były dostępne w dwóch lub więcej tłumaczeniach. Jakie są najlepsze praktyki do naśladowania?

Na przykład rozważam te mechanizmy wyboru języka:

  1. Wybór preferowanego języka oparty na plikach Cookie.
  2. na podstawie nagłówka Accept-Language, jeśli plik cookie nie jest ustawiony.
  3. na podstawie GeoIP inaczej (prawdopodobnie).
Coś jeszcze?

Jak inaczej tłumaczenia być serwowane?

  1. jako LANG.example.com/page
  2. jako example.com/LANG/page
  3. jako example.com/page?hl=LANG
  4. ...
  5. któreś z powyższych z przekierowaniem na example.com/page? (Wydaje się być zniechęcony )

Jak upewnić się, że wszystkie tłumaczenia są odpowiednio indeksowane?

  1. Sitemapy ze wszystkimi stronami + poprawny Content-Language nagłówek wystarczy?

Jaki jest najlepszy sposób, aby poinformować użytkowników, że są inne tłumaczenia, ale nie rozpraszać oni?

  1. lista dostępnych języków w nagłówku/stopce/pasku bocznym (jak Wikipedia)
  2. umieść selektor "Wybierz język" obok zawartości

Jaka jest najlepsza polityka wobec brakujących / nieaktualnych tłumaczeń?

  1. nie wyświetlać brakujących stron w ogóle lub wyświetlać stronę w innym języku?
  2. wyświetlanie starego tłumaczenia, starego tłumaczenia z ostrzeżeniem lub strony w innym języku?

Co jeszcze powinienem wziąć konto? Co powinienem zrobić, a czego zdecydowanie nie powinienem?

Author: willcodejavaforfood, 2009-01-28

3 answers

Oprócz odpowiedzi @Quassnoi upewnij się, że masz standardowe identyfikatory językowe RFC 4646( np. EN-US, DE-AT); być może już o tym wiesz. Projekt CLDR jest doskonałym repozytorium danych internacjonalizacyjnych (dane uzupełniające są naprawdę przydatne).

Jeśli tłumaczenie określonej strony nie jest dostępne, użyj mechanizmu rezerwowego języka z powrotem do neutralnego języka; na przykład "DE-AT", "DE", ""(neutralny, np."EN").

Najnowsze przeglądarki i podstawowe systemy operacyjne poprawnie wyświetlą wszystkie znaki wymagane do listy selektora ustawień regionalnych, jeśli strona jest zakodowana poprawnie (polecam wszystkie strony są UTF-8). Upewnij się, że lista locale zawiera zarówno nazwy języka ojczystego, jak i bieżącego, aby umożliwić zarówno rodzimym, jak i obcojęzycznym użytkownikom przeglądanie podanych tłumaczeń, np. "Deutsch (German)", jeśli aktualne locale to EN-*.

Wiele witryn używa ikony flagi, aby pokazać aktualne ustawienia regionalne, ale jest to bardziej istotne dla lokalizacja i niektóre osoby mogą być obrażone, jeśli pokażesz tylko dominującą flagę (np. flaga USA lub Wielkiej Brytanii w języku angielskim).

Warto mieć bardziej widoczny (semi-graficzny) selektor ustawień regionalnych na stronie głównej, jeśli nie został przesłany plik cookie locale, używając kombinacji GeoIP I Accept-Language do określenia domyślnego wyboru ustawień regionalnych.

Semi-related: jeśli użytkownicy znajdują się w różnych strefach czasowych, Dołącz preferencję strefy w profilu konta do wyświetlania czasu wartości w czasie lokalnym. I przechowywać wszystkie znaczniki czasu za pomocą UTC.

 5
Author: devstuff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-28 16:07:19

Podejmij decyzję, czy potrzebujesz wsparcia dla języków, które wymagają znaków dwubajtowych na początku (chiński, japoński, koreański, itp.), Unicode jest preferowanym wyborem. Późniejsza zmiana może być uciążliwa, zwłaszcza jeśli masz bazę danych, która nie używa unicode.

 4
Author: Fredriku73,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-28 14:30:34
  1. wybór oparty na plikach Cookie preferowany język.
  2. na podstawie nagłówka Accept-Language, jeśli plik cookie nie jest ustawiony.
Tych dwóch powinniście wspierać.

Umieść duży angielski baner na górze swojej strony, który czyta ta strona w języku angielskim.

Jako example.com/LANG/page

To najlepszy wybór.

LANG.example.com nie nadaje się do autouzupełniania, a znaki zapytania wyglądają brzydko.

Lista dostępna języki w nagłówku/stopce / pasku bocznym (jak Wikipedia)

Wybierz język dropbox jest mylący, ponieważ nie jest zrozumiały, gdy jest napisany w niewłaściwym języku obcym i psuje ogólne wrażenie, gdy jest napisany w języku angielskim.

I zawsze popełniasz błąd wybierając język, w którym nie masz nawet czcionek, aby zostawić siebie na stronie pełnej znaków zapytania.

Wyświetl stare tłumaczenie z ostrzeżeniem

Wiesz, że jest coś, co można przeczytać i dostać punkt, ale dla szczegółów lepiej dostać słownik i przeczytać go w języku angielskim.

 4
Author: Quassnoi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-28 14:37:54