使用Poedit创建POT文件

7

我正在拼命尝试在php中创建一个目录(.In)用于我的新应用程序。 1)我创建了一个名为“trans.php”的文件,在其中放置所有要翻译的值。

例如,这是我的文件内容:

<?php 

echo _e('SORTIR LA NUIT');

?>

2) 我打开Poedit,在"Paths"中输入以下内容(见图片),然后将我的文件“php”保存在同一位置。

在Poedit中配置路径

3) 当我点击“更新”时,出现以下错误:

12:25:43: No files found in: /Users/aweaoftheworld/Desktop/test
12:25:43: Poedit did not find any files in scanned directories.
12:25:43: Entries in the catalog are probably incorrect.
12:25:43: Updating the catalog failed. Click on 'More>>' for details.

你能帮助我吗?

真诚地,


_()gettext() 的别名。http://php.net/manual/function.gettext.php - powtac
3个回答

17

确保POEdit(目录 > 设置 > 路径)中定义的路径指向包含您的PHP文件的文件夹。这将解决POEdit找不到文件的问题。

如果解决了“在扫描的目录中未找到任何文件”的问题,则POEdit可能仍然会找到0个消息。这是因为默认情况下,POEdit不支持将_e作为关键字。要解决此问题,只需将"_e"添加到关键字列表中(在目录 > 设置 > 关键字中)即可。


我使用了_(),路径也是正确的,但POEdit 1.4.6无法解析任何内容(相同的错误),而手动使用xgettext却可以正常工作。在我的情况下,升级到1.5.4解决了这个问题(操作系统:Ubuntu 12.04.4)。 - Radu Maris

9

在 IT 技术中,应该使用 _ 代替 _e,例如:

<?php echo _("hi there i am gettext library") ?>

顺便提一下,_e 函数来自于 Wordpress 引擎,它和 PHP 预定义函数相似但并非 PHP 预定义函数。


1
只有在使用_()而不是_e()或__()时,Poedit才能找到我的字符串。但是,在WordPress中,我会收到以下错误提示:
警告:_()期望恰好1个参数,但提供了2个,位于C:\xampp\htdocs\xxx.php的第xxx行
这是在我尝试将__()和_e()添加到“关键词”之后发生的,但它并没有解决问题......所以对我来说,解决方案是将其更改为_()以供Poedit使用,然后从代码(wp主题或插件)中获取所有单词并将其全部更改为__()。

那只是愚蠢的。看看你上面的答案,你做错了什么 - 你需要添加这个非默认关键字。 - Václav Slavík
第四行中我写道: 在“关键词”中尝试添加__()和_e(),但这并没有解决问题... - Erez Lieberman
那么,要么您在代码中错误地使用了_e(),要么确实没有将其添加到关键字中(可能是拼写错误),或者没有刷新目录。但事实是,Poedit和xgettext都可以完美识别非默认的_e关键字,无论您遇到什么问题,都不是因为Poedit无法看到_e()。 - Václav Slavík

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接