翻译包含HTML样式的XML文档(一)
在入门XML的时候,你只需要知道:
从今天起,我再带来高阶一点的XML文档的知识。先从包含HTML样式的XML文档讲起。
比如,我这里有一个文本:
里面有一堆看上去乱七八糟的东西,比如:<
和>
。
这些乱七八糟的东西其实是实体。
如果你看不懂这个文档,那么我再给你放另一个图:
其实有些同学可能发现了,上述两个图,除了第一张图多了一些乱七八糟的“实体”,其它都是一样的。
是的,这两个文档就是同一个文档,只是写法不同。
为什么写法不同呢?我们先学一个新的知识点:实体。
什么是实体?
XML规范规定,如果有些字符(详见下列表格)出现在要显示的文本中,它们应该写成实体。
如果你想要 | 你需要改为: |
< (小于号) | < |
> (大于号) | > |
&(和) | & |
' (英文单引号) | ' |
'' (英文双引号) | " |
我们来看个例子。
假设你想实现的文本是:
你的XML就应该这么写:
你瞅瞅,在这里:
大于号没有写成>,而是
>
单引号也没有直接写为',而是
'
这就是实体。XML的实体是对数据的引用,而不是直接使用该数据。
通过上述表格,我们也发现了,实体的标准写法是:
以一个和字符(&)开始,
以一个分号(;)结束。
那,遇到包含实体的文本,应该怎么翻译呢?
如何翻译包含实体的XML文档?
我们回到图一的文档:
如果把这个文档直接导入memoQ进行翻译,默认情况下,memoQ默认的XML过滤器就可以自动识别这样的文本。
所以,如果这个文本直接导入memoQ,会是这样的:
是的,我们发现了:
memoQ自动把
<
转为了<
,把
>
转为了>
。
这时候我们也发现,咦,memoQ自动转换为HTML的样式了:
<br>
不就是一个换行标签嘛!<b>
不就是一个加粗样式嘛!
所以你可以理解为:这个文本是在XML基础上包含了HTML样式。
那就简单了,我们可以用层叠过滤器搞定。
关于层叠过滤器,你可以查看帮助文档:https://docs.memoq.com/current/en/Places/create-new-filter-cascading.html?Highlight=cascading%20filter
我们以后也会再讲,慢慢涨姿势~
既然是XML文档,所以我们第一层过滤器还用XML过滤器;
既然包含HTML样式,所以我们叠加一层HTML过滤器。
重新导入后,就OK啦!
该变为标签的也变为标签啦~
这样就不用担心出现字符串误译或者丢失的问题啦~
操作视频:
好啦~今日分享结束~
下次分享:认识和翻译包含CDATA的XML文档~
你还想学什么,欢迎来问~