DeepL Logo

在一天内为Microsoft Office创建DeepL API插件

DeepL的员工每月都会参与全公司的“黑客星期五”活动,以从事日常工作以外的项目。因此,“黑客星期五”是测试我们的API的好机会。我们的用户也会受益于其结果。事实上,我们近期发布的谷歌表格DeepL脚本就是“黑客星期五”项目的成果!

在2022年9月的“黑客星期五”,DeepL的软件开发员马文·贝克尔(Marvin Becker)提姆·卡登巴赫(Tim Cadenbach)为Microsoft Word创建了DeepL API插件原型,使用户可以在Word文档中直接使用DeepL进行翻译。

概述如下:

我们为什么对这种整合感兴趣?

DeepL在商界被广泛使用。通过DeepL翻译,国际多语言团队可以有效地进行合作,并同时保证公司敏感数据的安全。很多客户希望使用DeepL API创建自己的Office插件,因此在寻找相应资源。我们想亲自了解整合所需的条件,以便在客户有疑问时,我们能更好地帮助他们。 

以下,我们将与你分享我们从中学到了什么。我们还将提供开源代码,以帮助你更快地启动你的项目。

准备好了吗?开始吧! 

步骤零(可选):做一点功课  

如果你是第一次接触Office的API,我们建议你先阅读Microsoft中的了解Office JavaScript API的文档。简而言之,所有的Office产品都提供通用APIAPI参考

在开始步骤前,速览本教程也会让你受益匪浅。 

步骤一:用脚本实验室(Script Lab)建立原型(你也可以使用我们的模型) 

脚本实验室是一个由Microsoft维护的开源项目。脚本实验室允许用户在Excel、Outlook、Word或PowerPoint环境中使用Office JavaScript API。你可以在其GitHub存储库中查看相应的入门教程。

脚本实验室是快速编写代码并查看代码的理想方式,仅由一个JavaScript、HTML和CSS文件组成。因此,我们也使用脚本实验室创建了我们的初始原型。

虽然该原型还不是你可以最终与团队成员分享的实际插件,但它却为你展示了DeepL API的可能性以及你的插件能够提供的用户体验。

你一定还记得在前文我们承诺过的开源代码吧!脚本实验室允许用户导入他人分享的代码,因此我们已经发布了DeepL - Word片段,以便任何人都可以试用。你可以在GitHub上查看该代码。

如使用该代码,你需要一个DeepL API密钥。你可以在此注册账户

然后,仅需复制并粘贴说明中所述的Gist YAML,在第32行的占位符中插入你的DeepL API密钥,你就可以运行我们的片段。

值得一提的是,脚本实验室的片段代码可以在你设置插件模板时重复使用,因此你在脚本实验室所做的工作以后都会派上用场。

步骤二:用Yeoman生成器创建一个Office插件项目

我们已经在脚本实验室中设计了原型,并且掌握了Office脚本的基本知识,我们可以开始使用Yeoman创建一个实际的插件。Yeoman是一个开源工具,简化了新项目的创建。Microsoft有自己的预制模板,通常被称为“Yo Office”。你可以直接使用该模版。 

流程说明如下:Office插件Yeoman生成器

按照设置说明,将脚本实验室的代码复制到你新创建的资源库。你无需完成全部配置,可通过执行“npm run start”立即开始项目。这将启动Word并自动侧载你的插件。

虽然生成的模板在Microsoft自己的代码编辑器VS Code或Visual Studio中效果最佳,你仍可以使用任何IDE进行开发。然而,为了获得更好的编码和调试体验,我们建议你使用Visual Studio。

步骤三:导入DeepL API

实现对DeepL的导入其实很简单:仅需一个JavaScript脚本调用文本翻译端点。对于一个简单原型来说,这已经足够了。如果你想在插件中启用术语表功能,你需要多花点功夫。

我们没有使用DeepL官方的Node.js客户端库,因为该库并不是为客户端的JavaScript代码准备的。如果使用该库调用你的客户端代码,可能会危及你的API密钥安全。

你还可以查看我们分享的GIST文件,以了解详情(从第102行开始)。

步骤四:为Mac用户调试 

近年来,Microsoft为支持Mac用户进行了大量投资。虽然Mac系统很适合.NET核心,但在Windows环境和微软Office应用程序中仍存在不足之处。因此,在Mac系统中很难调试Microsoft的软件。提姆是Microsoft的忠实粉丝,所以他没有任何问题,但Mac用户马文则需要下载Parallels才能正常调试。 

因此我们建议你在Parallels上运行Microsoft Office和Visual Studio代码,以正确调试应用程序,并在附加组件上工作。虽然该方案并不完美,至少可以辅助你完成工作。

步骤五:与用户分享你的插件

Office应用程序中的网络视图用于加载插件,并通过iFrames显示。这意味着你需要将你的插件存储在你能访问的网络服务器上。你可以在Microsoft文档上阅读如何部署和发布Office加载项以了解详情。 

一旦你启动并运行该插件,任何Office管理员都可以通过微软365管理中心将其部署到其组织的用户和群组中。在管理中心部署的插件可以立即使用。

奖励:将你的插件扩展到其他Microsoft应用程序 

你可以很简单地将你的插件扩展到其他应用程序中。Office插件共享很多组件,一个应用程序的插件可以在所有支持的应用程序(Outlook、Word、Excel、PowerPoint、Visio和OneNote)中运行。

然而,所有的应用程序都有不同的事件。在我们的Word例子中,我们一直在使用OnTextSelected,而在Excel中你可能会使用OnColumnSelected或Row。

因此,为了确保你的插件能在其他应用程序中正常运行,你需要每次相应地调整事件和动作。你的大部分代码可以在不同的应用程序中重复使用。  

一般来说,我们建议你把你的具体代码转换成函数,以便重复使用和调用你需要的应用程序的具体内容。我们推荐你阅读资源中心的文章以获取相应知识。

另外,MS学习模块可以为你提供更多帮助。

总结

我们希望你可以受益于该概述!如果你有任何疑问,请随时在GitHub库中用脚本实验室的片段创建问题。  

我们祝愿你在DeepL API - Microsoft Office的旅程中一切顺利。