このページは、POPFile の I18N (= internationalization : 国際化) や L10N (=localization : ローカライズ、地域化) がどのように行われているかについて説明したものです。
POPFile は現在、フランス語、ポルトガル語(ブラジル)、ドイツ語に翻訳されています。また、アラビア語、ブルガリア語、中国語(簡体字、繁体字)、チェコ語、デンマーク語、オランダ語、英語(イギリス)、フィンランド語、フランス語、ドイツ語、ギリシア語、ヘブライ語、ハンガリー語、イタリア語、日本語、韓国語、ノルウェー語、ポーランド語、ポルトガル語(イベリア)、ロシア語、スロバキア語、スペイン語、スウェーデン語、トルコ語、ウクライナ語の翻訳もありますが、これらの翻訳は最新バージョンになっていません。POPFile プロジェクトは、母国語への翻訳を行ってくれる人を捜しています。(訳注:日本語への翻訳については、日本語化プロジェクトで行っています)
POPFile をあなたが知っている言語に翻訳することに興味があれば、POPFile の最新バージョンから English.msg を入手してその中にある文字列を翻訳してください。翻訳ができたら、パッチとして登録するとともに、[email protected] まで POPFile License Agreement を送付してください。
以下は、POPFile のローカライズがどのように行われているかの詳細です。
POPFile は、languages/ サブディレクトリにある English.msg の文字列を翻訳することによってローカライズされます。English.msg は、以下のような部分から始まっています:
- Identify the language and character set used for the interface LanguageCode en LanguageCharset ISO-8859-1 LanguageDirection ltr - This is used to get the appropriate subdirectory for the manual ManualLanguage en
# で始まっている行は注釈で、POPFile はこの行を無視します。1行は、スペースを含まない識別子(例えば LanguageCode)、いくつかのスペース、拡張子に対応した値をあらわす文字列(例えば en)で構成されています。
以下のような 5 つの特別な識別子があります:
識別子 | 意味 | 値 | ||||
LanguageCode | ユーザインタフェースで使われる言語を HTML の用語で; UI の <html> タグの lang 属性に設定されます。 | 詳しくは http://www.w3.org/TR/html401/struct/dirlang.html#adef-lang を参照してください。 | ||||
LanguageCharset | UI の文字セット (character set) を指定します; UI の Content-Type を指定する <meta> タグで使用されます。 | 詳しくは http://www.w3.org/TR/html401/charset.html#h-5.2 を参照してください。 | ||||
LanguageDirection | その言語の読む方向。例えば英語では左から右に、アラビア語では右から左に; UI の <html> タグの dir 属性に設定されます。 | ltr または rtl; 詳しくは http://www.w3.org/TR/html401/struct/dirlang.html#bidirection を参照してください。 | ||||
ManualLanguage | その単語のマニュアルが含まれている manual/ 内のサブフォルダの名称。翻訳されたマニュアルがなければ英語 (en) を指定。英語以外のマニュアルはローカルに保存されておらず、http://popfile.sourceforge.net/manual/// にあることに注意してください。|| 変更するには、http://popfile.sourceforge.net/manual/// を確認してください。 | |||||
Locale_Date | POPFile の履歴タブに表示されるメッセージの日時をどのように表示するかを決める 2 つのフォーマット文字列。ひとつめは 7 日以内のメッセージで使われ、ふたつめはそれよりも古いメッセージで使われます。これらの文字列は ' | ' で区切られます。 | ここで使用することができるフォーマットは、 DateFormat に書かれています。(訳注:POPFile で使用されている DateTime モジュールは、日本語に対応していません。このため、日本語用のローカライズファイルでは、英語(English.msg)と同じフォーマットを利用しています) |
いくつかの値をあらわす文字列には、 %s という表現が使われています。これらはフォーマット文字列で、実行されたときには別の言葉で置き換えられます。例えば、'Bucket_Error2' という識別子に対応する文字列は、英語版では “Bucket named %s already exists” となっています。ユーザーがバケツタブですでに存在するバケツを追加しようとしたとき、このシンボル %s は、ユーザーが入力したバケツ名で置き換えられ、適切なエラーメッセージが作られるのです。
POPFile UI の翻訳を簡単にするために、html_test_language を変更したり、スクリプト check.pl を使用したりすることができます。
POPFile のオプション html_test_language ( オプション・リファレンス を参照)を 1 に設定すると、POPFile の UI で、特定の言語の値をあらわす文字列の代わりに識別子が表示されるようになります。これによって、ローカライズしようとしている人は MSG ファイルの文字列と UI の関連を調べることができます。
例: このパラメータを 1 に設定すると、“POPFile Control Center” というテキストが “Header_Title” に変更されます。これは、MSG ファイルにある識別子です。
languages ディレクトリには小さなスクリプトがあり、翻訳する必要がある文字列や、すでに使用されていない文字列をこのスクリプトを用いて見つけることができます。このスクリプトは “check.pl” という名前で、以下のように使います:
perl check.pl language.msg
“language” のところを調べたい言語の名前で置き換えます。
日本語のメールを正しくフィルタリングするために、英語や他の言語で書かれたメールとは別に処理しています。この処理は、UI の言語で “Nihongo” を選択することによって有効になります。
ISO-2022-JP でエンコードされたメールは、EUC-JP に変換されます。これは、文字列の比較や分析において、ISO-2022-JP よりも扱いやすいからです。
日本語の単語は、スペースで区切られていません。これを英語で表現すると、以下のようになります:
単独では、それぞれの単語を認識することができないため POPFile の分類はあまりうまく働きません。そのため、日本語のフィルタリングに置いては、 Kakasi を使用して日本語の文章を単語に分割しています。この分割には、辞書が使われています。 Text::Kakasi Perl モジュールが、この Kakasi フィルタのインタフェースを提供しています。この分割された単語が分類エンジンに渡されます。
Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.