# ファイルフィルタ

## 目次

- 1. 概要
  - 1.1. ファイルタイプ
  - 1.2. ファイルのエンコーディング
  - 1.3. 翻訳されたファイルのファイル名変更
- 2. ファイルフィルタの設定
  - ファイルフィルタダイアログ
  - フィルタダイアログの編集
  - パターン追加/編集ダイアログ

## 概要

OmegaT には高度にカスタマイズ可能なフィルタ機能があり、作業の様々な側面を設定できます。

ファイルフィルタは以下のような機能を持ったコード片です:

- 特定のファイル形式の文書を読み込みます。例えば、プレーンテキストファイルです。
- ファイルから翻訳可能なコンテンツを抽出します。
- 翻訳された文書のファイル名を、翻訳されたコンテンツによって自動的に変更します。

### ファイルタイプ

OmegaT は原文ディレクトリ内にファイルを発見すると、ファイルの拡張子を使ってフィルタを選択しようとします。より正確には、OmegaT は各フィルタの原文ファイル名パターンとファイル名をマッチングしようとします。例えば、`*.xhtml`パターンは`.xhtml`拡張子を持つ全てのファイルとマッチングします。適切なフィルタが見つかれば、処理のためにファイルが渡されます。例えば、デフォルトでは`.xhtml`拡張子を持つファイルを処理するためには XHTML フィルタが使われます。各ファイルフィルタが扱うファイル名パターンは追加または変更できます。

### ファイルのエンコーディング

プレーンテキストと HTML ファイルは様々なエンコーディングで保存されます。HTML ファイルにはエンコーディングを指定する meta 要素があることがあり、OmegaT はファイルの読み込みにそれを使いますが、テキストファイルにはエンコーディングを指定するための合意された方法がありません。テキストファイルおよびエンコーディング指定のない HTML ファイルについて、OmegaT は特定の拡張子に設定されたエンコーディングを使います。例えば、デフォルトでは`.txt`ファイルは OS のデフォルトエンコーディングを使って読み込まれます。各原文ファイル名パターン毎に原文エンコーディングは変更できます。

HTML とプレーンテキストファイルはまたどのようなエンコーディングでもかかれる可能性があります。例えば、もしフランス語から日本語へ翻訳しようとしている場合、フィルタは日本語の訳文エンコーディングか、UTF-8, UTF-16, UTF-32 のいずれかの Unicode エンコーディングを使うように設定します。デフォルトでは、保存されるファイルのエンコーディングは、テキストファイルの場合は読み込んだファイルと同じもの、HTML ファイルの場合は UTF-8 になります。HTML フィルタは訳文ファイルにエンコーディング指定を追加するので、ブラウザで見ることができ、文字化けすることはないことに注意してください。

### 翻訳したファイルのファイル名変更

ファイル名に言語コードを追加したい、という風に、翻訳したファイルのファイル名を自動的に変更したいときがあります。ファイルフィルタダイアログの訳文ファイル名パターンを使えばそのようなこともできます。

## ファイルフィルタの設定

ほとんどのユーザーにとっては、デフォルトのファイルフィルタオプションで幸せなはずです。もしそうでなければ、メインメニューから設定 -> ファイルフィルタ...を選択してメインダイアログを開いてください。フィルタオプションは翻訳されたファイルの作り方に影響を与えるので、フィルタオプションの変更はプロジェクトを開いていないときにだけ可能であることに注意してください。

### ファイルフィルタダイアログ

ダイアログは利用可能なファイルフィルタを一覧表示します。

特定のタイプのファイルの翻訳に OmegaT を使いたくない場合、名前の近くにあるチェックボックスを外すことでフィルタの機能を止めることができます。OmegaT はプロジェクトの読み込み時に特定のファイルを無視し、訳文の作成時には変更しないままコピーします。後で再びフィルタを使う場合は、単にチェックボックスを設定して下さい。

設定が混乱してしまった場合は、初期値を押せばデフォルトの設定に戻ります。

フィルタで処理するファイルとエンコーディングを変更するには、一覧からフィルタを選択して、変更をクリックしてください。

### フィルタダイアログの編集

ダイアログでファイルの原文ファイルのパターンを設定すると、フィルタ処理が行われます。訳文ファイルのファイル名の詳細設定を行い、訳文ファイルを読み込みむとき、保存するときに使用するエンコーディングを選択してください。

原文ファイル名パターンは DOS のファイルマスクルールを使います。文字`*`は任意の数の任意の文字と置き換わり、`?` 任意の1文字と置き換わり、全てのそのほかの文字はその文字そのものを意味します。例えば、readme ファイル(`readme`, `read.me`, `readme.txt`)をテキストフィルタで扱いたい場合、`read*`というパターンを使えばよいでしょう。

原文と訳文のエンコーディングフィールドは対応している全てのエンコーディングのコンボボックスを使います。一つのエンコーディングしか許されないファイルフォーマットもあるので、全てのフィルタでエンコーディングを選択できるわけではないことに注意してください。あるファイル形式に対してエンコーディングを "<自動>" に設定すると、OmegaT の判断を信用することになります。どのように判断するかは以下の通りです:

- OmegaT は HTML/XHTML ファイルの原文エンコーディングを推測しようとします。
- OmegaT はテキストファイルに対してはオペレーティングシステムのデフォルトエンコーディングを使います。

訳文ファイル名パターンは特別な文法を使うので、このフィールドを編集したい場合は、編集...をクリックしてパターン編集ダイアログに移動した方がよいでしょう。

あるフィルタで複数の原文ファイル名パターンを扱いたい場合は、追加...をクリックしてパターン追加ダイアログに移動して下さい。

フィルタのデフォルト設定に戻したい場合は、初期値をクリックして下さい。

### パターン追加/編集ダイアログ

パターンを追加したい場合と、あるパターンを編集したい場合で同じダイアログが表示されます。ここで新たに記述するべき唯一のことは特別な訳文ファイル名パターンのことだけで、その他の全てのことは既に記述しています。

訳文ファイル名パターンにより、異なる部分から翻訳されたファイルのファイル名を構成できます。

- デフォルトは`${filename}` -- 原文ファイルの拡張子付きの完全なファイル名ですので、翻訳されたファイルの名前は原文ファイルと同じになります。
- `${nameOnly}`はソースファイル名から拡張子を取り除いたものを挿入します。
- `${extension}` -- ソースファイルの拡張子。
- `${targetLocale}` - ターゲットロケールコード("xx_YY"の形式)。
- `${targetLanguage}` - ターゲットの言語と国コードの組み合わせ("XX-YY"の形式)。
- `${targetLanguageCode}` - ターゲットの言語のみ("XX")。
- `${targetCoutryCode}` - ターゲットの国のみ("YY")。

あなたのお気に入りの変数について教えてもらえれば、私たちは簡単に変数を追加できます。私たちのユーザーグループに来て下さい。

特記事項