Выбор языка веб-сайта - PullRequest
       22

Выбор языка веб-сайта

5 голосов
/ 22 ноября 2011

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

Что дает хорошее начало для добавления выбора языка на веб-сайт?

Мои URL будут

example.com / de / example.com/en/

, чтобы указать текущий язык, плюс набор файлов cookie после того, как я определил исходный язык.

При входе на example.com сначала я проверю наличие (недавних) файлов cookie, затем - ACCEPT_LANG, а затем, если задан конкретный URL с / en /, /de/.

Языквсегда будет частью URL, чтобы разрешить создание закладок, т.е. я буду перенаправлять на example.com/de/, если я определил, что пользователи хотят видеть сайт на немецком языке.

Теперь мой вопрос: что такоепредпочтительный способ в эти дни сигнализировать серверу о выборе пользователей?Я не говорю о визуальном выборе (выпадающий список по сравнению с языковым списком википедии) и о геолокации против ACCEPT_LANG, а о том, что пользователь сигнализирует серверу.Я имею в виду: (при условии, что пользователь находится на английском сайте и хочет переключиться на немецкий сайт)

  1. Выполните мастерство JavaScript на стороне клиента и измените location.href s // en /// de /
  2. Предварительно отрендерить ссылку для изменения языка на сервере (я бы дал возможность отключить ссылки для несуществующих переводов)
  3. Отправить обратно на example.com?lang=de&orig= whichделает перенаправление ответа.Дала бы мне возможность заново заполнить переменные формы, если пользователь решит переключить язык при заполнении полей, но я не уверен в этом.

Другие возможности или что лучше с технической точки зрениявидели?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Мой личный фаворит - в духе решения 3, потому что это означает, что у вас есть конкретный запрос «Изменить язык», в котором вы можете выполнить определенную обработку, например сохранить предпочтение в cookie.

Простое использование клиентской wizardry для изменения URL-адреса не говорит серверу, что пользователь действительно хочет переключить язык. Это может быть просто тот факт, что пользователь попал на эту страницу для конкретного языка из поиска Google / Bing / независимо от того, в каком случае пользователь не выбрал активный язык, следовательно, выбор не должен сохраняться в файле cookie.

(Я не уверен, что понимаю, что вы имеете в виду в решении № 2. Не могли бы вы уточнить?)

Кстати, pleaaaaase, выбор языка без геолокации. Я могу распознать все сайты, которые делают это: они отображаются на голландском языке, потому что я бельгиец, и 60% населения Бельгии являются носителями языка. Неудача для 40% из нас, говорящих по-французски, даже если наш язык принятия установлен на французский: - (

0 голосов
/ 27 ноября 2011

В качестве альтернативы можно использовать пары ключ / значение localStorage, и при загрузке страницы она проверяет, установлено ли предпочтение, и направляет их соответствующим образом. Как и файлы cookie, их можно удалить в любое время, но использование локального хранилища сохраняется во всех вкладках и сеансах браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...