перевод не работает с text_domain

Я пытаюсь перевести свой собственный плагин.

Я могу перевести мой плагин, если поместить fr_CA.po/.mo в мои wp-content\languages\plugins вручную.

Но я хотел бы иметь возможность поместить мой .po / .mo в мою папку плагинов в "myplugin/languages"

Ну, в основном файле, у меня есть:

  * Text Domain: myplugin * Domain Path: /languages/ 

мой текст

  add_action( 'init', 'myplugin_load_textdomain' ); function myplugin_load_textdomain() { load_plugin_textdomain( 'myplugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } 

все мои .po / .mo находятся в этой папке myplugin/languages/

Мой WordPress находится в fr_CA (WordPress 4.7.2-fr_CA)

У меня есть fr_FR.po /fr_CA.po (и их .mo ).


Как я уже говорил ранее, мой плагин меняет язык, если я помещаю свой .po/.mo в wp-content\languages\plugins и меняю fr_FR(.mo/.po) на myplugin-fr_FR(.mo/.po)

но я хотел бы сохранить мой .po/.mo в моей папке плагинов.

Кто-нибудь знает, в чем проблема?

Solutions Collecting From Web of "перевод не работает с text_domain"

Из исходного кода load_plugin_textdomain становится очевидным, что функция сначала будет искать $domain . '-' . $locale . '.mo' $domain . '-' . $locale . '.mo' $domain . '-' . $locale . '.mo' (так, это myplugin-fr_FR.mo ) в WP_LANG_DIR . '/plugins/' . $mofile WP_LANG_DIR . '/plugins/' . $mofile WP_LANG_DIR . '/plugins/' . $mofile .

Только тогда, когда файла нет, он начнет искать указанный путь и если его нет в главном каталоге плагина. Итак, если вы не получаете mo-файл в указанном каталоге, то он либо не существует, либо вы используете неправильный путь.

Я не вижу, сделали ли вы какие-либо опечатки, но вместо комбинирования dirname и plugin_basename вы можете захотеть придерживаться plugin_dir_path чтобы предоставить правильный каталог.