问题描述
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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。