我开始开发wordpress插件,试图扩展现有的插件。
这个插件有一个语言文件夹,里面有一个法语和印度语的.po和.mo文件。插件代码中有如下引用:
<?php _e("Start Date", "pluginxyz"); ?>
我想添加:
<?php _e("Length of Class Block", "pluginxyz"); ?>
我不完全确定我需要做什么才能使这项工作成功。我的插件页面抛出错误:
Failed to load resource: net::ERR_CACHE_MISS http://127.0.0.1:8080/wordpress/wp-admin/admin.php?page=classes
我认为这是因为在e()正在查找的文件中找不到"类块长度"文本。我安装了一个插件来帮助本地化:https://wordpress.org/plugins/codestyling-localization/我已经使用这个工具重新扫描了2.po文件,但我不知道在哪里或如何将"类块长度"作为英语语句添加到我的插件中!
有人能解释一下并帮忙吗!
为了进一步开发,您可以选择
1解析英文定义的PO文件,并根据数据或生成PO文件
2:将代码源"翻译"成一个单独的en_US.po。通过使用这种方法,插件更开放,可供使用另一种母语的开发人员进一步开发。
编辑:如果你正在寻找一个工具来编辑PO/MO文件,我真的推荐POEdit,当我需要把一些东西翻译成挪威语时,我总是使用它。
我最终弄明白了。长期的答案是安装和设置grunt-pot,它会扫描我的项目,在PHP中查找对_e()调用等的引用,并将它们提取到pot文件中。这个pot文件可以用来生成.po文件,这些文件是文本的翻译版本,然后将其编译成二进制.mo文件。
然后我发现了另一件事——那就是,如果_e()在本地化中找不到引用,它无论如何都会继续吐出那个字符串——所以现在,我要做的是,将来我可以使用grunt pot创建一个pot文件,为我的用户创建一个可分发的po和mo文件,以便拥有本地化的插件。