我正在寻找决定网络用户语言的最佳方式,以便内容可以用他的母语呈现。我想知道不同技术的利弊。
我正在关注的几个选项是:
正如我所提到的,我不想深入了解州和城市。我只想根据用户位置/语言切换内容。
你还有其他建议吗?
答案 0 :(得分:3)
取自MicroMVC framework。下面查找可以由Javascript语言选择器设置的cookie - 如果找不到它,则使用用户浏览器发送的设置。
// 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
答案 1 :(得分:1)
使用浏览器的语言
提供易于访问的菜单,以便随时切换语言。
使用Geolocation设置第一个选项也是一个选项,但它不是100%可靠,实际的浏览器语言可以更好地指示用户说的语言。
答案 2 :(得分:1)
在许多情况下,地理位置都会失败。例如,一个说英语的人在旅行/度假时会在乌克兰逗留期间出现错误的语言。我认为大多数用户在浏览器设置中都有正确的语言。
答案 3 :(得分:1)
自动获取浏览器使用的语言($ _SERVER ['HTTP_USER_AGENT']),但提供一个选择框(或其他内容),以便用户选择其他语言。如果你正在使用一个框架(你应该)它应该有一些帮助方法。
我不会使用GeoIP,比如一个美国人在法国度假时浏览你的网站。
答案 4 :(得分:0)
最佳做法是让您的用户从选择器中决定他们的语言。