Google Apps Script获取谷歌表格菜单语言始终返回en-US如何解决?
问题原因
Session.getActiveUserLocale() 获取的是用户Google账号的全局区域设置,和单份Google Sheets文件内单独配置的菜单显示语言是两套独立的配置项,修改表格界面语言不会影响账号全局区域值,因此该方法始终返回固定的账号默认区域代码。
解决方法
要获取当前Google Sheets的菜单显示语言,使用UI对象的getLocale()方法即可,该方法返回的就是当前用户访问表格时的界面显示语言代码,修改后的示例代码如下:
function getCurrentSheetUILanguage() { const menuLanguage = SpreadsheetApp.getUi().getLocale(); return menuLanguage; }
补充说明
- 如果需要获取单份表格文件本身的默认区域配置(和用户个人设置的界面语言无关),可以使用
SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetLocale() getUi()方法无法在单元格自定义函数的运行上下文里调用,如需存储返回值,可以通过自定义菜单触发函数运行,再把结果写入指定单元格
内容的提问来源于stack exchange,提问作者Sami.S
相关产品推荐
相关产品推荐

