ServiceNow:如何通过脚本包含或函数调用获取浏览器语言

问题描述 投票:0回答:1

请帮助任何 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);

servicenow servicenow-client-scripts
1个回答
0
投票

您的脚本应使用以下行:

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

© www.soinside.com 2019 - 2024. All rights reserved.