疑似ローカライズ(Pseudolocalization)入門 — 本物の翻訳が来る前にパイプラインを検証する
疑似ローカライズはテスト手法であって、翻訳ではありません。原文を機械的に変換し、アクセント付き文字に置き換え、長さを水増しし、括弧で囲むことで、人間が誰も書いていない「偽の訳文」を生成します。目的はそれを読むことではなく、それを使ってゲームを動かし、何が壊れるかを見ることです。開発のこの段階では、テストに使える本物の翻訳はまだ存在していません。
疑似ローカライズされた文字列の実例
よくある変換は、各原文文字列に対して3つのことを行います。ラテン文字をアクセント付きの見た目が似た文字に置き換え、原文より長くなる言語をシミュレートするために長さをおよそ3分の1水増しし、文字列の境界が画面上で見えるように全体を括弧で囲みます。
// 原文 "Press Start to continue" // 疑似ローカライズ後 "[Ṕŕéśś Śťáŕť ťő čőńťíńúé ẃíťĥ éxťŕá ŕőőḿ]"
何を検出できるか
この変換の各部分は、翻訳者が偶然見つけるまで気づかれずに済んでしまう、特定の種類のパイプライン不具合を洗い出すために設計されています。
- ハードコードされた文字列 — 周囲がすべて疑似テキストに変わっているのに、そこだけプレーンなアクセントなしの原文のまま残っている文字列は、ローカライズパイプラインを一度も通っていない文字列です。多くの場合、文字列テーブルから読まれるのではなくコード内に直接書かれています
- 水増しによるオーバーフロー — 長さの水増しは、翻訳後のテキストが原文より長くなることが多いという事実をシミュレートします。疑似ローカライズの段階でテキストが切れたり、崩れて折り返されたり、隣の要素と重なったりするUI要素は、本物の翻訳が入ったときにも高い確率で同じようにオーバーフローします
- エンコーディング・フォントの問題 — アクセント付き文字や非ラテン系に近い文字は、実際のターゲット言語が必要とするのと同じ描画経路を通します。フォントにグリフが足りなかったり、描画パイプラインがマルチバイト文字をうまく扱えなかったりすると、疑似ローカライズの段階で崩れたグリフや置換ボックスとして即座に表面化します
- 文字列連結のバグ — 括弧のマーカーによって各文字列の開始と終了が可視化されるため、単一のテンプレート文字列を使う代わりに複数の文字列を実行時に連結して画面を作っている箇所では、本来1つの連続した文であるべき場所の途中に括弧が現れることになります
どう生成するか
この変換は文字の置換と長さの水増しという機械的な処理なので、実際の翻訳が将来入る予定の文字列テーブルに対してそのまま実行できるビルドステップとしてスクリプト化でき、誰にも何も翻訳してもらうことなく疑似言語一式を丸ごと生成できます。ここが最大の利点で、翻訳者の工数を一切消費せず、原文の文字列テーブルが変わるたびに自動で再生成できるため、手作業で維持するテストデータでは追いつけない速さで変化する原文にも追随できます。
スケジュール上、いつ実行すべきか
疑似ローカライズは早い段階でこそ価値が高くなります。理想的には文字列テーブルとローカライズパイプラインが存在した時点、翻訳会社に発注するよりずっと前に実行します。早期に実行することで、ハードコードされた文字列やレイアウトのオーバーフローを、まだ修正コストが低いうちに捕まえられます。インターフェースをまだ作っている段階で見つかったUIの問題は単なるデザイン調整で済みますが、本物の翻訳が既に出荷された後に同じ問題が見つかると、実際にはレイアウトの問題だったにもかかわらず、プレイヤーには翻訳品質の問題として映ってしまいます。
文字列テーブルに大きな変更があったとき(新しいUI画面、新しいコンテンツ種別の追加など)にも再実行する価値があります。疑似ローカライズは実行コストが低いため、一度きりのマイルストーンではなく、日常的なリグレッションチェックとして扱えます。