1

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

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

我有一个脚本可以从 php 和 phtml 文件中提取它们,这要归功于 gettext 并将它们转换为可移植对象文件,然后,我使用 PO 文件来翻译字符串,这要归功于 OmegaT Software,最后我还有一个 PHP CLI 脚本来转换从 PO 到 CSV 文件的翻译文件。

Magento 通过使用模块和由属性提供的元素信息来翻译这些 xml 文件,并"translate='element_to_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 的转换并进行反向转换,我可以提供帮助,尽管它可以在网络上获得资助。与原始版本相比,我只是做了一些外观上的更改。

感谢您的反馈。

4

4 回答 4

2

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

https://bitbucket.org/OSdave/languagecsv

于 2013-01-03T17:20:50.857 回答
2

查看 Bryan Schnabel 的 XML - XLIFF 往返工具:http: //sourceforge.net/projects/xliffroundtrip/

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

Bryan 是OASIS XLIFF技术通讯的长期成员。

于 2013-01-04T14:42:06.477 回答
0

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

于 2013-01-04T11:31:20.970 回答
0

SDL Trados Studio 允许您创建自定义规则来处理 xml 文件。SDL 称它们为“文件类型”。在此处查看基本介绍:http ://producthelp.sdl.com/kb/Articles/5274.html

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

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

换句话说:

  • 如果您总是必须翻译标签元素:如果您创建文件类型,SDL Trados Studio 可以处理它。action 元素的 translate 属性是无用的。
  • 如果您不必总是翻译标签元素,而是想根据 translate 属性对其进行评估,那么您确实需要一个脚本来进行预处理(然后进行后处理)。但是由于您正在构建自己的 xml 文件,我想您可以构建它,以便可翻译的内容位于可识别的元素中。

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

于 2016-12-07T08:57:14.377 回答