aerohorn
@aerohorn
Учусь фронтендить

Как перевести произвольные строчки с помощью Polylang?

Есть сайт на wordpress. Пользуюсь плагином Polylang для создания английской версии сайта. Работает хорошо, но не могу найти решение вопроса: как сделать, чтобы при клике на английскую версию сайта, допустим, переводило строчку в хедере "мы в соцсетях" на английскую строчку "social links"? Аналогично с дивами и картинками.
Спасибо
  • Вопрос задан
  • 22375 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
У Polylang есть свои собственные маленькие функции, полезные для таких целей. Конкретно в этом случае, есть 3 варианта:

1. Локализация строки обычным методом WordPRess - в шаблоне находим где этот текст и оборачиваем его в функцию _e() или __(). После этого делаем перевод строки в POedit, Как обычно.

2. Локализация строки точно так же, как в п.1, только вместо внешнего POedit ставим плагин Loco Translate и переводим строку прямо в админке.

3. Вместо функций _e() или __() используем функции pll__(), pll_e() вместе с pll_register_string() и переводим в админке WordPress на странице настроек Polylang. Документация.

В любом случае, придется ковыряться в коде.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
aerohorn
@aerohorn Автор вопроса
Учусь фронтендить
Разобрался. Использовал pll_register_string().
Добавил вот такую строку в function.php:

pll_register_string('social1', 'social2');

Далее в админ панели добавил в новых появившихся строчках перевод фразы, после чего прописал в шаблоне (header.php) вот это:

<?php pll_e('social2'); ?>

И все заработало.
Спасибо @HeadOnFire
Ответ написан
@abzhatovbutia
Доброго времени суток! Как перевести значение стандартной кнопки "Поиск" с помощью функции Polylang?
Ответ написан
@umkamoscow
Спасибо за дискуссию!
Подскажите, а как перевести слайдер на главной странице, если он встроен в тему?
тема - Accesspress Root. Для мультиязычности сайта использую Polylang
Заголовки, например - регистрацией новых стрингов - с этим разобралась. (благодаря вашему обсуждению!!!)
А вот со слайдером? Пробовала созданием стрингов, но тогда при вставке кода - один и тот же заголовок, переводится при смене языка, но остается на всех пяти слайдах в слайдере. А их 5 и они меняются...
Спасибо!
Ответ написан
@NixP
Всех приветствую.

Кто подскажет по моей проблеме.

Воспользовался функцией pll_register_string();, в переводах строк в Polylang необходимые значения появились, но при редактировании никаких изменений не происходит.

В чем может быть проблема?
Ответ написан
webfactory
@webfactory
Всем добрый день) долго изучала инструкцию и то чем помогали разработчики в данной теме под этим вопросом. Но пробую реализовать все это у себя и не получается, я начинающий разработчик. Буду благодарна за помощь!
Мне необходимо перевести фразу "Buy now", добавить ее в Strings translations. Эта фраза прописана отдельно в теме и woocommerce ее не переводит поэтому необходимо попробовать через Strings translations. Что конкретно нужно прописать в function.php? Просто pll_register_string( 'mythemeorpluginslug', 'English text to translate' ); он не понимает. Буду благодарна за помощь!!
Вот сам код где вызывается эта кнопка
/**
* Display buy now button
*
* @since 1.0
*/
function product_buy_now_button() {
global $product;
if ( ! intval( supro_get_option( 'product_buy_now' ) ) ) {
return;
}

if ( $product->get_type() == 'external' ) {
return;
}

echo sprintf( '%s', wp_kses_post( supro_get_option( 'product_buy_now_text' ) ) );
}

function buy_now_redirect( $url ) {

if ( ! isset( $_REQUEST['buy_now'] ) || $_REQUEST['buy_now'] == false ) {
return $url;
}

if ( empty( $_REQUEST['quantity'] ) ) {
return $url;
}

if ( is_array( $_REQUEST['quantity'] ) ) {
$quantity_set = false;
foreach ( $_REQUEST['quantity'] as $item => $quantity ) {
if ( $quantity <= 0 ) {
continue;
}
$quantity_set = true;
}

if ( ! $quantity_set ) {
return $url;
}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы