如何让自定义 Wordpress 插件识别 .po 和 .mo 文件?

How to make custom Wordpress plugin aware of .po and .mo files?

我正在尝试为我从头编写的插件添加翻译,但在试验了一段时间后,我不确定如何让 Wordpress 知道我的插件有可用的翻译。

我不确定还能尝试什么,所以我认为更有经验的人可以指出我可能需要更改的地方。

到目前为止我做了什么:

  1. 在我的插件文件中要翻译的句子中添加了 _e()__()
  2. 使用 Loco Translate 插件生成 .pot 文件。
  3. 在 Poedit 中打开 .pot 文件,(它显示了我想要翻译的所有字符串的列表)翻译插件并从中生成 .po.mo 文件。
  4. 已将 .pot.po.mo 移动到 my-plugin/languages/
  5. 将文件重命名为 my-plugin-pt.pomy-plugin-pt.mo
  6. 将 Wordpress 站点语言更改为翻译语言。其他地方的语言都变了,但 插件仍然以英语呈现。

不确定下一步该做什么。

我创建了一个运行 load_plugin_textdomain() while following these instructions from Wordpress 的方法,并将其作为一个操作添加到 my-plugin __construct():

我的-plugin.php

public function __construct() {
  // Other filters and actions...
  add_action( 'plugins_loaded', array( $this, 'translation_init' ) );
} // __construct

function translation_init() {
    load_plugin_textdomain( 'my-plugin', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
}

.po.mo 文件末尾的语言代码不正确。 从 -pt.po 更改为 -pt_PT.po(对 .mo 文件执行相同操作)并且它开始完美运行。

有一个 list of the available language codes for Wordpress 在命名文件之前我应该​​先看一下。