我有一个本地化为十几种语言的网站(Flash),我想根据用户的浏览器设置自动定义默认值,以便最大限度地减少访问内容的步骤.
仅供参考,由于代理限制,我无法使用服务器脚本,因此我猜JavaScript或ActionScript适合解决问题.
问题:
什么是"猜测"用户的语言环境的最佳方法?
是否有任何现有的简单类/功能可以帮助我(没有复杂的本地化捆绑)?特别是以智能方式将所有可能的语言分解为较小的数字(我有的翻译).
我可以相信这样的解决方案?
还有其他解决方法或建议吗?
bobince.. 174
正确的方法是查看发送到服务器的HTTP Accept-Language标头.这包含用户已将其浏览器配置为首选的语言的有序加权列表.
很遗憾,此标头无法在JavaScript中读取; 所有你得到的navigator.language
,它告诉你安装了什么本地化版本的Web浏览器.这不一定与用户的首选语言相同.在IE上你得到systemLanguage
(操作系统安装的语言),browserLanguage
(相同language
)和userLanguage
(用户配置的操作系统区域),这些都是同样无益的.
如果我有这些属性之间做出选择,我会嗅探userLanguage
第一,回落到language
只有经过(如果这些不匹配任何可用的语言),看着browserLanguage
最后systemLanguage
.
如果您可以在网络上的其他位置放置一个服务器端脚本,它只读取Accept-Language标头并将其作为JavaScript文件返回,并带有字符串中的标头值,例如:
var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3';
然后你可以在HTML中包含指向该外部服务的