マガジン

日本語のゲームに英語を足す:最初に訳す5か所

遊びを見つける

執筆にClaudeを使用しています。

折りたたみ紙が広がる枠で、言語による文字量に対応する画面設計を表したイラスト。
記事のテーマをもとに制作したAI生成イラスト。

日本語で作ったブラウザゲームを、英語圏の人にも遊んでもらいたい場面を考えてみます。画面の文字は数十個あり、全部を訳すには時間がかかります。最初の公開までに全部を訳す必要はなく、「訳さないと遊べない場所」と「訳さなくても遊べる場所」を分けるだけで、作業量は大きく変わります。 この記事の問いは「どの文字を訳すと、日本語を読めない人が最後まで1回遊べるようになるか」です。答えは作品によって変わります。ただ、押せなければ始まらない、操作が分からなければ動かせない、何が起きたか分からなければやり直せない、という遊びの流れを順にたどると、最初に訳す場所は5か所に絞れます。 進め方は、文字の洗い出し、辞書への分離、5か所の翻訳、英語だけで1回遊んでもらう確認、の順です。結果の数字は載せません。記録の取り方と判断基準を示しますので、自分の作品で確かめてください。

この記事の目次
  1. 最初に訳す5か所の考え方
  2. 手順1:画面に出る文字を洗い出す
  3. 手順2:文字を辞書に分けて言語を切り替える
  4. 手順3:最初に訳す5か所を書く
  5. 手順4:英語だけで1回遊んでもらう
  6. 起こりやすい失敗
  7. 次の行動

最初に訳す5か所の考え方

遊びの流れを「入る→動かす→目指す→失敗する→戻る」と並べると、各段階で止まる原因は文字にあります。

  • 1、場所:開始ボタンとタイトル下の一言、訳さないと起きること:何を押せば始まるか分からない
  • 2、場所:操作の説明、訳さないと起きること:キー、ドラッグ、タップのどれで動かすか分からない
  • 3、場所:目的と勝敗条件の一行、訳さないと起きること:何をすれば勝ちか分からない
  • 4、場所:失敗・終了の表示と理由、訳さないと起きること:何が起きたか分からず、直す動機が生まれない
  • 5、場所:やり直しの入口(再挑戦、一時停止、戻す)、訳さないと起きること:失敗しても次の1回に進めない

後回しにできるのは、雰囲気を作るひとこと、クレジット、図鑑のような読み物の説明です。ただし物語を読ませる作品では、物語の文章自体が遊びの中心なので、この表は当てはまりません。自分の作品が「読ませるゲーム」か「動かすゲーム」かを先に決めておきます。

公式作品の設計から、この5か所の考え方を読み取ることもできます。たとえば「紙ひこうき郵便」は、風船にぶつかると紙が傷み、3回で終了します。最後の6秒で赤い郵便受けへ向かう仕組みもあります。このような作品では、3の「目的」と4の「失敗の理由」が遊びに直結しています。実際の表示文は作品を開いて確かめてください。

手順1:画面に出る文字を洗い出す

まず、作品に出てくる文字を全部書き出します。コードを検索するより、実際に遊びながら画面を一周するほうが漏れません。

  1. 表計算かメモに、列を「画面名」「日本語の文」「どのとき出るか」の3つで用意します。
  2. タイトル画面から順に、ゲームを最後まで進めます。画面が変わるたびに、見えた文字をすべて書き写します。
  3. 次に、わざと失敗します。ゲームオーバー、時間切れ、入力ミスなど、失敗の種類ごとに表示を書き写します。
  4. 一時停止、設定、ヘルプを開き、そこの文字も書き写します。
  5. 最後に、ボタンの title 属性、alt 属性、ブラウザのタブに出るページタイトルを確認します。画面上では見えなくても、読み上げソフトや検索結果に出る文字です。

書き出した文を、前の表の1〜5に振り分けます。どれにも当てはまらない文は「後回し」に分けます。この時点で、全体の文字数に対して、最初に訳す分が何割かを数えておくと、作業の見通しが立ちます。

手順2:文字を辞書に分けて言語を切り替える

文字がコードの中にばらばらに書かれていると、訳すたびにコードを探し回ることになります。先に、文字を1か所の辞書にまとめます。次は、単独で動く最小構成の例です。

