我正在构建一个插件,到目前为止进展顺利。我想开始做好本地化准备。我不知道出了什么问题,但当我尝试将其加载到Poedit中时,我感到很不舒服。
因此,让我们按照多个教程的内容一步一步地进行。
所以在myplugin中。php我加载以下内容来告诉WP我的语言文件在哪里(在实际创建文件夹之后)。
function ap_action_init()
{
// Localization
load_plugin_textdomain( \'myplugin\', false, dirname( plugin_basename( __FILE__ ) ) . \'/languages/\' );
}
add_action(\'init\', \'ap_action_init\');
然后,我调整文件(位于admin文件夹中)中需要翻译的所有字符串。
<h2><?php _e(\'MyPlugin Settings\', \'myplugin\'); ?></h2>
<?php _e(\'Element Width\', \'myplugin\'); ?>
<?php _e(\'This defines the default width of your Elements\', \'myplugin\'); ?>
我想,到目前为止还不错。然后我打开Poedit。
我告诉poedit保存myplugin-nl_NL.po
在我的插件的languages文件夹中。
我告诉基础路径是../
我告诉我的道路是./admin
或admin
(如果我给它/admin
, 或者别的什么,它给了我一个错误,文件夹不存在。所以我假设它可以找到我的文件夹)。
我让poedit查找关键字__()
和_e()
.
然后我按ok!每次(无论我尝试什么)它都不会显示任何要翻译的字符串,因为我导入了一个普通字符串。阿宝,它确实给我看了很多。
所以有人看到这里出了什么问题吗?
P、 S:可能是一个重要的通知。如果我尝试手动创建自己的。po文件,它在POedit中显示字符串。但如果我把这个放在我的网站上,改变WordPress的语言,它不会改变任何东西。所以我猜我的WP文件有问题。
希望任何人都能帮助:)
SO网友:Otto
使用WordPress i18n工具为您生成POT文件,而不是使用poedit从代码生成翻译字符串。
这样做的好处是:a)不需要在poedit中执行任何特殊操作;b)获取所有可能的翻译内容,包括标题和非标准翻译字符串调用(并非所有内容都是__
和_e
).
要做到这一点相对简单,真的。
Step the First
获取SVN客户端,然后执行以下操作:
svn checkout http://develop.svn.wordpress.org/trunk/ develop
这将为您提供WordPress主干目录的副本,以及开发人员需要的特殊工具。您可能不需要所有这些工具,但您确实需要一个。
(注意:如果您是git用户,可以克隆git://develop.git.wordpress.org/
相反。)
Step the Second
进入该目录,然后进入工具目录,然后进入i18n目录。在这里,您将找到一个名为
makepot.php
. 这就是你需要的。
使用它非常简单。获取命令提示符并键入以下内容:
php makepot.php wp-plugin /path/to/your/plugin/folder plugin-slug.pot
“wp-plugin”标志告诉代码检查插件。您还可以使用
wp-theme
此处为主题生成POT文件。
将插件文件夹的路径替换为插件的相关本地副本,并使用自己插件的slug作为pot文件名。PHP代码将扫描插件的目录,并为您构建一个POT文件。
POT文件是一个“PO模板”,我相信poedit可以很好地处理它。您可能想要编辑它的标题(在任何文本编辑器中),以便在其中包含您的作者和插件信息等等。
Why this is better:
自己比较结果。请注意,插件的标题也包含在POT文件中。如果您使用任何特殊的翻译方法,如
_x
或
_ex
或
_n_noop
, 那么这些也会在文件中。
请注意,makepot。php代码不是独立的,它要求WordPress的源代码可用。因此,您需要整个签出,而不仅仅是工具目录。它使用WordPress翻译代码来完成一些工作。