Где хранить выбранный язык на многоязычном сайте: сессия / куки или URL? - PullRequest
10 голосов
/ 05 мая 2010

У меня есть сайт, на котором все его содержание переведено на несколько языков и нет аккаунтов (чтобы установить там предпочитаемый язык). Я могу определить предпочитаемый язык, используя Accept-Language, IP или любой другой. У меня есть 3 способа сохранить выбор языка пользователя:

  1. Определить язык и сохранить его в файле cookie / сессии и разрешить переключение языка (а также сохранить его в файле cookie / сессии)
  2. Использовать обнаруженный язык, если в URL не указан язык, и отображать ссылки на URL на другом языке
  3. Использовать язык сайта по умолчанию и показывать ссылки на другие языки

Хранение языка в URL может быть любого типа: другой домен, поддомен или где-то в URL

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

1 Ответ

19 голосов
/ 05 мая 2010

Сохраните его в URL как часть pathinfo, желательно как можно ближе к имени домена. Например. http://example.com/en/page или http://en.example.com/page. Это не только оптимизирует SEO, но и гарантирует работу с файлами cookie / без сессий.

Вы также можете выбрать комбинацию. Если клиент поддерживает файлы cookie, вы можете использовать их для хранения «предпочтительного» языка. Если эта информация отсутствует в сеансе, то перенаправьте на URL-адрес, который отображает язык, который больше всего соответствует заголовку Accept-Language, и сохраните этот язык в сеансе (который есть в большинстве языков программирования / фреймворков способом, уже поддерживаемым печенье). Если пользователь изменяет эту информацию, то также отражает изменение в сеансе.

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