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 一样在后台将其保存,然后再重新下载翻译。这可以确保本地版本得到保留,并且重新翻译时始终会保留你的修改。
你会看到类似下面这样的内容:
Starting translation...
Files to translate:
- src/i18n/en/common.json
- ...
◒ Updating translations...
◇ Updated translations当源内容发生变化时
你可能会问:如果我在本地修改翻译后,又编辑了源文件,会怎样? 在早期版本中,这会触发一次完整的重新翻译,从而覆盖你自定义的修改。
在 2.4.0 中,CLI 变得更智能了。即使源内容更新触发了重新翻译,你之前的本地修改也会保留,并自动合并到新的译文中。
例如,假设你有这样一个源字符串:
"I am with my mother"翻译如下:
"Estoy con mi madre"然后,你在本地做了修改,将 mamá 设为优先于 madre:
"Estoy con mi mamá"如果你随后更改了源内容:
"I am NOT with my mother"重新翻译时仍会尊重你选择的措辞:
"NO estoy con mi mamá"只要上下文仍然适用,你本地的表述就会被保留。
如果源文本的含义发生了根本变化 (例如,把 mother 改成 father) ,CLI 会为这段新内容重新触发翻译。
对于直接在代码中管理翻译的团队来说,这就补上了本地编辑与项目同步之间一个长期令人头疼的缺口。你不必再在本地工作和相信仪表板里的文案之间二选一,因为两者会始终保持一致。
TL;DR
save-local让你可以通过 CLI 推送本地翻译修改。translate现在会自动保留并合并本地修改。- 智能重新翻译逻辑会保留你的本地修改,除非源文发生了实质性变化。