Перевод плагина Wordpress - load_plugin_textdomain

Я работаю над настраиваемым плагином для Wordpress, но не могу сделать его многоязычным.

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

Вот мой код:

в шапке:

/*
Plugin Name: MM Jobs
Plugin URI: http://example.com/
Description: Custom Jobs Plugin to create new Jobs
Version: 1.3.84
Author: Jekey
Author URI: http://example.com/
Text Domain: mm-jobs
Domain Path: /languages
*/

тогда:

function mm_jobs_plugins_loaded() {
        load_plugin_textdomain( 'mm-jobs', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }
    add_action( 'plugins_loaded', 'mm_jobs_plugins_loaded', 0 );

Файлы .mo верны, поскольку он уже загружает немецкий перевод. Названы: mm-jobs-en_US.mo или mm-jobs-de_DE.mo в / plugins / mm-jobs / languages ​​/

Вы знаете, в чем проблема?


person jekey123    schedule 05.08.2017    source источник


Ответы (1)


В случае, если у кого-то такая же проблема. я имел

get_plugin_data( __FILE__ );

в моем коде. Это привело к запуску функции wp_core, загружающей текстовый домен, поэтому мой en_US.mo был переопределен de_DE.mo

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

person jekey123    schedule 25.08.2017
comment
Официальный документ: developer.wordpress. org / plugins / internationalization / - person Motahar Hossain; 24.12.2019