如何知道电脑使用的语言?

时间:2014-03-12 03:52:08

标签: javascript internationalization i18next

我正在创建一个网络应用程序,我已经在我需要知道计算机使用的语言的部分(例如,' en-US',ja),并基于此更改应用程序的语言客户使用什么。

如何使用javascript进行操作?

2 个答案:

答案 0 :(得分:2)

尝试使用JavaScript进行本地化时存在一些限制。您的大部分工作应该在服务器端以支持您的应用程序。您使用的是纯HTML / JavaScript,还是有服务器端语言?

查看navigator对象。检查标题中的Accept-Language是一种更好的方法,但我不相信只使用JavaScript就能做到这一点。

答案 1 :(得分:0)

不幸的是,无法通过JavaScript访问操作系统区域设置。 JavaScript为您提供的是用户最喜欢的语言(不一定是区域设置,也就是您可能无法获得国家/地区)。要访问此信息,您可能需要使用以下代码:

var locale = navigator.userLanguage || navigator.language;

就个人而言,我不会使用它,因为没有后退机制。因此,例如,如果您没有给定语言的翻译,则您最有可能使用应用程序的默认语言,无论用户是否理解它。正如Cory所建议的那样,更好的方法是使用服务器端language negotiation,但它也有its drawbacks。但是,在服务器端,您将访问Accept-Language标头,其类似于:

   Accept-Language: da, en-gb;q=0.8, en;q=0.7

这是首选language tags的列表,如果您的应用程序不支持用户最喜欢的语言,但它确实支持此列表中的一个,那么将后者用于用户界面翻译是有意义的。
相反,您希望使用最喜欢的区域设置进行格式化(日期,数字等)。

最后但并非最不重要的是,在任何足够复杂的应用程序中,您都可以使用某些用户配置文件。最佳做法是将用户界面语言和格式化语言设置放在其中,并使用Accept-Language作为有效默认值的来源。

相关问题