BasicCAT 使用手册

简介

BasicCAT是一款开源的计算机辅助翻译软件,旨在为译员提供简单实用的翻译工具。取名BasicCAT,一是因为它简单易用,二是因为它使用Basic语言编写,普通人花上一段时间学习后也能掌握,从而在BasicCAT源代码的基础上修改出适合自己需要的软件。

软件具有以下功能:

  • 翻译记忆
  • 术语管理
  • 语言检查
  • 划词取义
  • 快速填充
  • 自动更正
  • 交互式机器翻译
  • 导出Word供外部审校
  • 导出双语段落对照文件
  • 导出带备注的Markdown文件
  • 句段分割与合并
  • 调用多种在线词典
  • 常见机器翻译服务的API调用
  • 支持利用翻译记忆与机器翻译进行全文预翻译
  • 支持常见源文件格式:txt, idml, xliff, gettext po
  • 支持翻译记忆标准TMX、术语管理标准TBX和句段分割标准SRX
  • 支持在线共享翻译记忆与术语
  • 使用Git进行版本控制与团队协作

快速入门

新建项目

菜单栏点击File->New,选择建立英译汉(en to zh)、汉译英(zh to en)项目或者其它语言对的项目,会自动生成翻译记忆库和术语库等项目文件。

_images/new_project.png

选择其它语言对时你也可以自己输入所需的遵循ISO639标准的语言代码,具体说明见此

_images/select_languagepair.png

新建项目后要进一步操作需要先保存项目。

添加文件

打开项目后在左侧会显示一列项目,可以操作项目文件、翻译记忆、术语库,查看统计信息和预览。

_images/project_area.png

我们在Project Files上右键,可以添加文件或者添加文件夹。

_images/add_file.png

添加文件后点击文件名,可以打开该文件进行翻译,并进入下图的界面。每个功能分区都已在图中标出。在原文右边的编辑框中输入文字即可开始翻译,一个片段完成后按回车切换到下一片段。

_images/main_with_texts.png

翻译记忆

片段翻译完成后按回车,该条翻译的内容就会自动加入翻译记忆库。在遇到相似的片段时,便会在下方显示。点击该条结果即可将译文填充进译文输入框。

_images/fuzzy_match.png

翻译记忆的匹配率可以点击菜单栏Project->Project Settings进行设置。匹配率须在0.5到1.0之间。

_images/fuzzy_match_setting.png

添加外部翻译记忆

BasicCAT的翻译记忆库分为项目记忆库和外部记忆库。项目记忆库存储项目文件的翻译记忆,而外部记忆库显示外部导入的翻译记忆。

点击菜单栏Project->Project Settings,选中TM一栏设置可以进行外部翻译记忆的管理。

支持导入TMX格式和Tab分割的txt文件,txt文件要求原文在前,译文在后,以tab进行分割。添加文件时会显示一个预览窗口,便于检验导入的内容是否正确。

_images/project_setting_tm.png _images/importpreview.png

模糊匹配到外部记忆库的片段时,会在下方显示,并显示来自哪个记忆库文件。翻译记忆中的原文、当前要翻译的原文和翻译记忆中的译文会在差异显示区显示。

_images/match_result.png

管理翻译记忆

点击项目区的Translation Memory可以对翻译记忆进行检索,并进行导出、修改和删除等操作。

_images/tm_manager.png

术语管理

在翻译过程中遇到术语,可以在原文和译文中选中对应的文本,然后点击术语区的Add Term添加术语。BasicCAT利用opennlp自然语言处理工具对词型进行还原,避免保存的是词语的复数形式而匹配不到词语的单数形式等问题。

_images/term_match.png

在显示的术语条目上右键,可以查看更多信息和修改历史。

_images/term_more.png

注意

考虑到导入的外部术语库可能有上万条内容,为了优化匹配的速度,采用的HashMap的算法,只能对要翻译的原文进行词型还原。所以平时添加术语最好还是添加原形,方便导入其它项目。

术语的导入和翻译记忆的导入类似,支持的文件类型是TBX和Tab分割的TXT文件。

术语的管理界面也和翻译记忆的类似,不同之处在于术语可以添加标签和备注进行管理。

