web-dev-qa-db-ja.com

ラベルの翻訳にWordPressのデフォルトのテキストドメインを使う

ラベルを翻訳するために「デフォルト」のテキストドメイン(「WordPress」または「デフォルト」)を使用する方法があるかどうか私は疑問に思います。たとえば、次のようなコードがあります。

// Register Custom Taxonomy
function custom_taxonomy() {

$labels = array(
    'name'                       => _x( 'Press category', 'Taxonomy General Name', 'my_text_domain' ),
    'singular_name'              => _x( 'Press category', 'Taxonomy Singular Name', 'my_text_domain' ),
    'menu_name'                  => __( 'Pressekateorien', 'my_text_domain' ),
    'all_items'                  => __( 'All Items' ),
    'parent_item'                => __( 'Parent Item' ),
    'parent_item_colon'          => __( 'Parent Item:' ),
    'new_item_name'              => __( 'New Item Name' ),
    'add_new_item'               => __( 'Add New Item' ),
    'edit_item'                  => __( 'Edit Item' ),
    'update_item'                => __( 'Update Item' ),
    'view_item'                  => __( 'View Item' ),
    'separate_items_with_commas' => __( 'Separate items with commas' ),
    'add_or_remove_items'        => __( 'Add or remove items' ),
    'choose_from_most_used'      => __( 'Choose from the most used' ),
    'popular_items'              => __( 'Popular Items' ),
    'search_items'               => __( 'Search Items' ),
    'not_found'                  => __( 'Not Found' ),
);
$args = array(
    'labels'                     => $labels,
    'hierarchical'               => true,
    'public'                     => true,
    'show_ui'                    => true,
    'show_admin_column'          => true,
    'show_in_nav_menus'          => true,
    'show_tagcloud'              => false,
);
register_taxonomy( 'category_press', array( 'press' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'custom_taxonomy', 0 );

ご覧のとおり、私は3つの文字列( "name"、 "singular name"、 "menu_name")をmy_text_domainで翻訳しているだけです。とにかくバックエンドで使う)。例えばWPMLはWordPresstextドメインがあることを私に示しています。私もそれを使用しようとしましたが、defaultまたはWordPressのどちらも機能しません。私は試した:

'all_items'                  => __( 'All Items', 'WordPress' ), // doesn't work
'parent_item'                => __( 'Parent Item', 'default' ), // doesn't work

何かヒントは?

ありがとうございます。

1
Mike

テキストドメインを提供していない場合は、WordPressの翻訳文字列が使用されます。たとえば__( 'Add New Tag' );を使用すると、'Add New Tag'がWordPressに存在するため、WordPressコアからの翻訳が使用されます。

あなたの問題は、あなたがWordPressコアに存在しないラベルを定義しているということです、それでそれらはどんなWordPress翻訳ファイルにも含まれていません。つまり、'All Items''Popular Items'のような文字列はWordPressには存在せず、どこにも翻訳されません。

私の説明は少しトリッキーだと思います。

7
cybmeta