ゲームを英語化する手順:翻訳の前にやること
遊びを届ける執筆にClaudeを使用しています。

ゲームを英語圏のプレイヤーに届けたいと思ったとき、多くの人がまず「テキストをどう翻訳するか」を考えます。しかし実際には、翻訳作業を始める前の設計段階で手を抜くと、翻訳が終わった後に大量の手直しが発生します。文字列がコードに直書きされていたり、UIがアルファベットの長さを想定していなかったりするのは、準備不足の典型的な結果です。 この記事では「翻訳そのものの質」より前の問題、つまり「翻訳が機能する状態にゲームを整える」ための手順と判断基準を説明します。HTMLベースのブラウザゲームを念頭に置いていますが、考え方はほかの形式にも応用できます。
テキストをコードから切り離す
英語化の土台は、ゲーム内のすべての表示テキストを一か所にまとめることです。これを「文字列の外部化」または「i18n(国際化)の準備」と呼びます。
具体的には、ボタンのラベル・説明文・エラーメッセージ・チュートリアルの指示など、プレイヤーの目に触れるすべての文字列をJavaScriptやHTMLの中に直接書くのをやめ、言語ごとのオブジェクト(または外部ファイル)に移します。
// 避けたい書き方
button.textContent = "スタート";
// 準備できた書き方
const labels = {
ja: { start: "スタート" },
en: { start: "Start" }
};
button.textContent = labels[currentLang].start;この構造があれば、翻訳者はlabelsオブジェクトの中の文字列だけを担当できます。コードの読み書きができない翻訳者と協力する場合でも、JSONファイルを渡すだけで作業を分担できます。逆にこの構造がないと、翻訳者がコードを直接触るか、開発者が翻訳テキストを一つずつ貼り直すかのどちらかになり、どちらもミスが起きやすい作業です。
テキストを洗い出す際は、画像に埋め込まれた文字・Canvas要素に描画している文字・動的に生成される文字列(スコア表示の「〇〇点獲得!」など)を見落としやすいので意識して確認してください。
UIが英語テキストの長さに耐えられるか確認する
日本語は文字数が少なくても情報量が多い言語です。「スタート」は4文字ですが、"Start"は5文字でほぼ同じ幅に収まります。しかし「設定」→"Settings"、「ポーズ」→"Pause"のように、英語のほうが長くなるケースも、短くなるケースも両方あります。
問題になりやすいのは、ボタンや吹き出しを固定幅・固定高さで作っている場合です。英語で文字があふれても崩れないよう、以下の観点でUIを見直してください。
- ボタン・ラベル:横幅を固定値ではなくmin-widthとpaddingで制御する。内容が伸びてもレイアウトが崩れない構造にする。
- テキストエリア・吹き出し:高さを固定すると英語で改行が増えたときにはみ出す。min-heightとoverflow: visibleまたは自動高さを検討する。
- フォント:日本語フォントはアルファベットの字形が独特なことがあります。英語圏向けにはシステムフォントかWebフォントで英字の読みやすさを確認してください。
- 行の長さ:英語は単語ごとにスペースで区切られるため、幅が狭いと単語の途中ではなく単語間で改行されます。日本語より広い横幅が必要になる場面があります。
この確認は、仮の英語テキストを実際に入れてブラウザで表示することで行えます。本物の翻訳を待つ必要はなく、"Button Label Here"や"This is a sample sentence."のようなダミーテキストで崩れを確認できます。
言語切り替えの仕組みを決める
テキストを外部化したら、次に「どのタイミングでどの言語を使うかを判断する仕組み」を設計します。主な選択肢は三つです。
ブラウザの言語設定を使う
navigator.languageで取得できるブラウザの言語設定を参照し、英語圏のブラウザには英語を、日本語設定のブラウザには日本語を自動で表示する方法です。プレイヤーが何も操作しなくていいのが利点ですが、ブラウザ設定と実際に使いたい言語が異なる場合(例:日本在住の英語話者が日本語設定のまま使っている場合)は対応できません。
URLパラメータやパスで切り替える
?lang=enのようなパラメータや/en/のようなパスで言語を指定する方法です。SNSでシェアしたURLにそのまま言語情報が乗るため、特定言語圏のコミュニティに向けて配布しやすくなります。検索エンジンも言語ごとに異なるURLとして認識するため、SEOの観点でも管理しやすいです。
ゲーム内の言語選択ボタン
タイトル画面や設定画面で言語を選べるようにする方法です。プレイヤーの意思が最も明確に反映されます。実装はシンプルですが、UIに言語選択のスペースが必要になります。
どれか一つを選ぶ必要はなく、「デフォルトはブラウザ設定を使い、手動でも切り替えられる」という組み合わせが多くの場面で使いやすいです。重要なのは「どうするか」を翻訳の前に決めておくことで、後から変えると言語ファイルの構造や表示のロジックを大幅に書き直すことになります。
翻訳に渡す前に文字列を整理する
翻訳者(または翻訳AIツール)に渡す文字列は、できるだけ「文脈が分かる状態」に整えておくと翻訳の質が上がります。特に注意が必要なのは次のようなケースです。
変数が混在している文字列:「〇〇を獲得しました!」の〇〇がスコアや名前に置き換わる場合、翻訳者に「この{name}はプレイヤー名に置き換わります」と注記を入れないと、変数を誤訳されたり削除されたりします。英語では語順が変わることがあるため、"You got " + score + " points!"のような文字列結合は避け、"You got {score} points!"のようにプレースホルダーにしておくと安全です。
複数形:英語には単数・複数形の区別があります。「1 item」と「2 items」のように末尾のsが変わるため、翻訳文字列の中で数に応じて出し分ける仕組みが必要です。日本語ゲームの多くは「1個・2個」と単語が変わらないため見落としやすい部分です。
文字列の再利用:「はい」「いいえ」「閉じる」のような汎用ボタンは複数の画面で使い回すことが多いです。ただし英語では文脈によって"Yes"/"Confirm"/"OK"のどれが自然かが変わるため、再利用しすぎると不自然な表示になる場合があります。同じ日本語でも用途ごとに別々のキーを用意しておくと、翻訳後の調整が楽になります。
フォントと文字コードの確認
日本語の文字列しか表示しない状態で動いていたゲームは、フォントや文字コードの問題を気にしなくて済んでいた場合があります。英語化と同時に確認しておきたい点を挙げます。
HTMLの<meta charset="UTF-8">が設定されていれば、日本語・英語・一般的な記号のほとんどは問題なく表示されます。これが抜けているHTMLファイルはまれに文字化けを起こすため確認してください。
フォントはWebフォントを指定している場合、そのフォントが英字のグリフ(字形データ)を含むかどうかを確認します。日本語特化のフォントの中には、英字を含まないか含んでいても見た目が独特なものがあります。英語テキストをブラウザの実機で表示して視覚的に確認するのが確実です。
次の行動
まず手元のゲームのHTMLとJavaScriptを開き、表示テキストが何か所コードに直書きされているかを数えてください。その数が多ければ多いほど、翻訳前の外部化作業が効いてきます。整理が終わったら、ダミーの英語テキストをUIに流し込んでレイアウトの崩れを確認し、言語切り替えの方針を決めてから翻訳の手配に進んでください。英語対応したゲームは、アソバースのような投稿プラットフォームから公開URLを共有するだけで、英語圏のプレイヤーに届けることができます。
参考資料
- MDN Web Docs「Internationalization(i18n)」
- Unicode Consortium「Unicode Standard」
- W3C「Internationalization Activity」
