# General Translation Changelog: gtx-cli 2.4.0: CLI から翻訳の編集内容を保存
URL: https://generaltranslation.com/ja/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
翻訳を開始しています...

翻訳対象ファイル:
  - src/i18n/en/common.json
  - ...

◒  翻訳を更新しています...
◇  翻訳を更新しました
```

***

## ソースが変更されるとどうなるか

こう思うかもしれません。*ローカルで翻訳を編集したあとにソースファイルを編集すると、どうなるのか？*
以前のバージョンでは、そのたびに翻訳全体がやり直され、カスタムの変更は失われていました。

2.4.0 では、CLI がより賢くなっています。ソースの更新で再翻訳が発生しても、以前のローカル編集はそのまま保持されます。しかも、それらは自動的に新しい翻訳へ反映されます。

たとえば、次のようなソース文字列があるとします。

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

次のように翻訳されました:

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

次に、*madre* ではなく *mamá* を優先するようローカルで編集します:

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

後からソースを変更した場合:

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

再翻訳後も、選んだ表現はそのまま尊重されます:

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

コンテキストが引き続き有効である限り、ローカルでの言い回しは保持されます。

ソースの意味が完全に変わった場合 (たとえば、*mother* を *father* に変える場合) 、CLI はその新しい内容に対して新たに翻訳を実行します。

コード内で翻訳を直接管理しているチームにとって、これによりローカル編集とプロジェクト同期のあいだにあった厄介なギャップが解消されます。ローカルで作業するか、ダッシュボード上の文言を信頼するかで、もう悩む必要はありません。どちらも一貫した状態に保たれるからです。

***

## 要点

* [`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.
