我尝试在工作时本地化WordPress插件。我已经创建了必要的.mo
和.po
文件,并尝试在不同的地方存储它们,但我无法让本地化工作。我注意到它在Bedrock application.php
文件中指定我应该将语言文件放在app/languages
中,但它仍然不起作用。
我已尝试将.mo
个文件命名为plugin-en.mo
和en.mo
但未成功。
我已相应地设置了我的WPLANG:define('WPLANG','en');
。
我是否需要插入load_plugin_textdomain()
功能?如果是这样,我会把它放在哪里?
答案 0 :(得分:1)
如果您的插件名为myplugin
,则您的语言文件应为(例如)myplugin-fr_FR.mo
和myplugin-fr_FR.mo
(对于法语)。 Codex表示会议同时包含语言代码和国家/地区代码 - 我不知道是否只有en
(不是,en_US
)正在贡献你的问题。
将它们放在名为languages
的子目录中,并使用类似
add_action( 'plugins_loaded', 'myplugin_load_textdomain' );
function myplugin_load_textdomain() {
load_plugin_textdomain( 'myplugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
在主插件文件中(如果从其他目录中的文件加载它们,则需要修改第三个参数)。
答案 1 :(得分:0)
运行Bedrock的站点将其语言文件存储在不同的目录中:app/languages
。无需在包裹字符串的_e()
和__()
函数中添加textdomain。
因此,将所有.mo
和.po
文件添加到app/languages
文件夹即可。例如:_e( 'String-to-be-translated')
和__('String to be translated')
查看this link了解详情。