国际化:不加载插件翻译的文本

时间:2018-04-15 作者:Jeda Dragon

我正在尝试国际化我正在创建的插件,但它似乎没有显示在.po 文件

首先,我参考了以下来源:https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/https://www.sitepoint.com/wordpress-i18n-make-your-plugin-translation-ready/https://premium.wpmudev.org/blog/ultimate-guide-wordpress-localization/#plugins

这是我当前的目录,如:

--my-custom-dragon-plugin
    --my-custom-dragon-plugin.php
    --languages
        --my-custom-dragon-plugin-de_DE.mo
        --my-custom-dragon-plugin-de_DE.po
最初,我的文本域不是插件slug(不可能使用其他文本域吗?)因此,我不得不根据我发布的第二个链接进行更改,其中提到:

文本域必须与插件的slug匹配。例如,如果您的插件是一个名为sample plugin的文件。php或它包含在名为sample plugin的文件夹中。文本域应为sample plugin。

所以在我的php文件中__(\'Read More\', my-custom-dragon-plugin)

在我的my-custom-dragon-plugin.php, 我有插件定义和加载文本域的函数:

/*
    Plugin Name: My Custom Dragon
    Plugin URI: https://www.xxxxxx.de/
    Description: This is a plugin customized for my dragons.
    Author: Jedragon
    Text Domain: my-custom-dragon-plugin
    Domain Path: /languages/
    Version: 0.1.0
*/

add_action( \'plugins_loaded\', \'load_my_textdomain\' );

function load_my_textdomain() {

    $domain = \'my-custom-dragon-plugin\';
     load_plugin_textdomain( $domain, false, dirname( plugin_basename( __FILE__ ) ) . \'/languages/\' );

}
我也在使用POEdit.po 文件。

当我尝试检查是否反映了更改时,即使我更改了站点语言,文本仍然是英文的。

是否有什么我遗漏了或做得不对的地方?

提前谢谢。

1 个回复
SO网友:Jeda Dragon

我刚刚找到它,因为我没有在php代码中将文本域放在“”中。

应该是这样的

__(\'Read More\', \'my-custom-dragon-plugin\');
而不是

__(\'Read More\', my-custom-dragon-plugin);
现在我的翻译正在进行中。我现在想知道是否可以使用自定义文本域来代替我的长插件slug。

在我看到@mat的答案之前,我就已经弄明白了。我对你的评论投了赞成票。

结束