Где сохранить выбранный язык на многоязычном сайте: сессия/cookie или URL?

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

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

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

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

10
задан Joe Ratzer 6 May 2010 в 09:46
поделиться

1 ответ

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

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

19
ответ дан 3 December 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: