我知道如何通过使用Poedit生成.po和.mo文件来为主题和模板创建翻译.但是,由于模板名称是用每个模板文件顶部的
PHP注释编写的,所以没有办法在我看到它时进行翻译.
/** * Template Name: Three columns * * @package wordpress */
模板名称由wordpress解析,用于在创建页面时填充模板选择下拉列表.
所以我的问题是:有没有办法翻译wordpress模板名称? wordpress还会查找我可以在我的模板文件中设置的任何特定变量吗?还是只是不可能?
我最近偶然发现.这是我如何解决的:
首先,添加(如果你已经没有)Text Domain:mytext_domain到你的style.css,其中mytext_domain是你的主题的实际文本域.
然后在你的主题的某处添加一个虚拟调用到翻译功能(最好的事情是添加它在模板名称声明下,所以你不知道为什么你把它):
/** * Template Name: Three columns * * @package wordpress */ __( 'Three columns','mytext_domain' );
这样做的原因是因为wordpress将你的模板名称传递给translate()函数,但是由于翻译插件解析你的代码,他们并不知道你的模板名称应该是.po(或者是.mo)的一部分.文件.对__()的伪调用修复了该问题.
而您将Text Domain声明添加到style.css的原因是因为这是wordpress在解析模板名称时查找主题的文本域的位置.
我不能给你确切的来源,因为我真的只是围绕核心代码,直到我想出了它的工作原理,以及如何能够翻译我的模板名称.
PP:我不知道Poedit是如何工作的 – 如果您手动添加您的翻译,您可能不需要虚拟调用 – 只需测试和使用它,并使用最适合您的方式:)