Я ищу лучший способ определить язык веб-пользователя, чтобы контент мог быть представлен на его родном языке. Я хочу знать о плюсах и минусах разных методов.
Немногие варианты, на которые я смотрю, это:
Как я уже говорил, я не хочу погружаться глубже в государства и города. Я просто хочу, чтобы контент на основе местоположения / языка пользователя.
Есть ли у вас какие-либо другие предложения?
Взято из структуры MicroMVC . Далее рассматривается файл cookie, который может быть установлен с помощью селектора языка Javascript, и если он не найден, он использует настройку, которую отправляет браузер пользователей.
// Get locale from user agent if(isset($_COOKIE['lang'])) { $preference = $_COOKIE['lang']; } else { $preference = Locale::acceptFromHttp(getenv('HTTP_ACCEPT_LANGUAGE')); } // Match preferred language to those available, defaulting to generic English $locale = Locale::lookup(config()->languages, $preference, false, 'en'); // Default Locale Locale::setDefault($locale); setlocale(LC_ALL, $locale . '.utf-8'); //putenv("LC_ALL", $locale);
Требуется PHP 5.3 и библиотека INTL ICU.
$ sudo apt-get install php5-intl
Использовать язык браузера
Предоставьте легко доступное меню для переключения языков в любое время.
Использование Geolocation для установки первого варианта также является опцией, но оно не на 100% надежнее, а фактический язык браузера является гораздо лучшим индикатором того, на каком языке говорит пользователь.
Географическое расположение не удастся во многих ситуациях. Например, говорящий по-английски человек на путешествиях / каникулах получает неверный язык, представленный во время пребывания в Украине. Я думаю, что большинство пользователей имеют правильный язык в настройках браузера.
Получите используемый язык браузера ($ _SERVER ['HTTP_USER_AGENT']), но предоставите окно выбора (или что-то еще), чтобы дать возможность пользователю выбрать другой язык. Если вы используете фреймворк (и вы должны), он должен иметь некоторый вспомогательный метод.
Я бы не использовал GeoIP, скажем, парень из США просматривает ваш сайт во время отпуска во Франции.
Лучшая практика – позволить вашему пользователю выбирать свой язык из селектора.