查看原文
其他

正则篇(六):用正则将文本标记为标签

可爱的冬梅 职业译员玩转翻译技术
2024-09-09

资深的职业译员或者是项目经理一看标题就明白,这次,我要讲如何定义标签。

但是可能还是有些新人朋友,还是不太理解什么意思。这里有两个词:正则、标签。

  1. 正则是什么呢?请参考我之前写的:正则篇(一):认识正则表达式

  2. 标签又是什么呢?标签,英文名字是Tag,又是什么意思呢?技术百科里有一个定义:

    A tag is a piece of information that describes the data or content that it is assigned to. Tags are nonhierarchical keywords used for Internet bookmarks, digital images, videos, files and so on. A tag doesn't carry any information or semantics itself.(摘自技术百科:https://www.techopedia.com/definition/5240/tag-metadata

    通过定义我们不难发现,

    标签是信息,用来描述数据和内容。——这说明,如果丢了这个标签,就一定会丢掉某些信息。这在本地化的时候是绝对不允许的。

    丢了标签研发会生气的,因为人家辛辛苦苦写好的代码,你给人家搞丢了。测试跑不通了😭,产品上不了线了😡,研发要挨骂了💢~

    既然不能丢,我应该怎么办呢?

    ——当然是保留这些标签了。

    可是问题来了:万一翻译看不懂这些标签,就给翻译了。这可怎么办?

    所以,为了防止译员在看不懂的情况下,也不要乱来,项目经理就可以用正则表达式提前把这些不能动的“信息”内容(一般是代码、结构化标签等)标记起来,让译员不要动。

    在memoQ中,需要用到正则表达式标注器

    这个操作是怎么样呢?我们来看两个案例。

    案例一

    这是一份游戏领域的常见文本,源文档是excel表格,其中C列是需要翻译的中文原文。但是我们发现,原文中有[color=f0abfe][/color]等代码块,不需要且不能翻译,翻译完成后要保留代码块。

    这个文本的内容节选自九月份新出的一款游戏《哈利波特:魔法觉醒》中的剧情片段。

    游戏文本的样式基本都是这样的,每一列的内容不重要,除了C列,其他都是我编的我编的我编的~只是为了给大家演示~

    如果直接把这个文本导入到memoQ中,译员说丢就丢了~

    就算没有丢,如果译员不懂,说不定就给改了~

    所以,为了防止译员数据丢失,我们需要固定住原文中的代码,比如[color=#f0abfe][/color]{Propstring}

    (如果你还是听不懂,不要着急,往下看标记后的内容,我想应该会有些帮助吧~)

    在这里,我们借助正则表达式标注器,添加一个正则:

    (\[|{)\/*.+?(\}|])

    当然,为了防止我以后还会用这个表达式,我可以保存到我的正则库里面,或者我保存为一个新的正则表达式标注器的过滤器供下次试用。

    那么设置完成后,这类文本就会变为标签啦~(看红颜色的文本)

    案例二

    这是一份本地化项目的常见文本,源文档是PO格式,我们看其中几句话。

    #: spyder/app/mainwindow.py:503
    msgid "An error occurred while creating a socket needed by Spyder. Please, try to run as an Administrator from cmd.exe the following command and then restart your computer: <br><br><span style='color: #555555'><b>netsh winsock reset</b></span><br>"
    msgstr ""

    这份文本如果直接导入后,同样,译员在处理的过程中会遇到一些问题。比如这里的<br><span></span></b>等。

    因此,我们需要同样的方法,利用正则表达式标注器定义一条符合这几个内容的正则。你可以试一下:\<.+?>

    这时候,如果译员丢了标签或被修改了内容,在确认句段的时候就会有警告提醒~

    Opps~你的标签缺失啦~

    如果是这样,如果通过正则表达式把这些代码块给标注起来,PM就再也不同担心代码被乱动啦~

    当然我们在处理项目的过程中,会遇到各种各样的文本,比如XML、Json、String、txt、Markdown等等,它们都有可能含有标签和实体,但是我们可以有这个解决问题的方法,那就是通过正则表达式将这类文本标记为标签,可以从一定程度上降低这类质量问题发生可能性不是?

    重点‼️

    定义的前提是要先识别出这类文本,如果你都识别这类文本,那~是另一回事了~

    如果你遇到难解析的文本,欢迎留言,我们可以一起尝试一下用正则解析?

    好啦这期正则篇先到这里,下期我们分享用正则检查译文质量。

    你还想学什么,欢迎来问~


    往期精选

    正则篇(五):用正则进行文本解析

    正则篇(四):源文件准备

    正则篇(三):用正则在CAT中查找和替换

    正则篇(二):如何写一个正则表达式

    正则篇(一):认识正则表达式


    继续滑动看下一个
    职业译员玩转翻译技术
    向上滑动看下一个

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存