AIで作るテンプレート商品の翻訳版、原文だけ直して英語版が古くなった。3ファイルで版ずれを止める見本

日本語版のテンプレートだけを直して、英語版をそのまま渡します。見落としやすい更新漏れです。
ここでは週間計画テンプレートを題材に、原文の版を1.2.0へ上げたのに、英語版だけ1.1.0のまま残る合成見本を作りました。実売や利用者の記録ではなく、販売前の確認手順だけを試すための見本です。
AIに翻訳を頼めば、最初の1回は速く済みます。問題は、原文を直した2回目からです。翻訳文の自然さと、元の内容が最新かどうかは別の確認になります。
言語名ではなく、更新元をファイルに残す
商品フォルダに日本語、英語、韓国語の3版を置くことにします。各READMEの先頭へ、原文を基準にしたsource_versionを入れました。
同じく3つのファイルの版をそろえる検査は、10月21日公開のプロンプト商品の版ずれを見本で再現し、3ファイルを検査するで、プロンプト本文・入力例・変更履歴を対象に扱いました。こちらは原文と各言語の翻訳版の更新元(source_version)を照合する検査です。
product/
└── locales/
├── ja/README.md
├── en/README.md
└── ko/README.md
3つのREADMEは、次のコマンドで作りました。1行目がsource_versionで、コロンの後ろに半角スペースを1つ置き、値は引用符で囲みません。以降の検査スクリプトは、このsource_version: で始まる行だけを読みます。
work="${TMPDIR:-/tmp}/locale-version-check"
mkdir -p "$work/product/locales/ja" "$work/product/locales/en" "$work/product/locales/ko"
cd "$work"
printf 'source_version: 1.2.0\n\n# 週間計画テンプレート\n' > product/locales/ja/README.md
printf 'source_version: 1.1.0\n\n# Weekly planner template\n' > product/locales/en/README.md
printf 'source_version: 1.2.0\n\n# 주간 계획 템플릿\n' > product/locales/ko/README.md
書式が違うと結果が変わります。source_version: "1.2.0"のように引用符を付けると、値が"1.2.0"として読まれてNGになります。source_version:1.2.0のようにコロンの後ろの空白がないと、行が見つからずmissingになります。
この見本で日本語版と韓国語版は1.2.0です。英語版だけは1.1.0です。本文を目で比べる前に、まずこの短い値を照合。
言語を表す値には、国名ではなく言語タグを使います。W3Cは言語タグをハイフンで区切ったサブタグの組み合わせとして説明しています。今回のように言語だけを分けるなら、ja、en、koの短いタグで足ります。W3Cの解説も、区別に必要な場合だけ追加のサブタグを付ける考え方を示しています。
1件だけ古い版を見つける
見本では、各READMEからsource_versionを読み、期待する原文の版と比較するPythonスクリプトを動かしました。次のコードを、productと同じ階層にcheck_locales.pyとして保存します。
from pathlib import Path
import re
import sys
root = Path(sys.argv[1]) / "locales"
expected = "1.2.0"
for readme in sorted(root.glob("*/README.md")):
text = readme.read_text(encoding="utf-8")
found = re.search(r"^source_version: (.+)$", text, re.M)
actual = found.group(1) if found else "missing"
locale = readme.parent.name
if actual == expected:
print(f"OK {locale}: {actual}")
else:
print(f"NG {locale}: {actual} (expected {expected})")
check_locales.pyを置いたディレクトリで、次のコマンドを実行しました。
python3 check_locales.py product
出力はこうなりました。
NG en: 1.1.0 (expected 1.2.0)
OK ja: 1.2.0
OK ko: 1.2.0
英語版の本文を読む前に、更新漏れの候補を1件へ絞れます。ここで止める対象は翻訳の品質ではありません。原文の変更を反映したかどうかだけです。
一括で翻訳し直す前に、変更の種類を分ける
source_versionが違っても、すぐにAIへ全量翻訳を頼むのは早計です。文言の修正、利用条件の変更、リンク先の差し替えでは、確認すべき範囲が違います。
この見本では、原文の変更を次の3つに分けます。
- 誤字や表示崩れは、反映の要否を確認してから小さく修正。
- 手順や利用条件は、対象の全言語版を更新候補にします。
- URLやファイル名は、翻訳後にリンク切れも別項目で確かめます。
AIへの指示には、原文の全文だけでなく変更箇所と新しいsource_versionを渡します。そうしないと、古い文を残したまま、表現だけ整えた翻訳版を返すことがあります。
販売前に確認する順番
翻訳版を商品に含めるかは、購入者像や販売先の記録を見て判断できます。必要になった場合は、次の順番なら確認範囲を狭く保てます。
- 日本語の原文を確定し、版番号を上げます。
- 変更の種類を翻訳対象ごとにメモします。
- 各言語版を更新して
source_versionを書き換えます。 - 確認対象は、全言語版が示す版番号。
- 最後に、各言語版の表示とリンクを読んで確かめます。
版番号だけで、翻訳の読みやすさやリンク先の正しさまでは分かりません。けれど更新元のずれは先に止められます。確認は一段少なくなります。


