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

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

Сотрудники Службы поддержки сегодня не доступны на форуме Russian. Создайте обращение и мы возьмемся за решение вашего вопроса, как только будем в сети. Благодарим за понимание.

Помечено: ,

This topic contains 4 ответов, has 2 голосов.

Last updated by Andrey 1 месяц, 2 нед. назад.

Assigned support staff: Andrey.

Автор Сообщения
5 декабря, 2019 в 11:33 дп #5075923

Алексей Юрк

Здравствуйте! Не можем перевести некоторые строки. Требуется ваша помощь. Спасибо.

5 декабря, 2019 в 12:05 пп #5076235

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+02:00)

Здравствуйте,

Вы пробовали перейти в WPML >> String Translation и там попробовать найти и перевести эти строки?

https://wpml.org/documentation/getting-started-guide/string-translation/#translating-strings

5 декабря, 2019 в 12:10 пп #5076297

Алексей Юрк

Да, у этих строк есть перевод в String Translation.

5 декабря, 2019 в 12:49 пп #5076537

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+02:00)

Мне нужно запросить временный доступ (WP-администратора и FTP) на Ваш сайт - предпочтительно к тестовому сайту, где проблема была воспроизведена, если это возможно - для того, чтобы лучше помочь. Вы найдете необходимые поля ниже поля для комментариев, когда Вы войдете, чтобы оставить свой следующий ответ. Информацию, которую Вы ведете является частной, что означает только Вы и я могу видеть и иметь доступ к ней.

7 декабря, 2019 в 3:43 пп #5087663

Andrey
Supporter

Languages: Английский (English ) Русский (Русский )

Timezone: Europe/Kiev (GMT+02:00)

У меня получилось перевести строки по Вашим двум скриншотам, удалив строку из WPML >> Перевод Строк, после заново просканировав тему на новые строки в WPML >> Локализация темы и плагинов и сделал новый перевод.

По поводу строки "Спасибо за ваш заказ, пожалуйста, нажмите ниже на кнопку, чтобы заплатить.", автор плагина robokassa не сделал возможным перевод строк по рекомендации WordPress.

Отрывок из кода плагина:
wp-content/plugins/robokassa/classes/Robokassa/Payment/WC_WP_robokassa.php:56

    public function receipt_page($order) {
        echo '<p>Спасибо за ваш заказ, пожалуйста, нажмите ниже на кнопку, чтобы заплатить.</p>';

        robokassa_payment_createFormWC($order, $this->id, $this->commission);
    }

https://wpml.org/documentation/support/enabling-text-translation-for-themes-not-compatible-with-wpml/

Для временного решения проблемы, я заменил функцию выше на

    public function receipt_page($order) {
        $my_current_lang = apply_filters( 'wpml_current_language', NULL );

        if ( isset( $my_current_lang ) && $my_current_lang == 'en' ) {
            $robo_text = 'Thank you for your order, please click the button below to pay.';
        } else {
            $robo_text = 'Спасибо за ваш заказ, пожалуйста, нажмите ниже на кнопку, чтобы заплатить.';
        }
        echo '<p>'.$robo_text.'</p>';

        robokassa_payment_createFormWC($order, $this->id, $this->commission);
    }

Решение выше является временным, чтобы сделать плагин полностью готовым к переводу, необходимо участие автора. Вы можете обратится к автору плагина, и показать ему этот пост, а также ссылку выше для применения правильного решения (локализации) всех строк в плагине.

А также для кнопки "Оплатить"
wp-content/plugins/robokassa/classes/Robokassa/Payment/RobokassaPayAPI.php:220

    private function renderForm($formUrl, array $formData) {
        $form = "<form action=\"$formUrl\" method=\"POST\">";

        foreach ($formData as $inputName => $inputValue) {
            $value = htmlspecialchars($inputValue, ENT_COMPAT, 'UTF-8');

            $form .= "<input type=\"hidden\" name=\"$inputName\" value=\"$value\">";
        }

        $form .= "<input type=\"submit\" value=\"Оплатить\"></form>";

        return $form;
    }

заменил на

    private function renderForm($formUrl, array $formData) {
        $form = "<form action=\"$formUrl\" method=\"POST\">";

        foreach ($formData as $inputName => $inputValue) {
            $value = htmlspecialchars($inputValue, ENT_COMPAT, 'UTF-8');

            $form .= "<input type=\"hidden\" name=\"$inputName\" value=\"$value\">";
        }

        $my_current_lang = apply_filters( 'wpml_current_language', NULL );

        if ( isset( $my_current_lang ) && $my_current_lang == 'en' ) {
            $form .= "<input type=\"submit\" value=\"Pay\"></form>";
        } else {
            $form .= "<input type=\"submit\" value=\"Оплатить\"></form>";       
        }

        return $form;
    } 

Все последующие проблемы с переводами, Вам необходимо обращаться к автору данного плагина, чтобы он внес необходимые изменения в плагин.
Обратите внимание, что при обновление данного плагина, все изменения выше будут потеряны.