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

sanu0074

Новичок
Есть список языков на которые переведен сайт:
RU - русский
EN - английский
FR - французкий
SE - шведский
DE - немецкий
ES - испанский
Нужно выдать тот язык в зависимости от того откуда зашел юзер. Можно пaрсить user-agent, и выдавать нужный в соответствии с языковым индексом (en,ru,de...). Но тут есть один нюанс, например зашел юзер с Австрии, его языковой индекс AT, такого нет в списке выше, но ему надо выдать - DE - немецкий. Как это определить? можно сделать бд соответствия стран и языков - но это лепить свой велик. Как это сделать по быстрому, есть ли что-то готовое чтоб велосипеды не строить?
 

Absinthe

жожо
Определять язык по стране - это высшая степень идиотизма.
Иногда такие бездари работают даже в крупных компаниях, например в гугле. Судя по всему, это следствие того, что на разработку ПО у них берут не программистов, а математиков и т.д.

А ответ прост: http://www.w3.org/International/questions/qa-lang-priorities.ru.php
 

Активист

Активист
Команда форума
Вы предложите пользователю самому выбрать свой язык сразу ;) Если не хотите - то я бы, как юзер Linux - больше доверял геолокационным данным по IP (International Country Code), потом уже Accept-Languge, ибо локализация бразуера - не главное, особенно в Европе, имхо.
 

Absinthe

жожо
Вы предложите пользователю самому выбрать свой язык сразу ;) Если не хотите - то я бы, как юзер Linux - больше доверял геолокационным данным по IP (International Country Code), потом уже Accept-Languge, ибо локализация бразуера - не главное, особенно в Европе, имхо.
У тебя был сегодня тяжелый день.
По IP можно определить страну - по базам.
Но по стране уже язык никак не определить.

особенно в Европе, имхо.
А нахер мне в Германии немецкий, когда в моем браузере прописаны русский и английский?
 

fixxxer

К.О.
Партнер клуба
Активист, как раз-таки в Европе, где до соседней страны ближе, чем в Сибири до соседнего крупного города, особо актуально Accept-Language.
 

Активист

Активист
Команда форума

sanu0074

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

AnrDaemon

Продвинутый новичок
В чём проблема руками прописать тестируемые заголовки?…
Берём [RFC 5646], пишем детектор, возвращающий одну строчку - выбранный твоим алгоритмом язык, берём curl и вперёд тестировать!

curl -siH "Accept-Language: ru, en" http://example.com/detector.php
curl -siH "Accept-Language: en; q=0.5, ru; q=0.5, *" http://example.com/detector.php
curl -siH "Accept-Language: en-US, en-GB, fr-CA" http://example.com/detector.php
 

AnrDaemon

Продвинутый новичок
Как это относится к тестированию? Как ты собираешься это расширение автоматизировать?
 

AnrDaemon

Продвинутый новичок
Чего только люди ни делают, чтобы избежать автоматизации тестов…
 
Сверху