Howto - Creating a new file filter

技術情報:新しいファイルフィルターの作成

この技術情報では、OmegaT で使用する新しいファイルフィルターの作り方を、TMX 形式のための基本的なファイルフィルターの作成を例に説明します。ファイルフィルターを作成する通常の理由は、ファイルを翻訳対象にすることですが、TMX ファイルを翻訳しようとするのは奇妙に思われるかもしれません。けれども、TMX フィルターを追加して得られる面白い効果として、任意の OmegaT プロジェクト内で「プロジェクトを検索」機能を用いて、あらゆる場所にある TMX ファイルを検索できるようになります。これは、標準的な OmegaT ビルドではできないことです。

OmegaT をソースコードからコンパイルするには、技術情報:OmegaT のコンパイルを参照してください。

新たに作成しようとするファイルフィルターに類似した、既存のファイルフィルターを選択します。今回の例では、「ヘルプとマニュアル」フィルターを基本形に選択します。

フォルダー src/org/omegat/filters3/xml の配下のフォルダー helpandmanual をコピーし、tmx という名を付けます。このフォルダー内にある 2 つのファイル、HelpandManualDialect.java と HelpandManualFilter.java の名称を、それぞれ TmxDialect.java と TmxFilter.java respectively に変更します。

ファイル TMXDialect.java と TMX フィルターを、テキストエディターで開きます。両ファイル内を検索し、以下の置換を行います(大文字と小文字を区別)。

「helpandmanual」を「tmx」に置換
「HelpAndManual」を「TMX」に置換
「HELPANDMANUAL」を「TMX」に置換
「Help & Manual」を「TMX」に置換
「Help&Manual」を「TMX」に置換

新しいファイル形式に対する段落ベレルのタグを特定します。段落タグを見つけるには、サンプルファイルをテキストエディタで開いて調べてください。TMX の場合、分節に対応する段落レベルのタグは「tu」です。

ファイル TMXDialect.java の編集:

段落タグを定義します。ここでは、

   defineParagraphTags(new String[] { "caption", "config-value", "variable", "para", "title", "keyword", "li", });

という行を、以下のように変更します。

   defineParagraphTags(new String[] { "tu", });

次の行は TMX に無関係なので削除できます。

   defineShortcut("link", "li");

ただし、削除しなくても新しいフィルターは機能します。

順序から外れたタグを定義できます。そのようなタグで、分節内に含まれるが分節外に表示されるような下位分節を定義します(脚注がその好例です)。TMX フィルターでそのようなタグを定義するには、

   defineOutOfTurnTags(new String[] { "sub", });

という行を、次の行の下に挿入します。

   defineParagraphTags(new String[] { "tu", });

ただし、これを行わなくてもフィルターは機能します。

これらの行の下に、以下のコードを挿入することもできます。

   defineIntactTags(new String[]
   {
   "header",
   "prop",
   "ph",
   "bpt",
   "ept",
   "it",
   "ut",
   });

これによって、TMX ファイルの見かけがきれいになります。ただし、本質的に必要なことではありません。

ファイル TMXFilter.java の編集:

ファイル拡張子を、この場合は .tmx に変更します。

   public Instance[] getDefaultInstances() {
   return new Instance[] { new Instance("*.xml", null, null), new Instance("*.hmxp", null, null), };

を、以下のように変更します。

   public Instance[] getDefaultInstances() {
   return new Instance[] { new Instance("*.tmx", null, null), };

フォルダー /src/org/omegat 内のファイル Bundle.properties をテキストエディターで開き、次の行を見つけます。

   # HelpAndManualFilter.java
   HELPANDMANUAL_FILTER_NAME=Help & Manual Files

その下に、以下の行を挿入します。

   # TMXFilter.java
   TMX_FILTER_NAME=TMX files

(英語以外の言語のユーザーインターフェースで OmegaT を起動したい場合は、該当する地域化された Bundle.properties ファイルで同様の変更を行ってください。)

ソースコードのメインフォルダー内で、ファイル manifest-template.mf をテキストエディタで開きます。テキスト内の

   Name: org.omegat.filters3.xml.helpandmanual.HelpAndManualFilter
   OmegaT-Plugin: filter

という行の下に、以下の行を挿入します。

   Name: org.omegat.filters3.xml.tmx.TMXFilter
   OmegaT-Plugin: filter

「技術情報:OmegaT のコンパイル」に従ってコンパイルしてください。コンパイル済みの OmegaT を起動します。[設定]→[ファイルフィルター]を選んで、新しいフィルターが存在することを確認してください。フィルターが機能することを確認するには、プロジェクトの source フォルダー内にTMX ファイルを置いてください。あるいは、より有用な確認として、TMX ファイルに対して[検索]→[ファイル検索]を行ってください。

Copyright Marc Prior 2008-2011