使用WordPress默认文本域转换标签

时间:2015-08-03 作者:Mike

我想知道是否有一种方法可以使用“默认”文本域(“WordPress”或“default”)来翻译标签。E、 g我有以下代码:

// 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个字符串(“名称”、“单数名称”和“菜单名称”,使用my\\u text\\u domain”,其他字符串应使用WordPress在后端使用的默认文本域进行翻译)。例如,WPML告诉我有一个WordPress文本域。我也尝试过使用它,但默认或WordPress都不起作用,例如,我尝试了:

\'all_items\'                  => __( \'All Items\', \'WordPress\' ), // doesn\'t work
\'parent_item\'                => __( \'Parent Item\', \'default\' ), // doesn\'t work
有什么提示吗?

谢谢

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

如果您不提供任何textdomain,则使用WordPress翻译的字符串。例如,如果您使用,__( \'Add New Tag\' );, 将使用WordPress core的翻译,因为\'Add New Tag\' 存在于WordPress中。

您的问题是,您正在定义WordPress core中不存在的标签,因此它们不包含在任何WordPress翻译文件中。我是说,像\'All Items\'\'Popular Items\' 在WordPress中不存在,也不会在任何地方翻译。

我觉得我的解释有点棘手,我希望你明白我的意思。

结束

相关推荐

Multiple textdomains

我有很多插件。显然,它们都有自己独特的国际化TextDomain(i18n)。我的所有插件中都包含了一堆文件,我把它们都放在一个名为common的目录中。这添加了一个我希望所有插件都拥有的仪表板小部件,以及一个用于更新的脚本(因为它们不在wordpress.org插件repo上)。我希望能够将我的公用文件夹放到我的每个插件中,而不必编辑文件。但我担心其中包含的文本字符串。我可以在同一个插件中为两个不同的域调用load\\u plugin\\u textdomain两次吗?考虑到i18n,处理这种情况的最佳