【问题标题】:TMX(Translation Memory eXchange) files in pythonpython中的TMX(翻译记忆交换)文件
【发布时间】:2013-12-19 19:19:28
【问题描述】:

是否有在python中处理TMX(翻译记忆交换)文件的模块,如果没有,还有什么方法可以做到?

就目前而言,我有一个巨大的 2gb 文件,带有法语-英语字幕。是否有可能处理这样的文件,还是我必须将其分解?

【问题讨论】:

  • 当然 TMX 就是 XML。 2GB 将提供约 1GB 数据,因此将所有内容导入数据库而不是地图法语-英语是有意义的。

标签: python-3.x tmx pytmx


【解决方案1】:
【解决方案2】:

正如@hurrial 所说,您可以使用translate-toolkit

安装

此工具包仅可使用 pip。要安装它,请运行:

pip install translate-toolkit

用法

假设您有以下简单的sample.tmx 文件:

<tmx version="1.4">
  <header
    creationtool="XYZTool" creationtoolversion="1.01-023"
    datatype="PlainText" segtype="sentence"
    adminlang="en-us" srclang="en"
    o-tmf="ABCTransMem"/>
  <body>
    <tu>
      <tuv xml:lang="en">
        <seg>Hello world!</seg>
      </tuv>
      <tuv xml:lang="ar">
        <seg>اهلا بالعالم!</seg>
      </tuv>
    </tu>
  </body>
</tmx>

你可以像这样解析这个简单的文件:

>>> from translate.storage.tmx import tmxfile
>>>
>>> with open("sample.tmx", 'rb') as fin:
...     tmx_file = tmxfile(fin, 'en', 'ar')
>>>
>>> for node in tmx_file.unit_iter():
...     print(node.source, node.target)
Hello world! اهلا بالعالم!

更多信息,请查看here的官方文档。

【讨论】:

  • 不适用于python3:[code] >>> from translate.storage.tmx import tmxfile\\ Traceback(最近一次调用):文件“”,第 1 行,在 文件“/home/souto/.local/share/virtualenvs/folder-WrAyGpIU/lib/python3.5/site-packages/translate/storage/tmx.py”中,第 22 行,在来自 lxml 的 中import etree ImportError: No module named 'lxml'[/code]
  • 使用pip install lxml安装lxml库。
  • 得到错误:“tmxunit”对象没有属性“getsource”
  • @AdityaLandge,显然他们改变了 API。无论如何,我已经更新了我的答案以使用node.source 而不是node.getsource()node.target 而不是node.gettarget()
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 2018-02-03
  • 2014-05-12
  • 2021-01-11
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多