Не переводится тема Wordpress через Loco translate
Прикупил плагин
Classified Listing – Classified ads & Business Directory Plugin
И установил их же тему Radius Directory
При попытке перевести тему через Loco translate я не вижу изменений на сайте. Пытался переводить тему, плагины- все безрезультатно. В чем может быть загвоздка и куда копать?
Ответы (1 шт):
Поскольку и тему, и плагин можно взять бесплатно (я имею ввиду официально, у разработчика, по ссылкам, приведенным в вопросе, а не на пиратских сайтах), я скачал и то, и другое, и посмотрел, как у них подгружаются переводы.
Тема, соответствующий фрагмент из файла radius-directory/functions.php:
add_action( 'after_setup_theme', 'radius_directory_load_textdomain' );
function radius_directory_load_textdomain() {
load_theme_textdomain( 'radius-directory', get_template_directory() . '/languages' );
}
Этот код проверяет наличие перевода только в директории wp-content/themes/radius-directory/languages, и даже не пытается смотреть в директорию wp-content/languages/themes.
Плагин, соответствующий фрагмент из файла classified-listing/app/Rtcl.php:
/**
* Load Localisation files.
* Note: the first-loaded translation file overrides any following ones if the same translation is present.
* Locales found in:
* - WP_LANG_DIR/classified-listing/classified-listing-LOCALE.mo
* - WP_LANG_DIR/plugins/classified-listing-LOCALE.mo.
*/
public function load_language() {
do_action( 'rtcl_set_local', null );
$locale = determine_locale();
$locale = apply_filters( 'plugin_locale', $locale, 'classified-listing' );
if ( file_exists( WP_LANG_DIR . '/classified-listing/classified-listing-' . $locale . '.mo' ) ) {
unload_textdomain( 'classified-listing' );
load_textdomain( 'classified-listing', WP_LANG_DIR . '/classified-listing/classified-listing-' . $locale . '.mo' );
}
load_plugin_textdomain( 'classified-listing', false, plugin_basename( dirname( RTCL_PLUGIN_FILE ) ) . '/i18n/languages' );
}
Этот код берёт перевод из стандартной директории wp-content/languages/plugins, но если при этом другой перевод присутствует в нестандартной директории wp-content/languages/classified-listing, то перевод будет взят из этой нестандартной директории.
Я не знаю, как устроен Loco Translate (более того, мне это вообще не интересно), но думаю, что если положить готовые .mo/.po файлы в wp-content/themes/radius-directory/languages (для темы) и в wp-content/languages/plugins (для плагина), и убедиться, что в wp-content/languages/classified-listing ничего лишнего нет, то всё должно заработать.