准备好我的插件翻译。POEDIT不起作用

时间:2014-08-11 作者:Danny van Holten

我正在构建一个插件,到目前为止进展顺利。我想开始做好本地化准备。我不知道出了什么问题,但当我尝试将其加载到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文件夹中。

我告诉基础路径是../

我告诉我的道路是./adminadmin (如果我给它/admin, 或者别的什么,它给了我一个错误,文件夹不存在。所以我假设它可以找到我的文件夹)。

我让poedit查找关键字__()_e().

然后我按ok!每次(无论我尝试什么)它都不会显示任何要翻译的字符串,因为我导入了一个普通字符串。阿宝,它确实给我看了很多。

所以有人看到这里出了什么问题吗?

P、 S:可能是一个重要的通知。如果我尝试手动创建自己的。po文件,它在POedit中显示字符串。但如果我把这个放在我的网站上,改变WordPress的语言,它不会改变任何东西。所以我猜我的WP文件有问题。

希望任何人都能帮助:)

2 个回复
最合适的回答,由SO网友:Danny van Holten 整理而成

好啊我发现了问题。一些教程告诉我__()_e() 在我的诗中。现在我发现答案很愚蠢。因为根本不存在任何具有这些搜索值的字符串。因为在这些括号之间总是有一些东西。

因此,解决方案非常简单(而且非常愚蠢)。将搜索值置于___e

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翻译代码来完成一些工作。

结束

相关推荐

How can I find plugins' slug?

我想知道如何才能找到插件的slug(slug=WordPress用来更新插件和确定哪些插件当前处于活动状态的内部名称)?它通常是插件的文件夹名,但如果插件没有文件夹,则是其文件名(如hello.php)。是否有其他例外情况?大小写字符重要吗</插件的slug是否可以与其文件夹名不同?如果有一个叫做hello的插件呢。php和另一个/您好。php/您好。php