ウィジェットが言語とスキンをどう解決するか
埋め込むウィジェットには 2 つの層があります。シェル(Caputchin のクローム、そのチェックボックスやブランドの帯、その文言と色)と、ゲームを使うときの、その中の ゲーム です。それぞれが言語とスキンを持ち、ウィジェットは読み込み時にサーバーで両方を解決します。このページは、シェルがどう解決するか、そして 2 つが決して衝突しないようゲームとどう揃うかを説明します。
ゲーム自身の言語、スキン、構成のカスタマイズについては ゲームのカスタマイズ を参照してください。このページはシェルについてです。
シェルが出荷するもの
シェルは完全に自己完結しています。そのインターフェースの文字列をすべての公式言語で、そしてライトとダークの両方のパレットでバンドルするので、カスタマイズもネットワークもなくても、常に正しく何かをレンダリングできます。それらのバンドル済みの文字列、色、リンクを置き換えるのが ホワイトラベル、Apex 階層の機能です。下の解決は、上書きがあろうとなかろうと同じです。
シェルが言語をどう選ぶか
ウィジェットが読み込まれると、どの言語をサーバーに求めるか、この順で決めます:
- ページが設定していれば、ウィジェットの
locale属性(明示的な選択)。 - それ以外は、訪問者のブラウザの言語。シェルにその言語の文字列がない場合(たとえば繁体字中国語)、ウィジェットは訪問者の次の 2 つの優先言語も送ります。
それからサーバーが、それをシェルの言語に対して解決します(上書きが先、それからバンドル済みのセット)。名前が要求された値と完全に一致するプリセット、それから同じベース言語のプリセット(pt-BR は pt、pt-BR、pt-PT のどのプリセットにも同じように一致します。同じ言語のプリセットが複数あるときは 既定 とマークしたものが勝ち、なければ最初のもの)、それから訪問者の次の優先言語を順に同じ方法で照合、それから英語、それからシェルの最初の言語です。なので、シェルは常に本物の文言をレンダリングします。繁体字中国語(zh-TW、zh-HK、zh-MO、zh-Hant)が簡体字中国語にフォールバックすることはありません。
シェルがスキンをどう選ぶか
スキンも同じ形です:
- ページが設定していれば、ウィジェットの
skin属性:light、dark、またはプリセット名。 - それ以外は、訪問者のシステム設定(
prefers-color-scheme)。
サーバーがそれを具体的なライトかダークのパレットに解決します(上書きが先、それからバンドル済み)。各プリセットは、それが働くモードを宣言します。モードが any のプリセットはどちらの背景でも読めるので、両方の資格があります。シェルは箱を出してすぐにライトとダークのパレットを出荷し、解決済みのスキンは常に具体的なライトかダークのモードを報告し、それがクロームがレンダリングするものです。
シェルがゲームにどう従うか
ここがそれを結びつける部分です。ゲームがマウントされると、シェルはその言語とスキンを訪問者のシグナルから直接は解決しません。代わりに ゲームに従います。ウィジェットはまずゲームを解決し、それからゲームの解決済みの言語とライトかダークのモードを、シェルの入力として使います。
なので、訪問者のブラウザがフランス語でゲームがフランス語に解決されると、周りのクロームもフランス語でレンダリングされます。ゲームがダークのスキンに解決されると、クロームも合わせてダークになります。シェルが訪問者自身の言語とシステム設定にフォールバックするのは、ゲームがマウントされていないとき(素のチェックボックスウィジェット)か、ゲームが自身の言語やスキンを解決しなかったときだけです。
その結果、シェルとゲームを別々に合わせて設定しなくても、ゲームとその周りのクロームは常に一致します。
構成
シェルには小さな 構成 もあります。そのブランドの帯のリンク先(home リンクと legal リンク)です。言語やスキンと違い、これには訪問者の入力がありません。サーバーが、上書きかバンドル済みの既定からそれを解決します。それらのリンクを変えるのは ホワイトラベル の一部です。
あわせて読む
- ウィジェットをホワイトラベルする:シェルの文言、色、リンクを置き換える。
- CSS でウィジェットをスタイルする:あなた自身のスタイルシートからシェルのパーツを対象にする。
- ゲームのカスタマイズ:ゲーム自身の言語、スキン、構成。