Где хранить выбранный язык на многоязычном сайте: сеанс/файлы cookie или URL-адрес?
У меня есть сайт, на котором все его содержимое переведено на несколько языков и не имеет учетных записей (чтобы указать предпочтительный язык там).
Я могу обнаружить предпочтительный язык, используя Accept-Language, ip или что-то еще.
У меня есть 3 способа хранения выбора языка пользователя:
- Определить язык и сохранить его в cookie/сеансе и разрешить переключение языка (а также сохранить его в файле cookie/сеансе).
- Использовать обнаруженный язык, если в url нет языка, и показывать ссылки на URL с другим языком.
- Использовать язык сайта по умолчанию и показать ссылки на другие языки
Хранение langage в url может быть любого типа: другой домен, субдомен или где-то в URL
Я думаю о первом случае, так как он позволяет мне отправлять один URL-адрес кому-либо, и он будет представлен им на их предпочтительном языке. Но другое мнение заключается в том, что другой язык означает разные данные, поэтому он должен иметь разную ссылку.
Ответы
Ответ 1
Храните его в URL как часть пути, желательно как можно ближе к доменному имени. Например. http://example.com/en/page
или http://en.example.com/page
. Он не только оптимизирован для SEO, но также гарантированно работает с клиентами cookie/без сеансов.
Вы также можете выбрать комбинацию. Если клиент поддерживает файлы cookie, вы можете использовать его для хранения "предпочтительного" языка. Если эта информация отсутствует в сеансе, перенаправляйте URL-адрес, который больше всего отображает язык, соответствующий заголовку Accept-Language
, и сохраняет этот язык в сеансе (который находится в большинстве языков программирования/фреймворков, уже поддерживаемый печенье). Если пользователь изменяет эту информацию, то также отразите изменение в сеансе.