Языки
У каждого сайта свои языки, один язык по умолчанию и правило, определяющее, что увидят посетители, если перевода нет. Всё это задаётся в разделе Настройки → Языки. Для изменений нужно право настроек сайта (site:settings).
Полный публичный контракт описан в разделе языки в публичном API. Правила полей и адресов описаны в разделах модели, языки и страницы и адрес записи.
Добавить язык
Заголовок раздела «Добавить язык»- Откройте Настройки → Языки.
- Откройте Выберите язык и найдите язык. Показать варианты: {name} показывает его региональные варианты.
- Нажмите Добавить язык.
Каждый язык добавляется на сайт один раз. Если у сайта ещё нет языка по умолчанию, Сделать основным делает новый язык языком по умолчанию.
Добавление языка не меняет контент. Записи получают новый язык, только когда кто-то начинает перевод. См. переводы.
Выбрать язык по умолчанию
Заголовок раздела «Выбрать язык по умолчанию»Язык по умолчанию помечен По умолчанию. Чтобы сменить его, нажмите Сделать основным у другого языка.
- При запросе без
localeвозвращается язык по умолчанию. - При правиле с резервными языками язык по умолчанию проверяется последним перед основным языком самой записи.
- Новая запись начинается на языке по умолчанию.
- Смена языка по умолчанию очищает кэш публичных ответов сайта. Если это не удалось, экран сообщит об этом, и клиенты API какое-то время могут получать прежний язык по умолчанию.
- Язык по умолчанию удалить нельзя.
Выбрать, что получают посетители без перевода
Заголовок раздела «Выбрать, что получают посетители без перевода»В блоке Отсутствующие переводы задайте Когда перевода на этот язык нет:
| Выбор | Правило | Посетитель, запросивший отсутствующий язык, получает |
|---|---|---|
| Показать страницу на языке по умолчанию | fallback | Первый опубликованный язык из цепочки ниже. Поле locale в ответе говорит, какой именно. |
| Показать «страница не найдена» | strict | Ничего. Списки не включают запись. Прямое чтение отвечает 404 locale_unavailable. |
Отдаются только опубликованные языки. Черновик перевода никогда не используется вместо другого языка.
Если ничего не задано, экран сообщает Поведение не задано, поэтому публичный API сайта не работает. Выберите вариант выше.
Резервные языки
Заголовок раздела «Резервные языки»При варианте Показать страницу на языке по умолчанию и нескольких языках появляется блок Резервные языки. Для каждого языка можно задать список языков, которые проверяются по порядку до языка по умолчанию.
- Нажмите Изменить у языка.
- В блоке Если нет «{language}», показать нажмите Добавить резервный язык и выберите язык.
- Упорядочьте их кнопками перемещения. Лишний язык уберите его кнопкой удаления.
- Нажмите Сохранить.
До сохранения экран подсчитывает, что получат посетители этого языка: Переведено: {count}, Показано на «{language}»: {count} и Не показано: {count}.
- За резервным языком следуют его собственные резервные языки. При
pt-BR → ptиpt → esдля посетителя с языкомpt-BRсначала проверяетсяpt-BR, затемpt, затемes, затем язык по умолчанию. - Экран предупреждает об изменениях для других языков: Также меняет то, что видят посетители: {languages}.
- В списке не больше 8 языков.
- Сохранение отклоняется, если языки ссылались бы друг на друга по кругу, если язык ссылается сам на себя, указан дважды или его нет на сайте.
- Без списка язык переходит сразу на язык по умолчанию.
- При варианте Показать «страница не найдена» резервные языки не используются.
Что получают посетители
Заголовок раздела «Что получают посетители»Публичное чтение указывает язык через ?locale=. Без него отдаётся язык по умолчанию.
- При правиле fallback чтение проверяет запрошенный язык, его резервные языки, язык по умолчанию, затем основной язык записи. Отдаётся первый опубликованный.
- При правиле strict возвращается только запрошенный язык и только если он опубликован.
- У каждого языка записи свой адрес. Чтение одной записи перечисляет все опубликованные языки и их адреса в
alternates. - Редактор показывает результат для каждого языка. Например, На «тайский» ещё не опубликовано. Посетители видят «английский». или На «тайский» ещё не опубликовано. Посетители видят «страница не найдена».
Правило принадлежит сайту. Посетитель или клиент API изменить его не может.
Резервный язык для поля
Заголовок раздела «Резервный язык для поля»Чтобы подставлять значения отдельных незаполненных полей, откройте Свойства поля модели и включите Резервный язык для поля. По умолчанию опция выключена. Она доступна для необязательных переводимых полей: текста, форматированного текста, числа, логического значения, даты, выбора, JSON и компонента. Для адресов, связей, медиа, общих и обязательных полей её нет.
В редакторе записи кнопка Использовать резервный язык удаляет перевод этого поля. Ввести перевод позволяет снова задать своё значение. Очистка поля считается намеренным действием: пустое значение, null, false, ноль или пустой список не заменяются значением другого языка.
Если на сайте включён резервный язык, отсутствующее поле получает первое опубликованное значение из цепочки резервных языков, затем проверяется основной язык записи. Для каждого языка берётся его собственная опубликованная версия: новый черновик не может заполнить поле. В строгом режиме подстановка отдельных полей отключена.
Публичное чтение записи, списки, фильтры, сортировка, поиск и страницы сгенерированного сайта используют полученные значения. Поле ответа locale по-прежнему указывает язык отданной записи. Редактор хранит перевод отдельно: подстановка не копирует значение в него.
При сохранении через API управления перевод поля удаляется параметром unset_fields: {"th": ["subtitle"]}. Он принимает только поля с включённой опцией. Нельзя одновременно задать и удалить значение одного поля; права на поля и языки продолжают действовать. Ключ, пропущенный в обычном частичном сохранении, сохраняет прежнее значение.
Ограничить роли по языкам
Заголовок раздела «Ограничить роли по языкам»По умолчанию роль охватывает все языки. Чтобы ограничить её, откройте Настройки → Роли, отредактируйте роль и откройте Ограничить поля и языки.
- Ограничить языки выбирает языки, в которых работает роль. Ограничение действует на создание, изменение, удаление, восстановление, проверку, публикацию и снятие с публикации.
- Может читать все языки оставляет чтение открытым, чтобы переводчик видел исходный язык, а редактировал только свой.
- Действие вне языков роли отклоняется с
locale_denied. Действие, затрагивающее несколько языков, например публикация всей записи или массовое действие, отклоняется целиком. - Общие поля, общие списки связей и медиа хранятся на основном языке. Чтобы их менять, нужно право изменять основной язык.
Полные правила описаны в разделе ограничение роли полями или языками.
Работа с одним языком
Заголовок раздела «Работа с одним языком»Эти действия меняют один язык и не трогают остальные:
- Начать перевод: {language} добавляет язык в запись.
- Опубликовать: {language} и Снять с публикации: {language} в панели Публикация записи.
- Переместить этот язык в корзину и восстановление этого языка из корзины.
- Восстановить только {language} в истории записи.
- Собственный адрес каждого языка.
- Поля связей с Разные связи для каждого языка. См. разные ссылки для каждого языка.
- Alt-текст и описания на каждом языке в медиатеке.
Действия с пометкой Все языки меняют этап работы для всех языков записи. Переход между двумя неопубликованными этапами, например Одобрить · Все языки, сохраняет публикацию уже опубликованной языковой версии; чтобы снять её с публикации, используйте Снять с публикации: {language}. См. один язык или все языки.
Удалить язык
Заголовок раздела «Удалить язык»Нажмите Удалить у языка. В окне подтверждения перечислены данные на этом языке: записи контента на этом языке, группы переводов, для которых он основной, и описания медиа.
- Удаление убирает язык из инструментов редактирования. Ничего сохранённого не удаляется.
- Опубликованный контент может продолжать отдаваться на этом языке, пока его не изменят и не опубликуют снова.
- Язык по умолчанию удалить нельзя. Сначала сделайте языком по умолчанию другой.
- Язык, который служит резервным для других, удалить нельзя: «{language}» — резервный язык для {languages}. Сначала уберите его из их списков.
- Если содержимое языка изменилось до подтверждения, удаление отклоняется. Проверьте новые числа и повторите.
- Новый контент нельзя создать на удалённом языке или на языке, которого на сайте никогда не было (
unknown_locale). Создание, которое идёт в момент удаления языка, ничего не записывает (language_changed).
Решение частых проблем
Заголовок раздела «Решение частых проблем»| Проблема | Причина | Решение |
|---|---|---|
Публичный API отвечает 500 site_locale_policy_invalid. |
Правило для отсутствующих переводов не сохранено. | Выберите его в блоке Отсутствующие переводы. |
Чтение отвечает 404 locale_unavailable. |
Запись опубликована, но ни на одном из языков, разрешённых текущим правилом. При strict учитывается только запрошенный язык. | Опубликуйте этот язык, добавьте резервный язык или переключитесь на Показать страницу на языке по умолчанию. |
| Посетители видят другой язык. | Правило fallback, а запрошенный язык не опубликован. | Проверьте locale в ответе. Опубликуйте перевод. |
| Удалить отклоняется. | Это язык по умолчанию или резервный для другого языка. | Смените язык по умолчанию или измените списки резервных языков. |
| Список резервных языков не сохраняется. | Цикл, повтор, неизвестный язык или больше 8 языков. | Исправьте список, как подсказывает экран. |
Добавление языка в запись отклоняется с language_in_trash. |
Этот язык записи находится в корзине. | Восстановите его из корзины. |
| Переводчик не может опубликовать свой язык. | У роли нет права публикации на этом языке или действие затрагивает несколько языков. | Используйте кнопку своего языка или расширьте роль. |
Следующий шаг
Заголовок раздела «Следующий шаг»Переводите и публикуйте записи по руководству редактирование и публикация контента.
Стабильная версия ещё не выпущена (pre-MVP)
Коммит исходного кода: fe23db481c422b40e317b92fc98116b4c0c26a87 (с локальными изменениями)
Дата сборки (UTC): 2026-10-18T09:22:34.630Z
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску