如何国际化Google Workspace插件?Manifest字段翻译难题求解
可行解决方案及替代方法
一、覆盖侧边栏标题(解决侧边栏标题翻译问题)
你可以通过CardService在构建侧边栏卡片时,动态设置本地化后的标题,完全替代manifest中addOns.common.name在侧边栏的显示:
// 假设你的i18n函数是getLocalizedString,根据用户语言返回对应文本 const sidebarTitle = getLocalizedString('sidebar_title'); const card = CardService.newCardBuilder() .setTitle(sidebarTitle) // 其他卡片构建逻辑 .build(); return CardService.newActionResponseBuilder() .setNavigation(CardService.newNavigation().pushCard(card)) .build();
这样侧边栏顶部的标题就会使用你插件已有的多语言逻辑,不再依赖manifest中的静态字段。
二、处理图标悬浮文本(两种思路)
1. 多区域版本提交(官方支持方案)
由于Gmail插件的图标悬浮文本直接读取appsscript.json中addOns.common.name的静态值,且manifest不支持动态变量,你可以针对需要支持的语言,提交独立的插件版本到Google Workspace Marketplace:
- 为每种语言复制一份项目,修改对应版本的
appsscript.json中addOns.common.name为目标语言文本 - 提交时选择对应的目标区域和语言,用户会根据自己的Google账号语言看到对应版本的插件名称(即图标悬浮文本)
- 用Git分支管理多份代码版本,可降低维护成本
2. 妥协方案:使用通用/多语言兼容文本
如果维护多版本成本过高,可以使用不依赖单一语言的通用文本:
- 使用图标配合极简无歧义英文(如果目标用户普遍理解基础英文)
- 使用 emoji + 简短通用词,比如
📧 邮件助手(对中英用户都友好)
补充说明
目前Google Apps Script的manifest文件确实不支持i18n变量插入,所有字段都是静态编译的,上述两种方法是当前能覆盖问题的可行路径。其中覆盖侧边栏标题是完全解决该部分的最优解,图标悬浮文本则需要根据你的维护成本选择对应方案。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

