РАБОТАЮ ВО ВСЕХ ГОРОДАХ РОССИИ
ВРЕМЯ РАБОТЫ С 9:00 ДО 20:00
Как перевести фразы woocommerce, которые не переводятся.
Проблема с переводом интернет магазина на вордпресс.
Не получается перевод Woocommerce на странице оформления заказа двух предложений:
- Billing details (title) — платежные реквизиты (название)
- I’ve read and accept the terms&conditions — Я прочитал и принимаю условия & условия
Обычно вукомерц легко переводится на русский язык после установки плагина saphali-woocommerce-lite. Он бесплатен, добавляет много разных плюшек, встраивает удобные фишки в платежные функции. Как правило, вы без труда можете получить магазин на своем родном языке.
Но… Куда ж без этого. Случается и так, что некоторые фразы никак невозможно перевести, хотя они есть в файлах .mo и .po.
В таких случаях приходится вписывать правильные фразы в файлах Woocommerce. Если вы используете файлы из дочерней темы, то ваши труды сохранятся при последующем обновлении интернет магазина на вордпресс. Но однажды я столкнулась с тем, что этих фраз нигде нет и их можно было перевести только в файлах самого плагина Woocommerce, которые не включались в дочернюю тему. А это означало, что до первого обновления.
Что же делать? Рассмотрим на примере двух фраз.
Решение:
- Посмотреть точные фразы здесь:
wp-content\plugins\woocommerce\templates\checkout\payment.php
Это будет полезным, потому что там может оказаться небольшое отличие от образца.
- В файл functions.php дочерней темы добавить фильтры для перевода не переведенных фраз.
<?php
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 & conditions</a>', '<a href="%s" target="_blank">условия & соглашения</a>', $translated);
return $translated;
}
?>
Вот и все. С помощью фильтров можно аналогично добавить и другие непереводимые фразы.