230 •电子技术与软件工程  Electronic Technology & Software Engineering
程序设计
• Program Design
【关键词】Office VBA 翻译术语 编程
1 引言
VBA(Visual Basic for Applications)是微软公司面向Office 系列软件而开发的一种程序设计语言,利用VBA 编程可以将常见的办公任务操作自动化(Mansfield 2010, xxvii ,3),从而提高工作效率。虽然翻译技术在翻译界已经得到了普遍认可,而且利用各种程序语言开发的翻译工具数不胜数,但是利用VBA 编程来开发翻译工具仍然必不可少。因为现在翻译工具所要处理的文件基本上都是各种办公软件文档,特别是word 文档。在各种计算机辅助翻译软件和机器翻译软件处理翻译文档之前都要对文档进行加工,从翻译工具导出之后还要对译文进行校对。这种译前处理和后期校对基本都可以在office 文件中完成。作为Office 一个重要组件,VBA 在译前和译后文档的处理过程中有着举足轻重的作用。
虽然目前国内还没有文献专门讨论VBA 编程在翻译中的应用,但已经有人在文献中提到了VBA 编程在翻译中的作用(徐彬,郭红梅,2017:96-101;徐彬,郭红梅,国晓立2007:80;徐彬,2010:47;徐彬,
曹军,2017:97;)。王华树(2013:23-28;2017:25)也将VBA 编程看成是翻译技术能力的一部分。不过他们用的术语是宏录制或者宏命令,其实宏只不过是VBA 编程的一般说法,实际上专业教材或者学术就叫VBA 编程(英文VBA programming)。这里介绍两款翻译术语工具的VBA 编程开发,对其中遇到的一些问题进行了阐述,以期对今后VBA 编程在翻译中的应用有所启发。
2 VBA开发术语工具的必要性
翻译术语库在现代翻译技术中起着非常重要的作用,各种翻译术语工具已经成为翻译技术中不可分割的一部分。虽然现在已经有各种各样的术语管理工具,但是利用office VBA
Office VBA 编程设计两款翻译术语工具
文/李海亭
开发简单实用的术语管理工具仍然必不可少。其主要原因有以下两点:第一,对各种术语的处理仍然离不开各种office 软件,而且这类软件也是管理术语数据的系统(王华树,冷冰冰,2017:79)。例如绝大多数CAT 软件都可以将存储双语对照术语的Excel 表格加载到术语库中供翻译时参考,也可以将术语库中的术语导出为Excel 或者CSV (用Excel 表格打开)文件,方便术语数据的存储和交换。虽然这些CAT 软件也可以使用数据库或者TXT 格式文档,但是因为TXT 属于无格式文档,显示和可读性较差,并不利于大多数译者使用。而绝大多数译者也并不习惯和熟悉数据库的各种操作。第二,在翻译术语的搜集、编辑、校对和整理过程中,office 文件仍然起着非常重要的作用。例如利用Word 通配符的强大编辑功能,可以对双语术语文件进行整理,也可以在两种语言的术语之间插入一个制表符,从而快速将从各种渠道获得的双语词表编辑为双语对照的表格形式。这种格式可以直接复制到Excel 表格中或者TXT 文档中,然后加载到各种CAT 软件的术语库中作为参考。作为office 软件一个重要部分,VBA 有非常强大的编程功能,可以将许多翻译术语的操作自动化,并且还可以开发一些实用的术语管理界面,从而提高术语管理的效率。
3 术语编辑校对工具
术语编辑校对是保证术语质量,进而保证翻译质量的关键步骤。无论是从翻译文件、记忆库和语料库中提取出来的术语,还是在翻译
中添加进术语库中的术语,以及从网络资源或其他渠道获取的各种术语,都要对其进行认真编辑和校对以确保术语翻译的准确性,从而保证术语库的质量。然而目前的各种术语管理软件对于术语编辑校对的处理并不能令人满意。3.1 当前术语管理工具存在的问题
(1)现在的各种术语编辑和校对工具都是以表格的形式呈现,长时间编辑校对容易错行。现在的翻译术语工具无论是在线工具还是单机工具;无论是独立工具还是集成工具,在翻译术语的编辑和校对上都是以表格的形式呈现。这种表格形式在处理较少的术语时还不会有什么问题,但是如果处理较多的术语时因为校对者长时间对着表格,容易产生错行(当然部分软件可以通过将所处理的行高亮的形式而避免错行)。即使将术语库中的术语导出为TXT 和Excel 表格形式,在编辑和校对过程中也会存在一定问题。因为TXT 是无格式文档,无法对字体和段落格式进行设置,而且许多不可打印字符无法显示,导致大多数用户都不使用这种格式进行文字编辑处理。而Excel 也是表格形式,从人体工程学来讲并不是编辑和校对术语的最佳格式。
2)由于大多数术语管理工具对翻译术语都是多行同时呈现,长时间盯着,令人会眼花缭乱。由于现在
大多数的术语管理工具都是以表格的形式呈现,用户在编辑校对的过程中同时盯着好多行术语,短时间还可以应付,时间长了后必然会眼花缭乱,从而影响校对的效率和质量。
图1:术语校对程序界面
Program Design•程序设计
(3)术语过多而需要多次编辑校对时,
编辑者会有遗忘现象。术语库中包含的术语可
多可少。编辑和校对少量的术语可以在短时间
内完成,不存在编辑校对者产生遗忘现象,但
是当术语校对者要处理成千上万条术语时,一
次难以完成校对任务,必然需要多次校对。如
果两次校对相隔时间较长,校对者可能会忘记
上次校对停止的位置。如果有多位校对者相互
合作时,也同样存在后面校对者不知道前面校
对者停止校对的位置,从而不知应该从哪里继
续校对的问题。
针对以上问题,笔者在提取和校对化工
类术语库时,利用Excel VBA设计了一款术语
校对工具,具体的设计和开发如图1所示。
3.2 设计和开发
根据以上分析可以看出,这款术语校对工
具的最主要功能就是突破其他各种术语编辑和
校对工具在术语校对过程中的呈现方式,即表
格形式。因此,这款术语校对工具最重要的部
分就是术语呈现的界面设计。校对工具的具体
界面设计如图1所示。在这个界面中,有两个
文本框,两个标签和三个命令按钮。两个文本
框分别呈现每一条术语的原文和译文;对应的
标签说明两个文本框所呈现术语的不同语言。
点击“上一个”命令按钮,可以返回刚刚编辑
过的一条术语;点击“下一个”按钮会保存目
前已经编辑校对过的术语并且自动切换到下一
条需要编辑校对的术语。点击“退出”按钮,
会自动保存已经编辑校对过的所有术语,记住
目前已经编辑到的术语位置,并且直接退出程序,同时也退出Excel应用程序。下次打开程序时,可以
自动跳到上一次编辑到的位置。如果校对完毕,程序会发出提示,询问是否再次校对。如果点击确认,校对位置从第一条术语重新开始。这样,在校对包含成千上万条术语的术语表时就不用担心忘掉上一次所校对到的术语条目;同时在多人连续校对时,后面的校对者不用担心不知道前面的校对者校对到了哪一条术语。
两个文本框不仅仅用来显示每一条术语的原文和译文,而且在校对者发现术语原文或者译文有错误时可以直接在文本框中修改,修改过的原文或者译文术语会直接保存到译文或者原文原来所对应的单元格。为了运行方便,在存储术语的工作表中添加了一个名为“开始运行”命令按钮。点击该命令按钮,程序会加载校对界面,同时将Excel程序最小化,这样就避免了界面后Excel表格的影响,使校对者每次仅仅关注界面上所显示的一条术语的原文和译文。
此外界面上的命令按钮和文本框按照Windows常用快捷键方法进行了设置。例如按Tab键会自动转到界面上下一个项目;按Enter 键表示确认等,这样更方便用户使用快捷键进行操作。4 术语插入文档工具
上面的术语校对工具使用Excel VBA编
写。这里介绍如何利用Excel VBA调用word
VBA的功能实现将Excel表格中所存储的术
语译文插入到待翻译的word文档中,并以不
同的颜突出显示术语原文和译文(插入前后
的效果分别如图2和图3所示)。这个术语译
文自动插入工具不仅仅可以用于翻译,同时也
可以辅助外语学习者阅读专业文献,因为一些
专业术语已经插入译文,可以通过译文来帮助
学习者对文献的理解。
4.1 设计需求
现在的翻译产业处于2.0时代,这个时代
的最突出特征是翻译技术的广泛使用(阳琼,
2018:26-29)。现在各种CAT工具已经在翻译
界得到了认可和使用。然而,由于各种原因,
仍然有一些译者在翻译中不愿或者不会使用
CAT工具,因此他们很难享受到现代翻译术
语库为翻译所带来的便利,也难以保证在与别
人合作翻译中保持术语翻译的一致性。然而即
使在仅仅使用Office软件进行翻译的条件下,
也可以利用Office VBA的编程功能开发一定
的工具,从而使这些译者能够享受到现代翻译
术语库所带来的便利。这个术语自动插入工具
正是基于这种需求而设计的。
4.2 核心问题及解决方法
4.2.1长短短术语相互干扰
这款工具的主要功能是将保存在Excel表
格中的翻译术语译文直接插入到word文档中
并且突出显示术语原文和译文,因此在开发中
并不需要设计特殊界面。开发中遇到的核心问
题是如何保证在插入术语的过程中不会出现各
种错误。而产生错误最主要的原因是长术语和
短术语相互影响问题。以下先对这个问题进行
描述,然后探讨如何解决。
在许多专业领域中,一些由多个词语组
成的长术语中会有包含某些词语,而这些词语
本身也是术语。例如在化学中二氧化碳(carbon
dioxide)是一个术语,而其中的碳(carbon)
这个词本身也是一个术语;而经济学中长期成
本(long-run cost)是一个术语,而其中成本
(cost)也是一个术语。这些长术语和短术语
之间有一定的联系,但是由于它们所表达的概
念内涵有较大的差异,并不能像一般造句那样,
用短词语相互结合而组成长术语。例如虽然二
氧化碳与碳有联系,但是二氧化碳和碳表示完
全不同的两种物质,它们的组成和性质有很大
的不同。因此短术语和长术语在翻译术语库中
都有存在的必要,并不能用短术语的相互结合
3:插入术语译文后的文档
图2:待翻译的Word
文档
Electronic Technology & Software Engineering  电子技术与软件工程• 231
程序设计 •Program Design
来代替作为整体的长术语。
这种情况给本程序工具的开发带来了一个难题。如果先在原文中插入短术语的译文,必然会破坏长术
语的整体性。以carbon dioxide来说,因为先在carbon后面插入(碳),结果就变成了carbon(碳)dioxide,这样在查carbon dioxide时就会无法查出预期的结果。相反,如果先插入长术语的情况下,又会出现术语重复插入的问题。仍以carbon dioxide为例,假如先在它后面插入了对应的汉语译文,结果就会成为carbon dioxide(二氧化碳);这时候carbon仍然单独存在,所以在后面查carbon时就会重复插入短术语,最终出现carbon(碳)dioxide(二氧化碳)这样错误的结果。这两个问题不能仅仅通过改变长术语和短术语插入的顺序来解决。要解决这
个核心问题必然要从其他方面寻路径。
4.2.2 核心问题解决方法
由于这款工具开发的基本思路是将Excel 工作表单元格中的每一条术语原文作为同一个变量的不同取值,再将该取值作为查项在Word文档中查术语原文,查到该术语原文后,用术语原文(术语译文)的格式替换术语原文。因此避免上面所提到的核心问题的基本思路就是:在查到该术语并插入译文后避免再次查到这条术语。这一点在Word查中并不难达到,因为在Word查过程中,如果文档中有隐藏文字,而且在显示设置中不勾选“隐藏文字”(对应的VBA语句为:Application.ActiveWindow.View. ShowHiddenText=False)和“显示所有格式标记”(对应的VBA语句为:Application. ActiveWindow.View.ShowAll=False)两个复选框,隐藏文字就不会被查到。因此,
如果查到了某条术语并且插入译文后,将术语原文(术语译文)设置为隐藏文字,同时在命令中设置不显示隐藏文字和不显示所有格式。以后查时就查不到该术语和它的译文,也就不会再有术语重复查和插入的问题。
然而,这样就产生了另一个问题:如果先查的是短术语,而长术语中所内嵌的短术语也会被当成短术语而被查出来,而这样又会破坏长术语的整体性。因此这时候就只能先查长术语,等长术语作为整体被查和插入译文并设置为隐藏文字后,自然不会再被查出来。这样就不会影响后面短术语的插入。而要先插入长术语,后插入短术语就必须先按照术语原文的字符长度对术语进行逆序排列。
基于以上的分析,为了解决上述问题需要先在Excel中对术语进行降序排序,并且在Word中设置字体的隐藏格式并设置显示为不显示隐藏文字和不显示所有格式。具体的思路为:先计算术语的字符长度并在Excel中对术语进行降序排列,也就是字符最长的术语在最前面而字符最短的术语在最后面。这样可以保证前面插入的长术语的整体性。提前将Word 的视图格式设置为“不显示隐藏文字”和“不
显示所有格式”。为了避免在后面的查和插
入短术语时长术语的整体性被破坏,采用每查
到一条术语并插入它的译文就将它们的字体
格式设置为隐藏的格式,并且字体颜设置为
不同颜(本程序设置成了红)。经过这样
的处理后,Word在查后面的术语时,由于
前面已经查并插入过译语的术语原文不会被
查出来,就避免了后面的术语对前面术语的
影响。这种设置充分利用了在Word查替换
的属性,最终实现了程序所要达到的目的。
以上面提到的两条化学术语为例。假
如Word文档中既有carbon dioxide同时也有
carbon这两条术语。先查出所有的carbon
dioxide并且在后面插入(二氧化碳),然后
将carbon dioxide (二氧化碳)整体设置为隐藏
字体。由于视图设置为“不显示隐藏字体”和
“不显示所有格式”,所以这个整体就不再
在Word文档中显示,后面查单独的carbon
时也就不会再次查出carbon dioxide中的
carbon而只能查到单独的carbon并插入它
的对应译文(碳)。
等到Excel表中所有的术语已经查完成
后,再将Word视图更改为“显示隐藏文字”(对
应的VBA语句为:Application.ActiveWindow.
View.ShowHiddenText=True)和“显示所
有格式”对应的VBA语句为 Application.
ActiveWindow.View.ShowAll=False),这时就
可以重新显示隐藏字体,然后再将所有的隐藏
字体更改为非隐藏字体。这样最终插入的效果
就可以正常显示了。
整个程序设计的流程图如图4所示。
5 结语
以上说明了如何用office VBA语言编写
两个不同的术语管理工具。由于现代翻译中主
要处理的文件都以office软件的形式呈现,因
此VBA编程在翻译中有非常大的开发潜力。
希望更多的译者在能够学会和掌握这种语言编
程,最终促进翻译效率的提高。
参考文献
[1]Mansfield Richard. Mastering VBA for
Office 2010. Indianapolis: Wiley
Publishing, Inc, 2010: xxvii,3.
[2]王华树.翻译技术教程[T].上海:商务
印书馆/上海外语音像出版社,2017.:25.
[3]王华树.翻译专业硕士(MTI)翻译技术
教学研究:问题与对策[J].外语电化教
学,2018(06):76-82+94.
[4]王华树.语言服务行业技术视域下
的MTI技术课程体系构建[J].中国翻
译,2013(06):23-28.
[5]王华树,冷冰冰.术语管理概论[M].北京:
外文出版社,2017:79.
[6]徐彬.翻译技术教学新思考[J].北
京航空航天大学学报(社会科学
版),2014(11):107-111.
vba编程免费教程[7]徐彬.计算机辅助翻译教学—设计与实施
[J].上海翻译,2010(10):45-49.
[8]徐彬,郭红梅,国晓立.“21世纪的
计算机辅助翻译工具[J].山东外语教
学,2007(07):79-86.
[9]徐彬,郭红梅.“翻译技术教学新谈[J].
当代外语研究,2017(09):96-101.
[10]徐彬,谭莹.“计算机辅助下的翻译协作
[J].山东外语教学,2008(04):91-94.
[11]阳琼.翻译技术产业新动向:术语库商
品化[J].上海翻译,2018(11):26-29+93.
[12]俞劲松,和王华树.计算机辅助翻
译硕士专业教学探讨[J].中国翻
译,2010(03):38-42.
作者简介
李海亭(1970-),男,陕西省西安市人。英
语语言文学硕士。陕西科技大学副教授。研究
方向为翻译技术。
作者单位
陕西科技大学  陕西省西安市  710021
图4:插入术语程序设计流程图
232 •电子技术与软件工程  Electronic Technology & Software Engineering

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。