web-dev-qa-db-ja.com

国際化:プラグイン翻訳テキストを読み込まない

作成しているプラ​​グインを国際化しようとしていますが、.poファイルに翻訳されている翻訳済みテキストが表示されていないようです。

最初に、私は次の情報源を参照しました: https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/https://www.sitepoint.com/wordpress-i18n-make-your-plugin-translation-ready/https://premium.wpmudev.org/blog/ultimate-guide-wordpress-localization/#plugins

これが私の現在のディレクトリです。

--my-custom-dragon-plugin
    --my-custom-dragon-plugin.php
    --languages
        --my-custom-dragon-plugin-de_DE.mo
        --my-custom-dragon-plugin-de_DE.po

当初、私のテキストドメインはプラグインスラッグではなかったので(別のテキストドメインを使用することはできませんか?)、私が投稿した2番目のリンクに従ってそれを変更しなければなりませんでした。

テキストドメインはプラグインのスラッグと一致する必要があります。例えば、あなたのプラグインがsample-plugin.phpと呼ばれる単一のファイルであるか、それがsample-pluginと呼ばれるフォルダーに含まれているなら、テキストドメインはsample-pluginであるべきです。

だから私のphpファイルに私は__('Read More', my-custom-dragon-plugin)のようなものがあります

私のmy-custom-dragon-plugin.phpには、プラグイン定義とテキストドメインをロードする関数があります。

/*
    Plugin Name: My Custom Dragon
    Plugin URI: https://www.xxxxxx.de/
    Description: This is a plugin customized for my dragons.
    Author: Jedragon
    Text Domain: my-custom-dragon-plugin
    Domain Path: /languages/
    Version: 0.1.0
*/

add_action( 'plugins_loaded', 'load_my_textdomain' );

function load_my_textdomain() {

    $domain = 'my-custom-dragon-plugin';
     load_plugin_textdomain( $domain, false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );

}

私は私の.poファイルにもPOEditを使っています。

変更が反映されているかどうかを確認しようとすると、サイトの言語を変更してもテキストは英語のままです。

私が見逃したこと、または誤ってしていることはありますか?

前もって感謝します。

1
Jeda Dragon

私はちょうどそれを見つけました、それは私が私のphpコードの ''にテキストドメインを置くのを逃したからです。

そのはず

__('Read More', 'my-custom-dragon-plugin');

の代わりに

__('Read More', my-custom-dragon-plugin);

今私の翻訳は働いています。私の長いプラグインスラッグの代わりにカスタムテキストドメインを使用することが可能かどうか私は今不思議に思っています。

@matの答えを見る前に、私はそれを理解することができました。私は@ matを通してあなたのコメントを支持しました。

2
Jeda Dragon