Как перевести плагин для WordPress Admin, содержащий статические и динамические строки перевода? - PullRequest
0 голосов
/ 29 мая 2019

У меня есть веб-сайт woocommerce, использующий расширения Polylang для WooCommerce и Polylang pro.Весь проект работает под управлением WordPress 4.9.8.

Я создал новый плагин.

  1. Этот плагин добавляет страницу администратора в администрацию Wordpress с некоторыми заголовками и опциямиустановить.(например, TITLE> INPUT TYPE).

  2. Этот плагин добавляет всплывающее окно на веб-сайт.

Все работает хорошо на одном языке.Поэтому я пытаюсь интернационализировать административную часть.

Заголовок отображается методом __ (''), а динамическое содержимое - get_option ('');Я должен использовать get_option (__ ('label', 'domain'));вместо текущего динамического вызова добавьте файлы .po и .mo.

<?php
    /*************************************************************
    CLASS MY_PLUGIN
    *************************************************************/
    ...
    public static function loadTranslations(){
        load_plugin_textdomain( 'plugin_admin', false, '/wp-content/plugins/languages/' );
    }
    ...
    public static function addAdminMenu(){
        add_menu_page( self::$plugin_name, 'MY MENU LABEL', 'administrator', 'my_plugin_menu', array( 'MY_PLUGIN', 'html_admin_content' ) );
    }
    ...
    public static function html_admin_content( $instance ){ ?>
        <form action="options.php" method="post">
            <?php settings_fields( 'my_plugin_settings' ); ?>
            <p><label for="my_plugin_title"><?= __( 'Title', 'my_plugin_admin' ); ?></label></p>
            <p><input type="text" id="my_plugin_title" name="my_plugin_title" value="<?= get_option( __( 'label','domain' ) ) ?>" /></p>
            ...
    <?php
    }
    ...
    /*************************************************************
    PLUGIN INDEX/
    *************************************************************/
    include_once plugin_dir_path( __FILE__ ) . '/class/MY_PLUGIN.class.php';
    add_action('plugins_loaded', array( 'MY_PLUGIN', 'loadTranslations'));
    ...
    add_action( 'admin_menu', array( 'MY_PLUGIN', 'addAdminMenu') );
    ...
?>

Проблема в том, что мои файлы .po / .mo не распознаются администратором или всплывающим окном.Переводы get_options нигде не переводятся.

Так что мой плагин остается только на одном языке.Я что-то забыл?

...