Это форум технической поддержки WPML – плагина для многоязычной WordPress.
Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.
Помечено: Not WPML issue
Эта тема содержит 11 ответов, имеет 2 голоса.
Последнее обновление: Andrey 1 год, 11 месяцев назад.
При содействии: Andrey.
Автор | Записи |
---|---|
13 января, 2023 на 6:50 пп #12815857 | |
stanislavS-19 |
Я написал плагин: /** </div> <!--Viber--> скрытая ссылка"><div class="nav-label"> <span><?php _e('Написать в Viber', 'callback_widget'); ?></span> </div> </div> <!--Telegram--> скрытая ссылка"><div class="nav-label"> <span><?php _e('Написать в Telegram', 'callback_widget'); ?></span> </div> </div> <!--Mail--> </div> <?php Он добавляет код в футер, который отображает блок обратной связи на сайте скрытая ссылка Все текста, согласно инструкции https://wpml.org/documentation/support/translating-the-theme-you-created/ заключил в _e WPML нашел мои строки, и я их перевел. Но переводы не отображаются на сайте. Где я допустил ошибку? |
16 января, 2023 на 7:08 дп #12823935 | |
stanislavS-19 |
Я заметил, что перевод работает. Но, только после обновления страницы. Т.е. если мы находимся на странице с рус яз и переключаемся на укр яз. Перевод не появляется и надписи в моем блоке мессенджеров отображаются на русском. Но, если обносить страницу (F5 или кнопка "Обновить" в браузере), то перевод появляется. Как это можно исправить? Чтобы перевод загружался/отображался сразу? |
16 января, 2023 на 8:03 дп #12824123 | |
stanislavS-19 |
Аналогичное явление наблюдаю и с плагином Popup Maker. Если переключиться с русского на украинский и нажать кнопку "Замовити печатку" или "Замовити факсиміле" (ориентировочно находятся посередине страницы), то мы увидим Contact Form7 во всплывающем окне на русском языке. Но, если обновим страницу, и снова нажмем на ту же кнопку, то форма уже будет на украинском. |
16 января, 2023 на 1:21 пп #12827017 | |
Andrey Supporter Языки: Английский (English ) Русский (Русский ) Часовой пояс: Europe/Kyiv (GMT+02:00) |
Спасибо за обращение в службу поддержки WPML. Как Вы загружаете Ваш textdomain callback_widget в плагине? https://developer.wordpress.org/themes/functionality/internationalization/ Также обратил внимание, что при смене языка на украинский блок обратной связи не перезагружается. Не знаю, как он был именно реализован, может проблема в кэше? |
16 января, 2023 на 3:07 пп #12827613 | |
stanislavS-19 |
Я не понял этой части предложения: "Как Вы загружаете Ваш textdomain"((( На неё нет ответа в коде, который я написал в первом посте? Те слова, которые надо перевести есть в этом коде. Вот его фрагмент: И перевод работает, просто он отображается не после переключения языка на украинский. А после переключения и нажатия Обновить страницу (F5). И я на 99% уверен, что это тема (Bridge) кеширует. Мой вопрос наверное правильнее сформулировать так: можно ли сделать автоматический принудительный сброс кеша при переключении языка? |
16 января, 2023 на 3:32 пп #12827825 | |
Andrey Supporter Языки: Английский (English ) Русский (Русский ) Часовой пояс: Europe/Kyiv (GMT+02:00) |
Я не могу точно сказать, если есть такая возможность в данной теме. Предполагаю, что данная информация может быть в документации текущей темы. В нашей API есть константа, которая определяет язык текущей страницы ICL_LANGUAGE_CODE. А, также есть фильтр, который возвращает язык страницы 'wpml_current_language'. То есть, используя это Вы можете написать какую нибудь функцию, которая будет сбрасывать кэш темы, если язык страницы изменился. Каждый плагин или тема загружает свой текстовый домен (по примеру callback_widget), используя следующий код, который есть в указанной ссылке ранее: function my_theme_load_theme_textdomain() { load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' ); } add_action( 'after_setup_theme', 'my_theme_load_theme_textdomain' ); В Вашем коде, я этого не заметил. Может это и не является причиной, но я бы протестировал. |
23 января, 2023 на 7:02 дп #12869109 | |
stanislavS-19 |
Ок. Забудем про мой код. В теме Bridge (скрытая ссылка) указано, что она оптимизирована для работы с WPML. В этой теме есть боковая область (на скрине). Контент, который в ней отображается, добавляется при помощи виджета. Я создал его на обоих языках (на скрине) и он работает не корректно. Просто при переключении языка перевод не отображается. Надо еще и обновить страницу, нажав F5. Только тогда появляется перевод. |
23 января, 2023 на 8:30 дп #12869647 | |
Andrey Supporter Языки: Английский (English ) Русский (Русский ) Часовой пояс: Europe/Kyiv (GMT+02:00) |
Спасибо за информацию. Как говорили ранее, видимо текущая тема кеширует страницы или загружает их методом AJAX. Попробуйте добавить следующую линию в functions.php текущей темы: add_filter( 'wpml_ls_enable_ajax_navigation', '__return_true' ); Дайте мне знать, если не помогает. |
26 января, 2023 на 12:18 дп #12893861 | |
stanislavS-19 |
Не помогает( Я заметил, что и контактные формы не переключаются((( Т.е. Если с украинского переключиться на русский, и нажать, например, на кнопку баннера, то появится контактная форма на украинском языке. И только обновив страницу, и уже повторно нажав на ту же кнопку мы увидим контактную форму на русском. |
26 января, 2023 на 3:08 пп #12898459 | |
Andrey Supporter Языки: Английский (English ) Русский (Русский ) Часовой пояс: Europe/Kyiv (GMT+02:00) |
Хммм.... странно. А какой будет результат, если отключить Page Transition у Вас в текущей теме, находится в Admin -> Qode Options -> General -> Settings -> Page Transition and select "Fade" ? |
27 января, 2023 на 11:00 дп #12903307 | |
stanislavS-19 |
Да! Это оно! Я переключил на No animation и теперь всё работает прекрасно. Даже мой плагин сразу загружается на выбранном языке. Спасибо за помощь. PS: У меня одностраничник, и не принципиально как загружаются страницы, но я думаю не мешало бы вместе с разработчиками темы сделать так, чтобы переключения языков работало на всех вариантах загрузок страницы) |
27 января, 2023 на 3:49 пп #12905387 | |
Andrey Supporter Языки: Английский (English ) Русский (Русский ) Часовой пояс: Europe/Kyiv (GMT+02:00) |
Спасибо за фидбэк) Странно эта линия кода должна была решить именно проблему. Рад, что сейчас работает. Передам фидбэк. Хороших выходных! |