是否有可能将GAS作为Web应用程序发布,以活动用户的身份执行,并使用Ui Service for user interface获取用户的首选语言和时区?
Session.getActiveUser()
有效,但您只能收到电子邮件Session.getActiveUser().getEmail()
Session.getTimeZone()
返回脚本的时区,而不是用户。
是否有诀窍来获取具有语言首选项的Web浏览器ID字符串?
答案 0 :(得分:3)
Session.getActiveUserLocale()于2014年推出,旨在提供此功能。
答案 1 :(得分:2)
这是一个非常有趣的问题。我认为简短的回答是现在没有好方法,你必须要求用户提供他们的语言环境/语言。
我没有看到使用您已经讨论过的API在服务器端执行此操作的方法。但是,我想也许有一种聪明的方法可以在客户端执行此操作,并在从google.script JS调用获取区域设置信息后使用navigator.language API将其发送到服务器。
不幸的是,由于您的网络应用中的HTML / JS通过Caja进行了安全清理,因此只会暴露部分普通window.navigator属性。似乎唯一有用的properties是userAgent和platform。语言似乎无害,无法公开,因此值得在Issue Tracker中记录请求。