qTranslate не работает: диагностика и решение проблем

Открыв админку WordPress после обновления, вы обнаруживаете, что переключатели языков в редакторе записей исчезли, а на сайте вместо переведённого текста выводится вся конструкция вида [:ru]Текст[:en]Text[:] целиком — это классический симптом того, что qTranslate перестал обрабатывать контент. Причина почти всегда кроется не в «сломавшемся» сайте, а в прекращении поддержки плагина: оригинальный qTranslate давно не обновляется и конфликтует с современными версиями WordPress.

Хорошая новость в том, что контент не потерян — многоязычные строки хранятся в базе данных в исходном виде, и задача сводится к тому, чтобы заставить движок снова их корректно обрабатывать. Ниже разберём диагностику по шагам: от простых проверок до миграции на поддерживаемые форки.

Как понять, что сломался именно qTranslate

Прежде чем что-то менять, убедитесь, что проблема относится к плагину перевода, а не к теме оформления или кэшу. Характерные признаки выглядят так:

  • 🔤 На страницах сайта видны служебные теги [:ru], [:en] или конструкции <!--:ru--> вместо чистого текста.
  • 🌐 Переключатель языков во фронтенде не реагирует или ведёт на страницу 404.
  • ✏️ В редакторе записей пропали вкладки языков над полем ввода текста.
  • ⚙️ В разделе Плагины qTranslate отображается как неактивный или выдаёт уведомление о несовместимости.

Быстрая проверка: временно переключитесь на стандартную тему (например, Twenty Twenty-Four) и отключите плагины кэширования. Если служебные теги всё равно видны — виноват именно механизм обработки переводов, а не шаблон.

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

Основные причины, почему qTranslate не работает

Ключевая причина — прекращение разработки. Оригинальный плагин qTranslate (и его преемник qTranslate-X) не получал обновлений долгое время, тогда как WordPress существенно изменил внутренние API: редактор блоков Gutenberg, обновлённые хуки и фильтры, требования к версиям PHP. Старый код плагина просто не успевает за этими изменениями.

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

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

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

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

☑️ Диагностика qTranslate

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

Если после отключения всех сторонних плагинов qTranslate заработал — включайте их обратно по одному. Так вы найдёте конфликтующее расширение методом исключения. Чаще всего конфликтуют SEO-плагины, конструкторы страниц и решения для кэширования, которые тоже вмешиваются в обработку контента.

Отдельно проверьте файл wp-content/debug.log, если включён режим отладки. Фатальные ошибки с упоминанием файлов плагина укажут, какая именно функция несовместима с текущей версией WordPress или PHP.

Решение 1: переход на qTranslate-XT

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

Порядок действий безопасный и обратимый:

  • 📦 Сделайте бэкап базы данных и папки wp-content/plugins.
  • 🗑️ Деактивируйте и удалите старый qTranslate или qTranslate-X.
  • ⬇️ Установите qTranslate-XT — он распространяется через репозиторий проекта на GitHub, а не через каталог WordPress, поэтому загрузка выполняется вручную через Плагины → Добавить новый → Загрузить плагин.
  • 🌍 После активации проверьте настройки языков в разделе Настройки → Языки и убедитесь, что включены те же языки, что использовались ранее.

Поскольку плагин устанавливается не из официального каталога, скачивайте его только из официального репозитория проекта и сверяйте совместимость с вашей версией WordPress в описании релиза.

Решение 2: миграция на альтернативный плагин

Если форк вам не подходит — например, нужна интеграция с редактором блоков или автоматический перевод — рассмотрите переезд на активно поддерживаемые решения: Polylang, WPML или TranslatePress. У каждого свой подход к хранению переводов, поэтому миграция потребует конвертации контента.

ПлагинМодель хранения переводовСтоимостьИнструменты миграции с qTranslate
qTranslate-XTТеги в одном поле (как оригинал)БесплатноНе требуется, формат совместим
PolylangОтдельные записи для каждого языкаБесплатно / ProЕсть сторонние скрипты конвертации
WPMLОтдельные записи, связанные между собойПлатноОфициальный плагин миграции с qTranslate
TranslatePressОтдельные таблицы переводовБесплатно / ProТребуется ручная настройка

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

