gtx-cli@2.4.0 中的本地编辑
概览
在 gtx-cli 2.4.0 中,我们新增了一种可以直接通过 CLI 保存本地翻译修改的方式。
这意味着你现在可以在本地修改翻译、保存这些修改,并在无需打开控制面板的情况下,始终让它们与项目保持同步。
save-local 命令
过去,进行翻译修改的唯一方式是通过控制台中的编辑器。虽然可用,但经常打断工作流,尤其是在开发过程中途、只是想就地微调某条译文的时候。
全新的 save-local 命令允许你将本地的翻译修改提交回你的 General Translation 项目。你始终留在自己的工作区中,同时保持改动与项目实时同步。
npx gtx-cli save-local运行此命令会上传所有已修改的翻译文件,将你的本地更改合并到项目中,并确保下一次运行 translate 时能够反映你的修改。
Translate(现在具备本地感知能力)
在此之前,translate 一直都会将远程版本的译文视为唯一可信来源。
如果你在本地做了修改并再次运行 translate,这些修改会被覆盖。现在不再是这样了。
现在,当你运行:
npx gtx-cli translateCLI 会在重新下载翻译之前,自动检查本地修改并在后台保存它们,其方式与 save-local 相同。这样可以保证你的本地版本被保留,并且在重新翻译时始终保留你的修改。
你会看到类似下面的内容:
开始翻译...
待翻译文件:
- src/i18n/en/common.json
- ...
◒ 正在更新翻译...
◇ 翻译已更新当源文案发生变化时会怎样
你可能会想:如果我先在本地改了译文,之后又去编辑源文件会怎么样?
在更早的版本中,这会触发一次完整重译,把你所有的自定义修改都覆盖掉。
在 2.4.0 中,CLI 更智能了。即使源文案更新导致重新翻译,你之前的本地修改也会保留,并自动合并到新的译文中。
比如,假设你有一个源字符串:
"我和妈妈在一起"
其被翻译为:
"我和妈妈在一起"
然后你在本地做了一处编辑,把 madre 改成更偏好的 mamá:
"我和妈妈在一起"
如果你之后更改源文本:
"我没有和我妈妈在一起"
重新翻译时仍会沿用你之前选择的措辞:
"我没和妈妈在一起"
只要上下文仍然相关,你在本地所做的措辞调整都会被保留。
如果源文本的含义被彻底改变(例如把 mother 改成 father),CLI 会针对这一新内容触发一次全新的翻译。
对于直接在代码里管理翻译的团队来说,这弥合了本地编辑和项目同步之间长期存在的恼人差距。你不再需要在本地工作流程和对控制台文案的信任之间二选一,因为两者始终保持一致。
摘要
save-local允许你通过 CLI 推送本地翻译修改。translate现在会自动保留并合并本地修改。- 智能重新翻译逻辑会保留你的本地更改,除非源文本含义发生实质性变化。