コアで使用される用語のプラグインtextdomainを省略できますか?


10

私が持っているプラグインプットはポストタイプの管理メニューにステータスを投稿することが。私はそれを国際化している最中です、そして私はこの状況をどう処理するか疑問に思っています。

プラグインは、次のようなテキストドメインを取得するいくつかの一意の文字列を使用します。

__( 'Select the post statuses to <strong>exclude</strong> from post type admin menus', 'csmpmsi' )

ただし、コア関連の意味で次のようなコア関連の単語を使用している場合もあります__( 'Pages' )。この状況では、textdomainを除外して、コアに既にローカライズされている用語を利用することは、私にとって完全に理にかなっているようです。ただし、コーデックスは非常に明示的です。

プラグインを翻訳しようとしている場合は、上記と同じアドバイスが適用されますが、

  • プラグインのフックにロードされているドメインを使用する必要があります

  • すべての翻訳呼び出しは__( 'text'、 'domain-name')になる必要があります

それで、これはWP-kosherですか?


1
考えさせられる質問をしてくれてありがとう、答え(これまでのtoschoとMark Kaplunから)は私にとって興味深く、役に立ちました!
webaware

回答:


14

コア文字列を翻訳に依存しないでくださいcontext。いつでも変更またはパラメーターを取得する場合があります。それが起こると、ユーザーは部分的に翻訳されたインターフェースを取得し、翻訳者はそれを修正する方法がありません。

また、同じ単語ですべての場所に同じ文字列を翻訳する必要はありません。コンテキストパラメータがない場合でも、一部の言語ではプラグインに別の翻訳を使用すると便利な場合があります。ただし、プラグインに文字列を含めない場合、これは不可能です。

数日前にこのトピックについて話し合ったこのチャットディスカッションをご覧ください。


また、textdomainがない場合でも、文字列はPOTファイルに表示されます。
scribu

@scribuパーサーによって異なります。codestylingローカリゼーションプラグインはそれを無視します。
fuxia

この回答とほぼ同一の質問に対するこの回答には不一致があるようです...
mrwweb

4

はい、しかししないでください。これはコーディング標準のようなものであり、バイパスすることで小さな利点を得ることができる場合でも、それに従ってください。

より良い理由:

  1. バージョン3.5では、WordPressにモノリスの翻訳ファイルはありません。パフォーマンス上の理由から、3つの部分に分割されました。この傾向が続く場合、デフォルトドメインを使用しようとしたときに、デフォルトドメインがまったくロードされることを確信できます__('Pages')か?

  2. ローカライザに作業を保存しない-poeditなどの翻訳ツールは、1つのファイルで2つの翻訳ドメインを処理する方法を知らないため、例では、「ページ」という単語を含む.poファイルが生成されます。デフォルトのドメインを使用してください。ローカライザは、異なるドメインに気付かずに単語を翻訳するためにコンテキストを理解する必要がない限り、翻訳した文字列の実際の使用状況をチェックしません。さらに、ローカライザがツールを知っている場合、poeditが「ページ」などの単語を自動的に翻訳できるように、WordPressコア翻訳ファイルに基づいた翻訳DBを用意します。


0

あなたはそれを試すことができます

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/

幸運を!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.