【ITニュース解説】A stale translation passes every check and still tells a different story
2026年11月03日に「Dev.to」が公開したITニュース「A stale translation passes every check and still tells a different story」について初心者にもわかりやすく解説しています。
ITニュース概要
ゲームの多言語翻訳では、元の文章変更で内容が古くなったり、用語や表現が言語内で不統一になる問題が起きる。これらは自動テストで見つけにくいため、元の変更履歴を追跡し、ネイティブによる細やかな確認が品質維持に不可欠だ。
ITニュース解説
システムエンジニアを目指す皆さんへ。ゲーム開発では、世界中のプレイヤーに楽しんでもらうため、多言語対応が不可欠だ。しかし、ただ翻訳するだけでは不十分で、翻訳の品質を維持するのは非常に難しい課題である。この記事では、あるゲーム開発チームが直面した翻訳に関する具体的な問題と、それをどのように解決していったかを紹介する。自動化されたチェックだけでは見逃されてしまうような、根深い問題が存在すること、そしてそれを解決するためにどのような工夫が必要だったかを学ぶことで、ソフトウェア開発における品質保証の重要性を理解できるだろう。
このチームは、自分たちのゲームが英語と中国語をオリジナルとし、その他9つの言語に翻訳されている状況で、当初は機械的なチェックしか行っていなかった。例えば、翻訳が必要な全てのテキストが存在するか、特定の情報(数値や名前など)を埋め込むための「プレースホルダー」が正しく残っているか、あるいは英語が翻訳されずにそのまま残っていないか、といった項目だけを確認していたのだ。しかし、これらのチェックだけでは、世界中のプレイヤーが同じゲーム体験をしているとは限らないという厳しい現実に直面することになった。実際にネイティブスピーカーの協力で画面ごとに確認してもらったところ、自動テストでは決して見つからないような多数の問題が発見された。
最も多く見つかった問題は「翻訳の陳腐化」である。これは、元の英語の文章がゲームの機能変更や、より分かりやすい表現にするために修正されたにもかかわらず、その翻訳が古いバージョンのまま更新されずに残ってしまう状態を指す。翻訳自体は完全で、プレースホルダーも正しく含まれているため、システム上のチェックでは問題ないと判断されてしまう。しかし、プレイヤーにとっては、ゲーム内の説明が実際の動作と食い違うという深刻な問題を引き起こす。例えば、レシピのヒントが「宗派の店」ではなく「商店」で取引するよう指示していたり、特定の機能で不要になったはずの条件が翻訳版ではまだ必要とされていたりした。また、物語の中では、すでに死亡したはずのライバルが生きて登場する場面があったり、主人公が苦労して手に入れたアイテムを師匠が「懇願した」と書かれていたりする翻訳もあったという。
この問題を解決するため、チームは新たな仕組みを導入した。それは、元の英語の文章が翻訳された後にいつ編集されたかという「履歴」を追跡し、該当する翻訳を「疑わしい候補」としてリストアップするレポートを生成するものだ。もちろん、句読点の修正など意味に影響のない変更も含まれるため、リストアップされた全ての翻訳が欠陥であるわけではない。しかし、この履歴を追跡する仕組みがなければ、翻訳が時代遅れになっていることに全く気づくことはできなかっただろう。古い翻訳は時間だけが唯一の手がかりとなるのだ。
次に大きな問題として浮上したのは「用語の不統一」だった。これは、一つの言語の中で同じ概念や機能が二つ、あるいはそれ以上の異なる名前で呼ばれてしまう現象だ。例えば、宗派の「貢献度」が「功績」という言葉で表記されていたり、ある言語ではスキルツリー上では「洞察」と書かれているのに、ゲーム画面の上部バーでは別の言葉で表記され、さらにその言葉が全く別の「ひらめき」というメカニズムを指す言葉と重なってしまっていたりした。また、同じ「神識」という概念が、錬金術の画面ではAという名前、ステータスパネルではBという名前で表示されるといったケースもあった。プレイヤーからすれば、これらはそれぞれ異なるリソースや能力に見えてしまい、混乱を招く。この問題に対しては、各言語ごとに用語集を作成し、全ての用語を一つの統一された名称にまとめることで解決を図った。英語の用語集を基準とし、他の言語もそれに合わせて調整された。
さらに、「言葉遣いの形式のずれ」も問題だった。ロシア語のインターフェースでは、メイン画面ではプレイヤーに対して「カジュアルなあなた」という表現が使われているのに、他の123のゲームプレイに関する文章では「フォーマルなあなた」という表現が使われるなど、一貫性がなかった。これにより、同じメッセージの中でカジュアルな表現とフォーマルな表現が混在する奇妙な状況が生まれていた。解決策として、ゲームプレイ全体では一つの統一された形式(カジュアルな表現)を使用し、アカウント管理やフォーラム画面など、特定の場面では意図的にフォーマルな表現を保持するように修正された。
また、他言語から「借用された文字や句読点」の問題もあった。中国語から翻訳された文字列の中に、日本語の文字列で簡体字の漢字が使われていたり、韓国語の説明文に意味の通じない中国語の漢字がそのまま残っていたりするケースが見られた。さらに、韓国語、ベトナム語、タイ語のテキストでは、自国の句読点ではなく、中国語の全角二点鎖線や六点リーダーが使われている箇所が多数存在した。これらの問題は、各言語の固有の表記ルールや慣習に反するため、プレイヤーに違和感を与える原因となる。チームはこれらの句読点を、各言語で通常使われるものに修正した。簡体字から繁体字への機械的な変換にも問題があった。文字は変換されるものの、中国本土で使われる語彙がそのまま残ってしまい、台湾のプレイヤーが「サーバー」「アカウント」「ログイン」といった言葉を、普段使わない大陸の表現で読まされることになっていた。これに対しても、地域ごとの語彙に修正し、再変換されないよう固定する対応が取られた。
最後に、「テンプレート内の固有名詞」の問題があった。クエストの文章では、「あなたの宗派」「あなたの師匠」「あなたのライバル」といった形で、登場人物や組織の名前を埋め込むための「スロット」が使われている。しかし、英語と中国語以外の言語では、これらのスロットに埋め込むべき固有名詞が用意されていなかったため、全て英語の固有名詞がそのまま表示されてしまっていた。例えば、日本語のクエストカードでは、他の部分は日本語なのに、途中に「Azure Cloud Sect(アズールクラウド宗派)」という英語の固有名詞が突然現れるような状況だった。この問題に対しては、各言語で固有の固有名詞リスト(コデックス)を用意し、テンプレートがその言語のコデックスから名前を参照するように修正された。
これらの経験から、チームは他の開発チームへ重要な教訓を伝えている。自動化されたチェックは、翻訳が存在するかどうかを確認するに過ぎない。その翻訳が最新の状態を保っているかを知るには、時間、つまり翻訳元テキストの更新履歴を追跡することが不可欠だ。そして、その翻訳が一貫性を持っていて、プレイヤーに正しく伝わるかどうかを確認するためには、ネイティブスピーカーの目によるチェックがどうしても必要となる。元のテキストが変更された場合は、その翻訳は「完了済み」ではなく「再確認すべき候補」として扱うべきなのだ。
この一連の出来事は、システム開発において単に機能が動作するだけでなく、ユーザー体験の細部にまで気を配り、品質を継続的に維持することの重要性を示している。特に多言語対応では、自動化と人間の手による確認を適切に組み合わせることで、より良い製品を提供できるという教訓が得られるだろう。