翻译第三方插件并将翻译文件保存在自定义主题中

时间:2014-08-29 作者:Patrik

我正在使用Codestyling Localization 我想翻译一个插件,我想翻译文件保存在我正在构建的主题的翻译目录中,而不是插件目录中。

这可能吗?

我试过了load_plugin_textdomainload_textdomain 但这似乎不起作用。

// Add localization
load_theme_textdomain( \'my_theme\', $translation_directory );

$domain = \'other_plugin\';
$locale = apply_filters(\'plugin_locale\', get_locale(), $domain);
load_textdomain( $domain, WP_LANG_DIR.\'/\'.$domain.\'/languages/\'.$domain.\'-\'.$locale.\'.mo\');
load_plugin_textdomain( $domain, FALSE, $translation_directory );

1 个回复
SO网友:Stephen Harris

首先,我强烈建议不要在主题中存储插件的翻译。它没有理由出现在那里,当你改变/更新主题时,你会失去翻译。

存储翻译的正确位置是wp-content/languages/plugins/.

此代码执行此操作,并以域“other\\u plugin”为目标:

function wpse159536_override_mofile_path( $mofile, $domain ){
    if( \'other_plugin\' == $domain ){
         $mofile = WP_LANG_DIR . \'/plugins/\' . basename( $mofile );
    }
    return $mofile;
}
add_filter( \'load_textdomain_mofile\', \'wpse159536_override_mofile_path\', 10, 2 );
当然,更好的解决方案是将翻译文件发送给开发人员以包含在下一个版本中(如果合适的话)。

结束

相关推荐

How can I find plugins' slug?

我想知道如何才能找到插件的slug(slug=WordPress用来更新插件和确定哪些插件当前处于活动状态的内部名称)?它通常是插件的文件夹名,但如果插件没有文件夹,则是其文件名(如hello.php)。是否有其他例外情况?大小写字符重要吗</插件的slug是否可以与其文件夹名不同?如果有一个叫做hello的插件呢。php和另一个/您好。php/您好。php