Как перевести фразы woocommerce, которые не переводятся.

1

Автор verond | Рубрики WooCommerce, Настройки вордпресс, Плагины вордпресс | 10-08-2015


Проблема с переводом интернет магазина на вордпресс.

Не получается перевод Woocommerce на странице оформления заказа двух предложений:

  • Billing details (title) — платежные реквизиты (название)
  • I’ve read and accept the terms&conditions — Я прочитал и принимаю условия & условия

Обычно вукомерц легко переводится на русский язык после установки плагина saphali-woocommerce-lite. Он бесплатен, добавляет много разных плюшек, встраивает удобные фишки в платежные функции. Как правило, вы без труда можете получить магазин на своем родном языке.

Но… Куда ж без этого. Случается и так, что некоторые фразы никак невозможно перевести, хотя они есть в файлах .mo и .po.

В таких случаях приходится вписывать правильные фразы в файлах Woocommerce. Если вы используете файлы из дочерней темы, то ваши труды сохранятся при последующем обновлении интернет магазина на вордпресс. Но однажды я столкнулась с тем, что этих фраз нигде нет и их можно было перевести только в файлах самого плагина Woocommerce, которые не включались в дочернюю тему. А это означало, что до первого обновления.

Что же делать? Рассмотрим на примере двух фраз.

Решение:

  1. Посмотреть точные фразы здесь:

wp-content\plugins\woocommerce\templates\checkout\payment.php

Это будет полезным, потому что там может оказаться небольшое отличие от образца.

  1. В файл functions.php дочерней темы добавить фильтры для перевода не переведенных фраз.
1
2
3
4
5
6
7
8
9
add_filter('gettext', 'translate_text');
add_filter('ngettext', 'translate_text');
function translate_text($translated) {
$translated = str_ireplace('Billing Details', 'Платежная информация', $translated);
$translated = str_ireplace('Please use the shipping calculator to see available shipping methods.', 'Пожалуйста, используйте калькулятор доставки, чтобы увидеть доступные методы доставки.', $translated);
$translated = str_ireplace('I’ve read and accept the', 'Я прочитал и принимаю', $translated);
$translated = str_ireplace('<a href="%s" target="_blank">terms &amp; conditions</a>', '<a href="%s" target="_blank">условия &amp; соглашения</a>', $translated);
return $translated;
}

Вот и все. С помощью фильтров можно аналогично добавить и другие непереводимые фразы.

Добавляйте пост в свои любимые социальные сети, и Вы сможете вернуться к этой записи в любое время.


Комментарии (1)

Алилуя! спасибо бро за схему с фильтрами

Написать комментарий