_images/term_manager.png

片段操作

BasicCAT利用SRX分割标准对原文进行分割。片段多为一个句子或者一个单独成段的短语。

片段合并与分割

遇到下图这样的人名分割错误的情况,我们可以点击原文的末尾,然后按Delete键进行句段合并操作。

_images/merge_segments.png

如果句段属于不同的文件或者翻译单元,将不能进行合并。word中的不同段落,indesign中不同的story文件都属于这种情况。

_images/merge_segments_different_transunits.png

BasicCAT对不需要显示的格式标签进行了隐藏处理,如果合并的片段带标签,也会进行提示。此时可以选择继续进行合并,但可能会显示出较为复杂的标签。

_images/merge_segments_hidden_tags.png

遇到下图这样需要在分号处进行分割的片段,将光标定位到分号后,按Enter键进行分割。

_images/split_segments.png

忽略片段

英译汉时常碰到前一片段和后一片段意思有重复,只需翻译后一片段的情况。这时可以忽略前一片段。这样,生成译文时会自动忽略这一片段。可以通过点击菜单Edit->Mark the current segment as neglected进行设置。

设置忽略的片段的编辑区会变成灰色不可用状态。

_images/mark_neglected_example.png

添加备注

翻译中碰到较难的句子,可以进行备注,记录为什么这样翻。点击菜单栏Edit->Show/Edit notes of the current segment进行查看或修改操作。

_images/note_edit.png

含有备注的片段的译文编辑框会显示一圈绿色。

_images/segment_with_note.png

查看片段历史

BasicCAT会记录片段的修改历史,点击菜单Edit->Show segment history即可查看历史,其中的用户名即版本控制设置中添加的用户名。

_images/history_viewer.png

查看项目统计信息

点击项目区的Statistics,可以显示项目的统计信息,比如原文字数、译文字数和完成的百分比等。

_images/statistics.png

查看预览

点击项目区的Preview,可以对翻译的内容进行预览。已经翻译的部分会用译文进行替代。

_images/preview.png

生成目标文件

翻译结束后,点击菜单File->Generate target files,即可在项目的target文件夹里生成目标文件。

_images/generate.png

进阶操作

机器翻译

BasicCAT预置了以下12种机器翻译引擎的API的支持:

调用结果如下图。

_images/machine_translation.png

您需要申请翻译API以实现调用,每个机器翻译申请的链接已经附在上面的列表中,其中MyMemory只需要配置一个email地址即可使用。划词检索和自动完成功能需要至少配置一个机器翻译才能使用。

点击菜单Options->Preferences进入设置界面,选择Machine Translation进行翻译API的配置。

_images/machine_translation_setting.png _images/machine_translation_filler.png

机器翻译的API服务都有使用限制,百度和微软每个月200万词免费额度;MyMemory每天10000词;Yandex每天1百万词,每月不超1千万词。其它需要付费使用,小牛和有道注册时会附赠百万词的额度。

预翻译

预翻译指利用翻译记忆或者机器翻译预先对全文进行翻译。点击菜单Project->Pre-translate打开对话框,选择使用翻译记忆或者机器翻译进行预翻译。可以设置翻译记忆的最低匹配率和选择使用哪个机器翻译引擎。

_images/pretranslate.png _images/pretranslating.png

划词取义

利用机器翻译和在线词典API,BasicCAT提供划词检索功能。在原文中选中需要检索的部分,可以显示机器翻译或者在线词典的内容。需要在设置中勾选这一功能,并配置至少一个机器翻译。

_images/lookup.png

点击出现的下拉框中的项目可以把结果添加到译文输入框。

在线词典

因为离线词典往往具有版权问题,所以BasicCAT选择了集成在线词典。

在原文中选中一个单词后,点击菜单Edit->Show online dictionary dropdown,或者使用快捷键Ctrl+D,会出现包含一串在线词典名字的下拉列表。点击后会打开一个浏览窗口。

_images/online_dictionary.png _images/online_dictionary_dropdown.png _images/online_dictionary_form.png

