Merge the following from the English version:

1.58 -> 1.93	books/handbook/l10n/chapter.sgml

Submitted by:	Hiroo Ono <hiroo at oikumene dot gcd dot org>
Reviewed by:	Ryusuke Suzuki <ryusuke at nucl dot sci dot hokudai dot ac dot jp>
References:	[doc-jp-work 822, 871, 872, 873, 905]
This commit is contained in:
Hideyuki KURASHINA 2004-09-20 15:39:20 +00:00
parent 8f0cec860b
commit d02f31a59c
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=22402

View file

@ -2,49 +2,65 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.58
Original revision: 1.93
$FreeBSD$
-->
<chapter id="l10n">
<title>地域化 (localization) - I18N/L10N の利用/設定方法</title>
<chapterinfo>
<authorgroup>
<author>
<firstname>Andrey A.</firstname>
<surname>Chernov</surname>
<contrib>寄稿: </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Michael C.</firstname>
<surname>Wu</surname>
<contrib>改訂: </contrib>
</author>
<!-- 30 Nv 2000 -->
</authorgroup>
</chapterinfo>
<para><emphasis>寄稿: &a.ache;</emphasis></para>
<title>地域化 (localization) - I18N/L10N の利用と設定</title>
<para><emphasis>改訂: &a.keichii;、
2000 年 11 月 30 日。</emphasis></para>
<sect1>
<sect1 id="l10n-synopsis">
<title>この章では</title>
<para>ハンドブックのこの章では、様々な国の様々な設定に対する
FreeBSD の国際化 (internationalization) と地域化 (localization)
について解説します。
システムのデフォルトである英語以外の言語を使いたい場合、
ユーザはシステムを適切に設定しなければなりません。
各言語に対する言語サポートは、対象によりずいぶん異なることに
注意してください。
各言語を担当している各国の FreeBSD ユーザグループに
問い合わせるといいでしょう。</para>
<para>FreeBSD は、ユーザーおよび貢献者が世界中にいる、非常に分散した
プロジェクトです。この章では、英語以外の言語を使うユーザーの実用に
耐えられるようにする FreeBSD の国際化 (internationalization) と
地域化 (localization) 機能について解説します。
システムレベルでもアプリケーションレベルでも、国際化の実装には
様々な側面があるので、必要に応じて読者に対してより専門的な文書情報を
示すことにします。</para>
<note>
<title>訳注</title>
<para>この章では、以下の分野について説明します。</para>
<itemizedlist>
<listitem><para>近代的なオペレーティングシステムで、異なる言語および
ロケールがどのように符号化されているか。</para></listitem>
<listitem><para>ログインシェルでロケールを設定するには
どうするか。</para></listitem>
<listitem><para>コンソールを英語以外の言語用に設定するには
どうするか。</para></listitem>
<listitem><para>様々な言語で効率的に X Window System を使うには
どうすればよいか。</para></listitem>
<listitem><para>国際化されたアプリケーションを書くための
情報はどこにあるか。</para></listitem>
</itemizedlist>
<para>原文に記述されているような、各国語に対して責任を負っている
ユーザグループは存在しませんが、日本語に関する問題などは
&a.jp.users-jp; などで質問するといいでしょう。</para>
</note>
<para>この章を読む前に、以下のことを理解しておく必要があります。</para>
<para>FreeBSD の国際化に関して、完全に説明することは不可能です。
システム/アプリケーションの両方のレベルにおいて、
様々な段階の国際化の実装がなされているため、
各文書、マニュアルページ、README などを参照することをお勧めします。</para>
<para>この章に関して質問や提案などがありましたら、著者にメール
してください。</para>
<itemizedlist>
<listitem><para>サードパーティ製アプリケーションのインストール方法
(<xref linkend="ports">)。</para></listitem>
</itemizedlist>
</sect1>
<sect1>
<sect1 id="l10n-basics">
<title>基礎知識</title>
<sect2>
@ -54,12 +70,11 @@
<para>開発者たちはしばしば、internationalization を縮めて I18N
と表記します。18 は internationalization の最初と最後の間の
文字数です。
L10N も同じ命名法を用いて "localization" を縮めています。
文字数です。L10N も同じ命名法を用いて
<quote>localization</quote> を縮めたものです。
これらを合わせて、I18N/L10N された (すなわち国際化/地域化された)
手法、プロトコル、アプリケーションは、自分達の好みの言語を
使うことを可能にしてくれます。
</para>
使うことを可能にしてくれます。</para>
<para>国際化されたアプリケーションはライブラリとして国際化キット
を用いてプログラミングされています。
@ -95,7 +110,7 @@
<para>地域化の設定は言語コード、
国コード、エンコーディングという三つの用語を基本とします。
ロケール名はこれらから以下のように構成されます:</para>
ロケール名はこれらから以下のように構成されます</para>
<programlisting><replaceable>言語コード</replaceable>_<replaceable>国コード</replaceable>.<replaceable>エンコーディング</replaceable></programlisting>
@ -104,7 +119,7 @@
<indexterm><primary>言語コード</primary></indexterm>
<indexterm><primary>国コード</primary></indexterm>
<para>FreeBSD (やその他の国際化をサポートした Unix)
<para>FreeBSD (やその他の国際化をサポートした &unix;-like なシステム)
を特定の言語に地域化するには、
国と言語を特定するためのコードを知る必要があります
(Country Code はアプリケーションに指定された言語のどの変種
@ -157,7 +172,7 @@
実装方法にも依りますが、アプリケーションのコンパイル時もしくは
configure 時に、ワイド/多バイト文字のサポートを指定する必要があるかも知れません。
ワイド/多バイト文字を入力したり処理したりすることを可能にするために、
<ulink url="ports/">FreeBSD Ports Collection</ulink>
<ulink url="../../../../ports/index.html">FreeBSD Ports Collection</ulink>
では各言語向けに異なったプログラムを提供しています。
各 FreeBSD port の国際化文書を参照してください。
</para>
@ -166,7 +181,7 @@
コンパイラに適切な値を渡すために、アプリケーションの
文書を良く読む必要があります。</para>
<para>心に留めておくべきことは:</para>
<para>次のことを心に留めておいてください。</para>
<itemizedlist>
<listitem>
@ -183,8 +198,13 @@
</itemizedlist>
<para>現在有効な文字セットのリストに関しては
<ulink url="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">IANA Registry</ulink>
<ulink url="http://www.iana.org/assignments/character-sets">IANA Registry</ulink>
をチェックしてください。</para>
<note>
<para>FreeBSD 4.5 以降では、
X11 互換のロケール符号を用いています。</para> </note>
</sect2>
<sect2>
@ -200,22 +220,22 @@
<sect2 id="setting-locale">
<title>ロケールの設定</title>
<para>理論的に必要なのは、各ユーザの <filename>~/.login_conf</filename>
や、ログインシェルの設定ファイル
(<filename>~/.profile</filename>,
<para>通常は、ログインシェルで環境変数 <envar>LANG</envar> に
ロケール名を設定し export すれば十分です。これは、ユーザーの
<filename>~/.login_conf</filename> ファイル、またはユーザーの
シェルの初期設定ファイル (<filename>~/.profile</filename>,
<filename>~/.bashrc</filename>, <filename>~/.cshrc</filename>)
で <envar>LANG</envar> にロケール名を設定し、export することだけです。
これによりロケールのサブセット
(<envar>LC_CTYPE</envar>, <envar>LC_CTIME</envar> など)
のすべてが設定されます。
でできます。
<envar>LC_CTYPE</envar> や <envar>LC_CTIME</envar> のような
ロケールのサブセットを設定する必要はありません。
詳細に関しては、各言語向けの FreeBSD 文書を参照してください。</para>
<para>以下の二つのを設定ファイルで指定する必要があります。</para>
<para>以下の二つの環境変数を設定ファイルで指定する必要があります。</para>
<itemizedlist>
<indexterm><primary>POSIX</primary></indexterm>
<listitem>
<para>POSIX &man.setlocale.3; に属する関数のための
<para>&posix; &man.setlocale.3; 関連の関数のための
<envar>LANG</envar></para>
</listitem>
@ -258,23 +278,23 @@
<para>ユーザのホームディレクトリの
<filename>.login_conf</filename> ファイルを用いて、
両方の変数に Latin-1 エンコーディングを設定する簡単な例:
</para>
両方の変数に Latin-1 エンコーディングを設定する
簡単な例は次の通りです。</para>
<programlisting>german:German User:\
<programlisting>me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO_8859-1:</programlisting>
:lang=de_DE.ISO8859-1:</programlisting>
<indexterm><primary>繁体中国語 (Traditional Chinese) / BIG-5 エンコーディング</primary></indexterm>
<indexterm><primary>繁体中国語 (Traditional Chinese)</primary><secondary>BIG-5 エンコーディング</secondary></indexterm>
<para>これは、BIG-5 エンコーディングされた繁体中国語用の環境変数を設定する
<filename>.login_conf</filename> の一例です。
中国語、日本語、韓国語用の locale
変数を正しく認識しないソフトウェアに対処するため、
よりたくさんの変数を設定していることに注目しください。</para>
<filename>.login_conf</filename> の一例です。
中国語、日本語、韓国語用のロケール変数を
正しく認識しないソフトウェアに対処するため、
よりたくさんの変数を設定していることに注目しください。</para>
<programlisting>#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
taiwan:Taiwanese User:\
me:\
lang=zh_TW.Big5:\
lc_all=zh_TW.Big:\
lc_collate=zh_TW.Big5:\
@ -294,7 +314,7 @@ taiwan:Taiwanese User:\
<sect5 id="adm-setup">
<title>管理者の設定</title>
<para><filename>/etc/login.conf</filename> において
<para><filename>/etc/login.conf</filename> において
正しい言語がユーザのクラスに指定されていることを確認してください。
<filename>/etc/login.conf</filename> は、このようになります。</para>
@ -308,23 +328,29 @@ taiwan:Taiwanese User:\
<programlisting>german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO_8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:</programlisting>
<indexterm><primary>vipw</primary></indexterm>
<para>ログインクラスを &man.vipw.8; で変更します。</para>
<bridgehead renderas=sect4>ログインクラスを &man.vipw.8; で変更する</bridgehead>
<indexterm>
<primary><command>vipw</command></primary>
</indexterm>
<para>新しいユーザを追加するために <command>vipw</command>
を用います。そして以下のようなエントリを作成します:</para>
を用います。そして以下のようなエントリを作成します</para>
<programlisting>user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting>
<indexterm><primary>adduser</primary></indexterm>
<bridgehead renderas=sect4>ログインクラスを &man.adduser.8; で変更する</bridgehead>
<indexterm>
<primary><command>adduser</command></primary>
</indexterm>
<indexterm><primary>ログインクラス</primary></indexterm>
<para>ログインクラスを &man.adduser.8; で変更します。</para>
<para>新しいユーザを追加するために <command>adduser</command>
を用います。そして以下の手順を踏みます:</para>
を用います。そして以下の手順を踏みます</para>
<itemizedlist>
<listitem>
@ -344,17 +370,20 @@ taiwan:Taiwanese User:\
<listitem>
<para>さらに別の方法は、異なる言語を利用するユーザを
追加する際に、以下のようにするやり方です:</para>
追加する際に、以下のようにするやり方です</para>
<screen>&prompt.root; <userinput>adduser -class <replaceable>language</replaceable></userinput></screen>
</listitem>
</itemizedlist>
<indexterm><primary>pw</primary></indexterm>
<para>ログインクラスを &man.pw.8; で変更します。</para>
<bridgehead renderas=sect4>ログインクラスを &man.pw.8; で変更する</bridgehead>
<indexterm>
<primary><command>pw</command></primary>
</indexterm>
<para>新しいユーザを追加するために &man.pw.8; を
用いる場合、以下の形式で実行します:</para>
用いる場合、以下の形式で実行します</para>
<screen>&prompt.root; <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput></screen>
</sect5>
@ -364,7 +393,7 @@ taiwan:Taiwanese User:\
<title>シェルの初期化ファイルによる方法</title>
<note>
<para>各ログインプログラムごとに異なった設定が必要なため、
<para>シェルごとに異なった設定が必要なため、
この方法は推奨されません。
代わりに <link linkend="login-class">ログインクラスを用いる方法</link
>を使ってください。</para>
@ -378,14 +407,16 @@ taiwan:Taiwanese User:\
に以下の二つの環境変数を設定します。
以下に示す例は、ドイツ語の設定です。</para>
<para><filename>/etc/profile</filename> では:</para>
<para><filename>/etc/profile</filename> では
次のように設定します。</para>
<programlisting><envar>LANG=de_DE.ISO_8859-1; export LANG</envar>
<programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar>
<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting>
<para>また <filename>/etc/csh.login</filename> では:</para>
<para>また <filename>/etc/csh.login</filename> では
次のように設定します。</para>
<programlisting><envar>setenv LANG de_DE.ISO_8859-1</envar>
<programlisting><envar>setenv LANG de_DE.ISO8859-1</envar>
<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting>
<para>もしくは、上記のやり方を
@ -395,17 +426,18 @@ taiwan:Taiwanese User:\
(<filename>/etc/csh.login</filename> と同形式)
に追加することもできます。</para>
<para>X11 では:</para>
<para>X11 では、
<filename>$HOME/.xinitrc</filename> に
使用しているシェルに合った形式で</para>
<para><filename>$HOME/.xinitrc</filename> に:</para>
<programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar></programlisting>
<programlisting><envar>LANG=de_DE.ISO_8859-1; export LANG</envar></programlisting>
<para>もしくは、</para>
<para>もしくは:</para>
<programlisting><envar>setenv LANG de_DE.ISO8859-1</envar></programlisting>
<programlisting><envar>setenv LANG de_DE.ISO_8859-1</envar></programlisting>
<para>と指定します。</para>
<para>を使用しているシェルに合った形式で指定します。</para>
</sect4>
</sect3>
</sect2>
@ -415,7 +447,7 @@ taiwan:Taiwanese User:\
<para>C 言語の char で表現できるシングルバイトの文字セット用に、
<filename>/etc/rc.conf</filename>
でその言語に対応した適切なコンソールフォントを指定してください:</para>
でその言語に対応した適切なコンソールフォントを指定してください</para>
<programlisting>font8x16=<replaceable>フォント名</replaceable>
font8x14=<replaceable>フォント名</replaceable>
@ -426,16 +458,18 @@ font8x8=<replaceable>
にあるフォントファイルから <filename>.fnt</filename>
という拡張子を除いたものです。</para>
<indexterm><primary>sysinstall</primary></indexterm>
<indexterm>
<primary><application>sysinstall</application></primary>
</indexterm>
<indexterm><primary>keymap</primary></indexterm>
<indexterm><primary>screenmap</primary></indexterm>
<para>また、<filename>/stand/sysinstall</filename>
を使って、C 言語の char で表現できるシングルバイトの文字セット用の正しい
キーマップとスクリーンマップを指定するようにしてください。
sysinstall では、<literal>Configure</literal>
を選択し、<literal>Console</literal> を選択します。
<application>sysinstall</application> では、<guimenuitem>Configure</guimenuitem>
を選択し、<guimenuitem>Console</guimenuitem> を選択します。
もしくは、<filename>/etc/rc.conf</filename>
に以下の行を加えてください:</para>
に以下の行を加えてください</para>
<programlisting>scrnmap=<replaceable>スクリーンマップ名</replaceable>
keymap=<replaceable>キーマップ名</replaceable>
@ -453,13 +487,15 @@ keychange="<replaceable>
</para>
<para>もし、<filename>/etc/rc.conf</filename> を以下のように設定して、
moused デーモンを有効化している場合は、
<application>moused</application> デーモンを有効化している場合は、
次の段落に書かれているマウスカーソルに関する情報を確認してください。</para>
<programlisting>moused_enable="YES"</programlisting>
<indexterm><primary>moused</primary></indexterm>
<para>標準設定では、syscons ドライバのマウスカーソルは
<indexterm>
<primary><application>moused</application></primary>
</indexterm>
<para>設定省略時には、&man.syscons.4; ドライバのマウスカーソルは
キャラクタセット中の 0xd0-0xd3 の範囲を占めています。そのため、
利用している言語がこの範囲のキャラクタセットを使っている場合、
カーソルの占める範囲を重ならないように移動させなければなりません。
@ -468,7 +504,7 @@ keychange="<replaceable>
<programlisting>options SC_MOUSE_CHAR=0x03</programlisting>
<para>FreeBSD 5.0 以降の場合は、<filename>/etc/rc.conf</filename>
<para>FreeBSD 4.4 以降の場合は、<filename>/etc/rc.conf</filename>
に次の行を追加してください。</para>
<programlisting>mousechar_start=3</programlisting>
@ -476,7 +512,9 @@ keychange="<replaceable>
<para><replaceable>キーマップ名</replaceable> は
<filename>/usr/share/syscons/keymaps</filename>
ディレクトリにあるキーマップファイルから <filename>.kbd</filename>
という拡張子を除いたものです。</para>
という拡張子を除いたものです。
どのキーマップを使うかよくわからないなら、&man.kbdmap.1;
で再起動せずにキーマップを試すことができます。</para>
<para>ファンクションキーの並びはキーマップにより定義されてはいないため、
端末タイプに合わせたファンクションキーを設定するために
@ -485,7 +523,7 @@ keychange="<replaceable>
<para>また、<filename>/etc/ttys</filename> の中のすべての
<literal>ttyv*</literal> において、
正しいコンソール端末タイプを設定するようにしてください。
現在の定義済の値は以下の通りです:</para>
現在の定義済の値は以下の通りです</para>
<informaltable frame="none">
<tgroup cols="2">
@ -507,6 +545,11 @@ keychange="<replaceable>
<entry><literal>cons25l2</literal></entry>
</row>
<row>
<entry>ISO-8859-7</entry>
<entry><literal>cons25l7</literal></entry>
</row>
<row>
<entry>KOI8-R</entry>
<entry><literal>cons25r</literal></entry>
@ -518,9 +561,14 @@ keychange="<replaceable>
</row>
<row>
<entry>CP437 (ハードウェアのデフォルト)</entry>
<entry>CP437 (VGA のデフォルト)</entry>
<entry><literal>cons25</literal></entry>
</row>
<row>
<entry>US-ASCII</entry>
<entry><literal>cons25w</literal></entry>
</row>
</tbody>
</tgroup>
</informaltable>
@ -533,7 +581,7 @@ keychange="<replaceable>
したがって、X11 と疑似シリアルコンソール用に充分な
vtty を確保しておかなければなりません。
コンソールで他の言語を使うためのアプリケーションのリストの
一部です:</para>
一部です</para>
<informaltable frame="none">
<tgroup cols="2">
@ -547,18 +595,18 @@ keychange="<replaceable>
<tbody>
<row>
<entry>繁体中国語 (BIG-5)</entry>
<entry><filename>/usr/ports/chinese/big5con</filename></entry>
<entry><filename role="package">chinese/big5con</filename></entry>
</row>
<row>
<entry>日本語</entry>
<entry><filename>/usr/ports/japanese/ja-kon2-*</filename> or
<filename>/usr/ports/japanese/Mule_Wnn</filename></entry>
<entry><filename role="package">japanese/ja-kon2-*</filename> または
<filename role="package">japanese/Mule_Wnn</filename></entry>
</row>
<row>
<entry>韓国語</entry>
<entry><filename>/usr/ports/korean/ko-han</filename></entry>
<entry><filename role="package">korean/ko-han</filename></entry>
</row>
</tbody>
</tgroup>
@ -570,7 +618,7 @@ keychange="<replaceable>
<para>X11 は FreeBSD プロジェクトの一部ではありませんが、
FreeBSD ユーザのための情報を記しておきます。
詳細に関しては、<ulink url="http://www.xfree86.org/">XFree86
詳細に関しては、<ulink url="http://www.xfree86.org/">&xfree86;
ウェブサイト</ulink>や、あなたの使っている
X11 サーバのサイトを参照してください。</para>
@ -582,8 +630,9 @@ keychange="<replaceable>
<title>フォントの表示</title>
<indexterm><primary>X11 True Type フォントサーバ</primary></indexterm>
<para>X11 True Type 共通サーバ (XTT-common)
をインストールし、言語の TrueType フォントをインストールします。
<para>X11 &truetype; 共通サーバ
(<filename role="package">x11-servers/XttXF86srv-common</filename>)
をインストールし、言語の &truetype; フォントをインストールします。
ロケールを正しく設定すれば、
選んだ言語がメニューなどに表示されるはずです。</para>
</sect3>
@ -607,14 +656,14 @@ keychange="<replaceable>
シングルバイトの文字セットがハードウェアに組み込まれています。
ワイド/多バイトの文字セットでは特殊な設定が必要であり、
<application>apsfilter</application> を使うことをお勧めします。
言語固有のコンバータを用いて、PostScript か PDF フォーマット
言語固有のコンバータを用いて、&postscript; か PDF フォーマット
に文書をコンバートする場合もあるでしょう。</para>
</sect2>
<sect2>
<title>カーネルとファイルシステム</title>
<para>FreeBSD の FFS ファイルシステムは 8-bit 透過であり、
<para>FreeBSD の高速ファイルシステム (FFS) は 8-bit 透過であり、
C 言語の char で表現できるいかなる文字セットも使うことが
できます (&man.multibyte.3; を参照)。
しかし、ファイルシステム中には文字セットの名前は記録されていません。
@ -631,120 +680,50 @@ keychange="<replaceable>
<indexterm><primary>DOS</primary></indexterm>
<indexterm><primary>Unicode</primary></indexterm>
<para>FreeBSD の MS-DOS ファイルシステムでは、
MS-DOS, Unicode 文字セット、FreeBSD ファイルシステムの文字セット
の間で変換を行うことが可能です。
<para>FreeBSD の &ms-dos; ファイルシステムでは、
&ms-dos;, Unicode 文字セット、FreeBSD ファイルシステムの
文字セットの間で変換を行うことが可能です。
詳細は &man.mount.msdos.8; を参照してください。</para>
</sect2>
</sect1>
<sect1>
<title>より進んだ話題</title>
<sect1 id="l10n-compiling">
<title>国際化に対応したプログラムのコンパイル</title>
<para>国際化に対応したアプリケーションをコンパイルしたり、
作成することを考えているなら、このセクションを読んでみてください。
</para>
<para>FreeBSD ports の多くはすでに国際化されています。
いくつかには port の名前に -I18N と付いています。
これらはもちろんのこと、他のプログラムも国際化への対応を組み込んだものがあり、
コンパイルに際して特別な注意を払う必要はありません。</para>
<sect2>
<title>国際化に対応したプログラムのコンパイル</title>
<para>多くの FreeBSD ports はすでに国際化されています。
いくつかには port の名前に -I18N と付いています。
これらはもちろん、他のプログラムも国際化への対応を組み込んだものがあり、
それらはコンパイルに際して特に考慮するようなことはありません。
</para>
<indexterm><primary>MySQL</primary></indexterm>
<para>しかし、MySQL のようなアプリケーションでは、
特定の文字セットを使うように <filename>Makefile</filename>
に指示する必要があります。
これは大抵 <filename>Makefile</filename> の中で
対処されているか、ソース中の configure
に値を渡すことで対応しています。
</para>
</sect2>
<sect2>
<title>国際化に対応したアプリケーションのプログラミング</title>
<indexterm><primary>Qt</primary></indexterm>
<indexterm><primary>GTK</primary></indexterm>
<para>あなたのアプリケーションを、
他の言語を話す人たちにとっても有用なものにするには、
国際化に対応したものにするといいでしょう。
GNU の gcc コンパイラ、QT や GTK などの GUI
ライブラリは文字列を特別に扱うことで国際化をサポートしています。
国際化に対応したプログラムは簡単に作成できます。
それにより、あなたのアプリケーションを提供者が素早く他の言語に対応することが可能になります。
詳細に関してはライブラリ固有の国際化文書を参照してください。
</para>
<para>一般的な予想に反して、国際化に対応したコードは簡単に書くことができます。
通常は文字列をライブラリ特有の関数でくくるだけです。
また、ワイド/マルチバイト文字をサポートするようにしてください。
</para>
<sect3>
<title>国際化のための団結の呼び掛け</title>
<para>それぞれの国で個別の国際化/地域化への努力が独立して行われているということを、
これ以上無視するわけにはいきません。
わたしたちは、何度も性懲りもなく車輪を再発明してきました。
国際化の舞台における主要なグループが集まって、
コアチームのように一つのグループとして活動できることを望んでいます。</para>
<para>現状では、あなたが国際化に対応したプログラムを書くか移植した場合、
テストのために各国の FreeBSD メーリングリストに送ってくれることを望んでいます。
将来的には、美しくないハックを加えることなしにすべての言語で動作するような、
すばらしいアプリケーションを作ることを目指しています。</para>
<para><email>FreeBSD-I18N@FreeBSD.org</email> というメーリングリストがあります。
もしあなたが国際化/地域化の開発に携わっているなら、
あなたの意見や考え、質問等をお寄せください。</para>
<para>Michael C. Wu 氏は、国際化の成果を
<ulink url="http://www.FreeBSD.org/~keichii/i18n/index.html">http://www.FreeBSD.org/~keichii/i18n/index.html</ulink> で保守管理しています。
また、BSDCon2000 で Clive Lin 氏、
Chia-Liang Kao 氏、Michael C. Wu
氏らによって発表された国際化に関する論文や発表資料
<ulink url="http://www.FreeBSD.org/~keichii/papers/">http://www.FreeBSD.org/~keichii/papers/</ulink> もご覧ください。</para>
</sect3>
<sect3>
<title>Perl と Python</title>
<indexterm><primary>Perl</primary></indexterm>
<indexterm><primary>Python</primary></indexterm>
<para>Perl と Python
には国際化とワイド文字を扱うためのライブラリが備わっています。
国際化に対応するためにそれらを使うようにしてください。</para>
<para>古いバージョンの FreeBSD では、
ワイド文字ロケールがシステムにインストールされているのに
Perl がインストールされていないと警告するかも知れません。
この場合、シェルの環境変数 <envar>LD_PRELOAD</envar>
に <filename>/usr/lib/libxpg4.so</filename>
と設定することで対処できます。</para>
<para><literal>sh</literal> 系のシェルでは:</para>
<programlisting><envar>LD_PRELOAD=/usr/lib/libxpg4.so</envar></programlisting>
<para><literal>C</literal> 系のシェルでは:</para>
<programlisting><envar>setenv LD_PRELOAD /usr/lib/libxpg4.so</envar></programlisting>
</sect3>
</sect2>
<indexterm>
<primary><application>MySQL</application></primary>
</indexterm>
<para>しかし、<application>MySQL</application> のようなアプリケーションでは、
特定の文字セットを使うように <filename>Makefile</filename>
を設定する必要があります。
これは大抵 <filename>Makefile</filename> の中で
対処されているか、ソース中の <application>configure</application>
に値を渡すことで対応しています。</para>
</sect1>
<sect1 id="lang-setup">
<title>FreeBSD を特定の言語に地域化する</title>
<sect2 id="ru-localize">
<sect2info>
<authorgroup>
<author>
<firstname>Andrey A.</firstname>
<surname>Chernov</surname>
<contrib>原作: </contrib>
</author>
</authorgroup>
</sect2info>
<title>ロシア語 (KOI8-R エンコーディング)</title>
<indexterm><primary>ロシア語の地域化</primary></indexterm>
<para><emphasis>原作: &a.ache;。</emphasis></para>
<indexterm>
<primary>地域化</primary>
<secondary>ロシア語</secondary>
</indexterm>
<para>KOI8-R エンコーディングの詳細については、
<ulink url="http://koi8.pp.ru/">KOI8-R References
@ -754,7 +733,7 @@ keychange="<replaceable>
<title>ロケールの設定</title>
<para>以下の行を
<filename>~/.login_conf</filename> に追加してください:</para>
<filename>~/.login_conf</filename> に追加してください</para>
<programlisting>me:My Account:\
:charset=KOI8-R:\
@ -775,7 +754,7 @@ keychange="<replaceable>
<programlisting>options SC_MOUSE_CHAR=0x03</programlisting>
<para>FreeBSD 5.0 以降のバージョンの場合は、
<para>FreeBSD 4.4 以降のバージョンの場合は、
<filename>/etc/rc.conf</filename> に次の行を追加します。</para>
<programlisting>mousechar_start=3</programlisting>
@ -783,7 +762,7 @@ keychange="<replaceable>
<listitem>
<para><filename>/etc/rc.conf</filename> で以下のように
設定してください:</para>
設定してください</para>
<programlisting>keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
@ -812,12 +791,12 @@ font8x8="cp866-8x8"</programlisting>
<para>ロシア語用の文字を搭載したプリンタはほとんど
ハードウェアコードページ CP866 を使っているため、
KOI8-R から CP866 への特殊な変換フィルタが必要となります。
KOI8-R を CP866 に変換する専用の出力フィルタが必要となります。
このフィルタはデフォルトで
<filename>/usr/libexec/lpr/ru/koi2alt</filename> に
インストールされています。
ロシア語用のプリンタの <filename>/etc/printcap</filename>
エントリは以下のようになります:</para>
エントリは以下のようになります</para>
<programlisting>lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
@ -828,18 +807,21 @@ font8x8="cp866-8x8"</programlisting>
</sect3>
<sect3>
<title>MS-DOS ファイルシステムとロシア語ファイル名</title>
<title>&ms-dos; ファイルシステムとロシア語ファイル名</title>
<para>以下の &man.fstab.5; エントリの例は、マウントされた
MS-DOS ファイルシステムにおいてロシア語ファイル名を
使えるようにします:</para>
&ms-dos; ファイルシステムにおいてロシア語ファイル名を
使えるようにします</para>
<programlisting>/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0</programlisting>
<para><option>-W</option> オプションと <option>-L</option>
オプションの詳細については、&man.mount.msdos.8;
を参照してください。
</para>
<para><option>-L</option> オプションは利用するロケール名を選択し、
<option>-W</option> オプションは文字変換表を設定します。
<option>-W</option> オプションを使う時は、変換表が
<filename>/usr/libdata/msdosfs</filename> にあるので、
<filename>/usr</filename> を &ms-dos; パーティションより前に
マウントするようにしてください。詳しくは、
&man.mount.msdos.8; のマニュアルを参照してください。</para>
</sect3>
<sect3>
@ -852,33 +834,32 @@ font8x8="cp866-8x8"</programlisting>
<note>
<para><anchor id="russian-note">ロシア語の KOI8-R
ロケールは古い XFree86 のリリース (3.3 より前)
では動作しません。
<filename>/usr/ports/x11/XFree86</filename>
は最新版の XFree86 となっていますので、
port から XFree86 をインストールした場合にはうまく
動作します。
ロケールは古い <application>&xfree86;</application> のリリース (3.3 より前)
では動作しないかもしれません。
現在は <application>&xfree86; 4.X</application> が FreeBSD の
デフォルトの X Window System です。
これは古いバージョンの FreeBSD を使っていない限り
起こり得ないことです。</para>
</note>
</listitem>
<listitem>
<para><filename>/usr/ports/russian/X.language</filename>
<para><filename role="package">russian/X.language</filename>
ディレクトリに移動し、
以下のコマンドを実行してください:</para>
以下のコマンドを実行してください</para>
<screen>&prompt.root; <userinput>make install</userinput></screen>
<para>上記の port は最新版の KOI8-R フォントをインストール
します。XFree86 3.3 には既に KOI8-R フォントが含まれていますが、
します。<application>&xfree86; 3.3</application> には
既に KOI8-R フォントが含まれていますが、
こちらの方がより良く拡縮されます。</para>
<para><filename>/etc/XF86Config</filename> ファイルの
<literal>"Files"</literal>
セクションをチェックしてください。
既存の <literal>FontPath</literal>
エントリの<emphasis>前に</emphasis>以下の行を追加しなければなりません:</para>
エントリの<emphasis>前に</emphasis>以下の行を追加しなければなりません</para>
<programlisting>FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
@ -893,12 +874,12 @@ FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>
以下の行を <filename>XF86Config</filename> ファイルの
<literal>"Keyboard"</literal> セクションに追加します。</para>
<para>XFree86 v3.* の場合:</para>
<para><application>&xfree86; 3.X</application> の場合:</para>
<programlisting>XkbLayout "ru"
XkbOptions "grp:caps_toggle"</programlisting>
<para>XFree86 v4.* の場合:</para>
<para><application>&xfree86; 4.X</application> の場合:</para>
<programlisting>Option "XkbLayout" "ru"
Option "XkbOptions" "grp:caps_toggle"</programlisting>
@ -907,38 +888,38 @@ Option "XkbOptions" "grp:caps_toggle"</programlisting>
(コメントアウト) になっていることを確認してください。
</para>
<para>ロシア語/ラテン文字の変更は <literal>CapsLock</literal>
で行います。従来の <literal>CapsLock</literal>
の機能は <literal>Shift+CapsLock</literal>
<para>ロシア語/ラテン文字の切り替えは <keycap>CapsLock</keycap>
で行います。従来の <keycap>CapsLock</keycap>
の機能は <keycombo action="simul"><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>
で使うことができます (ラテン文字モードの時のみ)。
</para>
<para>キーボードに <quote>Windows</quote> キーがあり、
<para>キーボードに <quote>&windows;</quote> キーがあり、
ロシア語モードでそのキーにいくつかの非英字キーが
割り当てられているようなら、<filename>XF86Config</filename>
ファイルに以下の行を追加してください。</para>
<para>XFree86 v3.* の場合:</para>
<para><application>&xfree86; 3.X</application> の場合:</para>
<programlisting>XkbVariant "winkeys"</programlisting>
<para>XFree86 v4.* の場合:</para>
<para><application>&xfree86; 4.X</application> の場合:</para>
<programlisting>Option "XkbVariant" "winkeys"</programlisting>
<note>
<para>ロシア語の XKB キーボードは古いバージョンの
XFree86 ではうまく動かないかも知れません。
<application>&xfree86;</application> ではうまく動かないかも知れません。
詳しくは<link linkend="russian-note">前述の
注釈</link>を参照してください。
ロシア語の XKB キーボードは、
地域化されていないアプリケーションでもうまく動かないかも知れません。
地域化されたアプリケーションは少なくともプログラムの最初の方で
<literal>XtSetLanguageProc (NULL, NULL, NULL);</literal>
<function>XtSetLanguageProc (NULL, NULL, NULL);</function>
を呼び出すべきです。
X11 アプリケーションを地域化する方法については、
<ulink url="http://koi8.pp.ru/xwin.html">
KOI8-R for X-Window</ulink>
KOI8-R for X Window</ulink>
を参照してください。</para>
</note>
</listitem>
@ -948,19 +929,20 @@ Option "XkbOptions" "grp:caps_toggle"</programlisting>
<sect2>
<title>台湾向けの繁体中国語への地域化</title>
<indexterm><primary>繁体中国語の地域化</primary></indexterm>
<indexterm>
<primary>地域化</primary>
<secondary>繁体中国語</secondary>
</indexterm>
<para>FreeBSD-Taiwan プロジェクトには、多くの
<filename>/usr/ports/chinese/*</filename>
からのアプリケーションを利用した、
<para>FreeBSD-Taiwan プロジェクトは、多くの
中国語 ports を利用した、
FreeBSD の国際化/地域化のためのチュートリアル
<ulink url="http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html">
http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html</ulink>
<ulink url="http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/"></ulink>
を提供しています。
<literal>zh-L10N-tut</literal> の編集は
Clive Lin <email>Clive@CirX.org</email> が担当しています。
<hostid role="fqdn">freebsd.sinica.edu.tw</hostid> から
以下のコレクションを cvsup することもできます:</para>
以下のコレクションを cvsup することもできます</para>
<informaltable frame="none">
<tgroup cols="2">
@ -996,30 +978,38 @@ Option "XkbOptions" "grp:caps_toggle"</programlisting>
<ulink url="http://cpna.yzu.edu.tw/~cfc">Chinese
FreeBSD Collection (CFC)</ulink> を作成しました。
パッケージとスクリプトは
<ulink url="ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/">ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/</ulink>
<ulink url="ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/"></ulink>
から入手できます。</para>
</sect2>
<sect2>
<title>ドイツ語への地域化 (すべての ISO 8859-1 言語向け)</title>
<indexterm><primary>ドイツ語の地域化</primary></indexterm>
<indexterm>
<primary>地域化</primary>
<secondary>ドイツ語</secondary>
</indexterm>
<para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> は
FreeBSD マシン上でウムラウトを使うためのチュートリアルを書きました。
チュートリアルはドイツ語で書かれており、
<ulink url="http://www.de.FreeBSD.org/de/umlaute/">http://www.de.FreeBSD.org/de/umlaute/</ulink>
<ulink url="http://www.de.FreeBSD.org/de/umlaute/"></ulink>
から入手できます。</para>
</sect2>
<sect2>
<title>日本語/韓国語への地域化</title>
<indexterm><primary>日本語の地域化</primary></indexterm>
<indexterm><primary>韓国語の地域化</primary></indexterm>
<indexterm>
<primary>地域化</primary>
<secondary>日本語</secondary>
</indexterm>
<indexterm>
<primary>地域化</primary>
<secondary>韓国語</secondary>
</indexterm>
<para>日本語に関しては
<ulink url="http://www.jp.FreeBSD.org/">http://www.jp.FreeBSD.org/</ulink>
<ulink url="http://www.jp.FreeBSD.org/"></ulink>
を、韓国語に関しては
<ulink url="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</ulink>
<ulink url="http://www.kr.FreeBSD.org/"></ulink>
を参照してください。</para>
</sect2>
@ -1027,7 +1017,7 @@ Option "XkbOptions" "grp:caps_toggle"</programlisting>
<title>英語以外の FreeBSD ドキュメント</title>
<para>FreeBSD の一部を他の言語に翻訳してくれている人たちがいます。
これらは <ulink url="../">メインサイト</ulink>のリンクを辿るか
これらは <ulink url="../../../../index.html">メインサイト</ulink>のリンクを辿るか
<filename>/usr/share/doc</filename>
から入手できます。</para>
</sect2>