Перевод плагина WordPress: домен load_plugin_textdomain не загружает файл .mo из папки языков плагинов, только из папки глобальных языков

#wordpress #plugins #internationalization #translation

Вопрос:

Я написал плагин и теперь хочу подготовить его к переводу (используя __ и _e и все такое прочее) и перевести его на (официальный) немецкий, пока я на нем. Я создал языковые файлы с помощью poedit (.po >>> .mo) с правильной схемой именования >>my-plugin-textdomain-de_DE_formal.mo. В моем php-файле плагина у меня все прямолинейно:

 [...]

public function actions() {
    add_action('init', [$this, 'load_language_files']);
}

public function load_language_files() {
    load_plugin_textdomain('my-plugin-textdomain', false, dirname(plugin_basename(__FILE__)) . '/languages');
}
 

Таким образом, единственное, что может быть не основным, — это то, что я использую структуру классов, следовательно, вызываю файлы load_language_files через массив.

Но языковой файл просто не загружается. Самое смешное, это нагружения отлично подходит, если я положил его в /WP-содержание/языки/плагинов/ каталога (который указывает, что .МО файла должно быть в порядке), но не если положить в директорию /WP-содержание/Плагины/мой-плагин/языки/ каталог.

Я даже отладил функцию load_plugin_textdomain, регистрируя каждую строку кода и вплоть до

 return load_textdomain( $domain, $path . '/' . $mofile );
 

все выглядит просто замечательно. Файл $domain, $path и $mof имеют правильные значения, и файл .mo находится точно там, где он должен находиться в соответствии с этим путем. Все еще не загружен перевод и возвращаемое значение false.

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