Локализация плагина не работает - PullRequest
0 голосов
/ 18 мая 2018

Я все настроил в соответствии с документами и скомпилировал свои переводы с помощью loco translate.По какой-то причине я не могу заставить работать переводы.Он всегда печатает на английском.Как я могу заставить переводы работать?Я разместил этот вопрос на stackoverflow, потому что я не уверен, является ли это проблемой с gettext, wordpress или моим кодом.

<?php
/**
 * Plugin Name: myplugin
 * Description: myplugindescription
 * Author: Tom McLean
 * Version: 1.0.0
 * Text Domain: myplugin-domain
 * Domain Path: /languages/
 */

function loadMyPluginTextDomain() {
    load_plugin_textdomain(
        'myplugin-domain',
        false,
        dirname(plugin_basename( __FILE__ )) . '/languages/'
    );
}
add_action( 'plugins_loaded', 'loadMyPluginTextDomain');
_e('Learn More', 'myplugin-domain');

.pot file

#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: myplugin\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-18 12:06+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: \n"
"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/"

msgid "Learn more"
msgstr ""

.po file

msgid ""
msgstr ""
"Project-Id-Version: myplugin\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-18 12:06+0000\n"
"PO-Revision-Date: 2018-05-18 12:12+0000\n"
"Last-Translator: Tom <tomm1996@gmail.com>\n"
"Language-Team: Deutsch\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/"
msgctxt "Link text"
msgid "Learn more"
msgstr "Erfahren Sie mehr."

WP Config

define('WPLANG', 'de_DE');
  • Версия Wordpress: 4.9.6
  • Версия PHP: php-5.6.4

1 Ответ

0 голосов
/ 22 мая 2018

Проблема была в том, что я использовал хук для загрузки текстового домена.

Изменив это:

<?php
add_action( 'plugins_loaded', 'loadMyPluginTextDomain');
_e('Learn More', 'myplugin-domain');

на следующее:

<?php
loadMyPluginTextDomain();
 _e('Learn More', 'myplugin-domain');

Я получил это работает.Я просто не уверен, что использование хуков отрицательно влияет на очередь плагинов.

...