如何配置Poedit从xml文件中提取字符串?
我有一个类似以下的Zend Framework导航项目的.xml文件:
<entry-i>
<label>Text to translate</label>
<params>
...
<params>
<entry-i>
我希望Poedit只读取
如何配置Poedit从xml文件中提取字符串?
我有一个类似以下的Zend Framework导航项目的.xml文件:
<entry-i>
<label>Text to translate</label>
<params>
...
<params>
<entry-i>
我也一直在寻找解决方法,现在终于成功了!
在Poedit(我使用的是1.4.2版本)中添加一个新的解析器(编辑 > 首选项
),并设置以下属性:
XML
*.xml
xgettext --force-po -o %o %C %K %F -L glade
-k%k
%f
--from-code=%c
在您的翻译项目中,将label
和title
添加到您的关键字列表中,并更新目录。
-L glade 。
- 编写您的文件格式的ITS规则。
- 将它们放在Poedit安装中其他
.its 和 .loc 文件的位置。
http://gnuwin32.sourceforge.net/packages/gettext.htm
您需要下载二进制文件和依赖项。但是,只需提取二进制xgettext.exe和相关文件(只需运行它,它就会告诉您缺少什么)
xgettext
中的所有内容。 - Václav Slavík看起来PoEdit还不支持XML。
我创建了一个小的php脚本,将标签提取到.php文件中, 这样PoEdit就可以理解了。
$xml = simplexml_load_file("../application/configs/navigation.xml")
or die("Error: Cannot open XML file");
echo '<?';
foreach($xml->xpath('//label') as $label){
echo 'echo _("'.$label.'");'. PHP_EOL;
}
太好了!我在Windows 7上使用Poedit 1.4.6时发现了“glade不支持”的问题,但是我按照user496209的建议下载了最新的gnuwin32二进制文件和依赖项来解决了这个问题。不要下载完整的软件包,因为PoEdit自带其自己的gettext库,所以只需下载二进制文件和依赖项,并将请求的文件替换到poedit文件夹中即可。