1

我正在使用 Session.getActiveUserLocale() 在 Google Calendar Workspace 插件(runtimeVersion:V8)中获取用户的语言环境,它适用于我测试过的每种语言 - 除了中文(简体和繁体)。

function onCalendarHomePageOpen(e) {
Logger.log("Language Code: " + Session.getActiveUserLocale());
}

当我的语言在https://myaccount.google.com/language设置为简体中文时,应该返回“zh-CN” ,但它返回一个空字符串。

我知道我可以使用e.commonEventObject.userLocale,但在很多地方都需要语言环境,如果可能的话,我宁愿不传递它。

我有范围https://www.googleapis.com/auth/script.localeaddOns.common.useLocaleFromAppis true,正如我所提到的,它对我尝试过的所有其他语言(包括日语和阿拉伯语)都按预期工作。

这是一个已知的问题?任何人都可以帮忙吗?谢谢!

4

1 回答 1

0

我为此提交了一个错误

Session.getActiveUserLocale() 不返回中文值,在其他语言上工作正常

一定要给它加星,让谷歌知道它会影响你。

复制步骤

  1. 启动新的 Apps 脚本项目。

  2. 将此代码粘贴到下面:

    代码.gs

    function onCalendarHomePageOpen(e) {
        Logger.log("Language Code: " + Session.getActiveUserLocale());
    }
    
  3. 用这个替换清单:

    appscript.json

    { 
       "timeZone":"Europe/Madrid",
       "addOns":{ 
          "calendar":{ 
             "homepageTrigger":{ 
                "runFunction":"onCalendarHomePageOpen",
                "enabled":true
             }
          },
          "common":{ 
             "logoUrl":"https://ssl.gstatic.com/docs/script/images/logo/script-64.png",
             "name":"MRE Chinese Locale",
             "useLocaleFromApp":true
          }
       },
       "oauthScopes":[
          "https://www.googleapis.com/auth/script.locale",
          "https://www.googleapis.com/auth/calendar.addons.execute"
       ],
       "exceptionLogging":"STACKDRIVER",
       "runtimeVersion":"V8"
    }
    
  4. 转到部署 > 测试部署 - 选择类型“添加”,然后为您的帐户安装它。

  5. 打开执行页面。

  6. 在新选项卡中转到https://calendar.google.com/并加载后,在侧边栏中您应该会看到应用程序脚本的图标。单击图标以打开侧边栏。这将触发该功能。

  7. 返回执行页面。

  8. 在另一个新标签中,转到https://myaccount.google.com/u/1/language

  9. 将您的首选语言更改为中文、简体或繁体

  10. 刷新日历页面并再次打开侧边栏。

  11. 检查执行页面。

预期结果:

我的账号原来是英文的,输出Language code: en的,我改成西班牙文的,输出Language code: es的。对于中国人,我期望Langauge code: zh

实际结果:

Language Code:- 没有中文的语言代码。

于 2021-05-12T08:08:36.797 回答