Взято из MicroMVC framework .Следующее ищет 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 и библиотека ICU INTL.*
$ sudo apt-get install php5-intl