Почему Polylang подставляет некорректный перевод?
Ссылка скопирована
Мультиязычный сайт.
Polylang подставляет перевод не языка который выбран а тот который в приоритете т.е. отмечен звёздочкой.
Реализация блока через шорткод [woocommerce_cart]
За чекаут отвечает Checkout Field Editor and Manager for WooCommerce
К Polylang+Locotranslate.
Дополнительно:
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Почему не работает связка 3X-UI на своем VPS и Necobox на Windows 10 и где искать причину?
0 ответов
1С-Битрикс
Из-за чего Bitrix 14.5 не импортирует инфоблоки из своего же CSV?
0 ответов
Искусственный интеллект
Что делать, если OpenRouter ограничивает доступ к моделям?
0 ответов
woocommerce
Как редактировать поля чека только для одного товара: Юкасса wordpress?
0 ответов


Polylang обычно подставляет язык по текущему URL, текущей записи и языковому контексту. Если в блоке WooCommerce или checkout выводится язык со звёздочкой, чаще всего проблема не в самой звёздочке, а в том, что нужная строка не зарегистрирована как строка Polylang, кэшируется не в том языке или перевод берётся из другого слоя: Loco Translate, плагин полей checkout, WooCommerce templates.
Что проверить по порядку:
[woocommerce_cart]или[woocommerce_checkout]стоит на переведённой странице, а не на одной общей странице для всех языков.Если текст задаётся плагином как опция, его часто нужно зарегистрировать в Polylang:
add_action('init', function () { if (function_exists('pll_register_string')) { pll_register_string('checkout_placeholder_phone', 'Phone', 'Checkout fields'); pll_register_string('checkout_placeholder_name', 'Name', 'Checkout fields'); } });
А в месте вывода получать перевод так:
$placeholder = function_exists('pll__') ? pll__('Phone') : 'Phone';
Если текст идёт из gettext-перевода WooCommerce или стороннего плагина, Loco Translate должен иметь перевод именно для нужного text domain. Частая ошибка — перевести одинаковую английскую строку не в том домене, из-за чего на фронте продолжает использоваться дефолт.
Отдельно проверьте AJAX-фрагменты WooCommerce. Некоторые элементы корзины обновляются AJAX-запросом, и если запрос уходит без языкового параметра, сервер может вернуть дефолтный язык. Для Polylang важно, чтобы URL, cookie и AJAX-запросы сохраняли текущий язык.
Без доступа к конкретной странице уверенность жёлтая: причин несколько. Но начинать нужно не с правки переводов вслепую, а с проверки языковых копий страниц WooCommerce и источника конкретной строки.