Internationalization poedit和xml文件

Internationalization poedit和xml文件,internationalization,translation,gettext,poedit,xgettext,Internationalization,Translation,Gettext,Poedit,Xgettext,如何配置poedit从xml文件中提取字符串 我在.xml中有Zend Framework导航项,如下所示: <entry-i> <label>Text to translate</label> <params> ... <params> <entry-i> 要翻译的文本 ... 我希望poedit只读取来自s的消息。看起来poedit还不支持XML 我创建了一个小php脚本,将标

如何配置poedit从xml文件中提取字符串

我在.xml中有Zend Framework导航项,如下所示:

<entry-i>
    <label>Text to translate</label>
    <params>
       ...
    <params>
<entry-i>

要翻译的文本
...

我希望poedit只读取来自
s的消息。

看起来poedit还不支持XML

我创建了一个小php脚本,将标签提取到.php文件中, 哪个诗人能理解

$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;
}
$xml=simplexml\u加载文件(“../application/configs/navigation.xml”)
或死亡(“错误:无法打开XML文件”);

echo'我也一直在寻找解决方案,我刚刚让它开始工作

在Poedit(我有1.4.2)中,添加具有以下属性的新解析器(
Edit>Preferences
):

  • 语言:
    XML
  • 以分号分隔的扩展名列表(例如.cpp;.h):
    *.xml
  • 解析器命令:
    xgettext--force po-o%o%C%K%F-L glade
  • 关键字列表中的项目:
    -k%k
  • 输入文件列表中的项目:
    %f
  • 源代码字符集:
    --源代码=%c

在翻译项目中,将
标签
标题
添加到关键字列表并更新目录。

对于在windows上遇到Poedit配置问题的任何人,特别是如果您收到一条错误消息说glade和expat不可用,将提供的xgettext.exe替换为gnuwin32项目中的当前xgettext.exe:


您需要下载二进制文件和依赖项。但是,只需提取二进制xgettext.exe和相关文件(只需运行它,它就会告诉您缺少什么)

它工作得很好!!我在Windows7中使用Poedit1.4.6发现了“glade不受支持”的问题,但我通过下载最新的gnuwin32二进制文件和依赖项修复了这个问题,正如user496209所说。不要下载complett包,因为PoEdit自带了自己的gettext库,所以只需加载二进制文件和依赖项,并将请求的文件替换到PoEdit文件夹中即可。

上述滥用Glade提取器解析非Glade XML文件的建议是错误的。它永远不会工作得很好(举个例子:这里有一些评论)。当然,在2010年,这总比什么都没有好

从gettext 0.19.7开始(从1.8.7开始与Poedit捆绑),有一个更好的方法:现在gettext中内置了对自定义XML文件的支持

从自定义XML文件提取字符串的最佳方法是

  • 添加一个带有扩展名的自定义提取器,指定标准的gettext调用,不带
    -L glade
  • 为您的文件格式
  • 将它们放在Poedit安装中的其他
    .its
    .loc
    文件的位置

  • 很抱歉,这对我不起作用,我已经完成了说明,但是我无法打开XML文件。您好,有没有办法使用此配置转换属性title=“Text to translate”?谢谢,我还想知道是否可以解析XML属性?有什么想法吗?感谢Poedit 1.6或更高版本不再需要此功能。当前版本构建时启用了
    xgettext
    中的所有内容。