请帮助任何 JavaScript 函数检索浏览器语言代码,因为现在的服务用户表或当前会话语言集可能会丢失。
gs.getSession().getLanguage() 将检索当前会话预定义语言,但我想获取浏览器语言/语言代码作为备份。
navigator.语言 || navigator.userLanguage 似乎不起作用,因为它会显示导航器未定义的错误。
还尝试创建一个新的脚本包含类,但似乎不起作用,如下所示:
var BrowserLocaleUtil = Class.create();
BrowserLocaleUtil.prototype = {
initialize: function() {},
getBrowserLocale: function(request) {
var acceptLanguage = request.getHeader('Accept-Language');
if (acceptLanguage) {
var languageTag = acceptLanguage.split(',')[0];
return languageTag;
} else {
return 'en';
}
},
type: 'BrowserLocaleUtil'
};
并调用其他脚本 var browserLocaleUtil = new BrowserLocaleUtil();
var browserLocale = browserLocaleUtil.getBrowserLocale(current.request);
您的脚本应使用以下行:
var acceptLanguage = GlideTransaction.get().getRequest().getHeader("Accept-Language");
以下线程中提到了此方法:https://www.servicenow.com/community/developer-articles/howto-automatic-server-side-language-selection-for-the-login/ta-p/2301146 没有 GlideTransaction 的文档,因此需要一些测试。 对于客户端脚本,您可以使用:
navigator.language