qTranslate перестал работать: диагностика и восстановление мультиязычности

Характерный признак того, что qTranslate перестал работать, — в админке WordPress пропадают языковые вкладки в редакторе записей, а на фронтенде все версии страницы показывают один и тот же текст или сырые теги вида [:ru]...[:en]. Это почти всегда связано с тем, что плагин давно не обновляется разработчиком и конфликтует с актуальными версиями ядра WordPress, PHP или другими расширениями.

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

Как проявляется поломка qTranslate

Симптомы различаются в зависимости от того, что именно сломалось. Важно точно зафиксировать картину, прежде чем приступать к исправлениям, — от этого зависит выбор решения.

  • 🔤 В редакторе записей исчезли кнопки переключения языков, поля стали одним общим блоком.
  • 🏷️ На страницах сайта отображаются служебные метки [:ru], [:en] или <!--:ru--> вместо чистого текста.
  • 🔗 Переключатель языков во фронтенде ведёт на ошибку 404 или всегда открывает версию на языке по умолчанию.
  • ⚠️ Админка показывает белый экран или критическую ошибку WordPress после активации плагина.
  • 🧩 Переводы «на месте» в базе, но перестали сохраняться изменения при редактировании.

Если тексты на сайте видны, но содержат служебные теги, контент не потерян — он хранится в базе в многоязычном формате qTranslate. Это важно: данные переводов почти всегда целы, ломается именно механизм их обработки, поэтому паниковать и пересоздавать записи не нужно.

Почему qTranslate перестал работать: основные причины

Наиболее частая причина — несовместимость с новой версией WordPress. Оригинальный qTranslate давно не поддерживается автором, и после очередного обновления ядра хуки и функции, на которые опирается плагин, могут перестать существовать или изменить поведение. Тот же эффект даёт обновление PHP на хостинге: старый код плагина может вызывать фатальные ошибки на новых версиях интерпретатора.

Вторая группа причин — конфликты с другими компонентами. Проверьте следующие типичные источники:

  • 🧱 Обновление темы или плагинов, которые тоже вмешиваются в редактор (конструкторы страниц, SEO-модули).
  • 🛡️ Плагины безопасности или кэширования, блокирующие скрипты переключения языков в админке.
  • 🌐 Смена структуры постоянных ссылок или правил .htaccess, из-за чего языковые URL перестали маршрутизироваться.
  • 📦 Переезд на другой хостинг с иной конфигурацией сервера.

Реже встречается повреждение настроек самого плагина: например, сброс списка активных языков или языка по умолчанию после неудачного обновления. В этом случае плагин формально работает, но обрабатывает контент неправильно.

📊 Что именно сломалось у вас в qTranslate?
Пропали языковые вкладки в админке
Теги [:ru] [:en] видны на сайте
Переключатель языков не работает
Белый экран / критическая ошибка

Быстрая диагностика: с чего начать

Начинайте с обратимых проверок, которые не меняют данные. Первый шаг — откройте консоль браузера (клавиша F12) на странице редактирования записи и посмотрите, есть ли ошибки JavaScript. Если скрипты qTranslate не загружаются или падают с ошибкой, вы увидите это сразу — чаще всего причина в конфликте с другим плагином или в блокировке файлов.

Далее проверьте журнал ошибок PHP на хостинге. Фатальные ошибки с упоминанием файлов плагина в папке wp-content/plugins/ указывают на несовместимость кода с текущей версией PHP или WordPress. Если доступ к логам затруднён, можно временно включить отладку в wp-config.php:

define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

После этого ошибки будут записываться в файл wp-content/debug.log. Не забудьте отключить отладку после завершения диагностики.

Пошаговое восстановление работы плагина

Действуйте последовательно, проверяя результат после каждого шага. Большинство сбоев устраняется на первых двух-трёх пунктах.

☑️ План восстановления qTranslate

Выполнено: 0 / 6

Вам нужно временно деактивировать все плагины, кроме qTranslate, и переключить тему на стандартную (например, Twenty Twenty-Four). Если после этого языковые вкладки вернулись — причина в конфликте, и остаётся включать компоненты по одному, чтобы найти виновника. Метод трудоёмкий, но надёжный.

