# General Translation Integrations: Поддерживаемый контент
URL: https://generaltranslation.com/ru/docs/integrations/payload/reference/supported-content.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Узнайте, какие поля Payload CMS плагин переводит, сохраняет без изменений или пропускает. Справочник по поддерживаемому контенту gt-payload.

Плагин обходит плоскую схему полей Payload и переводит только локализованный текст. Структура полей при этом сохраняется, поэтому результаты можно записать обратно через Payload Local API.

## Обзор [#overview]

| Тема                                                 | Описание                                                         |
| ---------------------------------------------------- | ---------------------------------------------------------------- |
| [Переводимые поля](#translated-fields)               | Локализованные значения полей text, textarea и форматированного текста.        |
| [Вложенное содержимое](#nested-content)                 | Группы, вкладки, массивы, блоки и блоки форматированного текста. |
| [Поля, сохраняемые без изменений](#preserved-fields) | Значения, которые копируются или остаются без изменений.         |
| [Исключение полей](#field-opt-out)                   | Настройка исключения текста для отдельных полей.                 |
| [Ограничения на число символов](#character-limits)   | Обработка длины в Payload и SEO.                                 |
| [Поведение при сохранении](#save-behavior)           | Работа с черновиками, прямое сохранение и публикация.            |

## Переводимые поля [#translated-fields]

Плагин переводит непустые значения следующих локализованных полей:

* поля `text`, включая списки `hasMany`
* поля `textarea`
* поля Lexical `richText`

Исходной считается локаль по умолчанию в Payload. Любая другая поддерживаемая и настроенная локаль может быть целевой для перевода.

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

## Вложенное содержимое [#nested-content]

Переводимые поля могут находиться внутри:

* групп и именованных вкладок;
* массивов;
* блоков, включая ссылки на блоки;
* полей блоков и встроенных блоков Lexical.

Локализованные контейнеры хранят отдельные строки для каждой локали. В общих массивах и блоках строки сопоставляются по Payload ID, поэтому переведённый текст попадает в соответствующую исходную строку.

## Поля, сохраняемые без изменений [#preserved-fields]

Плагин не переводит:

* Поля без `localized: true`, если только они не находятся внутри локализованного контейнера
* Поля слагов Payload
* Поля только для чтения, скрытые и виртуальные поля
* Значения `text`, распознанные как пути, URL или адреса электронной почты (`textarea` и форматированный текст переводятся в обычном режиме)
* Нетекстовые типы полей, такие как связи, загрузки, даты, числа, флажки и JSON
* Служебные метаданные элементов Payload, такие как ID и названия типов блоков

Если обязательное поле не переводится, а в целевой локали у него нет значения, в него подставляется исходное значение — это позволяет Payload сохранить локаль. Существующие значения целевой локали в полях, сохраняемых без изменений, остаются нетронутыми, если это допускает локализованная структура Payload.

Узлы форматированного текста сохраняют метки, ссылки, загрузки, блоки и форматирование. Если переведённую разметку не удаётся надёжно сопоставить со структурой источника, плагин пропускает эту строку и сообщает об ошибке `broken_markup`.

## Исключение полей [#field-opt-out]

Чтобы исключить поле из перевода, задайте для него параметру `custom.gt.translate` значение `false`:

```ts title="src/collections/products.ts"
{
  name: 'sku',
  type: 'text',
  localized: true,
  custom: {
    gt: {
      translate: false,
    },
  },
}
```

Если этот параметр задан для родительского поля, он также исключает и его переводимые вложенные элементы.

## Ограничения на число символов [#character-limits]

Если перевод превышает значение `maxLength` поля, плагин запрашивает более короткий вариант. Если и он не укладывается в жёсткое ограничение, плагин обрезает текст по границе слова и добавляет символ многоточия, принятый в данной локали.

Для полей, отображаемых плагином Payload SEO, действуют следующие рекомендуемые ограничения:

| Поле             | Рекомендуемая длина | Жёсткое усечение                             |
| ---------------- | ------------------- | -------------------------------------------- |
| Meta title       | 60 символов         | Только если для поля также задан `maxLength` |
| Meta description | 150 символов        | Только если для поля также задан `maxLength` |

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

## Поведение при сохранении [#save-behavior]

Плагин считывает последний черновик для исходной и целевой локалей с отключённым резервным переключением локалей. Запись выполняется через Local API:

* Если черновики включены, сохраняется черновик.
* Если черновики не используются, данные сохраняются напрямую.
* Публикация никогда не выполняется.

Чтение и запись, инициированные из панели администратора, подчиняются правилам доступа Payload для вошедшего пользователя. При программных вызовах можно передать пользователя Payload, чтобы применить те же правила; если пользователь не передан, Payload Local API применяет стандартные server-side правила доступа.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
