私は プラグイン を使って投稿ステータスを投稿タイプの管理メニューに入れました。私はそれを国際化している最中であり、そしてこの状況にどう対処するか疑問に思います。
プラグインはこのようなテキストドメインを取得するいくつかのユニークな文字列を使用します。
__( 'Select the post statuses to <strong>exclude</strong> from post type admin menus', 'csmpmsi' )
しかし、それから私がこのような彼らのコア関連の意味のためにコア関連のWordを使っているケースもあります:__( 'Pages' )
。このような状況では、テキストドメインを除外し、すでにコアにローカライズされている用語を利用することは、私にとって完全に理にかなっているようです。しかし、コーデックスは非常に明白なようです。
あなたがプラグインを翻訳しようとしているならば、それ以外は上記と同じアドバイスが適用されます。
プラグインのフックにロードされているドメインを使用する必要があります。
すべての翻訳呼び出しは__( 'text'、 'domain-name')になる必要があります
それで、これはWPコーシャですか?
翻訳のためにコア文字列に頼ることは決してありません。それらはいつでも変更されたりcontext
パラメータを取得するかもしれません。それが起こると、あなたのユーザーは部分的に翻訳されたインターフェースを手に入れ、あなたの翻訳者はそれを修正する方法がありません。
また、同じ文字列が同じWordでいたるところで翻訳される必要がないことにも注意してください。コンテキストパラメータがなくても、プラグインの言語によっては異なる翻訳を使用すると便利な場合があります。あなたのプラグインに文字列が含まれていない場合でも、これは不可能です。
この話題について数日前に行った チャットディスカッション をご覧ください。
はい、できません。これはコーディング標準に似ています。バイパスすることで小さな利点が得られる場合でも、従うことをお勧めします。
より良い理由:
バージョン3.5では、WordPressはモノリス翻訳ファイルを持っていません、それはパフォーマンスの理由で3つの部分に分けられました。この傾向が続く場合は、__('Pages')
で使用しようとしたときにデフォルトドメインがロードされることを確認できますか?
作業をローカライザーに保存しないでください - poeditのような翻訳ツールは、1つのファイルで2つの翻訳ドメインを処理する方法がわかりません。あなたの例では、あなたが例えばWord 'Pages'を含む.poファイルを生成します。デフォルトのドメインを使用してください。ローカライザーは、文脈を理解する必要がない限り、翻訳した文字列の実際の使用状況を確認しないので、異なるドメインに気付かずにWordを翻訳します。さらに、ローカライザーが自分のツールを知っていれば、poeditが 'Pages'のような単語を自動的に翻訳できるように、WordPressのコア翻訳ファイルに基づいた翻訳DBを持つことになります。
あなたはそれを試すことができます
add_action('wp',function(){
load_default_textdomain();
_e('Settings');
});
または
add_action('wp',function(){
$locale = is_admin() ? get_user_locale() : get_locale();
load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo" );
load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo" );
// WPMU
//load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo" );
//load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo" );
_e('Settings');
_e('First Name');
_e('Last Name');
});
問い合わせ先: https://v123.tw/use-wordpress-core-translation/
がんばろう!!