⚠️ Внимание: не удаляйте старый qTranslate и не чистите базу от тегов [:] до тех пор, пока не убедитесь, что новый плагин корректно отображает весь контент. Теги в базе — это ваш страховочный вариант на случай отката.

Решение 3: починить текущую установку без замены плагина

Если переезд пока невозможен, попробуйте стабилизировать имеющуюся связку. Это паллиатив, но он может выиграть время. Проверьте версию PHP на хостинге: старые версии qTranslate могут конфликтовать с PHP 8.x, и временный откат на более раннюю ветку PHP (если хостер это позволяет) иногда восстанавливает работу. Точную совместимость конкретной версии плагина уточняйте в её документации.

Для диагностики включите логирование ошибок в wp-config.php:

define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

define('WP_DEBUG_DISPLAY', false);

После этого обновите проблемную страницу и изучите файл wp-content/debug.log. Ошибки вида Fatal error или Deprecated с путями к файлам плагина покажут, какая функция несовместима. После завершения диагностики отключите режим отладки, вернув значения false.

Что делать, если в базе остались теги [

ru] [:en], а плагин удалён:Контент не пропал — текст всех языков хранится в полях записей в одном значении с тегами-разделителями. Пока эти данные в базе, их можно либо снова обрабатывать совместимым плагином (qTranslate-XT), либо извлечь скриптом конвертации при миграции. Не редактируйте записи вручную массово: одна ошибка в регулярном выражении может смешать языковые версии.

Проблемы с переключателем языков и URL

Отдельный класс неполадок — когда контент обрабатывается, но не работает переключение. Обычно виноваты правила постоянных ссылок или кэш. Зайдите в Настройки → Постоянные ссылки и сохраните их заново — это пересоздаёт правила в .htaccess без ручного редактирования файла.

Также проверьте настройки режима URL в самом плагине: языковой префикс в адресе (/en/page), параметр запроса (?lang=en) или поддомены ведут себя по-разному, и смена режима без настройки редиректов ломает старые ссылки. Если сайт работает за прокси или CDN, убедитесь, что кэширующий слой учитывает языковую часть URL, иначе посетители будут получать страницу не на том языке из кэша.

Когда стоит обратиться к специалисту

Самостоятельный ремонт разумен, пока речь идёт о переустановке плагина и стандартных настройках. Но если сайт содержит тысячи записей, кастомные поля, интеграцию с интернет-магазином (WooCommerce) или нестандартные типы контента, миграция превращается в проект с риском потери данных.

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

Часто задаваемые вопросы

Почему после обновления WordPress на сайте появились теги [:ru] и [:en]?

Это значит, что плагин перестал обрабатывать многоязычные строки — чаще всего из-за несовместимости старого кода qTranslate с новой версией ядра WordPress или PHP. Контент в базе не повреждён, нужно восстановить работу обработчика: обновить плагин до форка qTranslate-XT или мигрировать на другое решение.

Можно ли просто удалить qTranslate без потери переводов?

Удаление плагина не стирает данные из базы, но переводы перестанут отображаться корректно — посетители увидят сырые теги. Удалять плагин стоит только после того, как новое решение установлено и проверено на всех типах контента.

Чем заменить qTranslate, если нужен редактор блоков Gutenberg?

Для полноценной работы с блочным редактором лучше подходят Polylang, WPML или TranslatePress — они активно развиваются и поддерживают современные версии WordPress. Учтите, что потребуется конвертация существующего контента из формата тегов qTranslate.

Переключатель языков ведёт на ошибку 404 — как исправить?

Сначала пересохраните постоянные ссылки в разделе «Настройки → Постоянные ссылки». Если не помогло, проверьте выбранный режим языковых URL в настройках плагина и убедитесь, что файл .htaccess доступен для записи WordPress.

Безопасно ли ставить qTranslate-XT с GitHub?

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