---
type: how-to
title: Настрой язык игры
summary: Переопредели переведённые строки игры на вкладке Язык, сгруппированные по языку; доступно от тарифа Alpha и выше.
---

Игра поставляется с языками, на которые её перевёл автор. На вкладке **Язык** редактора игры ты можешь переопределить эти строки, исправить перевод, подстроить формулировки под свой продукт или добавить язык, с которым игра не поставлялась, и изменение применяется к отрисованной игре.

Настройка языка доступна от **тарифа Alpha и выше** (Alpha, Troop, Apex).

## Задай языковые строки

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

Поля языка всегда обычный текст. Выбирать тут нечего, кроме слов.

## Как язык выбирается в рантайме

Каждый языковой пресет несёт **языковой тег** (`en`, `es`, `fr` и так далее), и пресеты сгруппированы по этому тегу. Выбор одного происходит в два этапа.

Сначала виджет решает, какой язык запросить:

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

Затем сервер сопоставляет этот язык с пресетами, после слияния твоих переопределений (ключ сайта поверх команды поверх встроенного набора игры), в этом порядке:

1. Точное совпадение тега (`pt-BR` находит пресет `pt-BR`).
2. Базовый язык (`pt-BR` откатывается на пресет `pt`).
3. Пресет, который ты пометил **умолчанием**.
4. Первый пресет игры.

Так что игра с любыми пресетами всегда рендерит настоящий текст, никогда сырые ключи. Ты помечаешь один пресет на язык как умолчание в редакторе.

На элементе `<caputchin-game>` ты также можешь передать инлайновый объект `locale`: объект JSON, записанный как значение атрибута, например `locale='{"start":"Go!"}'`. Виджет шлёт его на сервер как языковой сигнал этого монтирования, а сервер парсит его и накладывает поверх разрешённых пресетов, так что твои инлайновые строки побеждают всё выше (включая твои переопределения команды и ключа сайта). Это свойство твоей собственной разметки, так что оно работает на любом тарифе. Галочный `<caputchin-widget>` не принимает инлайновый locale; его атрибут `locale` принимает только языковой тег или имя пресета. Смотри [нашу философию](/docs/understanding-caputchin/philosophy) о том, почему это пер-встраивательное авторствование бесплатно.

Направление текста (слева-направо или справа-налево) выводится из языкового тега автоматически, так что язык с письмом справа-налево рендерится правильно без дополнительной настройки.

## Добавь или расширь язык

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

## Что применяется и где

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

## См. также

- [Обзор настройки игр](/docs/game-customization/overview): зарегистрируй игру и управляй ею.
- [Конфигурации](/docs/game-customization/configurations) и [скин](/docs/game-customization/skin): две другие оси.
- [Справочник схемы](/docs/references/customization-schema): модель пресетов и типы полей.
