Если вы выберете самый популярный на данный момент выбор - geoIP - без дальнейшего рассмотрения, вы не окажете вашим пользователям большую услугу.
Языки и страны не пересекаются.Что вы собираетесь делать с пользователями со швейцарских IP-адресов?Бельгия?Канада?Если вы будете использовать язык большинства в каждом случае, вы будете раздражать постоянных посетителей, которые оказываются частью крупных языковых меньшинств: их будут встречать на «неправильном» языке каждый раз, даже если сайт доступен вих предпочитаемый язык.То же самое относится и к экспатриантам, и, как показывает опыт, меня очень смущает то, что меня встречают, скажем, по-шведски, только потому, что я путешествую в Швецию.(И даже на больших сайтах это не так. На днях я прибыл в лондонский аэропорт Ванкувера, и Google переключил меня на fr_CA.) Не забывайте, что большое количество людей говорят на многих языках или не являются носителями языка большинства своей страны.места жительства.
Вот рекомендации, которым я следую:
- Сначала проверьте, что пользователь говорит о своем вероятном выборе.Самыми простыми способами являются:
- Анализ информации о языке / культуре из строки агента пользователя HTTP ( примеры для Firefox ).Это говорит вам кое-что о версии ОС, с которой они работают, и является очень хорошим показателем предпочтений.Конечно, они могут подделывать пользовательские агенты, но если они делают это, они вряд ли будут удивлены тем, что получают неправильные предварительные настройки.
- Заголовок Accept-Language HTTP(более низкий приоритет, поскольку вы, скорее всего, увидите здесь больше «en», чем у реальных пользователей с английским языком в качестве предпочтения ОС).
- Второй, сохранить пользователяпредпочтение.Если они войдут в систему, спросите их и сохраните как опцию.Если нет, установите cookie (с разумной настройкой срока действия).Таким образом, они будут приятно удивлены, когда вернутся.
- Используйте GeoIP только в качестве последнего средства.