ゲームの言語をカスタマイズする
ゲームは、作者が翻訳した言語とともに出荷されます。ゲームのエディターの 言語 タブで、それらの文字列を上書きし、翻訳を直し、文言をあなたの製品に合わせて調整し、あるいはゲームが出荷しなかった言語を加えられます。変更はレンダリングされるゲームに適用されます。
言語のカスタマイズは Alpha プラン以上(Alpha、Troop、Apex)で利用可能です。
言語の文字列を設定する
サイトキー(またはチーム)の ゲーム ページでゲームを開き、それから 言語 タブを開きます。ゲームが提供する各言語はプリセットで、各プリセットは名前付き文字列のセット(ゲーム内のラベルとメッセージ)です。変えたい文字列を編集します。残りはそのままにすれば、ゲームのバンドル済みの文言を保ちます。
ロケールのフィールドは常にプレーンテキストです。選ぶものは言葉だけです。
実行時に言語がどう選ばれるか
各ロケールプリセットは 言語タグ(en、es、fr など)を運び、プリセットはそのタグでまとめられます。1 つを選ぶのは 2 段階で起きます。
まずウィジェットが、どの言語を求めるか決めます:
- ページが設定していれば、ウィジェットの
locale属性(明示的な作者の意図)。 - それ以外は、訪問者のブラウザの言語(その優先言語の最初のもの)と、次の 2 つの優先言語。最初の言語の文字列がないゲームでも、既定にフォールバックする前に次の言語を使えます。
- それ以外は何もなく、サーバーがゲームの既定にフォールバックします。
それからサーバーが、あなたの上書きをマージした後(サイトキー、チーム、ゲームのバンドル済みセットの順)、その言語をプリセットに対して、この順で照合します:
- 名前が要求された値(
locale属性、未設定なら訪問者のブラウザの言語)と完全に一致するプリセット。 - 同じベース言語のプリセット:
pt-BRはpt、pt-BR、pt-PTのどのプリセットにも同じように一致します。繁体字中国語(zh-TW、zh-HK、zh-MO、zh-Hant)はzh-Hantプリセットにだけ一致し、簡体字のプリセットには決して一致しません。 - ウィジェットが送っていれば、訪問者の次の優先言語を順に、同じ方法で照合。
- 英語のプリセット。
- ゲームの最初のプリセット。
同じ言語のプリセットが複数あるときは、その言語であなたが 既定 とマークしたものが勝ち、なければ最初のものが勝ちます。なので、何らかのプリセットを持つゲームは常に本物のテキストをレンダリングし、決して生のキーは出しません。エディターで、言語ごとに 1 つのプリセットを既定としてマークします。
<caputchin-game> 要素では、インラインの locale オブジェクトも渡せます。属性の値として書かれた JSON オブジェクトで、たとえば locale='{"start":"Go!"}' です。ウィジェットはそれをそのマウントの言語シグナルとしてサーバーへ送り、サーバーはそれをパースして解決済みのプリセットの上に重ねるので、あなたのインライン文字列は上のすべて(あなたのチームとサイトキーの上書きを含む)に勝ちます。それはあなた自身のマークアップのプロパティなので、どのプランでも動きます。チェックボックスの <caputchin-widget> はインラインロケールを受け付けません。その locale 属性は言語タグかプリセット名だけを取ります。なぜこの埋め込みごとの作成が無料かは 私たちの哲学 を参照してください。
文字の方向(左から右、または右から左)は言語タグから自動で導かれるので、右から左の言語が追加の設定なしに正しくレンダリングされます。
言語を加える、または拡張する
ゲームが出荷するどの言語も拡張できます。新しいプリセットは、拡張するものからすべての文字列を継承し、あなたは変えるものだけを上書きします。ゲームが出荷しなかった言語を加えるには、その言語のタグを持つプリセットを作り、文字列を埋めます。
何が適用され、どこで
言語の上書きはサーバーで、最も具体的なものが勝つで解決されます。サイトキーのプリセットはチームのプリセットに勝ち、それはゲームのバンドル済みの言語に勝ちます。訪問者のブラウザの言語が、解決済みのどのプリセットを見るかを選びます。
あわせて読む
- ゲームのカスタマイズの概要:ゲームを登録して管理する。
- 構成 と スキン:ほかの 2 つの軸。
- スキーマリファレンス:プリセットモデルとフィールド型。