0

我需要帮助才能正确修改 xliff 单元。我的工作流程如下:

  1. 我的输入文件是一个 docx,第一步是从中提取一个 xliff 文件。我为此目的使用 tikal,我得到了一个 xliff 文件,其中有许多类似以下的跨单元(如您所见,tikal 使用相同的源文本自动填充目标):

    xml <trans-unit id="tu3" xml:space="preserve"> <source xml:lang="it"><g id="1">Equazione di </g><x id="2"/><g id="3">Poisson</g><x id="4"/></source> <target xml:lang="en"><g id="1">Equazione di </g><x id="2"/><g id="3">Poisson</g><x id="4"/></target> </trans-unit>

  2. 然后我使用以下代码提取所有要翻译的字符串:

    from translate.storage import lisa, xliff
    f=open(filename,"r")
    inputfile = str(f.read())
    XliffFile = xliff.xlifffile.parsestring(inputfile)
    for transunit in XliffFile.units:
        print transunit.source
    

    从跨单元源中提取要翻译的正确句子

    Equazione di Poisson
    

    我将句子发送到机器翻译服务器,然后返回翻译后的句子(泊松方程)

  3. 现在我遇到了麻烦......我没有找到一个简单的解决方案来用翻译的句子改变transunit中的目标。我试过了

    In [50]: a.rich_target
    Out[50]: [<StringElem([<G(id="1" [u'Equazione di '])>, <X(id="2" [])>, <G(id="3" [u'Poisson'])>, <X(id="4" [])>])>]
    In [51]: a.target = "Poisson Equation"
    

    但我得到:

    In [52]: a.target
    Out[52]: u'Poisson EquationEquazione di Poisson'
    In [53]: a.rich_target
    Out[53]: [<StringElem([<StringElem([u'Poisson Equation'])>, <G(id="1" [u'Equazione di '])>, <X(id="2" [])>, <G(id="3" [u'Poisson'])>, <X(id="4" [])>])>]
    

    这不是我想要的......关于如何获得正确目标的任何建议?谢谢

4

1 回答 1

0

假设您使用的是翻译工具包:尝试使用settarget命令。我不确定您将如何获取<g>or<x>标记 - 也许通过传递多字符串参数。

于 2015-08-27T09:16:07.453 回答