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 はより賢くなっています。ソースの更新によって再翻訳が発生した場合でも、それまでのローカルでの編集内容は保持されます。これらは自動的に新しい翻訳に反映されます。
たとえば、次のようなソース文字列があるとします。
"母と一緒にいます"
which was translated as:
"私は母と一緒にいます"
次に、ローカルで編集して、madre ではなく mamá を優先するようにします。
「私はママと一緒にいます」
後でソースを変更した場合:
"私は母と一緒ではありません"
再翻訳を行っても、あなたが選んだ言い回しは尊重されます:
"私はママと一緒にいません"
コンテキストが有効である限り、ローカルでの文言はそのまま保持されます。
ソースの意味がまったく別のものになった場合(たとえば mother を father に変更した場合)、CLI はその新しいコンテンツに対して再翻訳を実行します。
コード内で直接翻訳を管理しているチームにとって、これはローカルでの編集とプロジェクトの同期との間にあった厄介なギャップを解消します。ローカルでの作業かダッシュボード上のコピーを信頼するかの二者択一を迫られることはもうありません。両方が常に一貫した状態で保たれます。
要約
save-localを使うと、CLI からローカル翻訳の編集内容をプッシュできます。translateはローカルの編集内容を自動的に保持し、マージするようになりました。- スマートな再翻訳ロジックにより、元のテキストの意味に実質的な変更がない限り、ローカルの変更は維持されます。