日本語のゲームに英語を足す:最初に訳す5か所
遊びを見つける執筆にClaudeを使用しています。

日本語で作ったブラウザゲームを、英語圏の人にも遊んでもらいたい場面を考えてみます。画面の文字は数十個あり、全部を訳すには時間がかかります。最初の公開までに全部を訳す必要はなく、「訳さないと遊べない場所」と「訳さなくても遊べる場所」を分けるだけで、作業量は大きく変わります。 この記事の問いは「どの文字を訳すと、日本語を読めない人が最後まで1回遊べるようになるか」です。答えは作品によって変わります。ただ、押せなければ始まらない、操作が分からなければ動かせない、何が起きたか分からなければやり直せない、という遊びの流れを順にたどると、最初に訳す場所は5か所に絞れます。 進め方は、文字の洗い出し、辞書への分離、5か所の翻訳、英語だけで1回遊んでもらう確認、の順です。結果の数字は載せません。記録の取り方と判断基準を示しますので、自分の作品で確かめてください。
この記事の目次
最初に訳す5か所の考え方
遊びの流れを「入る→動かす→目指す→失敗する→戻る」と並べると、各段階で止まる原因は文字にあります。
- 1、場所:開始ボタンとタイトル下の一言、訳さないと起きること:何を押せば始まるか分からない
- 2、場所:操作の説明、訳さないと起きること:キー、ドラッグ、タップのどれで動かすか分からない
- 3、場所:目的と勝敗条件の一行、訳さないと起きること:何をすれば勝ちか分からない
- 4、場所:失敗・終了の表示と理由、訳さないと起きること:何が起きたか分からず、直す動機が生まれない
- 5、場所:やり直しの入口(再挑戦、一時停止、戻す)、訳さないと起きること:失敗しても次の1回に進めない
後回しにできるのは、雰囲気を作るひとこと、クレジット、図鑑のような読み物の説明です。ただし物語を読ませる作品では、物語の文章自体が遊びの中心なので、この表は当てはまりません。自分の作品が「読ませるゲーム」か「動かすゲーム」かを先に決めておきます。
公式作品の設計から、この5か所の考え方を読み取ることもできます。たとえば「紙ひこうき郵便」は、風船にぶつかると紙が傷み、3回で終了します。最後の6秒で赤い郵便受けへ向かう仕組みもあります。このような作品では、3の「目的」と4の「失敗の理由」が遊びに直結しています。実際の表示文は作品を開いて確かめてください。
手順1:画面に出る文字を洗い出す
まず、作品に出てくる文字を全部書き出します。コードを検索するより、実際に遊びながら画面を一周するほうが漏れません。
- 表計算かメモに、列を「画面名」「日本語の文」「どのとき出るか」の3つで用意します。
- タイトル画面から順に、ゲームを最後まで進めます。画面が変わるたびに、見えた文字をすべて書き写します。
- 次に、わざと失敗します。ゲームオーバー、時間切れ、入力ミスなど、失敗の種類ごとに表示を書き写します。
- 一時停止、設定、ヘルプを開き、そこの文字も書き写します。
- 最後に、ボタンの title 属性、alt 属性、ブラウザのタブに出るページタイトルを確認します。画面上では見えなくても、読み上げソフトや検索結果に出る文字です。
書き出した文を、前の表の1〜5に振り分けます。どれにも当てはまらない文は「後回し」に分けます。この時点で、全体の文字数に対して、最初に訳す分が何割かを数えておくと、作業の見通しが立ちます。
手順2:文字を辞書に分けて言語を切り替える
文字がコードの中にばらばらに書かれていると、訳すたびにコードを探し回ることになります。先に、文字を1か所の辞書にまとめます。次は、単独で動く最小構成の例です。
<!doctype html>
<html lang="ja">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>sample</title>
<button id="start" data-i18n="start"></button>
<p id="help" data-i18n="help"></p>
<p id="over" data-i18n="over" hidden></p>
<button id="lang">EN / 日本語</button>
<script>
const DICT = {
ja: { start: "はじめる",
help: "矢印キーかドラッグで動かします。",
over: "ぶつかりました。もう一度どうぞ。" },
en: { start: "Start",
help: "Move with the arrow keys or by dragging.",
over: "You hit something. Try again." }
};
let lang = new URLSearchParams(location.search).get("lang")
|| (navigator.language || "ja").slice(0, 2);
if (!DICT[lang]) lang = "ja";
function t(key) { return DICT[lang][key] || DICT.ja[key] || key; }
function render() {
document.documentElement.lang = lang;
document.querySelectorAll("[data-i18n]").forEach(el => {
el.textContent = t(el.dataset.i18n);
});
}
document.getElementById("lang").onclick = () => {
lang = lang === "ja" ? "en" : "ja";
render();
};
render();
</script>
</html>要点は3つあります。
- 画面の文字は data-i18n 属性で辞書の鍵を指定し、render() がまとめて書き換えます。ゲーム中に出す文は t("over") のように呼びます。
- t() は、英語が未訳の鍵だけ日本語に落とします。訳が途中でも画面に鍵名が出ません。未訳の場所を見つけるときは、DICT.ja[key] の部分を一時的に外すと、鍵名が見えて探しやすくなります。
- 言語の切り替えでは、ゲームの状態(得点、盤面、残り時間)を作り直さず、文字だけを書き換えます。公式作品の13本も、言語を変えても進行が保たれる作りです。自作でも、切り替えボタンの処理に「ゲームを最初からにする」処理を混ぜないことが大切です。
アソバースにアップロードした作品では、保存用のlocalStorageは一時メモリーの互換処理として扱われます。言語選択を永続的に保存する前提にせず、毎回 navigator.language や URL の指定から決める作りが安全です。サイトの言語設定が作品の中へどう渡るかは、投稿前に現在の案内で確認してください。
手順3:最初に訳す5か所を書く
辞書の準備ができたら、5か所を英語にします。ここでは、短く、命令形で、動詞から始めることを基本にします。
- 開始の入口:ボタンは「Start」や「Play」のように1語にします。「はじめる」を直訳した長い文にしません。
- 操作の説明:入力手段ごとに分けます。キーボードなら「Arrow keys: move」、タッチなら「Drag: move」のように、入力と結果を対で書きます。日本語の「〜で動かします」を、そのまま長い一文にする必要はありません。
- 目的の一行:「何を、いつまでに、いくつ」を含めます。たとえば時間と個数の制限がある作品なら、その二つの数字を英語にも必ず残します。数字が落ちると、目的が伝わらないからです。
- 失敗の理由:「Game over」だけで終わらせず、原因を一言足します。日本語に原因が書いてあるなら、その要素を英語にも持ち込みます。原因が表示されない作品なら、英語化の前に、日本語側にも原因を足すほうが先です。
- やり直しの入口:「Retry」「Pause」「Undo」のように、ボタンの働きが一語で分かる名前にします。「戻す」が一手を戻すのか最初に戻るのかは、日本語でも曖昧になりがちです。英語では「Undo」と「Restart」を使い分けて区別します。
機械翻訳の下書きを使う場合は、英語を読める人に見てもらうか、逆に日本語へ訳し戻して意味がずれていないかを確認します。ゲーム用語は、直訳すると別の意味になりやすいので注意してください。
手順4:英語だけで1回遊んでもらう
訳した文が通じるかは、書いた本人には判断できません。日本語を読めない人に、説明なしで1回遊んでもらうのが確実です。身近にいなければ、日本語の画面を見ない状態で、英語表示だけで遊べる人を探します。
記録の取り方は次のとおりです。
- 英語表示で開始し、日本語での説明は一切しません。
- 遊んでもらう間、横で見ているだけにします。質問されても答えず、質問の内容だけをメモします。
- 1回の遊びごとに、「開始してから最初の操作まで何秒かかったか」「止まった画面」「出た質問」を記録します。
- 1人だけで判断せず、できれば2〜3人に同じことを頼みます。
結果の読み方は、場所ごとに決めておきます。
- 同じ画面で2人以上が止まったら、その画面の文を最優先で直します。
- 質問が「どのキーですか」なら操作説明、「何をすればいいですか」なら目的の一行、「なぜ終わったのですか」なら失敗の理由の問題です。質問は5か所のどれかに対応します。
- 5か所を直しても止まる画面が残るなら、その画面は表の外にあります。手順1の洗い出しに戻って、足りなかった文字を追加してください。
起こりやすい失敗
- 文字の長さ:英語は日本語より長くなることが多く、固定幅のボタンからはみ出したり、折り返したりします。スマートフォンの縦画面で、全5か所を必ず確認してください。ボタンの幅は、文字量に合わせて伸びる指定にしておくと崩れにくくなります。
- 画像の中の文字:画像に焼き込んだ日本語は辞書では変わりません。5か所のどれかが画像に含まれるなら、画像を差し替えるか、文字を HTML に出し直してください。
- 投稿ページの文章:アソバースでは、サイトの日本語/英語の切り替えが、作者が入力した作品名や紹介文を書き換えることはありません。英語の読者に見せたい紹介文は、作者が自分で書く必要があります。投稿画面の「紹介文と遊び方を作成」は選択した言語の下書きを作り、「この文章を使う」を押したときだけ反映されます。下書きは必ず読み直して、実際の操作と合っているか確かめてください。「遊び方・最大参加人数」は任意の作者申告で、英語表示の設定ではありません。
- 英語専用のページ:現在、英語専用のURLは提供されていません。英語の読者へ案内するときは、サイトの言語設定を切り替える前提で説明するか、作品名と紹介文に英語を併記してください。
次の行動
まず今日は、手順1の洗い出しだけを行い、5か所に振り分けた文を表にしてみてください。次に、その5か所だけを辞書に入れて英語にし、日本語を読めない人に1回遊んでもらいます。止まった画面と出た質問を記録できれば、次に訳す場所は、記録から決められます。

