• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

О локализация WooCommerce и прочего

Image CMS

D&B

Администратор
Команда форума
Местный
Понятно. Так-же пробую через POEDIT перевести. Но не могу понять где находятся файлы для перевода админ-части + к тому же, те слова, что перевел - не переводятся в шаблоне. Что в коде нужно подправить?
Файлы закинул в папку languages
Далеко не везде предусмотрен перевод для админки. Если в файле .PO их нет, значит нет. Можете конечно переводить блокнотом, но при обновлении перевод слетит.
 

Acme

Форумчанин
Спасибо за ответ.
Последний вопрос. Почему перевод, сделанный в POEDIT, не отображается на сайте? Где в шаблоне нужно заменить на ru_RU?
 

D&B

Администратор
Команда форума
Местный
Надо перевести. Потом скопировать обратно в тему или плагин, разумеется. Файлы должны иметь окончание ru_RU
 

D&B

Администратор
Команда форума
Местный
Причины могут быть такие:
  1. Не правильное окончание файлов (я уже описал выше)
  2. Какой-то плагин подменяет часть функционала и перевод тоже, соответственно.
  3. В некоторых продвинутых темах есть возможность сделать быстрый перевод некоторых полей прямо в админке. В этом случае в файле .PO их уже может не быть.
  4. Ну и конечно могут быть авторские баги. Но это уже к автору темы.
 

Acme

Форумчанин
Не правильное окончание файлов (я уже описал выше)
ru_RU.po , вроде бы такое должно быть.
В некоторых продвинутых темах есть возможность сделать быстрый перевод некоторых полей прямо в админке. В этом случае в файле .PO их уже может не быть.
Снимок.PNG нету в настройках темы такого.
Ну и конечно могут быть авторские баги. Но это уже к автору темы.
Как можно определить это?
 

Acme

Форумчанин
В папке с языками такие файлы лежат ( ru были добавлены мною, после использования программы POEDIT ):

Нашел функцию: load_theme_textdomain

В functions:
PHP:
load_theme_textdomain( 'fortuna', get_template_directory() . '/languages' );

В ot-loader:
PHP:
public function load_textdomain() {

if ( OT_PLUGIN_MODE ) {

load_plugin_textdomain( 'option-tree', false, OT_LANG_DIR );

} else {

load_theme_textdomain( 'option-tree', OT_LANG_DIR );

}

}
В class-wp-theme.php:

PHP:
public function load_textdomain() {
if ( isset( $this->textdomain_loaded ) )
return $this->textdomain_loaded;

$textdomain = $this->get('TextDomain');
if ( ! $textdomain ) {
$this->textdomain_loaded = false;
return false;
}

if ( is_textdomain_loaded( $textdomain ) ) {
$this->textdomain_loaded = true;
return true;
}

$path = $this->get_stylesheet_directory();
if ( $domainpath = $this->get('DomainPath') )
$path .= $domainpath;
else
$path .= '/languages';

$this->textdomain_loaded = load_theme_textdomain( $textdomain, $path );
return $this->textdomain_loaded;
}

И в l10n.php

PHP:
function load_theme_textdomain( $domain, $path = false ) {
$locale = get_locale();
/**
* Filter a theme's locale.
*
* @since 3.0.0
*
* @param string $locale The theme's current locale.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
*/
$locale = apply_filters( 'theme_locale', $locale, $domain );

if ( ! $path )
$path = get_template_directory();

// Load the textdomain according to the theme
$mofile = untrailingslashit( $path ) . "/{$locale}.mo";
if ( $loaded = load_textdomain( $domain, $mofile ) )
return $loaded;

// Otherwise, load from the languages directory
$mofile = WP_LANG_DIR . "/themes/{$domain}-{$locale}.mo";
return load_textdomain( $domain, $mofile );
}
PHP:
function load_child_theme_textdomain( $domain, $path = false ) {
if ( ! $path )
$path = get_stylesheet_directory();
return load_theme_textdomain( $domain, $path );
}


Тема готова к переводу, но почему не переводится? ...
 

nyrt

Форумчанин
Помогите, пожалуйста!
Может у кого-то такое было...

1) Скачиваю из папки
/public_html/wp-content/languages/plugins
файл
woocommerce-ru_RU.po

2) корректирую в Poedit перевод некоторых фраз. Сохраняю.

