Как получить информацию о регионе/стране пользователя в веб-приложении?

Моя основная цель - показать разные страницы людям из разных стран (языков). Я думаю, что это должно быть основано на регионе / стране пользователя, который, я думаю, может быть получен из IP-адреса?

пример: *Для жителей EN, проживающих в сельской местности, они увидят это. www.example.com

*Для японцев они будут отправлены сюда. www.example.com/jp

Также я видел, как некоторые люди говорили, что для достижения этой цели лучше всего использовать язык веб-браузера, который можно получить из заголовка http. Я не знаю, что лучше, каков общий способ и почему..?

Спасибо за ваши советы!

Я использую Flex и Java.


person kinopyo    schedule 03.02.2010    source источник


Ответы (3)


Zolo, вы можете использовать что-то вроде базы данных geoip от maxmind, чтобы легко находить регион/страну/провинцию по IP-адресам, но у нее есть несколько недостатков:

  • VPN и кеши могут давать ложные значения
  • Пользователь не может легко переопределить его.

Использование заголовков Accept: в браузере обычно предпочтительнее, потому что испаноязычный человек в США может установить свои языковые настройки так, чтобы они получали «es» вместо «en», даже если их IP-адрес будет иметь «en».

Когда мне приходилось делать это в прошлом, я получал упорядоченный список предпочтений в логике выбора языка, причем каждый уровень переопределял последующие, если они присутствовали:

  1. Выражает предпочтение пользователя, нажимая значок флага на сайте, хранящийся в сеансе или файле cookie.
  2. TLD домена, где .com ничего не означает (например, mycompany.jp дает вам японский сайт, но mycomany.com не имеет права голоса и переходит на следующий уровень).
  3. Настройка языка браузера из заголовка accept
  4. Лучшее предположение GeoIP
  5. Возврат к английскому языку

Цель, конечно же, состоит в том, чтобы основывать выбор на вещах, которые наиболее точно отражают предпочтения пользователя.

person Ry4an Brase    schedule 03.02.2010
comment
Ry4an, спасибо за ответ. Я думаю, что ваш упорядоченный список предпочтений - лучший способ достичь моей цели. Я все еще новичок, полный мыслей, нехватка технологий ... Ваш ответ дал мне знать возможности. Большое спасибо! - person kinopyo; 03.02.2010

IP2Location предлагает несколько различных способов получения этой информации (у них есть данные, необходимые для определения IP-адреса). Погляди). Это включает в себя веб-сервис, который стоит 49 долларов в год, или вы можете купить данные напрямую у них по той же цене.

person Kaleb Brasee    schedule 03.02.2010
comment
Я думаю, что сначала я бы попробовал некоторые бесплатные услуги IP-геолокации. В любом случае спасибо. - person kinopyo; 03.02.2010

Выяснение языка, который выбирает пользователь веб-приложения...

непростое дело!

См. этот связанный вопрос SO или также этот.

Еще один полезный совет — использовать ключевое слово GeoLocation, хотя нахождение местоположения и языка по выбору — это две взаимосвязанные, но разные задачи.
Например, если геолокация указывает на центр Женевы, предпочтительным языком может быть французский, но почти столь же вероятны немецкий, английский и некоторые другие языки.

Я получил следующие URL-адреса из вышеупомянутых вопросов SO:

Бесплатные службы IP-геолокации

Коммерческие службы IP-геолокации

Для идентификации языка (а не местоположения) удобнее и, как правило, точнее использовать значение "accept-language" в заголовке HTTP, но это также может ввести в заблуждение. Хотя у кого-то может быть установлена ​​японская версия браузера, он/она может предпочесть читать на английском...

Независимо от того, какой язык вы предлагаете пользователям по умолчанию, не забудьте разрешить им легко переключаться на другую версию сайта (и, если возможно, запомнить этот выбор, когда они вернутся на ваш сайт).

person mjv    schedule 03.02.2010
comment
Спасибо за Ваш ответ. Ссылки, которые вы разместили, действительно помогают. - person kinopyo; 03.02.2010