如何运行从PHP创建的初始.pot文件



我正忙于编写一个需要正确本地化的应用程序,但手动创建可移植对象模板的操作一直很乏味。

有人能告诉我为什么这段代码:吗

<?php
exec("xgettext -d templates/base -s -j -o default.pot templates/base/view.php", $output);
?>

什么都没做,但当我在命令行中运行它时,它实际上用它找到的条目填充了default.pot文件?

我发现像这样的问题通常是由路径引起的。用户php/apache在您的机器上运行(通常为"nobody"或"www data")可能没有设置PATH环境变量,如果设置了,则可能没有包含xgettext的路径。如果没有设置该变量,那么在执行该命令时,bash(作为该用户)将无法找到二进制文件。

确认这一点的最好方法是输入xgettext的完整路径,如果你不知道的话,可以在bash中执行which xgettext来获取路径并对其进行硬编码。如果它有效,你可以保留该路径,或者如果代码需要可移植,可以找到另一个解决方案,比如为apache用户将路径添加到path环境变量中。

最新更新