Эта тема решена. Вот описание проблемы и ее решения.
Проблема: Клиент пытается перевести главный заголовок текущей категории на странице каталога в теме Woodmart. Несмотря на наличие переводов в админке, главный заголовок всегда отображается на английском. Решение: Мы рекомендуем использовать функцию gettext для перевода строк, такие как
_e('All products', 'woocommerce');
. Важно передавать в функцию непосредственно строку, а не переменную. Подробнее о правильном использовании gettext можно узнать здесь. После добавления строки в код темы, необходимо просканировать её на наличие новых переводимых строк в WPML → Локализация тем и плагинов, а затем выполнить перевод через WPML → Перевод строк. Также можно воспользоваться доступными хуками WPML, список которых доступен здесь.
Если данное решение окажется неактуальным или не подойдет для вашего случая, мы настоятельно рекомендуем проверить известные проблемы, убедиться в актуальности версии исправления и подтвердить, что у вас установлены последние версии тем и плагинов. Если проблема сохраняется, пожалуйста, откройте новый тикет поддержки.
Это форум технической поддержки WPML – плагина для многоязычной WordPress.
Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.
Предыстория вопроса:
Я пытаюсь перевести главный заголовок текущей категории на странице каталога. Хотя переводы категорий есть и отображаются на выбранном языке, главный заголовок всегда на английском. Я использую тему Woodmart. Ссылка на страницу: скрытая ссылка
Симптомы:
Главный заголовок страницы категории всегда отображается на английском, несмотря на наличие переводов в админке.
Вопросы:
Как сделать так, чтобы главный заголовок категории отображался на выбранном языке?
Почему главный заголовок категории не переводится, хотя переводы есть в админке?
Пробовали ли Вы найти эти строки в разделе WPML → Перевод строк?
Попробуйте выполнить следующие шаги, чтобы убедиться, что переведён правильный текст:
1. Перейдите в WPML → Перевод строк.
2. Включите опцию автоматической регистрации строк.
3. Откройте на сайте страницу, на которой отображаются не переведённый текст.
4. Вернитесь в WPML → Перевод строк и проверьте, были ли строки зарегистрированы.
5. Выполните перевод найденных строк.
Да, переводы названий категорий есть (прикладываю скриншот) в админ панели и также на скриншоте проблемы выше можно увидеть, что названия категорий под заголовком переводятся успешно. Но только именно сам главный заголовок всегда на английском языке. Он переводится только если не имя, а слаг категории напрямую прописать на конкретном языке. Но тогда получается Url на смешанном языке, что мне кажется некорректным. Или так задумано плагином?
Он переводится только если не имя, а слаг категории напрямую прописать на конкретном языке. Но тогда получается Url на смешанном языке, что мне кажется некорректным. Или так задумано плагином?
Скорее всего, это реализовано таким образом в Вашей текущей теме, так как именно она управляет выводом нужных ей элементов. В Вашем случае, похоже, тема выводит не сам заголовок, а его слаг.
Если, как Вы указали, при замене слага всё работает корректно, то, к сожалению, других вариантов перевода нет или же только через изменение кода в теме, что выходит за рамки нашей поддержки.
Пробовали вручную функцией выводить заголовок, но он выводится ожидаемо на английском так же, потому что английский установлен как основной язык сайта.
Может есть какой-то хук или фильтр с помощью которого можно вывести именно перевод строк wpml? На скриншоте примерная функция.
Ожидалось, что подобная конструкция подгрузит строку в плагин wpml, но этого не происходит. Есть ли какие-то варианты, что можно сделать в данном случае? Как нам поступить, чтобы был перевод?
Функция gettext (и аналогичные, такие как _e, __) не должна содержать переменные — в неё нужно передавать непосредственно строку, которую требуется перевести.
После добавления строки в код темы, Вы можете просканировать её на наличие новых переводимых строк в WPML → Локализация тем и плагинов.
Затем выполнить перевод через WPML → Перевод строк.
То что должна быть текстовая строка это верно, но ведь заголовок динамический и без переменных не получится обойтись. Как быть тогда с динамическим заголовком? Есть ли какие-то варианты?
Связан ли Ваш вопрос с проблемой, описанной в этом тикете? Вы используете кастомный вывод заголовка?
Насколько я вижу, заголовок “All products” — это не основной заголовок страницы, а название категории. Однако на Вашей странице он отображается как главный, что наводит на мысль, что Вы выводите его вручную.