diff options
| author | Ken'ichi Fukamachi <fukachan@fml.org> | 2018-09-17 14:01:32 +0900 |
|---|---|---|
| committer | Ken'ichi Fukamachi <fukachan@fml.org> | 2018-09-17 14:01:32 +0900 |
| commit | 8ab568ed41f749c51bcf0a3d91f5baa67178d55a (patch) | |
| tree | e914415326befdb0cbfc64764698cfe2b35b82eb | |
| parent | 1e86f8d1e8bdc03087cee627189768256dd2e605 (diff) | |
| download | fml8-8ab568ed41f749c51bcf0a3d91f5baa67178d55a.tar.gz fml8-8ab568ed41f749c51bcf0a3d91f5baa67178d55a.tar.bz2 fml8-8ab568ed41f749c51bcf0a3d91f5baa67178d55a.zip | |
reviewed. alignment cosmetics.
| -rw-r--r-- | fml/doc/ja/tutorial/module/nativelanguage.sgml | 75 |
1 files changed, 66 insertions, 9 deletions
diff --git a/fml/doc/ja/tutorial/module/nativelanguage.sgml b/fml/doc/ja/tutorial/module/nativelanguage.sgml index 56739bf8..adf249bb 100644 --- a/fml/doc/ja/tutorial/module/nativelanguage.sgml +++ b/fml/doc/ja/tutorial/module/nativelanguage.sgml @@ -8,14 +8,65 @@ </title> <para> -&fml8; 内部では言語と文字コードに依存した変換処理が必要です。 -たとえば、JIS (ISO-2022-JP)と EUC の相互変換は随所で行なわれています。 -これはメールでは JIS コードが使われますが、 -プログラムでは EUC コードの方が扱いやすいためです。 +MLドライバ内部では言語と文字コードに依存した変換処理が必要です。 +<footnote> +<para> +初期の記録も、ここに残しておきます: +MLドライバ内部では言語と文字コードに依存した変換処理が必要です。 +(初期設計段階での内部コードは EUC のため) +たとえば、ISO-2022-JP と EUC の相互変換が随所で行なわれています。 +これはメールでは ISO-2022-JP が使われますが、 +(UNIX 上での)プログラム(開発)では EUC が扱いやすいためです。 +</para> +</footnote> +たとえば、 +フィルタ処理や Subject 書き換え、 +summary や log などに履歴を書き込む際が代表例です。 +</para> + +<para> +基本となるデータフローは、 +(1) MIME Encode された文字列を一度 decode し、 +(2) Perl 内部表現 +<footnote> +<para> +現在の Perl 内部処理の基本は UTF-8 ベースの Perl 内部表現に変換し、 +文字ベースの処理を行った上で、 +バイトベースの文字列に戻すという考え方になっています。 +内部表現フラグを設定しない変数は、伝統的なバイト表現だと考えます。 +これにより後方互換性が保証されています。 +</para> +</footnote> +に変換したうえで、 +(3) なんらかの文字列処理をし、 +(4) ふたたび MIME Encode して外部出力可能な文字列に変換する、 +というものです。 +<screen> +[操作概念例] + +$string->set(); +$string->mime_header_decode(); +$string->...処理...(); +$string->mime_header_encode(); +メールの内容を変更する… +</screen> +メールではなく、 +&fml8; システムとして summary や log ファイルへ記録を残す場合には、 +MIMEエンコードはしていないので、 +なんらかの文字コードを使うと決め打ちする必要があります。 +ここは従来と変わりません +具体的には、 +対象ごとに定義されている +(例: ログファイルは $log_file_charset_ja ) +変数にしたがい、文字の符号化を行います。 +日本語のデフォルト値は(互換性のため) EUC-JP です。 </para> <para> -本章では、言語依存の処理関数について解説します。 +本章では、 +言語依存処理関数について解説します。 +言語依存と言っても、日本語処理ではなく、 +日本語を使う文脈に依存した処理という表現が適切です。 </para> <para> @@ -23,7 +74,7 @@ <link linkend="message.nl"> 『メッセージの他国語化』 </link> -の章を参照して下さい。 +の章を参照してください。 </para> @@ -33,7 +84,9 @@ </title> <para> -言語依存のクラス名は「クラス::Language::」となります。 +言語依存のクラス名は +「クラス::Language::」 +となります。 これらの階層以下に言語依存モジュール群が配置されます。 </para> @@ -44,9 +97,13 @@ FML::Language::Japanese::String.pm Mail::Bounce::Language::Japanese.pm </screen> 前者は、FML モジュール群のために、 -日本語依存の文字列処理関数を提供しています。 +日本語の文脈に依存した文字列処理関数 +(例: 日本語のメールでは引用に>を使う…) +を提供しています。 後者は Mail::Bounce 階層以下のモジュールに対して、 -日本語に依存したエラーメール解析ルーチンを提供しています。 +日本語に依存したエラーメール解析ルーチン +(例: 日本の特定の ISP が特殊なフォーマットのエラーメールを返す…) +を提供しています。 </para> </sect1> |
