在本地维护 Excalidraw 插件的中文翻译

其实我只是觉得右键菜单中“插入任意文件”两项翻译得有点太长了,想要缩短一下。

原文

查看插件源码的 rollup.config.js,Excalidraw 似乎也只是将中文翻译文件作为文本读取。

下载插件的 zh-cn.ts,将代码中 export default 及以前的部分删除,改为 x =

image

将 Excalidraw 插件 main.js 中 const PLUGIN_LANGUAGES = 的值改为:

{"zh-cn": LZString.compressToBase64(app.vault.adapter.fs.readFileSync(<翻译文件基于系统的绝对路径>, "utf-8"))}

image

以上就完成了翻译文件的导入。接下来有什么想要修改的翻译就在本地 zh-cn.ts 修改,下次启动 Ob 时生效。

以防有人需要,这是我的 zh-cn.ts 代码的 Gist 地址
完整仓库 PlayerMiller109/action-Sync-External

同 en.ts 统一格式和空白字符后,再添加了修改。

翻译没有优劣之分,自用为主。


结果边改边看,发现翻译确实有不统一和理解起来比较困难的地方。英文原版情况稍好,但由于时间跨度长,前后用词也并非完全统一,表达同一意义的句子结构有时也不尽相同。

对照中英文件、插件维基及作者的 YouTube 视频等,对有疑义的项目查看插件内部如何调用以及实际操作确定,我将这些情况总结并同样分享在代码所在地址。

注意:有一些不被翻译文件控制的默认中文翻译,如 View mode →查看模式、frame →画框等,翻译文件只能和它们同步。

考虑将翻译提交到原插件?

但也许让作者审核数百个并无功能变动的改动并不合适呃?不过如果你已经和插件作者建立了良好的合作关系,想要参考或直接拿去提交也是可以的。

最后,祝端午快乐。

这两天尝试“适配分享的”全自动化流程,刚刚也第一次定时执行成功了。之前说每次更新再改一下 main.js,以及多端同步自己找打包方法之类,现在也可以直接下这个仓库的 release。

虽然形式是插件,重点却是分享翻译及工作流。你可以修改这个工作流去同步更多别的东西。

提示:

PLUGIN_LANGUAGES 原本还有俄语翻译,这里为了方便(和缩小文件体积)只留了中文翻译。

GitHub Actions 定时需要排队。假设工作流指定 10:00 同步,可能 10:30 10:40 才执行。属实是新人杀手了。