攻略ガイド / 開発の裏側

私たちがスマホゲームを14言語に翻訳した方法

私たちのAndroidゲームを14言語で出すまでに必要だったこと。テキストファイルの構成、複数形のルールとフォントが大切な理由、何度も繰り返された翻訳ミス、ヨーロッパのスマホでだけ起きるバグ、そして14言語が16のストア掲載情報になる理由です。

私たちの6つのゲームはすべて、14言語に完全翻訳されています。英語、ドイツ語、スペイン語、フランス語、クロアチア語、インドネシア語、イタリア語、日本語、韓国語、ポルトガル語、ロシア語、スロベニア語、トルコ語、繁体字中国語です。最初の4本、『Idle Ronin』『Idle Summoner』『Idle AI Factory』『Block Brain』には合わせて約2,100の英語テキストがあり、『Block Brain』の254から『Idle Ronin』の1,253まで、それぞれが13回翻訳されています。『Idle Restaurant: Miami』と『ONI Snakes』も同じ14言語でリリースしました。ここでは、そのために必要だったことと、次もまたやることを紹介します。

言語ごとに1つのテキストファイル、文脈つき

各ゲームは言語ごとにシンプルなテキストファイルを1つ持っています。1つのエントリは、@の付いた英語の原文の行と、そのあとに続く=の付いた訳文でできていて、ほとんどのエントリには翻訳者向けのコメントがあります。これは『Idle Summoner』の英語ファイルにある最初のモンスターです。

# monster name with its number in the summon chain (1-55); names appear on small labels

@ {0}. Slime

こうしたコメントは、私たちが加えたものの中でいちばん役に立ちました。『Idle Summoner』の英語ファイルには、258のテキストに対して156のコメントがあります。テキストが小さなラベルに表示されることや、{0}が数字であることを知っている翻訳者は、言葉だけから推測する翻訳者よりずっとミスが少なくなります。

英語のテキストそのものをキーにするとファイルは読みやすくなりますが、落とし穴もあります。両方の列で同じテキストだからといって、英語のまま残すべき名前とは限りません。『Idle Ronin』では、最初の1,185エントリのうち約680が英語のテキストと一致していました。英語のまま残すのは本物の固有名詞だけで、19体のガーディアンの名前、ユニット名、12の衣装がそれにあたり、ビルドスクリプトがまさにそれらをロックしています。

複数形のルールは省略できない

英語には1 unit、2 unitsの2つの形があります。もっと多くの形を持つ言語も多く、ルールもそれぞれ違います。私たちのLocコードは、Unicode CLDRの表にある整数の複数形ルールに従っています。

言語コードで使う形
英語、ドイツ語、スペイン語、イタリア語one、other
フランス語、ポルトガル語one(0と1)、other
クロアチア語one、few、other
ロシア語one、few、many
スロベニア語one、two、few、other
トルコ語、インドネシア語、日本語、韓国語、中国語1つの形のみ

意外に思われるのはスロベニア語です。2のための専用の形があるので、「2 enoti」と「5 enot」では語形が違います。コードが単数と複数しか知らなければ、これらの言語はどれもどこかで文法の誤りを表示してしまいます。

フォント:足りないと気づかなかった文字

『Idle Summoner』のテキスト用フォントは、Noto Sans KR Blackを削ったコピーで、č、š、ž、ć、西ヨーロッパのアクセント記号、トルコ語の文字、繁体字中国語が含まれていませんでした。足りない文字は端末のフォントで代用されるか、まったく表示されませんでした。そこで表で使うすべての文字を含めてフォントを作り直し、日本語用にNoto Sans JP、繁体字中国語用にNoto Sans TCを追加しました。ゲームのピクセルフォントのラベルは、そのフォントにある文字でテキストが書ける場合にだけ、そのフォントを使い続けます。

フォントが誤解を招くこともあります。『Idle Ronin』の韓国語フォントでは、大文字のNの形のせいで、ONとOFFが「OΠ」のように読めてしまいました。そこでこれらの切り替えを韓国語の켜기と끄기に変えました。そのほうがもともと読みやすいのです。

どの言語でも繰り返されたミス

どんな方法で翻訳しても、最初の訳がそのまま使えることはまれです。私たちの場合、ほぼすべての言語で同じいくつかのミスが繰り返されました。最初に見つけたのは、私たち自身によるスロベニア語訳のチェックでした。

  • グラフィック設定の「Particle」が、「エフェクト」ではなく物理用語として訳されていた。
  • ユニットの追加コピーを指す「Stack」が、英語のまま残されるか、「コピー」ではなく「山」と訳されていた。
  • Treasure Chestという名前のモンスターを倒すミッションが、宝箱を壊すミッションとして訳されていた。
  • 1、2語しか入らない行やバッジに、全文の長さで訳されたテキストが入っていた。
  • 「FIGHT FLOOR {0}」に余計な動詞が入り、ボタンが長くなりすぎていた。

そこで、どの言語でもまさにそれらのテキストを書き出すチェッカーを作り、翻訳を始める前にそのリストを渡すようにしました。リストを手元に置いて訳した2言語は修正が不要でしたが、リストなしで訳した言語はそれぞれ約6か所の修正が必要でした。

ファイルだけでなく画面を確認する

