Задача. На сайте Woocommerce + тема Woodmart часть текста не переводится, хотя перевод в теме есть. Не переводились элементы, связанные с Woocommerce: кнопка «В корзину», «Описание товара» и пр. Но, как оказалось, проблема не связана с темой WP.
Решение. Причины могут быть разные, но если есть файлы переводов, то с высокой долей вероятности, что проблема в каком-то плагине. Либо плагин перекрывает перевод темы, либо какая-то иная проблема. Например, в моем случае конфликт был вызван плагином Contact Form 7.
Предлагаю чек-лист при проблемах перевода в теме сайта на WordPress:
- В файле
wp-config.php
проверить и если нет, то добавить строчкуdefine ('WPLANG', 'ru_RU');
- Проверить подключаются ли файлы перевода темы. Это можно сделать с помощью плагина «Query Monitor» (Изображение 1).
- Проверить есть ли сам перевод нужных строк.
- Проверить плагины, которые могут влиять на характерный перевод. Например, если проблема с контентом на Woocommerce, то могут перебивать плагины, которые работают с ним. Вроде, каких-то плагинов сравнения товаров, или, например, «LearnDash LMS — WooCommerce Integration».
- Проблема с CF7. После отключения плагина, все переводы начинают отображаться корректно. Причина в неправильном значении поля локализации формы. Решение ниже.

Решение конфликта Contact Form 7 с переводом темы или Woocommerce
При проблеме с CF7 в переводе, можно отключить плагин или убрать формы из вывода на странице, тогда перевод начинает работать корректно.
Проблема возникает из-за неправильной установки локализации в CF7. Для решения проблемы нужно в базе данных в таблице wp_postmeta
найти строки post_id
с идентификатором формы и заменить значение поля _locale
с en_US
на ru_Ru
(Изображение 2). Почему у некоторых форм задается en_US — непонятно, но стоит проверить.

Как вариант, на форумах предлагают в файле /wp-content/plugins/contact-form-7/includes/l10n.php
(строка 141) закомментировать условие if ( $do_switch_locale ) {...
, тогда проблема исчезает.