# 文件过滤器

## 内容

- 1. 介绍
  - 1.1. 文件类型
  - 1.2. 文件编码
  - 1.3. 将已译文件更名
- 2. 文件过滤器设置
  - 文件过滤器对话框
  - 编辑过滤器对话框
  - 增加/修改模式对话框

## 介绍

OmegaT 的可自定义过滤器是主要特色之一，它让你可以对过滤器的多数工作进行设置。

文件过滤器是一堆代码，它能够：

- 从某些特定文件格式中读取文档。例如：纯文本文件。
- 将可翻译的文档从文件中提取出来。
- 以翻译文本替代可译内容的形式对已译文档的文件名进行自动修改。

### 文件类型

当 OmegaT 在源目录中发现一个文件时，它将首先根据文件的扩展名试着选择过滤器。更确切地说，OmegaT 尝试着用每个过滤器的源文件名模式对文件名进行匹配。例如， `*.xhtml` 模式将会匹配任何以 `.xhtml` 为扩展名的文件。如果找到了合适的过滤器，它将被用来处理该文件。比如说：缺省情况下 XHTML 过滤器将会用来处理以`.xhtml`为扩展名的文件。 你可以对每个文件过滤器要处理文件的名称模式进行修改或增添。

### 文件编码

纯文本文件和 HTML 文件可以各种编码储存。然而 HTML 文件可能会包含一个编码方式的元指示，OmegaT 将会用它来读取文件。而文本文件则没有统一的方式来指定编码。对于没有编码声明的文本和 HTML 文件，OmegaT 将会使用你为特定扩展名设定的编码来读取。例如，缺省情况下 `.txt` 文件将会使用系统缺省的编码导入。你可以每种源文件名模式的源编码进行改变。

HTML 和文本文件也可以任何编码形式输出。例如，在将法语译成日语时，你也许会将某个过滤器设置为使用某种日语目标编码或者 UTF-8 、 UTF-16 和 UTF-32 等 Unicode 编码。缺省情况下，用来保存文本文件的编码就是导入时所使用的编码，而保存 HTML 文件则使用 UTF-8 编码。必须注意的是 HTML 过滤器为目标文件增加了一个编码声明，因此浏览器将会注意到它，而不会显示任何乱码。

### 将已译文件更名

有时你也需希望系统自动将译好的的文件重新命名，比如在文件名后加上语言代码。你可以使用目标文件名模式在文件过滤器对话框中完成这项工作。

## 文件过滤器设置

多数用户应该会对缺省的文件过滤器选项感到满意。如果你不满意，可以从主菜单中选项 -> 文件过滤器……打开主对话框。必须注意的是：你只能在项目没有打开的时候对过滤器选项进行改变，因为这些选项将会影响已创建的已译文件。

### 文件过滤器对话框

该对话框列出了可用的文件过滤器。

如果你不想使用 OmegaT 翻译某些类型的文件，你可以将它们文件名旁边的检验框的对勾符号去掉而将该过滤器关闭。这样一来，OmegaT 在打开项目时将会忽略这些文件，并且在创建目标文档时对它们进行原封不动的复制。如果之后你又决定使用这些过滤器，你只需勾上这些检验框。

如果你不小心搞乱了所有的设置，可以点击缺省使文件过滤器配置恢复到缺省工作状态。

要想对某个过滤器以何种编码处理何种文件进行编辑，可以从列表中选中该过滤器然后点击编辑按钮。

### 编辑过滤器对话框

该对话框允许你设置该过滤器所处理的文件的源文件名模式，定制已译文件文件名，并为它选择用何种编码来导入文件及保存已译副本。

源文件名模式使用 DOS 文件掩码规则。符号 `*` 可以代表任何数量的任何符号； `?` 代表单个任何符号；其他所有符号代表自己。比如，如果你希望文本过滤器处理 readme 文件（ `readme` 、 `read.me` 和 `readme.txt` ），你应该使用模式 `read*` 。

源和目标编码字段使用的组合框包括了所支持的全部编码。必须注意的是：并非所有的过滤器都允许选择编码，因为它们要处理文件格式也许只能用一种编码。将可选编码的文件格式的编码设置成 "<auto>" 意味着你信任 OmegaT 自己来决定。以下是它的工作原理：

- OmegaT 试着猜测 HTML/XHTML 文件的源文件编码。
- OmegaT 为文本文件使用缺省的系统编码。

目标文件名模式使用特殊的语法规则，因此如果你希望编辑这些字段的话，你最好点击 编辑…… 打开编辑模式对话框。

如果你希望过滤器处理更多的源文件名模式，点击新增……打开新增模式对话框。

如果你想恢复到缺省的过滤器设置，点击缺省。

### 增加/修改模式对话框

无论是新增一个模式还是对某个特定的模式进行编辑，出现的是同一个对话框。唯一的区别是将会有个特殊的目标文件名模式编辑器，其它所有的字段都在前面讲述过了。

目标文件名模式部分允许你用不同的部件组成已译文件文件名。

- 缺省设置是 `${filename}` —— 和源文件完全相同的文件名和扩展名，因此已译文件的名称将和源文件名完全一样。
- `${nameOnly}` ——只插入源文件的名称，而不包括扩展名。
- `${extension}` —— 源文件的扩展名。
- `${targetLocale}` ——目标文件的地区代码 （以"xx_YY"的形式）
- `${targetLanguage}` ——目标语言和国家代码（以 "XX-YY"的形式）
- `${targetLanguageCode}` ——目标语言代码 （"XX"）
- `${targetCoutryCode}` ——目标国家代码 ("YY").

如果告诉我们你所喜欢的变量，我们可以轻易地增加更多变量。只需访问我们的用户讨论组

法律注意事项