Перейти к содержимому

AI-перевод

Автор пишет статью на одном языке и одним действием получает черновики на остальных языках вики (ru, uk, en, es). AI ничего не публикует: каждый черновик автор вычитывает и публикует как обычно.

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

  1. Автор запускает AI-перевод на статье-источнике. Языки можно выбрать; без выбора переводятся все остальные языки, у которых версии нет или она ещё черновик.
  2. Сразу, до перевода, на каждый целевой язык появляется черновик (DRAFT) в той же группе переводов. Нет версии — она создаётся; есть черновик — он перезаписывается копией источника: текст, заголовок, описание, SEO.
  3. Все языки переводятся параллельно и независимо: неудача одного не останавливает остальные.
  4. Когда перевод готов, он заменяет текст черновика. Статус запроса у черновика меняется с «переводится» на «готово» или «не удалось» с кодом ошибки.
  5. Пока автор сам не сохранит черновик, у него стоит пометка «AI-перевод, не вычитан». Публикуется он как любой другой черновик.

Slug перевода берётся от источника, если он свободен на целевом языке на том же сервере; иначе генерируется из переведённого заголовка. Автор может сменить его потом.

Структура статьи сохраняется как есть, меняется только текст.

Элемент Что происходит
Заголовок, описание, SEO-заголовок, SEO-описание переводятся
Абзацы и заголовки, в том числе внутри списков, таблиц, callout, спойлеров, цитат переводятся
Подписи картинок (alt, title) и заголовки спойлеров переводятся
Жирный, курсив, ссылки и другое оформление остаются на тех же словах
Упоминания предметов, NPC и скиллов не переводятся: карточка сама показывает имя на языке читателя
Упоминание другой статьи ведёт на опубликованную версию той статьи на языке перевода, если она есть; иначе — на исходную
Блоки кода и инлайн-код не переводятся
Картинки, таблицы, разметка копируются как есть

Глоссария игровых терминов нет: термины в обычном тексте модель переводит сама, автор их вычитывает.

У каждого черновика свой статус; показывается последний запрос.

Статус Что значит Что делать
Переводится (PENDING) перевод идёт ждать; правка черновика сейчас отменит его перевод
Готово (DONE) перевод в черновике вычитать и опубликовать
Не удалось (FAILED) перевод не получился, черновик остался копией источника запустить перевод этого языка ещё раз; причина — в коде ошибки
Отменён (CANCELLED) автор сохранил, сменил статус или удалил черновик во время перевода ничего: ручная правка побеждает, поздний перевод черновик не тронет
Заменён (SUPERSEDED) перевод запустили заново, пока шёл прежний ничего: применяется только последний запрос
Что Значение При превышении
Переводимый текст статьи 120 000 символов отказ сразу (INPUT_TOO_LARGE), черновики не создаются
Размер запроса 1 МБ тот же отказ; бывает у статей с очень большим числом мелких фрагментов
Ожидание одного ответа модели 70 с вызов повторяется один раз; второй таймаут — язык «не удалось» (LLM_ERROR)
Перевод целиком 5 мин готовые языки сохраняются, недоделанные — «не удалось» (AGENT_TIMEOUT)
Результата нет совсем 15 мин запрос «не удалось» (TIMEOUT)
Права ARTICLES_CREATE, если создаётся новая языковая версия; ARTICLES_UPDATE, если перезаписывается черновик 403

В лимит считается только текст: упоминания, картинки и разметка в него не входят. Типичный гайд — около 14 000 символов разметки статьи — несёт примерно 1 000–2 000 символов текста.

Обычная статья переводится на три языка за 10–15 секунд, длинная (около 25 000 символов текста) — примерно за полторы минуты.

Ситуация Поведение
Явно выбран язык, версия которого опубликована или в архиве весь запрос отклоняется (TRANSLATION_NOT_DRAFT) со списком таких языков; ни один язык не меняется
Язык не выбран, его версия опубликована или в архиве язык пропускается: опубликованную версию AI никогда не трогает
Явно выбран язык, версия которого удалена и ждёт окончательного удаления запрос отклоняется (TRANSLATION_DELETED)
Переводить нечего: все остальные языки опубликованы 400
Выбран язык самой статьи, повтор языка или неизвестный язык 400
Системная статья (генерируется автоматически) отказ (SYSTEM_ARTICLE_READONLY): такие статьи переводят их генераторы
Автор правит, меняет статус или удаляет черновик во время его перевода перевод этого языка отменяется, правка остаётся; остальные языки продолжают
Автор правит источник во время перевода перевод не отменяется: переводится текст на момент запуска
Перевод запущен повторно, пока идёт прежний прежний заменяется, применяется только новый
Черновик уже есть и в нём есть ручные правки он перезаписывается копией источника, правки теряются: не запускайте перевод на вычитанный черновик
Картинку загрузили или удалили во время перевода перевод её не затирает
Модель сломала разметку один повтор; если и он не удался — язык «не удалось» (TAGS_MISMATCH), черновик остаётся копией источника
Перезапуск сервиса между запуском и отправкой запрос доставляется после перезапуска; повторный результат применяется не больше одного раза
Источник удалён насовсем после перевода черновики и их история остаются, ссылка на источник пустая

При «не удалось» черновик не меняется: в нём по-прежнему копия источника. Почти всегда помогает повторный запуск этого языка.

Код Причина
LLM_ERROR модель не ответила: сбой провайдера или дважды нет ответа за 70 с
TAGS_MISMATCH модель дважды сломала разметку, или перевод не лёг на черновик
AGENT_TIMEOUT язык не успел за 5 минут всего перевода
TIMEOUT результата не было 15 минут
INPUT_TOO_LARGE статья длиннее лимита
MISSING_TRANSLATION, INVALID_RESULT, CONTENT_INVALID, ASSEMBLY_FAILED результат пришёл, но собрать из него черновик не удалось; если повтор не помог — в поддержку
AGENT_FAILED и прочие сбой сервиса перевода целиком; если повтор не помог — в поддержку