有人使用脚本从XML文件中提取特定字符串,以便通过CSV或PO文件进行翻译

有人使用脚本从XML文件中提取特定字符串,以便通过CSV或PO文件进行翻译,xml,magento,translation,gettext,po,Xml,Magento,Translation,Gettext,Po,这是我在这里的第一个问题,通常我会提供答案;-) 嗯,我正在寻找一个脚本,将一些特定字符串集提取到system.xml、布局xml文件或类似文件中,Magento使用这些文件来翻译它们。示例:标签、菜单项或其他 我有一个脚本,借助gettext从php和phtml文件中提取它们,并将它们转换为可移植的对象文件,然后,借助OmegaT软件,我使用PO文件翻译字符串,最后还有一个php CLI脚本,将翻译后的文件从PO转换为CSV文件 Magento通过使用模块和元素信息来转换这些xml文件,该模块

这是我在这里的第一个问题,通常我会提供答案;-)

嗯,我正在寻找一个脚本,将一些特定字符串集提取到system.xml、布局xml文件或类似文件中,Magento使用这些文件来翻译它们。示例:标签、菜单项或其他

我有一个脚本,借助gettext从php和phtml文件中提取它们,并将它们转换为可移植的对象文件,然后,借助OmegaT软件,我使用PO文件翻译字符串,最后还有一个php CLI脚本,将翻译后的文件从PO转换为CSV文件

Magento通过使用模块和元素信息来转换这些xml文件,该模块和元素信息是由属性
“translate='element'u to'u translate'”
“module='mymodule'”
提供的,这些属性通过助手内部放置在元素(例如块或动作)中

这里是一个xml代码示例,我想提取它以允许我翻译它。在这里,由于模块“sales”,我想转换元素“label”的值,如下所示,XML代码中的属性有助于提取此信息:

<customer_account>
        <reference name="customer_account_navigation" >
            <action method="addLink" translate="label" module="sales"><name>billing_agreements</name><path>sales/billing_agreement/</path><label>Billing Agreements</label></action>

计费协议销售/计费协议/计费协议
或者另一个例子:

<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
                <action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
                <action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
                <action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>
            </block>
        </reference>
</customer_account>

账户客户/账户/账户仪表板
账户\编辑客户/账户/编辑/账户信息
地址簿客户/地址/地址簿
因此,如果有人有一个脚本,允许提取他们,这将是伟大的。老实说,我没有时间创建这样一个脚本,因为我已经用了很多时间来创建翻译的整个过程,这仍然很复杂。但是,如果有人已经做了这项工作,在这里分享它将是非常棒的。 然而,如果人们搜索脚本来完成从CSV到PO的转换和反向转换,我可以提供帮助,尽管它在网络上是可以资助的。我只是对原版做了一些表面上的改动


谢谢你的反馈

我制作了一个模块,用于提取字符串,以Magento格式直接转换为csv文件。如果我没记错的话,它会处理配置和系统xml,但不确定布局。
尝试一下,并随时改进:)


我制作了一个模块,用于提取字符串,以Magento格式直接转换为csv文件。如果我没记错的话,它会处理配置和系统xml,但不确定布局。
尝试一下,并随时改进:)


有一些专业的翻译工具,比如SDL Trados,可以做这些事情。
使用trados,您不会将其转换为csv,而是转换为xliff,这是翻译文件的标准格式。

有一些专业的翻译工具,例如SDL trados,可以完成这类工作。
使用trados,您不会将其转换为csv,而是转换为xliff,这是翻译文件的标准格式。

查看Bryan Schnabel的XML-xliff往返工具:

XLIFF往返自动执行任何XML文件和XLIFF之间的往返。 它由2个XSL文件+Java源代码组成。第一种是将XML转换为 XLIFF。第二个将XLIFF转换回原始XML,即。, 在XLIFF文件上进行语言翻译后


Bryan是技术通信的长期成员。

请查看Bryan Schnabel的XML-XLIFF往返工具:

XLIFF往返自动执行任何XML文件和XLIFF之间的往返。 它由2个XSL文件+Java源代码组成。第一种是将XML转换为 XLIFF。第二个将XLIFF转换回原始XML,即。, 在XLIFF文件上进行语言翻译后


Bryan是技术通信的长期成员。

SDL Trados Studio允许您创建自定义规则来处理xml文件。SDL称之为“文件类型”。请参见此处的基本介绍:

文件类型允许您指定哪些元素和属性是(不)可翻译的

SDL Trados Studio不允许您根据父元素中的属性评估元素的“可翻译性”

换言之:

  • 如果您总是需要转换label元素:如果您创建文件类型,SDL Trados Studio可以处理它。action元素的translate属性无效
  • 如果您不必总是转换label元素,而是希望基于translate属性对其求值,那么您确实需要一个脚本来进行预处理(以及随后的后处理)。但由于您正在构建自己的xml文件,我想您可以构建它,使可翻译的内容位于可识别的元素中

如果您正在寻找免费解决方案,请查看Memsource。它们允许完全相同的原则,但我不太熟悉确切的过程。

SDL Trados Studio允许您创建自定义规则来处理xml文件。SDL称之为“文件类型”。请参见此处的基本介绍:

文件类型允许您指定哪些元素和属性是(不)可翻译的

SDL Trados Studio不允许您根据父元素中的属性评估元素的“可翻译性”

换言之:

  • 如果您总是需要转换label元素:如果您创建文件类型,SDL Trados Studio可以处理它。action元素的translate属性无效
  • 如果您不必总是转换label元素,而是希望基于translate属性对其求值,那么您确实需要一个脚本来进行预处理(以及随后的后处理)。但由于您正在构建自己的xml文件,我想您可以构建它,使可翻译的内容位于可识别的元素中

如果您正在寻找免费解决方案,请查看Memsource。他们允许完全相同的原则,但我不太熟悉确切的程序。

谢谢您的反馈。我