[英]Localizing Google Add-ons
我们有一个已发布的 Google 文档插件。 我们需要 5 种不同的语言。 我们正在阅读Internationalizing Your App文档。 它主要描述了如果您要发布 Chrome 扩展程序 (uploading.zip),该怎么做。 然而,Docs 插件是用 Google Apps 脚本编写的。
根据文档我们需要添加:
清单.json
消息.json
“并在您应用的 ZIP 文件中提供一个 _locales 目录”
这就是我们遇到麻烦的地方。 我们如何在 Google Apps 脚本中添加文件夹以及如何添加 .json 文件? 唯一的选择是脚本文件和 html 文件。
该文档根本不适用于Google Apps脚本 ,但适用于Chrome应用 。 所以它不直接适用。
简要介绍一下Google Apps脚本文档,未提及i18n。 它似乎没有任何支持库。
请注意,根据之前关于该主题的问题,您可以使用Session.getActiveUserLocale())
获取用户的语言环境,并实现您自己的i18n。
但是,这可能不会在Web Store本身启用项目i18n。 有一个错误报告描述了这种情况 。
错误报告提到您可以通过使用此过程直接编辑生成的 Chrome应用程序中的区域设置字段/文件夹。 尽管如此,还是没有经过测试。
以下是我们在Vocal中的做法。 它相当简单且易于实现(我们的示例支持英语和西班牙语)。
1. 为您的应用程序中的不同字符串创建一个包含键的字典:
const LANGUAGE_MAP = {
"RECORD_MESSAGE": {
"en": "Record message",
"es": "Grabar mensaje"
},
"RECORD_MESSAGE_TEXT": {
"en": "1. Click here to record your voice",
"es": "1. Haga clic aquí para grabar su voz"
}
}
2. 创建一个 function,它将一个键作为输入,并根据用户的区域设置以正确的语言返回字符串这是使用Session.getActiveUserLocale()
完成的
function translate(key) {
locale = Session.getActiveUserLocale();
if (['en', 'es'].includes(locale)) {
return LANGUAGE_MAP[key][locale]
}
else {
return LANGUAGE_MAP[key]['en']
}
}
CardService.newTextParagraph().setText(translate("RECORD_MESSAGE_TEXT"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.