选中想输入的释义后,按Add Selected可以填充进译文输入框。按Open in browser可以使用本地浏览器访问该页面。

你可以通过修改项目文件夹下的config文件夹里的dictList.txt添加其它在线词典。

语言检查

BasicCAT利用 Language Tool 作为语言检查的后端。Language Tool是一款开源的拼写和语法检查器。

在一个片段翻译完成,按下回车切换到下一片段后,会对上一片段进行检查。如果有错误,会在下方的功能区进行提示,并在输入框位置显示一个备选正确内容的下拉列表。点击功能区的replacement项目或者下拉列表的项目可以替换译文中的错误为正确的内容。

_images/languagecheck.png

要使用语言检查,你可以选择直接使用LanguageTool的API(默认地址:https://languagetool.org/api/v2/check),或者下载LanguageTool后在本地运行。

LanguageTool 4.3 下载

下载后解压至任意位置,然后打开BasicCAT,点击菜单Tools->Server Launcher,打开服务启动器的窗口,选择存放languagetool-server.jar这一文件的文件夹。然后点击Start LanguageTool Server的按钮后可以在本地运行LanguageTool的离线服务。

_images/serverlauncher.png

可以用浏览器访问 http://127.0.0.1:8081/v2/check?text=a%20example&language=en-US 来判断服务是否运行。

除此之外,你还要设置启用语言检查。点击菜单Options->Preferences,进入Language Check页面,勾选启用语言检查。

_images/lauguagecheck_setting.png

你还可以设置每次以下拉列表形式给出建议的最大数量,以免有的时候显示的建议太多。

自动完成(交互式机器翻译)

自动完成对原文进行分词,并利用斯坦福自然语言处理工具进行句法分析,提取短语,所得的片段利用机器翻译进行翻译,如果在翻译过程中输入的字是某个片段的开头,那这一片段的译文会以下拉列表的形式供用户选择是否使用。

_images/autocomplete.png

对于汉译英,还可以用于快速输入英文单词。

_images/autocomplete_c2e.png

要使用自动完成,需要下载斯坦福自然语言处理软件。

官网地址:https://stanfordnlp.github.io/CoreNLP/index.html

百度网盘(备用):https://pan.baidu.com/s/1LNW4IDw8Viz6RURmzqxI9Q

需要下载corenlp和中文的模型文件。下载完成后解压corenlp-full的zip文件到任意位置,把中文模型文件放入解压的目录,然后点菜单Tools->Server Launcher,选择文件夹位置后点Start CoreNLP Server按钮启动。

可以用浏览器访问 http://127.0.0.1:9000 来判断服务是否运行。

和Language Tool一样,还需要设置启用自动完成。点击菜单Options->Preferences,进入Autocomplete页面,勾选启用自动完成。

如果想使用运行在远程服务器的corenlp,可以通过修改链接来调用。

你还可以设置每次以下拉列表形式给出建议的最大数量,以免有的时候显示的建议太多。

快速填充

翻译过程中我们常常需要输入特殊的符号,或者需要多次输入同一串文本。BasicCAT支持定义快速填充项目,在翻译时使用快捷键Ctrl+Q或者点击菜单Edit->Show quickfill dropdown来显示快捷输入用的下拉列表。如果匹配到术语,也可以设置包含进去。

_images/quickfill.png

快速填充的设置需要点击菜单Project->Project Settings,切换到Quickfill栏目。

_images/quickfill_setting.png

自动更正

自动更正是借鉴自Word的一项功能,可以检测输入的内容,对内容进行修正。比如英译汉时需要输入中文的标点符号,可以设置错误地输入英文标点符号时自动更正为中文标点。我们也可以用它来快速输入内容。比如rst是restructuredText的缩写,设置自动更正后,每次输入rst,内容就会自动变成restructuredText。

_images/autocorrect.gif

点击菜单Project->Project Settings,切换到AutoCorrect栏目进行设置。

_images/autocorrect.png

导出Word以供审校

BasicCAT支持导出翻译的内容至Word中,利用Word的审校功能进行审校。

在所需导出的文件上右键,点击Export to->docx for review,可以导出docx文件。

_images/export.png _images/word_review.png

完成审校后,可以从Word文件将修改结果导回。在文件名上右键,点击Import form review。

_images/import_review.png

你可以一条一条地重新确认,也可以直接用审校的内容替换原来的翻译。

_images/review_confirm.png

导出双语对照文本

在所需导出的文件上右键,点击Export to->bi-paragraphs,可以导出双语段落对照文本。

_images/export.png

导出带备注的Markdown文件

和上一条操作办法相近,在所需导出的文件上右键,点击Export to->Markdown with notes,可以导出Markdown文件。

Markdown文件可以使用Pandoc进一步转换成Word文件。

搜索与替换

点击菜单Edit->Search and Replace进入搜索与替换对话框,可以检索原文和译文的内容。支持使用正则表达式。

下面是利用正则表达式将英文引号替换成中文引号的例子。

_images/search_and_replace.png

关于正则表达式,可以参考这里的教程。

翻译各种格式的文件

纯文本文件

txt纯文本文件没有额外的标签信息,所有片段都支持合并与拆分。

IDML文件

IDML是Adobe InDesign使用的基于XML的文件格式。最新版的InDesign生成的文件要想给老版本的InDesign打开,往往便要使用IDML格式。一般InDesign的文件都保存为indd。indd是专有格式,不能被第三方软件进行解析,所以要翻译InDesign文件需要先将其转换为IDML文件。

IDML其实是一个zip压缩文件,里面的文件结构如下:

.
├── META-INF
│   ├── container.xml
│   └── metadata.xml
├── MasterSpreads
│   └── MasterSpread_udd.xml
├── Resources
│   ├── Fonts.xml
│   ├── Graphic.xml
│   ├── Preferences.xml
│   └── Styles.xml
├── Spreads
│   ├── Spread_uc8.xml
│   ├── Spread_uce.xml
│   └── Spread_ucf.xml
├── Stories
│   ├── Story_u106.xml
│   ├── Story_u11d.xml
│   ├── Story_u134.xml
│   ├── Story_u151.xml
│   └── Story_ued.xml
├── XML
│   ├── BackingStory.xml
│   └── Tags.xml
├── designmap.xml
└── mimetype

我们要关注的主要是designmap.xml文件、Spreads文件夹、Stories文件夹和Resources文件夹的内容。

designmap.xml是整个文件的大纲,spread文件是每个页面的结构,story文件则是spread里文本框存储的文本。Fonts.xml保存了字体信息,Styles.xml保存了样式信息。

BasicCAT分别读取designmap.xml文件和Spreads文件,获得story文件在原文中的显示顺序,然后对其文本进行提取。

下面是一个Story文件的内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<idPkg:Story xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging" DOMVersion="13.0">
    <Story Self="u19caf" AppliedTOCStyle="n" UserText="true" IsEndnoteStory="false" TrackChanges="false" StoryTitle="$ID/" AppliedNamedGrid="n">
        <StoryPreference OpticalMarginAlignment="false" OpticalMarginSize="12" FrameType="TextFrameType" StoryOrientation="Horizontal" StoryDirection="LeftToRightDirection" />
        <InCopyExportOption IncludeGraphicProxies="true" IncludeAllResources="false" />
        <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Intro Copy">
            <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/$ID/[No character style]">
                <Content>“No capes!” That’s what Edna says in the first film when Mr. Incredible wants a cape on his new Supersuit. She knows that capes can be dangerous for Supers. A cape caused one Super to get pulled into a jet turbine, and another was sucked into a spinning </Content>
            </CharacterStyleRange>
            <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Intro Copy Bold">
                <Content>vortex</Content>
            </CharacterStyleRange>
            <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/$ID/[No character style]">
                <Content>. Capes could cause other problems, too. Let’s see what they are.</Content>
            </CharacterStyleRange>
            <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/$ID/[No character style]" FillColor="Color/Black" FontStyle="300" PointSize="12">
                <Properties>
                    <Leading type="unit">20</Leading>
                </Properties>
                <Br />
            </CharacterStyleRange>
        </ParagraphStyleRange>
        <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Body Copy">
            <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/$ID/[No character style]" />
        </ParagraphStyleRange>
    </Story>
</idPkg:Story>

段落信息保存在ParagraphStyleRange这个标签里,一个ParagraphStyleRange标签可以包含很多CharacterStyleRange标签,里面是具体的文本。IDML文件中的样式分为全局样式和本地样式,全局样式存储在styles.xml文件中,story文件通过AppliedParagraphStyle和AppliedCharacterStyle保存对应的全局样式名,而本地样式被定义在属性和Properties元素里,比如PointSize、FontStyle等。

上面的story文件,BasicCAT将其转换为以下带标签的文本。

<p16><c0>“No capes!” That’s what Edna says in the first film when Mr. Incredible wants a cape on his new Supersuit. She knows that capes can be dangerous for Supers. A cape caused one Super to get pulled into a jet turbine, and another was sucked into a spinning </c0>
<c3>vortex</c3>
<c0>. Capes could cause other problems, too. Let’s see what they are.</c0>
<c0 id="3">
</c0>
</p16>
<p3><c0></c0>
</p3>

上例中 p16c0 中的数字对应的styles.xml文件中某个全局样式的顺序。而 <c0 id="3"> 中的id属性则是story中characterstylerange的顺序,用于生成目标文件时读取本地样式。c0对应的是默认的没有特殊格式的样式,所以BasicCAT在显示的原文中对其进行隐藏。另外段落标签和文本内容为非文本的标签也可以进行隐藏。

最终,上述内容在BasicCAT中是这样显示的:

_images/idml_segments.png

其中c3标签对文字进行了加粗。英文字体一般有很多字重,比如特细、细、常规、粗等,而中文字体一般只有一种常规体。平时在Word里可以设置汉字的加粗是通过软件算法实现的,而IDML中是通过设置字重来实现的。所以,为了保证英译汉时,标签的效果在生成的译文中也有效,BasicCAT采用具有7种字重的思源宋体作为中文的显示字体,并将英文的字重转换为对应的思源宋体的字重。其对应关系如下:

  • 100->ExtraLight
  • 200->ExtraLight
  • 300->Light
  • 400->Regular
  • 500->Medium
  • 600->SemiBold
  • 700->Bold
  • 800->Heavy
  • 900->Heavy
  • Normal->Regular
  • Black->Heavy

所以,为了在生成的idml文件中显示中文,需要安装思源宋体。

点此下载思源宋体

idml中的标签不是必须翻译的,如果不翻,BasicCAT会自动补充c0标签,保证译文不被忽略。

XLIFF文件

XLIFF是处理提取出来的待翻译文本的一种XML格式。CAT软件利用这一格式存储从docx、html、idml等格式文件提取出来的文本,翻译完成后再利用这一格式文件生成目标文件。

XLIFF是OASIS组织制定的标准,可以作为一种中间格式,在不同的翻译软件之间使用。

XLIFF利用继承自opentag的抽象占位符标签和继承自tmx的封装标签来表示特殊样式。

比如对于This is bold,在xliff中有两种表示方法。

占位符标签:

<trans-unit id="1">
<source>This is <g id="1">bold</g>.</source>
</trans-unit>

封装标签:

<trans-unit id="1">
<source>This is <bpt id="1">\b</bpt>bold<ept id="1">\b0</ept>.</source>
</trans-unit>

抽象占位符标签的好处是针对不同格式,抽象出来的内容可以一样。比如html、rtf中表示加粗,html是 <b> ,而rtf中是 \b ,抽象之后都变成了g标签,而且显示的内容更少。但是抽象之后,原文标签中的含义也被隐去了。

在BasicCAT中翻译xliff中带格式的内容时,会显示各种标签内容。标签内容如果不翻,生成的译文中会自动在结尾处补上缺失的标签,但有可能导致译文内容缺损。

注意

标签内容如果不翻,生成的译文中会自动在结尾处补上缺失的标签,但有可能导致译文内容缺损。

以下是教程idml部分的范例文件用okapi提取出来的xliff文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<xliff version='1.2'
    xmlns='urn:oasis:names:tc:xliff:document:1.2'>
<file original="Stories/Story_u19caf.xml" source-language="en-US" target-language="zh-CN" datatype="xml">
<body>
<trans-unit id="NB085C0FA-tu1" xml:space="preserve">
    <source xml:lang="en-US"><g id="1">“No capes!” That’s what Edna says in the first film when Mr. Incredible wants a cape on his new Supersuit. She knows that capes can be dangerous for Supers. A cape caused one Super to get pulled into a jet turbine, and another was sucked into a spinning </g><g id="2">vortex</g><g id="3">. Capes could cause other problems, too. Let’s see what they are.</g></source>
    <target xml:lang="zh-CN"><g id="1">“No capes!” That’s what Edna says in the first film when Mr. Incredible wants a cape on his new Supersuit. She knows that capes can be dangerous for Supers. A cape caused one Super to get pulled into a jet turbine, and another was sucked into a spinning </g><g id="2">vortex</g><g id="3">. Capes could cause other problems, too. Let’s see what they are.</g></target>
</trans-unit>
</body>
</file>
</xliff>

上述内容在BasicCAT中是这样显示的,对片段中开头结尾处的成对标签或单个标签进行了隐藏:

_images/xliff_segments.png

PO文件

PO是和xliff类似的一种格式,最初是GNU用来本地化C语言程序的。

以下是教程idml部分的范例文件用okapi提取出来的po文件的内容:

msgctxt "okpCtx:sd=197:tu=NB085C0FA-tu1"
msgid "<g1>“No capes!” That’s what Edna says in the first film when Mr. Incredible wants a cape on his new Supersuit. She knows that capes can be dangerous for Supers. A cape caused one Super to get pulled into a jet turbine, and another was sucked into a spinning </g1><g2>vortex</g2><g3>. Capes could cause other problems, too. Let’s see what they are.</g3>"
msgstr ""

msgctxt后面是上下文信息,msgid存储原文内容,msgstr存储译文内容。okapi生成的PO也使用了标签来表示特殊样式。

上述内容在BasicCAT中是这样显示的,和xliff一样,对片段中的开头结尾处的成对标签或单个标签进行了隐藏:

_images/po_segments.png

PDF文件

PDF文件是较难处理的格式,可以用Word、ABBYY、Solid Document Converter等工具将其转换为Word,但原来的格式往往不能得到很好的保留。用Adobe Acrobat可以修改文字,但有诸多限制。

PDF文件往往是由另一种格式的文件生成的,比如docx、idml等,如果能找到源文件是最好的。如果要求保留格式却又没有源文件,只能翻译后试着重新排版。

在出版社翻译InDesign文件,一般交给译员一个PDF文档,译员将译文排版成一个Word,然后交给排版人员在InDesign中进行替换。这时,我们需要做的就是提取PDF的文字进行翻译。

BasicCAT自带了PDF转文字的工具,可以通过菜单栏Tools->PDF2TXT打开。如果PDF的文字可以提取,那可以直接提取出来。如果不行,便使用开源的OCR软件tesseract进行识别。

工具支持添加页码信息,还可以针对InDesign生成的对页进行处理。

_images/pdf2txt.png

PDF中的文字是没有段落信息的,所以默认提取出来的每行文字后面都有回车,PDF2TXT提供一个reflow功能,可以自动去除多余的回车。

关于tesseract的安装,Windows可以 在此 下载一份程序,运行PDF2TXT时会提示设置tesseract的路径,选择即可。

Linux和macOS(homebrew)用户可以直接安装tesseract-ocr这个包,并下载对应语言的模型文件。

利用Okapi翻译其它格式文件

Okapi 是一套开源跨平台的翻译组件。有用于检查译文质量的checkmate、修改句段分割规则的Ratel,还有用于执行各种翻译与本地化任务的Rainbow。

要翻译其它格式文件,我们主要需要使用Rainbow。

  1. 从源文件生成xliff或者po文件

打开Rainbow,把要翻译的源文件拖拽进去。

_images/rainbow_addfile.png

进行原文和译文、文件编码等设置。

_images/rainbow_setting.png

点击菜单Utilities->Translation Kit Creation,选择要生成xliff、po还是其它中间格式,选择生成的目标位置(默认为源文件所在目录)。

_images/rainbow_creation.png

点击执行后,在目标位置会生成一个pack1文件夹,里面的work文件夹存放了生成的xliff等格式文件。

  1. 从生成的项目导出目标文件

翻译完成后,把xliff等格式文件放回work文件夹。然后添加manifest.rkm到Rainbow中。

_images/rainbow_addrkm.png

点击菜单Utilities->Translation Kit Post-processing,可以生成目标文件。

在此 查看Okapi支持的文件格式。

BasicCAT从1.5版开始集成了Okapi Tikal,可以自动将其它格式文件转换为XLIFF文件,并自动根据翻译好的XLIFF文件生成目标文件。不过,如果你需要修改Okapi处理某种格式时使用的参数,仍然需要使用Rainbow。

团队协作

共享翻译记忆、术语

利用BasicCAT的服务器端程序,可以架设用于共享翻译记忆和术语的服务。该程序可以在BasicCAT的下载页面获取。

客户端需要进行相关设置,设置完成后即可实时共享翻译记忆与术语。

_images/setting_sharedTMandTerm.png

服务器程序运行的方法(需要安装java8以上版本):

$ nohup java -jar CloudKVS_Server.jar &

你可以修改程序所在目录下key.txt来添加一个访问密钥。密钥目前只支持单行内容。

基于Git进行团队协作

BasicCAT可以在本地生成git仓库,添加remote uri和账号密码后即可把本地的记录上传到远程,并与其它用户进行协作。每次请求git push时,程序会自动从远程仓库获取最新的变动,并更新本地文件,然后将本地的修改进行上传。BasicCAT会根据片段修改的时间自动解决冲突,基本不会发生冲突的情况。

需要在项目设置里设置远程仓库地址并选择是否每次执行保存操作时把修改上传到远程仓库。你需要在偏好设置里先设置好git账户。

_images/setting_git.png

你也可以通过菜单手动进行git的相关操作。

_images/git_menu.png

基于Git的协作并不同步翻译记忆与术语,只同步工作文件。

GitHub操作示例

GitHub是一个流行的Git托管平台,我们可以基于它进行协作。

首先建立一个空的仓库:

_images/new.png _images/create_repo.png

进入以下设置界面:

_images/setup.png

之后用BasicCAT打开一个项目,在项目设置-团队协作里设置远程仓库。

_images/set_remote.png

之后将这个项目分发给其它用户即可。

其它用户要想修改远程仓库,还需要获得push的权限。

进入GitHub的仓库设置,点击左边的Collaborators然后添加要添加的GitHub账户。

_images/repo_setting.png

更多内容可以见GitHub的帮助文档

其它

外观设置

点击菜单Options->Preferences进入设置窗口,点击左边的Appearence,可以进行外观方面的设置。

目前仅支持设置编辑区的字体。

_images/fontpicker.png

自动备份

BasicCAT支持自动备份,可以在设置界面设置间隔多少时间备份一次项目文件。备份的文件会保存在项目的bak文件夹里。

_images/general.png

使用Git进行版本控制

BasicCAT自带的Git,支持每次执行保存时在项目文件夹执行一次git commit操作。

可以在设置里设置执行git commit的用户信息。如果要同步到远程仓库,还可以设置密码。

_images/git_setting.png

安装Git后,在项目文件夹执行git show可以查看最新一次保存做了哪些修改。你也可以用git reset命令回退到之前的历史版本。

_images/git.png

更多功能可以通过安装Git桌面客户端来实现。

管理插件

BasicCAT目前支持开发机器翻译插件和文件过滤器插件。进入设置界面可以选择插件存放的文件夹,执行插件的增删操作。

_images/plugins.png

帮助BasicCAT项目发展

BasicCAT 是遵循GPLv2协议的开源项目,欢迎大家为项目做贡献。

如果您会开发软件,可以帮助开发插件、修改项目代码。

如果您在使用过程中碰到问题,或者有什么建议,欢迎在项目的github页面提交issues。

如果您会翻译,可以帮助翻译网站、文档以及程序的界面,同样通过提交issues来提交请求。