子插件借用先前翻译的字符串

时间:2013-05-20 作者:Chris

要点:当编写插件的扩展时,扩展能否通过使用其textdomain“借用”所需父插件的翻译?

场景:假设有一个父插件,它的翻译是最新的,并且在这个问题上遵循WP标准。我一起写了一个扩展插件。

此扩展需要父插件(没有它就无法安装)。

现在让我们假设我的插件中有一个字符串,该字符串在父插件中被翻译。假设字符串完全相同(大小写、alpha等),我可以从父插件借用该字符串的翻译(其他人已经翻译过)并通过简单使用父插件的textdomain在扩展中使用它吗?例如\\u e(\'String\',\'parentplugin\');

我想做的是,对于父插件中具有相同的预翻译字符串的几个项目,使用父插件的翻译,以减少人们翻译我的插件所需的工作量。

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

从技术上讲,这是可能的。只要确保在父插件加载其语言文件后使用字符串即可。

就可维护性而言,这不是最佳的。您在这里创建了一个非常strond的依赖关系:每次父插件更改字符串(添加一个点,删除一个空格),您也必须更改字符串。

我这样做只是为了节省大量内存(1 MB或更多),当我知道父插件的开发人员创建really useful commits. 否则,您可能会错过一些更改。

Marko points out 一个重要的方面是:您需要一个用于pot文件的工具,该工具基于文本域创建这些文件,否则您不会保存太多。Codestyling Localization 可以做到这一点,但它还有其他问题。我不知道这里有什么好的解决方案。

相关:Can I leave off plugin textdomain for terms used in core?

SO网友:Marko Heijnen

我有时确实从WordPress借用字符串,这样做很好。我看到的最大问题是,主插件(在我的例子中是WordPress)可以更改字符串,然后它就不再被翻译了。

另一个问题是,当您生成pot文件时,它包含所有可翻译字符串。它看不到它使用的是哪个textdomain。就我而言,我改变了makepot。php来排除具有空域的字符串。

结束

相关推荐

Custom metabox translation

我已经创建了一个自定义的帖子类型,并添加了一些自定义的元数据库,现在我想知道我在我的网站上使用了什么样的翻译插件?我对它们都没有经验,所以我不知道谁会支持我的自定义元数据库,谁不会。