3) Закачиваю обратно в /public_html/wp-content/languages/plugins новые файлы
woocommerce-ru_RU.mo
woocommerce-ru_RU.po

4) Через несколько часов мои новые файлы заменяются на стандартные (с исходным переводом).

Раньше такое было ТОЛЬКО после обновления Woocommerce. И после каждого обновления я обновлял перевод.
А теперь возврат перевода на стандартный происходит автоматом. Никаких обновлений вообще не делал.
 

nyrt

Форумчанин
Это очень странно, не замечал.
вот такой ещё комментарий получил:
"Сейчас Wordpress за переводами следит и сам автоматом обновляет, если находит более новую. Попробуйте открыть в текстовом редакторе или в самой программе (Каталог - Свойства) и поменять Stable (latest release) на другое значение.
https://translate.wordpress.org/locale/ru/default/wp-plugins/woocommerce - отсюда по идее он подбирает версию."

Сделал, как посоветовали.
Слежу за переводом ...
 
Последнее редактирование:

searchingman

Гуру
Местный
вот такой ещё комментарий получил:
"Сейчас Wordpress за переводами следит и сам автоматом обновляет, если находит более новую. Попробуйте открыть в текстовом редакторе или в самой программе (Каталог - Свойства) и поменять Stable (latest release) на другое значение.
https://translate.wordpress.org/locale/ru/default/wp-plugins/woocommerce - отсюда по идее он подбирает версию."

Сделал, как посоветовали.
Слежу за переводом ...
Чтобы не заморачиваться с файлами переводов можно воспользоваться таким способом.
 

nyrt

Форумчанин

ADv

Гуру
Местный
Можно попробовать выставить права на FTP на файлы локализации, чтобы запретить запись, и, соответственно, не дать возможность обновлять перевод автоматически.
 

nyrt

Форумчанин
Можно попробовать выставить права на FTP на файлы локализации, чтобы запретить запись, и, соответственно, не дать возможность обновлять перевод автоматически.
Пробовал. Не работает.
P.S.
После изменения в Poedit названия перевода - пока полёт нормальный.
 

searchingman

Гуру
Местный
вот такой ещё комментарий получил:
"Сейчас Wordpress за переводами следит и сам автоматом обновляет, если находит более новую. Попробуйте открыть в текстовом редакторе или в самой программе (Каталог - Свойства) и поменять Stable (latest release) на другое значение.
https://translate.wordpress.org/locale/ru/default/wp-plugins/woocommerce - отсюда по идее он подбирает версию."
У Вас в этом случае при очередном обновлении плагина переводы обновляться не будут, т.е. новая функциональность плагина останется не переведенной.
 

nyrt

Форумчанин
У Вас в этом случае при очередном обновлении плагина переводы обновляться не будут, т.е. новая функциональность плагина останется не переведенной.
1) вся "новая функциональность" обычно касается только администратора сайта, а не покупателей интернет-магазина. Уж как нибудь переживу.
2) но у меня проблема то была в другом! К тому, что после каждого обновления woocommerce мне надо исправить перевод нескольких нужных мне фраз - я уже привык. Но перевод стал сбиваться МЕЖДУ!!! обновлениями плагина. И это стало меня <censored>. Поэтому совет, который Вы процитировали меня пока устраивает, для меня всё стало как раньше делал.
3) Ваш способ - полезен. Плюсики Вам поставил. Если Вы в указанной Вами теме ответите на заданный там вопрос (про $domain) - ещё поставлю Вам плюсик. :)
 
Подскажите пожалуйста, может кто-то уже сталкивался, необходимо на кнопке "Выбрать модификации" написать "Выбрать размер".
Пробовала с помощью CodeStyling Localization не нашла.
С помощью POEDIT отредактировала файл woocommerce-ru_RU.po , в файле изменилось, а на сайте изменений не произошло. Может требуется еще дополнительная корректировка в других файлах? Кто знает подскажите чайнику.
Заранее благодарна всем откликнувшимся
Тема Artificer WP 3.8.1 WC 2.1.5
Добрый день, Оксана! Скажите, пожалуйста, вам удалось решить эту проблему? И если да, то как? Облазила весь интернет, нигде нет ответа :((( Я таким образом пыталась поменять "распродажа" на акция" - тоже не получилось....
 
Сверху Снизу