Не переводится тема Wordpress через Loco translate

Прикупил плагин
Classified Listing – Classified ads & Business Directory Plugin

И установил их же тему Radius Directory

При попытке перевести тему через Loco translate я не вижу изменений на сайте. Пытался переводить тему, плагины- все безрезультатно. В чем может быть загвоздка и куда копать?


Ответы (1 шт):

Автор решения: Ivan Shatsky

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

Тема, соответствующий фрагмент из файла 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 ничего лишнего нет, то всё должно заработать.

→ Ссылка