我们正在生成XLIFF文件,用于将文件发送到第三方翻译系统。
XLIFF文件包含我们需要翻译的消息。问题在于这些消息可能包含
我们不希望翻译HTML或代码。更具体地说,我们要使其不能被翻译人员编辑,并且为此,我们必须将不可翻译的元素包装到特殊的XLIFF 1.2 tags-bpt,ept和ph中。
例如,
Hello, click <a href="example.com">here</a>.
将转换为
Hello, click <bpt i=1><a href="example.com>"</bpt>here<ept i=1></a></ept>
或
This is {% mustache_var %}
成为
This is <ph>{% mustache_var %}</ph>
这些是非常基本的示例,您可能在html标签中嵌套了html标签或代码段。
当前,我们使用基本解析器(从头开始用PHP编写)来包装HTML内容,并使用正则表达式来包装代码段来进行此转换。但是,此代码非常复杂,很难修改。
我想知道是否有任何开源工具(最好在PHP中)进行此转换-以XLIFF格式包装不可翻译的内容?还是为该任务使用https://www.antlr.org/之类的词法分析器更好?
赞赏任何建议。