Настройка виджета

Как виджет разрешает свой язык и скин

Открыть как Markdown

У виджета, который ты встраиваешь, два слоя: оболочка (хром Caputchin, его галочка или брендовая полоса, его формулировки и цвета) и, когда ты используешь игру, игра внутри него. У каждого есть язык и скин, и виджет разрешает оба на сервере при загрузке. Эта страница объясняет, как разрешается оболочка и как она выстраивается с игрой, чтобы эти двое никогда не конфликтовали.

Для настройки собственного языка, скина и конфигурации игры смотри настройку игр. Эта страница про оболочку.

Что поставляет оболочка

Оболочка полностью самодостаточна. Она встраивает свои интерфейсные строки на каждом официальном языке и обе палитры, светлую и тёмную, так что у неё всегда есть что-то правильное для отрисовки даже без настройки и без сети. Замена этих встроенных строк, цветов или ссылок и есть white-label, функция уровня Apex; разрешение ниже одинаково независимо от того, есть ли у тебя переопределения.

Как оболочка выбирает язык

Когда виджет загружается, он решает, какой язык запросить у сервера, в этом порядке:

  1. Атрибут locale виджета, если страница его задала (явный выбор).
  2. Иначе язык браузера посетителя. Если у оболочки нет строк на этом языке (например, традиционный китайский), виджет также шлёт следующие два предпочитаемых языка посетителя.

Сервер затем разрешает это против языков оболочки (сначала твои переопределения, затем встроенный набор): пресет, чьё имя точно совпадает с запрошенным значением, затем пресет на том же базовом языке (pt-BR одинаково совпадает с пресетом pt, pt-BR или pt-PT; когда у нескольких пресетов один язык, побеждает помеченный умолчанием, иначе первый), затем следующие предпочитаемые языки посетителя по порядку, сопоставленные тем же способом, затем английский, затем первый язык оболочки. Так что оболочка всегда рендерит настоящие формулировки. Традиционный китайский (zh-TW, zh-HK, zh-MO, zh-Hant) никогда не откатывается на упрощённый китайский.

Как оболочка выбирает скин

Та же форма для скина:

  1. Атрибут skin виджета, если страница его задала: light, dark или имя пресета.
  2. Иначе системное предпочтение посетителя (prefers-color-scheme).

Сервер разрешает это в конкретную светлую или тёмную палитру (сначала твои переопределения, затем встроенные). Каждый пресет объявляет режим, в котором он работает; пресет с режимом any читается на любом фоне и потому годится для обоих. Оболочка поставляет светлую и тёмную палитру из коробки, и разрешённый скин всегда сообщает конкретный светлый или тёмный режим, что и рендерит хром.

Как оболочка следует за игрой

Вот часть, которая связывает всё воедино. Когда игра смонтирована, оболочка не разрешает свой язык и скин из сигнала посетителя напрямую. Вместо этого она следует за игрой: виджет сначала разрешает игру, затем использует разрешённый язык и светлый или тёмный режим игры как ввод оболочки.

Так что если браузер посетителя французский и игра разрешается во французский, окружающий хром тоже рендерится по-французски. Если игра разрешается в свой тёмный скин, хром уходит в тёмное, чтобы совпасть. Оболочка откатывается на собственный язык и системное предпочтение посетителя только когда не смонтирована игра (простой галочный виджет) или когда игра не разрешила собственный язык или скин.

Результат в том, что игра и хром вокруг неё всегда согласны, без того чтобы ты настраивал оболочку и игру по отдельности для совпадения.

Конфигурация

У оболочки также есть небольшая конфигурация: цели ссылок в её брендовой полосе (домашняя ссылка и правовая ссылка). В отличие от языка и скина, у этого нет ввода посетителя; сервер разрешает это из твоих переопределений или встроенных умолчаний. Изменение этих ссылок входит в white-label.

См. также