如何以面向未来的方式本地化内置字符串?

时间:2012-03-16 作者:Borek Bernard

我需要通过以下方式修改本地化(捷克)Wordpress中评论表单中姓名和电子邮件字段的标签:

Emailová adresa    =>  Email
Webová stránka     =>  Web
我所做的是我打开了wp-content\\languages\\cs_CZ.po 在poEdit中,找到字符串并编译的新版本cs_CZ.mo. 它工作得很好。

然而,我想象,当新版本的Wordpress问世,本地化团队发布新版本的本地化文件时,我的更改将被覆盖,对吗?

所以问题是,how to change the localized strings in a future-proof way?

我在想,也许注释机制提供了一些钩子来替换这两个标签,这样我就可以创建*。采购订单和*。我的主题目录中的mo文件,但这似乎并不普遍适用。更好的做法是创建如下文件cs_CZ-custom.mo 这将能够覆盖主语言文件中已经定义的值,但我不确定WordPress是否支持这一点。

有什么建议吗?

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

我想你需要gettext过滤器。直接摘自《法典》,以下是一个例子:

add_filter( \'gettext\', \'theme_change_comment_field_names\', 20, 3 );
/**
 * Change comment form default field names.
 *
 * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
 */
function theme_change_comment_field_names( $translated_text, $text, $domain ) {

    if ( is_singular() ) {

        switch ( $translated_text ) {

            case \'Name\' :

                $translated_text = __( \'First Name\', \'theme_text_domain\' );
                break;

            case \'Email\' :

                $translated_text = __( \'Email Address\', \'theme_text_domain\' );
                break;
        }

    }

    return $translated_text;
}

http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext#Change_the_Comment_Form

结束

相关推荐

Plugin Localization

我刚刚为wp构建了我的第一个插件,即使它不是一个伟大的“代码诗意”;)它正常工作。这是一个使用GalleryView 3.0 jquery插件转换默认wp库的插件(http://spaceforaname.com/galleryview).我唯一不能做的就是本地化。此插件的本地化意味着转换管理界面,在这里可以配置jquery插件选项来更改结果库的外观。我试着关注网络上数百万的教程,在论坛上阅读了很多关于这个问题的帖子,并遵循了codex的指南。。。但仍然没有运气。这就是我所做的:每个文本行都位于gette