1

我正在创建一个网络应用程序,并且我已经在需要了解计算机使用的语言(例如“en-US”,ja)并根据客户使用的内容更改应用程序的语言的部分。

我如何使用javascript来做到这一点?

4

2 回答 2

2

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

查看navigator对象。这是检查标头中的更好方法Accept-Language,但是我不相信您可以仅使用 JavaScript 来做到这一点。

于 2014-03-12T04:01:08.863 回答
0

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

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

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

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

这是首选语言标签列表,如果您的应用程序不支持用户最喜欢的语言,但它支持此列表中的一种,则使用后者进行用户界面翻译是有意义的。
相反,您希望使用最喜欢的语言环境进行格式化(日期、数字等)。

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

于 2014-03-12T07:23:16.373 回答