Skip navigation

Эта тема решена. Вот описание проблемы и ее решения.

Проблема:
Клиент пытается перевести главный заголовок текущей категории на странице каталога в теме Woodmart. Несмотря на наличие переводов в админке, главный заголовок всегда отображается на английском.
Решение:
Мы рекомендуем использовать функцию gettext для перевода строк, такие как

_e('All products', 'woocommerce');

. Важно передавать в функцию непосредственно строку, а не переменную. Подробнее о правильном использовании gettext можно узнать здесь.
После добавления строки в код темы, необходимо просканировать её на наличие новых переводимых строк в WPML → Локализация тем и плагинов, а затем выполнить перевод через WPML → Перевод строк.
Также можно воспользоваться доступными хуками WPML, список которых доступен здесь.

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

Это форум технической поддержки WPML – плагина для многоязычной WordPress.

Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.

Помечено: 

Эта тема содержит 9 ответов, имеет 1 голос.

Последнее обновление: Andrey 1 месяц, 1 неделя назад.

При содействии: Andrey.

Автор Посты
2 мая, 2025 в 9:21 дп #16988702

irynaI-3

Предыстория вопроса:
Я пытаюсь перевести главный заголовок текущей категории на странице каталога. Хотя переводы категорий есть и отображаются на выбранном языке, главный заголовок всегда на английском. Я использую тему Woodmart. Ссылка на страницу: скрытая ссылка

Симптомы:
Главный заголовок страницы категории всегда отображается на английском, несмотря на наличие переводов в админке.

Вопросы:
Как сделать так, чтобы главный заголовок категории отображался на выбранном языке?
Почему главный заголовок категории не переводится, хотя переводы есть в админке?

5 мая, 2025 в 8:59 дп #16995283

irynaI-3

Так в чём всё-таки проблема?

5 мая, 2025 в 6:33 пп #16997901

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+03:00)

Спасибо за обращение в службу поддержки WPML.

Пробовали ли Вы найти эти строки в разделе WPML → Перевод строк?

Попробуйте выполнить следующие шаги, чтобы убедиться, что переведён правильный текст:
1. Перейдите в WPML → Перевод строк.
2. Включите опцию автоматической регистрации строк.
3. Откройте на сайте страницу, на которой отображаются не переведённый текст.
4. Вернитесь в WPML → Перевод строк и проверьте, были ли строки зарегистрированы.
5. Выполните перевод найденных строк.

https://wpml.org/documentation/getting-started-guide/string-translation/finding-strings-that-dont-appear-on-the-string-translation-page/

5 мая, 2025 в 9:58 пп #16998468

irynaI-3

Да, переводы названий категорий есть (прикладываю скриншот) в админ панели и также на скриншоте проблемы выше можно увидеть, что названия категорий под заголовком переводятся успешно. Но только именно сам главный заголовок всегда на английском языке. Он переводится только если не имя, а слаг категории напрямую прописать на конкретном языке. Но тогда получается Url на смешанном языке, что мне кажется некорректным. Или так задумано плагином?

cat.jpg
6 мая, 2025 в 8:09 дп #16999914

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+03:00)

Спасибо за апдейт.

Он переводится только если не имя, а слаг категории напрямую прописать на конкретном языке. Но тогда получается Url на смешанном языке, что мне кажется некорректным. Или так задумано плагином?

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

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

6 мая, 2025 в 9:43 пп #17003739

irynaI-3

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

Ожидалось, что подобная конструкция подгрузит строку в плагин wpml, но этого не происходит. Есть ли какие-то варианты, что можно сделать в данном случае? Как нам поступить, чтобы был перевод?

_e($page_title, 'woocommerce');

заголовок.PNG
6 мая, 2025 в 9:54 пп #17003776

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+03:00)

Функция gettext (и аналогичные, такие как _e, __) не должна содержать переменные — в неё нужно передавать непосредственно строку, которую требуется перевести.

Пример правильного использования:

_e('All products', 'woocommerce');

Подробнее Вы можете ознакомиться здесь:
https://wpml.org/documentation/support/how-to-use-gettext/

После добавления строки в код темы, Вы можете просканировать её на наличие новых переводимых строк в WPML → Локализация тем и плагинов.
Затем выполнить перевод через WPML → Перевод строк.

6 мая, 2025 в 9:58 пп #17003777

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+03:00)

Также есть список доступных доступных хуков:
https://wpml.org/documentation/support/wpml-coding-api/wpml-hooks-reference/

7 мая, 2025 в 11:25 дп #17006097

irynaI-3

То что должна быть текстовая строка это верно, но ведь заголовок динамический и без переменных не получится обойтись. Как быть тогда с динамическим заголовком? Есть ли какие-то варианты?

7 мая, 2025 в 11:50 дп #17006263

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+03:00)

Существуют следующие хуки, но я не уверен, что они подходят именно для Вашего случая:
https://wpml.org/wpml-hook/wpml_translate_single_string/
https://wpml.org/wpml-hook/wpml_translate_string/

Связан ли Ваш вопрос с проблемой, описанной в этом тикете? Вы используете кастомный вывод заголовка?

Насколько я вижу, заголовок “All products” — это не основной заголовок страницы, а название категории. Однако на Вашей странице он отображается как главный, что наводит на мысль, что Вы выводите его вручную.