# General Translation Changelog: gtx-cli 2.4.0 的本地编辑功能: 通过 CLI 保存本地翻译修改
URL: https://generaltranslation.com/zh/blog/local-edits.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Fernando Aviles
Published: 2025-10-21

## 概述

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

*版本说明：本文介绍 2.4.0 的行为。在 `gt` 和 `gtx-cli` 2.16.1 及更高版本中，[`translate`](/docs/cli/reference/commands/translate) 默认运行保存步骤；传递 `--no-save-local` 可跳过该步骤。*

***

## `save-local` 命令

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

新的 [`save-local`](/docs/cli/reference/commands/save-local) 命令让你可以将本地的翻译修改提交回 General Translation 项目。你无需离开当前工作区，改动也能保持同步。

```bash
npx gtx-cli save-local
```

运行此命令会上传所有已修改的翻译文件，将你的本地更改合并到项目中，并确保下次运行 [`translate`](/docs/cli/reference/commands/translate) 时会体现这些修改。

***

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

此前，[`translate`](/docs/cli/reference/commands/translate) 会始终默认将远程版本的翻译视为唯一可信来源。

如果你在本地做了修改后再次运行 [`translate`](/docs/cli/reference/commands/translate)，这些改动就会被覆盖。现在已经不是这样了。

现在，当你运行：

```bash
npx gtx-cli translate
```

CLI 会先自动检查本地修改，并像 [`save-local`](/docs/cli/reference/commands/save-local) 一样在后台将其保存，然后再重新下载翻译。这可以确保本地版本得到保留，并且重新翻译时始终会保留你的修改。

你会看到类似下面这样的内容：

```bash
Starting translation...

Files to translate:
  - src/i18n/en/common.json
  - ...

◒  Updating translations...
◇  Updated translations
```

***

## 当源内容发生变化时

你可能会问：*如果我在本地翻译修改后，又编辑了源文件，会怎样？*
在早期版本中，这会触发一次完整的重新翻译，从而覆盖你自定义的修改。

在 2.4.0 中，CLI 变得更智能了。即使源内容更新触发了重新翻译，你之前的本地修改也会保留，并自动合并到新的译文中。

例如，假设你有这样一个源字符串：

```txt
"I am with my mother"
```

翻译如下：

```txt
"Estoy con mi madre"
```

然后，你在本地做了修改，将 *mamá* 设为优先于 *madre*：

```txt
"Estoy con mi mamá"
```

如果你随后更改了源内容：

```txt
"I am NOT with my mother"
```

重新翻译时仍会尊重你选择的措辞：

```txt
"NO estoy con mi mamá"
```

只要上下文仍然适用，你本地的表述就会被保留。

如果源文本的含义发生了根本变化 (例如，把 *mother* 改成 *father*) ，CLI 会为这段新内容重新触发翻译。

对于直接在代码中管理翻译的团队来说，这就补上了本地编辑与项目同步之间一个长期令人头疼的缺口。你不必再在本地工作和相信仪表板里的文案之间二选一，因为两者会始终保持一致。

***

## TL;DR

* [`save-local`](/docs/cli/reference/commands/save-local) 让你可以通过 CLI 推送本地翻译修改。
* [`translate`](/docs/cli/reference/commands/translate) 现在会自动保留并合并本地修改。
* 智能重新翻译逻辑会保留你的本地修改，除非源文发生了实质性变化。

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
