似乎没有简单的方法可以做到这一点load_plugin_textdomain()
从子主题调用时,将无法按预期工作。
A.generic workaround 是由马吕斯·维特里奇开发的,但我发现在某些情况下它与Polylang不兼容。
The most reliable solution I have found is 使用load_textdomain()
低于一级的功能load_plugin_textdomain()
:
load_textdomain( $textdomain, get_stylesheet_directory().\'/languages/\'.$textdomain.\'-\'.get_locale().\'.mo\' );
上述示例意味着您将在
languages
子主题文件夹下的文件夹,并根据
textdomain-lang_COUNTRY.mo
方案(例如:
someplugin-en_US.mo
).
你必须注意打电话到哪里load_textdomain()
,以便区域设置已经可用,并且您的翻译将在其他翻译之前或之后加载(取决于您的需要)。如果只想添加新的字符串翻译,则加载翻译的顺序无关紧要,但如果要覆盖现有翻译,请确保首先加载的是您的翻译,如(根据documentation), 首先加载的翻译将优先于稍后加载的翻译。翻译通常加载在init
钩子,但在Polylang的情况下pll_language_defined
使用吊钩。
请注意,它始终是。系统实际使用的mo(机器对象)文件。这个po(可移植对象)文件是人类可读的,可编译为。每次保存时的mo文件。这个pot文件是的模板。采购订单文件。