Multiple textdomains

时间:2013-05-23 作者:Luke Carbis

我有很多插件。显然,它们都有自己独特的国际化TextDomain(i18n)。

我的所有插件中都包含了一堆文件,我把它们都放在一个名为common的目录中。这添加了一个我希望所有插件都拥有的仪表板小部件,以及一个用于更新的脚本(因为它们不在wordpress.org插件repo上)。

我希望能够将我的公用文件夹放到我的每个插件中,而不必编辑文件。但我担心其中包含的文本字符串。

我可以在同一个插件中为两个不同的域调用load\\u plugin\\u textdomain两次吗?考虑到i18n,处理这种情况的最佳方法是什么?

或者我必须检查我的公共文件的每个实例并手动更改textdomain以匹配插件?

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

你可以打电话load_plugin_textdomain() 在每个插件中多次,但我不会这样做。

例如,将公共文件放入单独的插件中luke-carbis-library. 在该插件中,创建两个用于设置和加载额外文件的简单函数:

add_action( \'plugins_loaded\', \'lcl_init\' );

function lcl_init()
{
    $dir = plugin_dir_path( __FILE__ );
    $url = plugins_url( __FILE__ );

    // maybe load necessary files and translation

    do_action( \'lcl_init\', $dir, $url );
}

function lcl_load( $file )
{
    require_once plugin_dir_path( __FILE__ ) . $file;
}
在您的依赖插件中,钩住您的自定义操作:

add_action( \'lcl_init\', \'depending_plugin_init\', 10, 2 );
现在您可以随时更改基本插件的内部结构;其他插件只使用$dir$url 从你的钩子上。

结束

相关推荐

Plugin Localization

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