我正在尝试国际化我正在创建的插件,但它似乎没有显示在.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
文件。
当我尝试检查是否反映了更改时,即使我更改了站点语言,文本仍然是英文的。
是否有什么我遗漏了或做得不对的地方?
提前谢谢。
SO网友:Jeda Dragon
我刚刚找到它,因为我没有在php代码中将文本域放在“”中。
应该是这样的
__(\'Read More\', \'my-custom-dragon-plugin\');
而不是
__(\'Read More\', my-custom-dragon-plugin);
现在我的翻译正在进行中。我现在想知道是否可以使用自定义文本域来代替我的长插件slug。
在我看到@mat的答案之前,我就已经弄明白了。我对你的评论投了赞成票。