Затем откройте настройки qTranslate и убедитесь, что нужные языки включены, а язык по умолчанию выбран корректно. После этого перейдите в Настройки → Постоянные ссылки и просто нажмите «Сохранить изменения» — это пересоздаст правила маршрутизации, что часто чинит неработающие языковые URL.

⚠️ Внимание: не удаляйте плагин через админку «с очисткой данных», если такая опция предлагается. Удаление таблиц или опций qTranslate может привести к потере привязки переводов. Деактивация без удаления безопасна — контент остаётся в базе.

Сравнение вариантов решения проблемы

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

ВариантСутьРискиКогда подходит
Откат WordPress/PHPВернуть прежние версии ядра или интерпретатораУязвимости безопасности, устареваниеКак временная мера
Форк qTranslate-XTПоддерживаемое сообществом продолжение плагинаТребует аккуратной замены и тестированияСохранить текущую структуру контента
Миграция на Polylang / WPMLПереход на актуальный многоязычный плагинНужна конвертация контента из формата теговДолгосрочное решение
Ручная правка кодаПатч несовместимых функцийПотеряется при любом обновлении, требует навыковТочечная починка одной ошибки

Обратите внимание: qTranslate-XT — это форк, который энтузиасты поддерживают для совместимости с современными версиями WordPress, и он понимает тот же формат хранения переводов. Тем не менее перед заменой протестируйте его на копии сайта: поведение конкретной связки «тема + плагины» предсказать заранее нельзя.

Что делать, если ничего не помогло

Когда все проверки пройдены, а qTranslate по-прежнему не работает, стратегически правильнее планировать миграцию. Плагин фактически заброшен, и каждое следующее обновление WordPress будет повторять проблему. Современные решения — Polylang, WPML — используют другой принцип хранения (отдельные записи для каждого языка), поэтому потребуется конвертация существующего контента.

Для конвертации существуют вспомогательные инструменты, которые разбирают теги qTranslate и раскладывают тексты по отдельным записям. Поскольку результат зависит от объёма и структуры вашего сайта, выполняйте процедуру на тестовой копии и сверяйтесь с документацией выбранного плагина — универсальной кнопки «перенести всё» не существует.

Как проверить, что переводы целы в базе

Откройте phpMyAdmin, найдите таблицу wp_posts (префикс может отличаться) и просмотрите поле post_content любой записи. Если текст содержит блоки вида [:ru]текст[:en]text[:] или комментарии , значит, многоязычные данные на месте и доступны для восстановления или миграции.

⚠️ Внимание: не редактируйте многоязычные поля вручную через базу данных без понимания формата тегов. Повреждённый или незакрытый маркер языка приведёт к тому, что запись будет отображаться некорректно во всех языковых версиях.

Если сайт коммерческий и простой недопустим, разумный порядок такой: сначала откатить версию PHP или WordPress до работоспособной конфигурации (как временную меру), затем параллельно готовить миграцию на поддерживаемое решение. Работать годами на устаревшем стеке небезопасно — это следует учитывать при выборе «починить» или «переехать».

Частые вопросы

Почему qTranslate сломался именно после обновления WordPress?

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

Пропадут ли переводы, если деактивировать qTranslate?

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

Что делать с тегами [:ru] и [:en], которые видны на страницах?

Это признак того, что плагин не обрабатывает контент: либо он деактивирован, либо его фильтры не срабатывают. Восстановите работу плагина или совместимого форка — теги исчезнут автоматически, удалять их вручную из записей не нужно.

Можно ли просто установить другой мультиязычный плагин поверх qTranslate?

Напрямую — нет. Polylang и WPML используют другой формат хранения переводов, поэтому сначала потребуется конвертация существующего контента. Проводите миграцию на тестовой копии сайта по документации выбранного решения.

Безопасно ли откатить версию PHP на хостинге ради qTranslate?

Как временная мера это допустимо, если хостинг позволяет выбрать версию интерпретатора. Однако старые версии PHP перестают получать исправления безопасности, поэтому откат стоит рассматривать только как промежуточный шаг на время подготовки миграции.