В дополнение к ответам @ Quassnoi убедитесь, что вы используете стандартные идентификаторы языка RFC 4646 (например, EN-US, DE-AT); Вы, возможно, уже знаете об этом. Проект CLDR является отличным хранилищем данных интернационализации (дополнительные данные действительно полезны).
Если перевод определенной страницы недоступен, используйте механизм возврата к нейтральному языку; например "DE-AT", "DE", "" (нейтральный, например, "EN").
Большинство современных браузеров и базовых операционных систем будут правильно отображать все символы, необходимые для списка селектора языка, если страница закодирована правильно (я рекомендую все страницы в формате UTF-8). Убедитесь, что список языковых стандартов содержит имена как родного, так и текущего языка, чтобы позволить как носителям, так и не носителям языка просматривать указанные переводы, например, «Deutsch (German)», если текущая локаль EN- *
.
Многие сайты используют значок флага, чтобы показать текущую локаль, но это больше относится к местоположению, и некоторые люди могут быть оскорблены, если вы показываете только доминирующий флаг (например, флаг США или Великобритании для английского языка).
Может быть целесообразно иметь более видимый (полуграфический) селектор языкового стандарта на домашней странице, если файл cookie языкового стандарта не был отправлен, используя сочетание GeoIP и Accept-Language для определения выбора языкового стандарта по умолчанию.
Полусвязанный: если ваши пользователи находятся в разных часовых поясах, включите настройку зоны в свой профиль учетной записи для отображения значений времени по местному времени. И сохраняйте все метки времени, используя UTC.