Про мультиязычность и Acсept-Language

kudashevs

Новичок
Вопрос по мультиязычным сайтам. Кто-то в своей практике использует Acсept-Language для извлечения возможного языка клиента? Если не используете, то как поступаете и какие механизмы используете в ситуациях когда нет возможности вытащить язык из url.
 
Кто-то в своей практике использует Acсept-Language для извлечения возможного языка клиента?
Да.
то как поступаете и какие механизмы используете в ситуациях когда нет возможности вытащить язык из url
Так же, как и когда используем - даём пользователю выбрать язык. А хранить выбор можно много где помимо URL.
 

Не подскажете, а что используете для извлечения языков? То есть, понятно, что есть какой-то набор поддерживаемых на сайте языков. Если у клиента ни одного из этих языков в Acсept-Language нет, то мы ему подсовываем дефолтный язык сайта. Если же есть, то подсовываем контент с его языком из Acсept-Language с максимальным приоритетом в нем.

Вот для распарсивания Acсept-Language и получения какого-то набора языков из него, для последующего сравнения, что именно используете?
 
?
Под описание задачи лучше подходит acceptfromhttp, если мы говорим про встроенные механизмы. Однако, это при условии, что первая же локаль с высшим приоритетом нам подошла. А если нет? В этом и вопрос, кто-то вообще заморачивается с этим или in_array(locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']), $languages) и все?
 
Так перебирайте все локали из запроса, авось что и подойдёт, если нет, ставил бы английский, как интернациональный, или по-умолчанию.
 
Так перебирайте все локали из запроса, авось что и подойдёт, если нет, ставил бы английский, как интернациональный, или по-умолчанию.
На авось как-то не привык расчитывать :) Поэтому уже написал небольшое решение этой проблемы под себя.

Но стало интересно, ведь не только у меня такая задача возникла. Поэтому может быть народ чем-то уже пользуется и не надо было изобретать велосипед. Поэтому и интересуюсь, кто чем пользуется и как эту задачу решает.
 
На авось как-то не привык расчитывать
Это была форма речи. Вам надо составить свой список предпочитаемых локалей и сравнить его со списком пользователя.
Есть готовые библиотеки.

Бесполезны чуть менее чем полностью.
 
Идет мужик по улице, смотрит новый магазин. Дай, думает, зайду. Заходит, его встречает улыбающийся продавец и говорит: Здравствуйте, мы очень Вам рады, что бы Вы хотели приобрести?
Мужик подумал и говорит: — Ну, перчатки нужны.
Продавец: — Пройдите, пожалуйста в тот отдел.
Мужик подходит: — Здравствуйте, мне нужны перчатки.
Ему в ответ: — Вам какие летние или зимние?
М: Зимние.
П: Тогда пройдите в вон тот отдел.
М. пошел, спрашивает в очередном отделе: Здравствуйте, мне нужны перчатки.
П: Вам кожаные или нет?
М: Кожаные.
П: Тогда Вам в вон тот отдел.
М: не понял, но ладно, пошел.
Здравствуйте, мне нужны Зимние кожаные перчатки.
П: Вам с натуральным мехом или нет?
М.: С натуральным, конечно.
П: Вам надо в отдел напротив.
М. напрягается, но идет. В новом отделе повышенным голосом говорит:
«Мне нужны перчатки ЗИМНИЕ КОЖАНЫЕ С НАТУРАЛЬНЫМ МЕХОМ».
П: Вам с застежкой или без?
М: С застежкой!
П: Вытяните руку, растопырьте пальчики.
М: Пожалуйста.
П: Вам надо в соседний отдел.
М. (гневно): что это такое, Вы что надо мной издеваетесь?! Дайте мне перчатки, и я уйду.
П: Не волнуйтесь, мы просто хотим продать Вам именно то что Вы хотите, чтобы
Вы получили максимум удовольствия от покупки. Вы перчатки подбираете под это пальто?
М. в раздражении: Да! и идет дальше по отделам.
Подходит к следующему продавцу и с надрывом: — Мне нужные зимние кожаные с натуральным мехом и застежкой на эти руки к этому пальто перчатки!!!
П: Вам застежка нужна на кнопочке или молния?
М (на грани истерики): На кнопочке!!!
П: Вам надо вон к тому продавцу…
В этот момент распахиваются входные двери, в магазин заходит мужик, который
держит на вытянутых руках вырванный с корнем унитаз, по краям которого осталась еще плитка.
Подходит к прилавку и кричит:
Вот такой у меня унитаз, вот такая плитка, жопу я вам вчера показывал, дайте мне, наконец, туалетную бумагу!!!!
 
Анекдот весьма бородат :) И не совсем понятно какое он имеет отношение к использованию Acсept-Language.
 
Как-то Фанат сильно завернул правило бритвы Оккама.
@kudashevs ты слишком усложняешь. Зашёл новый пользователь, проверил список из Acсept-Language, если нет подходящего выставил свой дефолтный язык. Можно, конечно пытаться гадать, проверять регион айпишника, выплевывать дополнительное всплывающее окно - вы точно ваш язык и городить прочий оверхед, но зачем? Если в тебе пришли без Acсept-Language или с мусором там, то гадание языка - это меньшая из проблем.
 
Как-то Фанат сильно завернул правило бритвы Оккама.
@kudashevs ты слишком усложняешь. Зашёл новый пользователь, проверил список из Acсept-Language, если нет подходящего выставил свой дефолтный язык. Можно, конечно пытаться гадать, проверять регион айпишника, выплевывать дополнительное всплывающее окно - вы точно ваш язык и городить прочий оверхед, но зачем? Если в тебе пришли без Acсept-Language или с мусором там, то гадание языка - это меньшая из проблем.
@AmdY вопрос был и остается, используете ли Acсept-Language для определения языка. Если да, то чем его парсите (потому что нам нужен список языков из него, а не один язык как например отдает acceptfromhttp). Если нет использете Acсept-Language, то что тогда используете.

Ни про какие другие механизмы пока речи вообще не было :)
 
Сверху