У меня есть сайт со многими людьми со всего мира. Все дело в UTF-8, поэтому люди могут свободно представлять контент и говорить на любом языке, который пожелают - от греческого до английского.
Теперь единственное, что пользователь не может контролировать, - это встроенный язык сайта, используемый для таких вещей, как навигация и инструкции для регистрации. Однако эти строки находятся в языковом файле и могут быть легко переведены.
Так что теперь мне нужно знать, как я могу создать систему, которая будет пытаться автоматически определять предпочитаемый пользователем язык, но при этом разрешать его изменение.
Самый простой способ сделать это - это проверить заголовок Accept-Language
, который браузер пользователей отправляет . Большинство браузеров будут установлены на языке, который хочет пользователь, и даже тогда они могут изменить язык в настройках.
Проблема в том, что пользователи интернет-кафе могут захотеть изменить эти настройки, но не смогут или пользователи могут быть недостаточно компетентны в Интернете, чтобы даже знать о них. Представьте себе тупого американского туриста на каком-то компьютере в другой стране. (Я могу смеяться над ними, потому что я один).
Таким образом, эти люди нуждаются в лучшем способе изменить язык, если они не могут переопределить браузер. Чтобы ответить на это, я подумал, что мог бы реализовать систему на основе URL, такую как site.com/en_us/...
или site.com/fr_ca/...
.
Хорошо, вот как я могу представить, как это работает.
- Новый пользователь A появляется.
- Мой сайт не находит набор файлов cookie для локали
- просматривает и анализирует заголовок языка подтверждения
- проверяет наличие lang dir (чтобы убедиться, что я поддерживаю fr_ca!)
- устанавливает cookie с языком fr_ca
перенаправляет пользователя на site.com/fr_ca
Пользователь A теперь загружает site.com/fr_ca
- Мой сайт находит локальный файл cookie
- Файл cookie локали соответствует языку локали URL
- Пользователь должен хотеть эту локаль
продолжить загрузку страницы
Пользователь B получает ссылку от пользователя A, указывающую на site.com/fr_ca
- Пользователь B загружает страницу, и мой сайт не находит локальный файл cookie
Здесь я как бы потерялся, что делать дальше
- Мой сайт находит, что браузер UserB говорит en_us, поэтому он перенаправляет их
или
- Мой сайт создает локальный файл cookie с помощью fr_ca, и пользователь должен посетить en_US, чтобы это изменить.
Похоже, это довольно надежный способ определения языка, так что я знаю, стоит ли ему регистрироваться или регистрироваться?