html
<!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か所を英語にします。ここでは、短く、命令形で、動詞から始めることを基本にします。

  1. 開始の入口:ボタンは「Start」や「Play」のように1語にします。「はじめる」を直訳した長い文にしません。
  2. 操作の説明:入力手段ごとに分けます。キーボードなら「Arrow keys: move」、タッチなら「Drag: move」のように、入力と結果を対で書きます。日本語の「〜で動かします」を、そのまま長い一文にする必要はありません。
  3. 目的の一行:「何を、いつまでに、いくつ」を含めます。たとえば時間と個数の制限がある作品なら、その二つの数字を英語にも必ず残します。数字が落ちると、目的が伝わらないからです。
  4. 失敗の理由:「Game over」だけで終わらせず、原因を一言足します。日本語に原因が書いてあるなら、その要素を英語にも持ち込みます。原因が表示されない作品なら、英語化の前に、日本語側にも原因を足すほうが先です。
  5. やり直しの入口:「Retry」「Pause」「Undo」のように、ボタンの働きが一語で分かる名前にします。「戻す」が一手を戻すのか最初に戻るのかは、日本語でも曖昧になりがちです。英語では「Undo」と「Restart」を使い分けて区別します。

機械翻訳の下書きを使う場合は、英語を読める人に見てもらうか、逆に日本語へ訳し戻して意味がずれていないかを確認します。ゲーム用語は、直訳すると別の意味になりやすいので注意してください。

手順4:英語だけで1回遊んでもらう

訳した文が通じるかは、書いた本人には判断できません。日本語を読めない人に、説明なしで1回遊んでもらうのが確実です。身近にいなければ、日本語の画面を見ない状態で、英語表示だけで遊べる人を探します。

記録の取り方は次のとおりです。

  1. 英語表示で開始し、日本語での説明は一切しません。
  2. 遊んでもらう間、横で見ているだけにします。質問されても答えず、質問の内容だけをメモします。
  3. 1回の遊びごとに、「開始してから最初の操作まで何秒かかったか」「止まった画面」「出た質問」を記録します。
  4. 1人だけで判断せず、できれば2〜3人に同じことを頼みます。

結果の読み方は、場所ごとに決めておきます。

  • 同じ画面で2人以上が止まったら、その画面の文を最優先で直します。
  • 質問が「どのキーですか」なら操作説明、「何をすればいいですか」なら目的の一行、「なぜ終わったのですか」なら失敗の理由の問題です。質問は5か所のどれかに対応します。
  • 5か所を直しても止まる画面が残るなら、その画面は表の外にあります。手順1の洗い出しに戻って、足りなかった文字を追加してください。

起こりやすい失敗

  • 文字の長さ:英語は日本語より長くなることが多く、固定幅のボタンからはみ出したり、折り返したりします。スマートフォンの縦画面で、全5か所を必ず確認してください。ボタンの幅は、文字量に合わせて伸びる指定にしておくと崩れにくくなります。
  • 画像の中の文字:画像に焼き込んだ日本語は辞書では変わりません。5か所のどれかが画像に含まれるなら、画像を差し替えるか、文字を HTML に出し直してください。
  • 投稿ページの文章:アソバースでは、サイトの日本語/英語の切り替えが、作者が入力した作品名や紹介文を書き換えることはありません。英語の読者に見せたい紹介文は、作者が自分で書く必要があります。投稿画面の「紹介文と遊び方を作成」は選択した言語の下書きを作り、「この文章を使う」を押したときだけ反映されます。下書きは必ず読み直して、実際の操作と合っているか確かめてください。「遊び方・最大参加人数」は任意の作者申告で、英語表示の設定ではありません。
  • 英語専用のページ:現在、英語専用のURLは提供されていません。英語の読者へ案内するときは、サイトの言語設定を切り替える前提で説明するか、作品名と紹介文に英語を併記してください。

次の行動

まず今日は、手順1の洗い出しだけを行い、5か所に振り分けた文を表にしてみてください。次に、その5か所だけを辞書に入れて英語にし、日本語を読めない人に1回遊んでもらいます。止まった画面と出た質問を記録できれば、次に訳す場所は、記録から決められます。