---
type: explanation
title: Как виджет разрешает свой язык и скин
summary: Как оболочка виджета выбирает свой язык и светлый или тёмный скин и как это следует за игрой, когда она смонтирована.
---

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

Для настройки собственного языка, скина и конфигурации игры смотри [настройку игр](/docs/game-customization/overview). Эта страница про оболочку.

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

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

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

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

1. Атрибут `locale` виджета, если страница его задала (явный выбор).
2. Иначе язык браузера посетителя.

Сервер затем разрешает это против языков оболочки (сначала твои переопределения, затем встроенный набор): точное совпадение, затем базовый язык, затем умолчание оболочки, затем её первый язык. Так что оболочка всегда рендерит настоящие формулировки.

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

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

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

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

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

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

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

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

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

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

## См. также

- [White-label виджета](/docs/widget-customization/white-label): замени формулировки, цвета и ссылки оболочки.
- [Стилизуй виджет через CSS](/docs/widget-customization/css-parts): нацель части оболочки из своей собственной таблицы стилей.
- [Настройка игр](/docs/game-customization/overview): собственный язык, скин и конфигурация игры.
