问题描述

http://wordpress.org/extend/plugins/bbpress/ bbpress’ 语言文件夹 (wp-content /plugins /bbpress /bbp-languages) 有警告:

/**
 * Do not put custom translations here. They will be deleted on bbPress updates.
 *
 * Keep custom bbPress translations in /wp-content/languages/
 */

其实这不是一个新问题,是的,他们是对的。如果您使用具有 non-english 语言的 wordpress 插件,这是一个很大的问题。

基本上我翻译 bbpress 并创建了.po 和.mo 文件。如果我把它们放在正常的 wp-content /plugins /bbpress /bbp-languages 文件夹中,文件正常工作。但是如上所述,警告说会在更新时删除。但问题是,如果我把它们放在 wp-content /languages /文件夹中,如 bbpress 所示,翻译是不行的。

我认为必须有一个钩子或东西,我可以激活它,但什么是最好的解决方案呢?只要我想保留插件语言文件在 wp-content /languages /

最佳解决方案

您必须将呼叫替换为 BBpress 的语言文件。

执行此操作的好地方是通用语言目录中的特定于语言的文件。对于土耳其语来说,它可能是一个名为 tr_TR.php 的文件。这将自动加载,只有当它符合您的博客的语言。它不会被覆盖

BBPress 不使用 load_plugin_textdomain 功能,而是使用 load_textdomain 。在这里你可以找到一个过滤器:

$mofile = apply_filters( 'load_textdomain_mofile', $mofile, $domain );

所以在你的语言 php 文件中只需添加一个过滤器即可更改路径:

function load_bbpress_tr_mofile( $mofile, $domain )
{
    if ( 'bbpress' == $domain )
    {
        // replace this. :)
        return 'FULL_PATH_TO_YOUR_FILE';
    }
    return $mofile;
}
add_filter( 'load_textdomain_mofile', 'load_bbpress_tr_mofile', 10, 2 );

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。