返回

gtx-cli@2.4.0 的本地编辑功能

Fernando Aviles avatarFernando Aviles
gtx-clisave-localtranslate

概述

gtx-cli 2.4.0 中,我们新增了一种可直接通过 CLI 保存本地翻译修改的方式。 这意味着你现在可以在本地修改翻译并将更改保存下来,无需打开仪表板,也能让一切与项目保持同步。


save-local 命令

过去,修改翻译内容的唯一方式是通过仪表板编辑器。这样虽然可行,但经常会打断工作节奏,尤其是在开发到一半、你只想直接就地微调翻译的时候。

新的 save-local 命令让你可以将本地的翻译修改提交回 General Translation 项目。你无需离开当前工作区,改动也能保持同步。

npx gtx-cli save-local

运行此命令会上传所有已修改的翻译文件,将你的本地更改合并到项目中,并确保下次运行 translate 时会体现这些修改。


Translate (现已支持感知本地变更)

此前,translate 会始终默认将远程版本的翻译视为唯一可信来源。

如果你在本地做了修改后再次运行 translate,这些改动就会被覆盖。现在已经不是这样了。

现在,当你运行:

npx gtx-cli translate

CLI 会先自动检查本地修改,并像 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 现在会自动保留并合并本地修改。
  • 智能重新翻译逻辑会保留你的本地修改,除非源文发生了实质性变化。