适用人群
为 CAT 工具准备干净的原文
从网页粘贴过来的原文会带着导航,每个菜单项都变成一个句段:要跳过,要计数,最后还得在账单上解释。Clean Web Clipper 在文件进入你的工具之前就把它们去掉。
不是正文的句段
你导入一个网页,项目打开时,正文第一句之前已经有六十个句段:“跳到正文”“登录”、九个产品分类、一条 Cookie 提示,还有列出三十种语言的语言切换器。这些都不是需要翻译的内容,却都在文件里、在字数统计里,只能一个句段一个句段地锁定或删除。
接着是重复。同一块菜单在每个章节里再出现一次,页脚里又出现一次,于是用这个文件喂出来的翻译记忆库,开始把“继续阅读”当作真实句子的匹配推荐给你。导入之前清理原文只要几秒钟,事后清理翻译记忆库可就不是几秒钟的事了。
麻烦在接活之前就开始了。客户让你给“这个网页”报价,而你报的数字完全取决于你统计了什么:按原始网页统计,菜单也算在内;清理之后再统计,就不算。这种对话谁都不想来第二次。然后,你还在做的时候,客户又改了网页。报价当天剪藏的文件,头部记着网址和网页自己声明的日期,两个问题都能说清,谁也不必去回忆网页当时是什么样。
进入句段列表的是什么
- 菜单、分页器、Cookie 提示栏和“继续阅读”信息流,在文件生成之前就被去掉。
- 重复的导航大约只剩四分之一:与参与比较的引擎相比,重复的菜单行是 102 行,对方分别是 282、478 和 491 行。
- 512 个实测网页中,残留的 HTML 标签为零,不会有零散的标记变成内嵌标签。
- 行内格式转换为 Markdown:粗体、斜体、链接、代码和列表,各主流 CAT 工具都能导入。
- 来源网址写在 frontmatter 里,句段的上下文点一下就能看到。
- 实测 12 个欧洲国家排名前五十的网站,共 403 个网页,每个都以该国语言抓取:崩溃为零。
- 标题、列表和引用块保持层级,译文需要对应的结构在原文文件里一眼可见,不必从句段里去推断。
title和date来自网页自己的元数据,项目文件夹里记着你报价时依据的是哪个版本的原文。
--- title: "Register a trade mark: step by step" source: "https://www.gov.uk/how-to-register-a-trade-mark" extraction: "dom" --- ## Check whether your trade mark can be registered Your trade mark must be unique. It can include words, sounds, logos, colours or a combination of these. You cannot register a trade mark that is offensive, describes the goods it relates to, or is misleading.
准备原文文件
目标是一个导入工具之后,第一个句段就是正文第一句的文件。大部分工作靠两项设置完成,其中一项很容易设错。
- 从扩展程序图标打开设置,把保存位置指向这单活所在的文件夹,例如
jobs/client/source。原文文件应该和项目放在一起,而不是放进笼统的剪藏文件夹。 - 把点击图标的动作设为“下载
.md文件”或“保存到文件夹”,看哪种更适合你的文件管理习惯。无论哪种,最后得到的都是一个可以导入的文件,而不是还得先粘贴到别处的剪贴板内容。 - 把文件名模板设为
{date}-{domain}-{title}。客户的网页在你报价之后改过时,你要拿出来的就是这个采集日期。 - 如果要直接导入文件,就关闭 frontmatter 字段。YAML 头部也是文本,不认识它的工具会很乐意把
extraction那一行当作待译句段推给你。 - 把图片设为跳过。Markdown 里的图片链接要么变成一个句段,要么变成一个内嵌标签,你得带着它走完整个文件,而那张图根本不属于正文。
- 只有一个章节在报价范围内时,就在网页上选中它,剪藏选中内容。报的是一个章节、交的却是整页,这种误会从采集那一刻就开始了。
- 在报价当天剪藏网页,并保留文件。谈定价格时原文是什么样,只有它能证明。
原文文件的设置
最容易出错的是 frontmatter 那一行。其余各项都是为了让句段列表里只剩真正的正文。
| 设置 | 值 | 为什么这样设 |
|---|---|---|
| 点击图标 | 下载 `.md` | 你要的是可以导入的文件,而不是需要粘贴的剪贴板 |
| Frontmatter | 直接导入时关闭全部字段 | YAML 头部也是文本,不跳过它的工具会把它当成句段 |
| 图片 | 跳过 | 图片链接会变成句段或内嵌标签,而它并不是正文 |
| 文件名模板 | `{date}-{domain}-{title}` | 记下报价依据的是客户网页的哪个版本 |
| 保存位置 | 项目文件夹 | 原文属于这单活,网页改了它也还在 |
| 选中内容 | 只剪藏报价范围内的章节 | 范围蔓延常常就从一次整页采集开始 |
| 按网站规则 | 客户域名 → 项目子文件夹,跳过图片 | 老客户不必每次都重新决定 |
The **starter plan** includes *up to five* seats. Additional seats are billed monthly; see the [pricing page](https://example.com/pricing) or set `SEATS` in your configuration file. - Seats can be reassigned once per billing period. - Unused seats are not carried over. 一句话里有四个内嵌标签:粗体、斜体、链接和代码。每一个都对应一种 Markdown 写法,CAT 工具会把它导入为内嵌标签。
三单活
报价依据正文,而不是网页外壳
客户发来一个网址,问多少钱。你剪藏这个网页:菜单、列出三十种语言的语言切换器、Cookie 提示和页脚,在文件生成之前就没了,所以你报价时统计的,正是需要翻译的文字。
这一点有实测数据,看的是重复的导航:在 109 个网页的语料上,重复的菜单行是 102 行,参与比较的引擎分别是 282、478 和 491 行。对于菜单在每个章节都重复一遍的网页,同一单活两份报价之间的差距,大部分就在这里。
做到一半改了的网页
做到第三天,客户提到市场部“稍微调整了几处”。你重新剪藏这个网页;第二个文件会带上数字后缀,和报价时的文件做一次 diff,就能看到多了两段、改了一个标题。
这样一来,关于范围的讨论就有文件为据,而不是比谁记得清楚。每个文件名里的采集日期说明哪个是哪个,date 字段则说明网页在两次采集时各自声明的日期。
用现成网站建立双语参考
客户网站已经有德语版。你把英文网页和德语网页先后剪藏进同一个项目文件夹。提取不依赖文本的语言,所以两个文件得到的是同样干净的结构,标题相同,顺序相同。
这一点是专门测过的:12 个欧洲国家排名前五十的网站中的 403 个网页,每个都在浏览器设为该国语言的情况下抓取,崩溃为零,也没有一个残留 HTML。对齐两个干净的文件是一件活;对齐两个塞满菜单的文件,是另一件更糟的活。
和常见的准备方式比一比
准备工作总归要做,问题是在哪里做。下面是译者现在做这件事的几个地方,以及各自的代价。
| 现在的做法 | 得到什么 | 代价是什么 |
|---|---|---|
| 复制粘贴进工具 | 马上就有文字 | 正文第一句之前有六十个导航句段,只能手动锁定或删除 |
| 工具自带的网页导入过滤器 | 直接从网址建项目 | 过滤器要按网站逐个配置,而网页外壳通常还是会漏过去 |
| 向客户要原文文件 | 真正的文案,带上下文 | 来得晚,或者是谁都打不开的 CMS 导出文件,或者根本不来 |
| 把网页存为 HTML 再清理 | 留什么完全由你决定 | 每个网页都要在文本编辑器里花上一个小时 |
| Clean Web Clipper | 只有正文的 `.md` 文件,记着来源和日期 | 没有 XLIFF,没有 TMX,不分段,不统计字数:这些仍归你的工具 |
导入不干净的时候
我的工具为什么把 YAML 头部当成了句段?
frontmatter 是文件顶部的文本,不认识 YAML 块的工具会把它当作内容。打算直接导入的文件,剪藏前在设置里关闭 frontmatter 字段,或者剪藏后删掉头部。另外保留一份带头部的副本是值得的:来源网址和日期就在那份副本里。
为什么还是有六十个导航句段混了进来?
网页根本没有文章正文时会出现这种情况:分类列表页、店铺首页、搜索结果页。这时扩展程序会报告“没有文章”,而不是把链接交给你,所以导入前先看看剪藏窗口里显示了什么。如果它确实返回了文章,而菜单也跟着进来了,那是网站把导航标记成了文章内容,这是基于链接密度的判断唯一看不穿的情况。
导入后行内格式为什么不对?
Markdown 用字符而不是标签来标记强调,所以把文件当纯文本导入的工具,会原样显示 bold,而不是显示为内嵌标签。请按 Markdown 导入,而不是按文本导入:大多数工具两种过滤器都有,对同一个文件的处理方式完全不同。
营销页面为什么少了一半文案?
营销页面常常由滚动时才渲染的设计模块组成,或者用标签页和折叠面板,只有展开时才插入文字。浏览器没有渲染出来的内容不在 DOM 里,也就无法采集。把网页滚动到底,展开各个部分,再剪藏一次;或者向客户要文案稿,对这种网页来说,那本来就是更好的原文。
它不是什么
它不是 CAT 工具:没有 XLIFF,没有 TMX,不做分段,也不统计字数。它不保留网页的 HTML,无法回填。输出是 Markdown,用来阅读和翻译,而不是再合并回网站。图片里的文字不会被提取。另外,界面语言和网页的语言是两回事:提取本身不依赖文本的语言。