You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cognos Report Studio的JavaScript中获取用户偏好Locale变量?

获取Cognos用户偏好语言的JavaScript方法

嘿,我刚好能帮你解决这个问题!你现在用浏览器语言的方式只能拿到客户端的语言设置,没法获取用户在Cognos偏好里配置的默认语言。不过Cognos本身提供了内置的方法和变量来直接获取这个值,分两种常见场景给你说明:

方法一:使用Cognos会话变量(推荐)

在Report Studio的JavaScript中,你可以直接调用Cognos的内置会话变量来获取用户偏好的语言,这是最可靠的方式:

Control.prototype.getCognosLang = function(){
    // 获取用户在Cognos偏好中设置的完整语言代码(比如'en-us'、'zh-cn')
    var fullLang = this.getReport().getVariableValue('account.personalInfo.language');
    
    // 如果你只需要前两位的语言代码(比如'en'、'zh'),可以做截取
    return fullLang ? fullLang.substring(0, 2) : 'en'; // 这里设置默认值为英文,可根据需求调整
}

如果你的Cognos版本是10.x(较旧版本),可以改用系统变量CMN_LANGUAGE:

Control.prototype.getCognosLang = function(){
    var fullLang = this.getReport().getSessionParameter('CMN_LANGUAGE');
    return fullLang ? fullLang.substring(0, 2) : 'en';
}

方法二:通过Cognos API获取用户偏好

在Cognos 11及以上版本,你也可以通过ognosApi对象来直接访问用户的偏好设置:

Control.prototype.getCognosLang = function(){
    // 从用户偏好中获取语言设置
    var userLang = ognosApi.user.preferences.language;
    return userLang ? userLang.substring(0, 2) : 'en';
}

注意事项

  • 确保你的脚本是在Report Studio的自定义控件或者报表级脚本中运行,这样才能正确访问到this.getReport()或者ognosApi对象。
  • 如果获取到的值为空,可以设置一个合理的默认语言(比如示例中的'en'),避免报错。

内容的提问来源于stack exchange,提问作者Gentoozero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:44:47