gdeyaktoya

Рейтинг
0
Регистрация
20.12.2011

Так дело в том, что я уверен, что у 99% таиландцев браузер передаст Accept-Language: th и они будут себе видеть контент на тайском. Хоть мы уже и отошли немного от стартовой темы, но я не пойму, откуда такое навязчивое желание изобрести велосипед?

RFC 2616 section 14:

The Accept-Language request-header field is similar to Accept, but restricts the set of natural languages that are preferred as a response to the request
Maxoud:
Я бы не редиректил. На морде оставил бы тот язык, на котором больше будут искать. Второй язык вынес бы на поддомен чтобы удобнее было вбивать его вручную в адресную строку (например, с визитки). Все остальное сделают ссылки.

т.е. вы предлагаете, если считать основную аудиторию сайта англоязычной, то сделать site.com англоязычным + к нему сабдомены типа ru.site.com. В общем то вариант. Тогда если посетитель с русского сайта захочет английскую версию, и клацнет по соответствующему переключателю - его переслать на site.com или на en.site.com?

куки - это само собой. речь о новых посетителях и ботах.

webrock:
вообще-то было бы круто если двиг определяет страну посетителя и отдаёт ему страницу на его языке... а так ... английский конечно же ...

в общем-то страну определять не такая уж большая проблема. Но неправильный подход, во-первых, по уже упомянутым причинам многоязычных стран, а во-вторых, представьте себе простую ситуацию, вас занесло в Таиланд отдохнуть/поработать, там вы подключили к интернету свой ноутбук и увидели весь интернет на тайском. Если же использовать вещи для того, для чего они предназначены, то таких проблем можно избегать. Например в данном примере ваш ноутбук (точней браузер на нем) скажет, что Accept-Language: ru (ну или какой там у вас) и увидите вы привычный вам интернет в независимости от места нахождения.

Maxoud:
P.S. Я в самом деле забыл в каком виде $_SERVER["HTTP_ACCEPT_LANGUAGE"] отдает данные. Задал пяти браузерам один и тот же набор языков и протестил HTTP-заголовки. Все браузеры отдают разные "q", но предпочтительный язык у всех имеет наибольший "q". А Epiphany отдает голый список, без 'q': "en-us, en, ru, lv'.

Интересно, а порядок перечисления языков в Epiphany соответствует тем приоритетам, которые определились с помощью q в остальных браузерах? Вообще по RFC, если q указан, то q=1

Maxoud, в вашем случае, на моем сайте, вы бы получили английский контент. Просто потому, что он в перечисленом списке первый (кстати в заголовке языки передаются через запятую). Но я совсем не уверен, что ваш браузер передает Accept-Language именно так, без quality value.

Я так понимаю, вы предложили свой вариант. Тем не менее он не отвечает на вопрос, что показывать посетителю (ну и ботам тоже) которые заходят просто на site.com, какой язык? Accept-Language именно для ответа на такой вопрос и был придуман(имхо. мб еще какие причины есть), поэтому вопрос остается открытым, какой вариант поведения сайта выбрать, после того как язык посетителя определен исходя из Accept-Language.