使用PHP在XLIFF文件中包装HTML和代码段的方法

时间:2019-05-01 04:59:11

标签: php parsing html-parsing xliff

我们正在生成XLIFF文件,用于将文件发送到第三方翻译系统。

XLIFF文件包含我们需要翻译的消息。问题在于这些消息可能包含

  1. HTML标记
  2. 代码段(例如小胡子或php变量)

我们不希望翻译HTML或代码。更具体地说,我们要使其不能被翻译人员编辑,并且为此,我们必须将不可翻译的元素包装到特殊的XLIFF 1.2 tags-bpt,ept和ph中。

例如,

Hello, click <a href="example.com">here</a>.

将转换为

Hello, click <bpt i=1>&lt;a href="example.com>"</bpt>here<ept i=1>&lt;/a></ept>

This is {% mustache_var %}

成为

This is <ph>{% mustache_var %}</ph>

这些是非常基本的示例,您可能在html标签中嵌套了html标签或代码段。

当前,我们使用基本解析器(从头开始用PHP编写)来包装HTML内容,并使用正则表达式来包装代码段来进行此转换。但是,此代码非常复杂,很难修改。

我想知道是否有任何开源工具(最好在PHP中)进行此转换-以XLIFF格式包装不可翻译的内容?还是为该任务使用https://www.antlr.org/之类的词法分析器更好?

赞赏任何建议。

0 个答案:

没有答案