Как правильно определить локализацию посетителя и присвоить нужный язык для контента?

Sanu0074
На сайте с 31.08.2012
Offline
110
894

Есть список языков на которые переведен сайт:

RU - русский

EN - английский

FR - французкий

SE - шведский

DE - немецкий

ES - испанский

Нужно выдать тот язык в зависимости от того откуда зашел юзер. Можно пaрсить Accept-Language, и выдавать нужный в соответствии с языковым индексом (en,ru,de...). Но тут есть один нюанс, например зашел юзер с Австрии, его языковой индекс AT, такого нет в списке выше, но ему надо выдать - DE - немецкий. Как это определить? можно сделать бд соответствия стран и языков - но это лепить свой велик. Как это сделать по быстрому, есть ли что-то готовое чтоб велосипеды не строить?

[umka]
На сайте с 25.05.2008
Offline
456
#1

Парсить нужно не user-agent, а accept-language.

Там язык будет определён более точно.

Например, для Германии "de", для Австрии - "de-at".

Берём первые буквы и вперёд!

Для всех остальных выдаём дефолтный.

Лог в помощь!
Sanu0074
На сайте с 31.08.2012
Offline
110
#2

[umka], спасибо, вот нашел хороший материал по теме http://habrahabr.ru/post/159129/

Sanu0074
На сайте с 31.08.2012
Offline
110
#3

А есть ли какой-нибудь сервис который может проверить работу этого Accept-Language?

Ну например проверку распознания местоположения по IP можно проверить через прокси, а вот как проверить Accept-Language? (только не так чтоб руками прописывать тестируемые заголовки...)

S
На сайте с 23.05.2004
Offline
315
#4
Sanu0074:
например зашел юзер с Австрии, его языковой индекс AT, такого нет в списке выше, но ему надо выдать - DE - немецкий.

Алиасы к языку прописать, как вариант.

Вообще можно не заморачиваться, а делать как гугл - по geoip определяем страну и ее язык используем. В случае если юзер переключился на другой язык, его запоминаем и используем в дальнейшем.

Это просто подпись.
Sanu0074
На сайте с 31.08.2012
Offline
110
#5
Stek:
по geoip определяем страну и ее язык используем

Определять язык по стране - это очень глупо.

По IP можно определить страну - по базам.

Но по стране уже язык никак не определить.

А есть ли какой-нибудь сервис который может проверить работу этого Accept-Language?
Ну например проверку распознания местоположения по IP можно проверить через прокси, а вот как проверить Accept-Language? (только не так чтоб руками прописывать тестируемые заголовки...)

по этой теме я нашел: https://chrome.google.com/webstore/detail/quick-language-switcher/pmjbhfmaphnpbehdanbjphdcniaelfie?hl=ru

а по определению языка вот: http://habrahabr.ru/post/159129/

S
На сайте с 23.05.2004
Offline
315
#6
Sanu0074:
Определять язык по стране - это очень глупо.

Гугл так и делает. С учетом того, сколько он вкладывает денег в адаптацию своих факторов, он наверное мега глуп.

Sanu0074:
Но по стране уже язык никак не определить.

Серьезно ? Фейсбук, гугл, микрософт - определяют по гео локации. Но конечно хабр, где платят по 100р (или какая сейчас такса) за статью, знает куда лучше.

Я в данном случае лучше буду придерживаться логики гугла, ибо он на свою аналитику наскреб тучу данных.

Плюс настройки языка в браузере сейчас только гики меняют. В остальных случаях смена языка запоминается сайтом и используется в дальнейшем.

Sanu0074
На сайте с 31.08.2012
Offline
110
#7
Stek:
Гугл так и делает. С учетом того, сколько он вкладывает денег в адаптацию своих факторов, он наверное мега глуп.

да, я тоже задавался этим вопросом, но всеже остаюсь при своем мнении. Ведь объясниний то нет, почему по гео будет лучше....

SeVlad
На сайте с 03.11.2008
Offline
1609
#8
Stek:
Гугл так и делает.

Гугл вооще делает что хочет. И это не всегда на пользу или правильно :) Яша, кстати, тоже в некоторых местах не даёт переключится на русский и подсовывает мне хелпы на укр.

Но вообще нужно отличать мультиязычные и мультирегиональные сайты.

Если юзеру нужно выдать яз. версию - это по accept-language, а если инфу для его региона - по ИП.

user-agent нужен для выдачи страницы в удобоваримом форматировании для этого ЮА.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий