Как виджет разрешает свой язык и скин
У виджета, который ты встраиваешь, два слоя: оболочка (хром Caputchin, его галочка или брендовая полоса, его формулировки и цвета) и, когда ты используешь игру, игра внутри него. У каждого есть язык и скин, и виджет разрешает оба на сервере при загрузке. Эта страница объясняет, как разрешается оболочка и как она выстраивается с игрой, чтобы эти двое никогда не конфликтовали.
Для настройки собственного языка, скина и конфигурации игры смотри настройку игр. Эта страница про оболочку.
Что поставляет оболочка
Оболочка полностью самодостаточна. Она встраивает свои интерфейсные строки на каждом официальном языке и обе палитры, светлую и тёмную, так что у неё всегда есть что-то правильное для отрисовки даже без настройки и без сети. Замена этих встроенных строк, цветов или ссылок это white-label, функция уровня Apex; разрешение ниже одинаково независимо от того, есть ли у тебя переопределения.
Как оболочка выбирает язык
Когда виджет загружается, он решает, какой язык запросить у сервера, в этом порядке:
- Атрибут
localeвиджета, если страница его задала (явный выбор). - Иначе язык браузера посетителя.
Сервер затем разрешает это против языков оболочки (сначала твои переопределения, затем встроенный набор): точное совпадение, затем базовый язык, затем умолчание оболочки, затем её первый язык. Так что оболочка всегда рендерит настоящие формулировки.
Как оболочка выбирает скин
Та же форма для скина:
- Атрибут
skinвиджета, если страница его задала:light,darkили имя пресета. - Иначе системное предпочтение посетителя (
prefers-color-scheme).
Сервер разрешает это в конкретную светлую или тёмную палитру (сначала твои переопределения, затем встроенные). Каждый пресет объявляет режим, в котором он работает; пресет, чей режим это any, читается на любом фоне и потому годится для обоих. Оболочка поставляет светлую и тёмную палитру из коробки, и разрешённый скин всегда сообщает конкретный светлый или тёмный режим, что и рендерит хром.
Как оболочка следует за игрой
Вот часть, которая связывает всё воедино. Когда игра смонтирована, оболочка не разрешает свой язык и скин из сигнала посетителя напрямую. Вместо этого она следует за игрой: виджет сначала разрешает игру, затем использует разрешённый язык и светлый или тёмный режим игры как ввод оболочки.
Так что если браузер посетителя французский и игра разрешается во французский, окружающий хром тоже рендерится по-французски. Если игра разрешается в свой тёмный скин, хром уходит в тёмное, чтобы совпасть. Оболочка откатывается на собственный язык и системное предпочтение посетителя только когда не смонтирована игра (простой галочный виджет) или когда игра не разрешила собственный язык или скин.
Результат в том, что игра и хром вокруг неё всегда согласны, без того чтобы ты настраивал оболочку и игру по отдельности для совпадения.
Конфигурация
У оболочки также есть небольшая конфигурация: цели ссылок в её брендовой полосе (домашняя ссылка и правовая ссылка). В отличие от языка и скина, у этого нет ввода посетителя; сервер разрешает это из твоих переопределений или встроенных умолчаний. Изменение этих ссылок это часть white-label.
См. также
- White-label виджета: замени формулировки, цвета и ссылки оболочки.
- Стилизуй виджет через CSS: нацель части оболочки из своей собственной таблицы стилей.
- Настройка игр: собственный язык, скин и конфигурация игры.