2015-04-24 25 views

回答

2

有很多方法自动检测用户区域,但我不知道任何完美的解决方案。全部取决于您的确切要求。例如,可以使用navigator.language || navigator.browserLanguage。例如,您将获得像"en-US"这样的字符串。 The old demothe feature request演示了navigator.language || navigator.browserLanguage的用法。

用户仍然可以在Web浏览器的设置另一种语言的首选项:

enter image description here

等网页浏览器将包含在HTTP请求到服务器Accept-Language头:

Accept-Language: de,en-GB;q=0.8,en;q=0.6,en-US;q=0.4,ru;q=0.2,ja;q=0.2 

设置可以在用户使用的不同网页浏览器中有所不同

enter image description here

因此,我建议您为用户提供一些可能性(例如<select>元素)以手动进行选择。

检测到语言后,您需要验证相应的语言是否已经加载。您可以测试是否已在$.jgrid.localesif ($.jgrid.locales[locale] !== undefined))中定义了相应的语言属性。如果未定义,则必须动态加载相应的JavaScript文件。您可以额外测试$.jgrid.defaults.locale的值。该值将在每个区域设置文件中设置。因此,$.jgrid.defaults.locale为您提供有关上次加载的区域设置文件以及有关免费jqGrid的默认区域设置的信息。在创建网格时,仍然可以明确指定locale。有关其他信息,请参见the article