本地化来自XML文件的文本

时间:2011-08-28 作者:onetrickpony

你们知道我有什么方法可以自动从中提取字符串吗。xml文件并将其存储在。采购订单/。pot文件,就像PoEdit处理来自的文件一样。php文件?

XML结构如下所示:

<?xml version="1.0" encoding="iso-8859-1"?>
<options>
  <page id="content" label="Content Options" icon="4">
    <section id="post" label="Content Options">
      <option id="title" type="checkbox" default="yes" label="Show post title"></option>
      <option id="comments" type="checkbox" default="yes" label="Show comments link"></option>
      <option id="thumb_size" type="select" default="default" label="Thumbnail Size">
        <value id="default" label="Default Size, (%s)" vars="default_size"></value>
        <value id="100x100" label="Small (100x100)"></value>
        <value id="150x150" label="Medium (150x150)"></value>
        <value id="200x200" label="Large (200x200)"></value>
      </option>

    </section>
  </page>
</options>
“label”属性中的字符串应该由gettext解析器或其他东西检测到。。。

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

您应该使用本地化的XML格式,如XLIFFTMX , 有一个工具可以将XLIFF转换为。采购订单。

如果无法更改源XML,则有几个选项,但这实际上取决于您如何输出此XML信息:

解析XML(用于标签)并创建。po与这些字符串的gettext输出(然后可能合并.po文件)_() 将文本直接转换为XML,然后在输出时对其进行解析还可以看看这个工具,我认为有一些命令行python工具可以转换xml-->po,http://itstool.org/

SO网友:Shaun McCance

如果您想尝试ITS工具,只需为其提供一个符合您格式的自定义ITS规则文件。以下规则适用于您发布的代码段:

<its:rules
    xmlns:its="http://www.w3.org/2005/11/its"
    its:version="1.0">
  <its:translateRule translate="yes" selector="//@label"/>
</its:rules>
将其另存为(例如)选项。its,然后按如下方式运行其工具:

itstool -i options.its -o somefile.pot somefile.xml
翻译人员翻译完PO文件(例如xx.PO)后,将其编译为mo文件,然后使用其工具进行合并:

msgfmt -o xx.mo xx.po
itstool -m xx.mo -i options.its -o somefile.xx.xml somefile.xml
查看文档了解更多信息:http://itstool.org/documentation/

结束

相关推荐

can't import xml file

当我将xml文件上载到我的站点时,出现以下错误消息,上载失败抱歉,出现错误。文件为空。请上传更多内容。此错误也可能是由于在php中禁用上载而导致的。ini或post\\u max\\u size在php中定义为小于upload\\u max\\u filesize。ini公司我不能编辑上面(php.ini)提到的内容,因为我的主机是共享的,我不想从数据库或类似的地方迁移。从wordpress范围迁移有什么方法吗???