初めての多言語対応のやり方:判断から公開後までのロードマップ
自分のゲームを一つ以上の言語で出すと決めたとします。決めること自体は簡単な部分です。そのあとに続くのは細かい判断の連なりで、最初の一本がうまくいかない理由は、翻訳そのものであることはほとんどありません。工程の順番が違うために、やった作業を捨ててやり直すことになるのが原因です。
いちばん高くつく間違いは、翻訳から始めてしまうことです。文章を並べたスプレッドシートを翻訳者に送り、返ってきてから、ゲーム内テキストの半分がそのシートに入っていなかったこと、訳文がボタンに収まらないこと、そもそも訳したファイルをビルドに戻す仕組みが存在しないことに気づきます。
実際に機能する順番はこうです。範囲を決める、テキストを取り出せる状態にする、訳す、組み込んで文脈の中で確認する、ストアページと一緒に出す、公開後も回し続ける。以下では各段階について、何を決めているのか、初めての一本での現実的な選択肢は何か、飛ばすと何が起きるかを説明します。
始める前に、どこまでやるかを決める
最初に決める問いは二つです。どの言語にするか、ゲームのどこまでを対象にするか。どちらも技術ではなく事業の判断です。
言語については、最初から何言語も同時に足したくなる気持ちを抑えてください。言語を一つ増やすと、増えるのは翻訳費用だけではありません。UIはすべての言語で収まる必要があり、フォントはすべての文字を持つ必要があり、今後のパッチはすべての言語に訳す必要があり、不具合報告は自分が読めない言語で届きます。きちんと対応して更新も続ける一言語は、一度やって放置される四言語より価値があります。すでに需要の証拠がある言語を選んでください。ウィッシュリストやトラフィックのデータに出ている地域、コメントで要望が来ている言語、実況してくれた人の言語です。
範囲については、「対応した/していない」の二択ではないことを理解してください。ストアページだけを訳すのは、費用がごく小さく、その言語のプレイヤーが買うかどうかを判断できるようになる、正当な出発点です。物語が任意要素のゲームなら、UIだけ訳して本文を残すのも成立します。テキスト全訳は目標としては当然ですが、最初の一歩である必要はありません。重要な原則は一貫性です。境界がはっきりしていて、ストアページがそれ以上を約束していなければ、部分的な対応でもプレイヤーは受け入れます。受け入れられないのは、メニューは自分の言語なのにチュートリアルが読めない、という状態です。
この二つは、何かに手を付ける前に文章にして残してください。以下の工程はすべてこの二つに形を規定されます。
テキストをコードの外に出す
この段階が、残りの工程が楽になるか地獄になるかを決めます。作業は完全にエンジニアリングで、翻訳者はまだ登場しません。目標は、プレイヤーが目にするすべての文が、書き出せるファイルの中にあり、コードは文言そのものではなく安定したキーで参照している状態です。
実際には、ゲームを一通り見て、表示されるすべての文字列をリソースファイルに移していきます。形式そのものより運用の規律のほうがはるかに重要で、初めての一本なら CSV でも JSON でも構いません。各行には、内容ではなく「どこで使われるか」を表す識別子を付けます。そうしておけば、文章を書き直してもキーは生き残ります。この作業中に必ず出てくるのが次の四つで、どれも訳文が納品されてから直すより、いま直すほうがはるかに安く済みます。
- 断片をつなぎ合わせて作っている文。前半の文字列とアイテム名と末尾の記号を連結して「〜を見つけた!」を作っているコードは翻訳できません。語順も、アイテムの前後に付く助詞や冠詞も言語ごとに違うからです。連結をやめ、翻訳者が位置を動かせるプレースホルダーを含む一つの文字列にします
- 画像に焼き込まれた文字。看板、ロゴ、チュートリアルの図解、絵の中に文字が描き込まれたボタンはファイルの中に存在せず、誰も訳してくれません。言語ごとに画像を用意するか、文字を実行時に上から描画する設計に変えます
- 対象言語の文字を持たないフォント。字形のない文字は空の四角として表示され、訳文がどれだけ正しくても直りません。日本語・中国語・韓国語に入るときに最も痛い目を見ます。一文字も発注する前に収録文字を確認してください
- 伸びる余地のないUI。訳文は原文より長くなるのが普通で、ドイツ語・ロシア語・フランス語では目に見えて長くなります。折り返す・広がる・文字サイズを縮めるテキスト枠が、この段階で仕込める最も安い保険です
key,ja,en menu.settings.title,設定,Settings shop.notEnoughGold,ゴールドが足りません。,Not enough gold. quest.forest.accept,調べてみるよ。,I'll look into it.
訳す手段を選ぶ
ここでようやく翻訳が始まります。この時点で、ファイルと文字量と対象範囲の一覧が手元にあります。以下のどの選択肢も、回答を出すために必要としているのはまさにその三つです。
手段を選ぶ前に、誰に渡すかと同じくらい何を渡すかが効くことを知っておいてください。情報なしで作業した翻訳者からは、直訳的で平板な、ときに誤った訳文が返ってきます。不注意だからではなく、「炎」が呪文名なのかコマンドなのか属性なのか動詞なのか、シートのどこにも書かれていないからです。曖昧な行には一行の文脈メモを、キャラクター一覧と各人の口調を、固有名詞と確定訳をまとめた用語集を、決まった枠に収める必要があるものには上限文字数を添えてください。可能ならビルドか動画も渡します。この一式は、以下のどの手段を選んでも結果を良くします。
- ゲーム専門の翻訳者 — 品質が最も高く費用も最も高い。トーン、キャラクターの口調、文化的な言及を安定して扱えるのはこの選択肢だけです。予算が小さくても、物語テキストとストアページは優先して回す価値があります
- バイリンガルの知人 — 初めての一本では非常に多い選択肢で、範囲を決めた仕事として扱い、結果を誰かがレビューするなら十分に成立します。二言語を話せることと、その言語でゲームのテキストを書けることは別の技能です
- 機械翻訳・AI翻訳+人のレビュー — 反復の多いUI文字列には現実的で、言葉遊び・トーン・固有名詞が絡むものには危険です。間違っていることを自分から教えてはくれないので、レビュー工程は省略できません
- コミュニティ・有志翻訳 — 善意は本当に存在しますが、仕組みが要ります。範囲の合意、クレジット、用語集、そして何を製品に入れるかを最終決定する人が必要です
組み込んで、ゲームの中で読む
完成品を待たず、部分的なファイルでよいので早い段階で一度組み込んでください。返ってきたファイルをプロジェクトに戻す工程は、翻訳者の表計算ソフトが文字コードを変えていた、カンマのクオートの仕方が違った、行の並びが変わっていた、といった事故が発覚する場所です。最初の部分納品で気づけば小さな問題ですが、発売前夜に気づけばそうではありません。
新しい言語でゲームが動くようになったら、実際に遊んで表示を見てください。セルの中では正しい訳文が、画面上では壊れていることがあるからです。枠からはみ出す・途中で切れるテキスト、変なところで折り返される行、変数名まで訳されてしまってプレースホルダーが記号のまま出ているところ、字形がなくて空の四角になっているところ、そもそもファイルに入っていなくて元の言語のまま残っている文字列を探します。
そのうえで、普通に遊んでいると到達しない状態を確認します。エラーメッセージ、終了確認、保存容量不足の警告、スタッフロール、実績のポップアップ、初回起動時にしか出ない画面。これらは毎回必ず未翻訳のまま出荷されます。偶然たどり着く人がいないからです。
この作業の大部分は、その言語が読めなくてもできます。レイアウトの破綻、空の四角、記号のままのプレースホルダー、訳し残しは、対象言語を一文字も読めない人にも見えます。自分で見つけるほうが、レビュアーに探してもらうよりはるかに安上がりです。
ビルドとストアページは一つのものとして出す
訳したゲームの手前に訳していないストアページがある、というのは奇妙で、しかも自分の首を絞める組み合わせです。せっかく対応した言語のプレイヤーが、対応したという事実を伝えるページを読めません。ストアの掲載情報 — タイトル、短い説明、詳細説明、スクリーンショット内の文字 — は同じ回で訳すべきで、予算の余りではなく最も良い訳者を当てる価値があります。購入を決める前にプレイヤーが読む唯一のテキストだからです。
対応言語のチェックは、実際に出した内容と一致させ、それ以上は付けないでください。部分的にしかやっていない言語や、レビューを通していない機械翻訳のまま付けた言語は、まさに来てほしくないレビューを呼びます。そしてそのレビューは、テキストを直したあともゲームに貼り付いたまま残ります。
公開後と、現実的な一本目の到達点
多言語対応は終わる仕事ではありません。パッチのたびに文字列が増え、そのたびに同じ経路を通します。ファイルに新しい行が現れ、訳され、文脈の中で確認される。大がかりな仕組みより小さな習慣を作ってください。文字列を追加したらその場でファイルに未翻訳の状態として入れておけば、次の翻訳のときに一覧がすでにできています。誤訳の報告もプレイヤーから届きます。報告先を用意し、何を直したかを記録に残しておくと、苦情の流れが管理できる作業リストに変わります。
初めての一本の、現実的で、しかも十分に良い到達点はこのあたりです。需要が見えたから選んだ追加言語が一つ。全テキストがファイルに出ていて、断片連結と画像内文字も処理済み。物語とストアページは人にお金を払って訳し、反復の多いUIは機械翻訳+人のレビュー。新しい言語で通しプレイを一周し、誰も行かない画面も一巡した。ストアページとビルドを同時に出し、対応言語の表示は正直に付けた。プレイヤーが間違いを知らせてくる経路がある。
全言語対応と比べればずっと小さな話ですが、最初の挑戦としては十分すぎるくらいです。やり直しを強いられない順番で進めた、というだけの理由でそこに届きます。