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

Серая кнопка, отказ сервера и сообщение «версия заблокирована» требуют разных исправлений. Запишите ключ строки, язык, состояние материала и точное сообщение. Пароли, cookie сессии и полный сетевой журнал передавать для такого разбора не нужно. Если проблема появилась только у одной строки, сравните её с доступной строкой того же языка.

Три причины похожего запрета

НаблюдениеЧто проверитьБезопасный следующий шаг
Поле недоступно до запросаРоль, режим просмотра, состояние версииОткрыть тестовый черновик
Запрос получает отказСерверное разрешение и область языкаСопоставить действие с ролью
Черновик сохранён, сайт прежнийУтверждение и выпуск переводаПроверить опубликованную ревизию

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

Разрешение на язык и разрешение на выпуск

OWASP рекомендует принцип минимальных полномочий и проверку разрешений на каждом запросе. Для редактора переводов это означает серверную проверку конкретной строки и операции, а не только скрытую кнопку. Документация сверена 11 октября 2026 года. Разделение ролей ниже — пример устройства приложения, не обязательный набор ролей для любой CMS.

Условная политика редакции:
translator: read + edit_draft для назначенных языков
reviewer: approve для назначенных разделов
publisher: release утверждённой ревизии
Все операции проверяются сервером.

Уточните область доступа: язык, раздел, проект или их сочетание. Переводчик карточек товара может не иметь права менять договорные формулировки. Отдельно проверьте прямой API-запрос на стенде: запрос с разрешённой ролью, но чужим ключом должен получить отказ. Делайте это только на собственных тестовых данных и с разрешением на проверку приложения.

Замороженная версия и правка без потери работы

Представим выпуск, уже отправленный на согласование. Правка прямо внутри него меняет то, что проверяет рецензент. Удобнее создать новый черновик от этой ревизии и сохранить ссылку на исходную. При публикации сервер проверяет, не изменился ли исходник; иначе редактор увидит конфликт, а не тихую замену чужого текста.

Не снимайте блокировку у всех материалов сразу. Сначала выясните, кто и зачем её установил: согласование, внешний импорт или активная работа другого редактора. Для потерянной блокировки нужен штатный способ освобождения с записью причины. Удаление строк в базе вручную может уничтожить связь перевода с версией и историю утверждения.

Репетиция, которая проверяет не только кнопку

  1. Переводчик меняет тестовую строку и повторно открывает черновик: текст сохранён.
  2. На публичной странице до утверждения остаётся прежняя версия.
  3. Рецензент утверждает конкретную ревизию; выпуск показывает её текст.
  4. Переводчик другого языка не может изменить ту же строку прямым запросом.
  5. После отзыва роли старая открытая вкладка больше не сохраняет изменения.

Если тест проходит, но рабочая строка всё ещё недоступна, сравните её источник и состояние, а не расширяйте роль. Для доработки панели подготовьте эту пару строк, правила выпуска и список операций сотрудников. По ним можно сделать понятное объяснение запрета и восстановление черновика без передачи полного управления сайтом.

Проверенные источники