ファイルがそろっていても、画面には英語が残っていることがあります。私たちのテスト方法はこうです。ゲームを別の言語に切り替え、画面に見えるテキストをすべて集めて、英語ファイルと比べます。英語のまま残っているものは、コードが一度も翻訳していないラベルです。『Idle Ronin』ではこの確認で、常に表示されているOPENボタンと、メニューを最初に開いたときの言語のまま固まっている設定ボタンが見つかりました。

次に、実際のスマホの解像度で収まるかを確認します。私たちは、いちばん長くなる言語と日本語、韓国語、中国語、ロシア語で、すべての画面を1080 x 2400で見ています。そして、誰も読めなくなるまで文字を縮めるより、テキストを短くするほうを選びます。

ヨーロッパでセーブを壊すカンマ

言葉とはまったく関係のないバグもあります。開発中のあるゲームでは、セーブデータが数値をカンマでつないでいます。ヨーロッパの多くの地域のように、小数をカンマで書く言語の端末では、7392.58が7392,58になり、余分なカンマで数値が2つに割れて、その後の値がすべて1つずつずれます。英語でテストしている開発者には決して見えません。修正は、起動時に数値の書式をインバリアントカルチャーに固定する1行と、すでに壊れたセーブでも読み込めるようにする保護です。

14言語、16のストア掲載情報

Google Playでは、スペイン語はスペインと中南米、ポルトガル語はポルトガルとブラジルで掲載情報が分かれています。ゲーム内の翻訳は言語ごとに1つですが、ストアの文章は市場ごとに、それぞれの検索キーワードで別々に書いています。その結果、1ゲームにつき16の掲載情報があり、それぞれにタイトル、簡単な説明、詳しい説明、スクリーンショットがあります。私たちのウェブサイトも同じ形をとっていて、その作り方は別の記事で紹介しています。

次もまたやること

  1. すべてのテキストに文脈のコメントを書く。
  2. 固有名詞は翻訳者の頭の中ではなく、ビルドでロックする。
  3. 最初の翻訳が届く前に複数形のルールを実装する。
  4. 表で使うすべての文字がフォントに入っているか確認する。
  5. 既知の問題テキストのリストを用意し、最初に渡す。
  6. 別の言語で画面を見て回り、残った英語を探す。
  7. セーブデータはインバリアントカルチャーで書き出す。
  8. 14ではなく、16のストア掲載情報を見込んでおく。

結果を見てみたいですか?『Idle Ronin』『Idle Summoner』『Idle AI Factory』『Block Brain』『Idle Restaurant: Miami』『ONI Snakes』で言語を切り替えてみてください。どれも14言語すべてに対応しています。

出典

  • Unicode CLDR、Language Plural Rules。
  • ONI Gamesのゲームコード、2026年9月:Idle Summoner(Loc.cs、LocFonts.cs、Localization/Summoner/en.txt)、Idle Ronin(Localization/Ronin)、Idle AI Factory(Localization/AIFactory)、Block Brain(Localization/Brain)。

ほかのガイド

すべてのガイド
ボス戦後の強制広告をやめた理由

開発の裏側

ボス戦後の強制広告をやめた理由

広告は数よりも、どこに出るかのほうが大切です。『Idle Ronin』のボス戦に出ていた全画面広告が、私たちがオフにするまでに2回場所を変えた経緯と、今すべてのゲームで守っている広告のルールを、その裏にあるコードとともに紹介します。

ガイドを読む →

◆ ONI Games のほかのゲーム

ほかのゲーム

スワイプしてもっと見る

ONI Snakes: Armored Arena
配信中 · Google Play

ONI Snakes: Armored Arena

ライバルスネークの装甲を撃ち落とし、巨大化してネオンのアリーナを制覇。11種類のモードで、オンライン対戦もフレンド対戦も楽しめます。

詳しく見る →
Idle Ronin: Cyber RPG
配信中 · Google Play

Idle Ronin: Cyber RPG

最後のサイバー・ロニンとなり、ネオンに輝く未来へ。押し寄せるメックを斬り、サイボーグ軍団を編成して、ネオンタワーを登ろう。オフラインの間も、その刃は止まらない。

詳しく見る →
Idle Summoner: Pixel RPG
配信中 · Google Play

Idle Summoner: Pixel RPG

魔獣の軍勢を召喚し、冥界の城に攻め込もう。成長が鈍るたびに転生して、さらに強くなれる。

詳しく見る →
Block Brain: Block Puzzle Game
配信中 · Google Play

Block Brain: Block Puzzle Game

カラフルなブロックを置いて列を消し、コンボをつなげよう。相棒の「ブレイン」が、小さな「わかば」から王冠をかぶった「天才」へと育っていく。

詳しく見る →
Idle AI Factory: Robot Tycoon
配信中 · Google Play

Idle AI Factory: Robot Tycoon

陽気なロボットたちが働く工場を経営し、すべての生産ラインを自動化。小さな AI ラボから月面基地まで発展させよう。

詳しく見る →
Idle Restaurant: Miami
配信中 · Google Play

Idle Restaurant: Miami

ビーチの小さなピザ屋を、マイアミのネオン輝くレストラン帝国へ。マネージャーを雇い、本物のレシピを20品集めて、オフラインでも稼ごう。

詳しく見る →