Index: head/ja_JP.eucJP/books/handbook/l10n/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/l10n/chapter.xml (revision 54570) +++ head/ja_JP.eucJP/books/handbook/l10n/chapter.xml (revision 54571) @@ -1,970 +1,970 @@ 地域化 (localization) - <acronym>i18n</acronym>/<acronym>L10n</acronym> の利用と設定 AndreyChernov寄稿: Michael C.Wu改訂: この章では &os; は、 ユーザーおよび貢献者が世界中に分散したプロジェクトです。 そのため、&os; は多くの言語への地域化に対応しており、 ユーザは、英語以外の言語を見たり、入力したり、処理したりできます。 現在では、主要な言語のほとんどから選ぶことができます。 たとえば中国語、ドイツ語、日本語、韓国語、フランス語、ロシア語、 ベトナム語などがありますが、これらに限定されるわけではありません。 - - 国際化 (internationalization) - 地域化 (localization) - - 地域化(localization) + + 国際化 (internationalization) + 地域化 (localization) + + 地域化(localization) - internationalization は、i18n - と短縮して表記されます。 - これは internationalization - の最初と最後の間の文字数に由来します。 - L10n も同じ命名法を用いて - localization を縮めたものです。 - これらを合わせて、i18n/L10n - された (すなわち国際化/地域化された) - 手法、プロトコル、アプリケーションは、 - 自分達の好みの言語を使うことを可能にしてくれます。 + internationalization は、i18n + と短縮して表記されます。 + これは internationalization + の最初と最後の間の文字数に由来します。 + L10n も同じ命名法を用いて + localization を縮めたものです。 + これらを合わせて、i18n/L10n + された (すなわち国際化/地域化された) + 手法、プロトコル、アプリケーションは、 + 自分達の好みの言語を使うことを可能にしてくれます。 - 国際化 (i18n) - されたアプリケーションは、ライブラリとして i18n - 化キットを用いてプログラミングされます。 - これは開発者が単純なファイルを書いて、 - 表示されるメニューやテキストを各国語に翻訳できるようにしてくれます。 + 国際化 (i18n) + されたアプリケーションは、ライブラリとして i18n + 化キットを用いてプログラミングされます。 + これは開発者が単純なファイルを書いて、 + 表示されるメニューやテキストを各国語に翻訳できるようにしてくれます。 この章では、&os; の国際化 (internationalization) と地域化 (localization) 機能について解説します。 システムレベルでもアプリケーションレベルでも、 国際化 (i18n) の実装には様々な側面があるので、 必要に応じて可能な範囲で読者に対してより専門的な文書情報を示すことにします。 この章では、以下の分野について説明します。 近代的なオペレーティングシステムで、 異なる言語およびロケールがどのように符号化されているか。 ログインシェルでロケールを設定するにはどうするか。 コンソールを英語以外の言語用に設定するにはどうするか。 様々な言語で効率的に Xorg を使うにはどうすればよいか。 国際化 (i18n) されたアプリケーションを書くための情報はどこにあるか。 この章を読む前に、以下のことを理解しておく必要があります。 サードパーティ製アプリケーションのインストール方法 地域化の利用 ロケール 地域化の設定は言語コード、 国コード、エンコーディングという三つの用語を基本とします。 ロケール名はこれらから以下のように構成されます。 言語コード_国コード.エンコーディング 言語コードと国コード 言語コード 国コード &os; システムを特定の言語に地域化するには、 国と言語を特定するためのコードを決める必要があります。 国コードにより、指定された言語のどの変種 (variation) を使うかをアプリケーションに指定します。 以下は言語/国コードの例です。 言語/国コード 説明 en_US 英語 (合衆国) ru_RU ロシア語 (ロシア) zh_TW 繁体字中国語 (台湾) 以下を実行すると、 利用可能なすべてのロケールが表示されます。 &prompt.user; locale -a エンコーディング エンコーディング ASCII いくつかの言語では、8-bit やワイド文字、 多バイト文字など ASCII とは異なったエンコード法を用います。 これらのエンコード法の詳細については、 &man.multibyte.3; を参照してください。 古いアプリケーションはこれらを認識せず、 誤ってコントロール文字として認識してしまいます。 最近のアプリケーションは、大抵 8-bit 文字を認識します。 実装方法にも依りますが、アプリケーションのコンパイル時もしくは configure 時に、ワイド/多バイト文字のサポートを指定する必要があるかも知れません。 アプリケーションが、ワイド/多バイト文字に対応するために、 &os; Ports Collection では各言語向けのプログラムを提供しています。 各 &os; port の i18n 文書を参照してください。 特に、正しく configure したり、port の構築時に使用するコンパイルオプションを決めるために、 アプリケーションの文書を良く読む必要があります。 次のことを心に留めておいてください。 言語固有の、C 言語の char で表現できる ISO8859-1, ISO8859-15, KOI8-R, CP437 といったシングルバイトの文字セット。 &man.multibyte.3; を参照してください。 EUC および Big5 といった、 ワイド、多バイトのエンコーディング。 現在有効な文字セットのリストに関しては IANA Registry を確認ください。 &os; では、Xorg 互換のロケール符号を用いています。 &os; Ports Collection では、 ひと目でそれとわかるように国際化アプリケーションの名前に i18n という文字が含まれています。 ただし、それらのアプリケーションが常にあなたの望む言語をサポートしているとは限りません。 ロケールの設定 通常は、ログインシェルで環境変数 LANG に ロケール名を設定し export すれば十分です。これは、ユーザーの ~/.login_conf、 またはユーザーのシェルの初期設定ファイル (~/.profile, ~/.bashrc または ~/.cshrc) でできます。 LC_CTYPELC_CTIME のようなロケールのサブセットを設定する必要はありません。 詳細に関しては、各言語向けの &os; 文書を参照してください。 以下の二つの環境変数を設定ファイルで指定する必要があります。 &posix; POSIX &man.setlocale.3; 関連の関数のための LANG MIME アプリケーション用の MIME 文字セットのための MM_CHARSET これらは、ユーザのシェルの設定ファイル、 アプリケーション固有の設定ファイル、 そして Xorg の設定ファイルにおいて指定される必要があります。 ロケールを設定する方法 ロケール (locale) ログインクラス この節では、ロケールを設定する二つの方法について説明します。 一つは推奨される方法で、ログインクラス において環境変数に割り当てる方法です。 もう一つはシステムのシェルの 初期化ファイル において環境変数の指定を追加する方法です。 ログインクラスを用いる方法 この方法では、 各シェルの初期化ファイルに特定のシェル設定を追加する代わりに、 すべてのシェルにおいて一度に必要なロケール名と MIME 文字セットを環境変数に割り当てることができます。 ユーザレベルの設定はユーザが実行できますが。 管理者レベルの設定にはスーパユーザの権限が必要となります。 ユーザレベルの設定 以下は、 ユーザのホームディレクトリの .login_conf を用いて、 両方の変数に Latin-1 エンコーディングを設定する簡単な例です。 me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1: 繁体字中国語 (Traditional Chinese) BIG-5 エンコーディング これは、BIG-5 エンコーディングされた繁体字中国語用の環境変数を設定するユーザの .login_conf の一例です。 中国語、日本語、韓国語用のロケール変数を正しく認識しないソフトウェアに対応するため、 よりたくさんの変数が設定されています。 #Users who do not wish to use monetary units or time formats #of Taiwan can manually change each variable me:\ :lang=zh_TW.Big5:\ :setenv=LC_ALL=zh_TW.Big5:\ :setenv=LC_COLLATE=zh_TW.Big5:\ :setenv=LC_CTYPE=zh_TW.Big5:\ :setenv=LC_MESSAGES=zh_TW.Big5:\ :setenv=LC_MONETARY=zh_TW.Big5:\ :setenv=LC_NUMERIC=zh_TW.Big5:\ :setenv=LC_TIME=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server 詳細に関しては 管理者の設定 と &man.login.conf.5; を参照してください。 管理者レベルの設定 /etc/login.conf において、 正しい言語がユーザのクラスに指定されていることを確認してください。 language_name|Account Type Description:\ :charset=MIME_charset:\ :lang=locale_name:\ :tc=default: 先ほどの Latin-1 の例の設定は、以下のようになります。 german|German Users Accounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default: このファイルを編集したら、 以下のコマンドを実行してケイパビリティデータベースをアップデートしてください。 &prompt.root; cap_mkdb /etc/login.conf ログインクラスを &man.vipw.8; で変更する vipw vipw を使って新しいユーザを追加する際には、 language で使用する言語を設定してください。 user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh ログインクラスを &man.adduser.8; で変更する adduser ログインクラス adduser を使って、 新しいユーザを追加する際には、 以下のようにして、言語を設定してください。 新しく追加するすべてのユーザが同じ言語を使う場合には、 /etc/adduser.confdefaultclass = language と設定してください。 もうひとつの方法は、&man.adduser.8; を使って新しいユーザを作成するときに、 以下のプロンプトにおいて言語を指定してください。 Enter login class: default []: さらに別の方法は、/etc/adduser.conf で設定されている言語とは異なる言語を利用するユーザを追加する際に、 以下を実行する方法です。 &prompt.root; adduser -class language ログインクラスを &man.pw.8; で変更する pw &man.pw.8; を使って新しいユーザを追加する場合には、 以下の形式で実行してください。 &prompt.root; pw useradd user_name -L language シェルの初期化ファイルによる方法 シェルごとに異なった設定が必要なため、 この方法は推奨されません。 代わりに ログインクラスを用いる方法を使ってください。 MIME ロケール(locale) ロケール名と MIME 文字コードを追加するには、 /etc/profile/etc/csh.login などのシェル初期化ファイルに以下の二つの環境変数を設定してください。 以下の例では、ドイツ語を設定します。 /etc/profile では 次のように設定します。 LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET また /etc/csh.login では 次のように設定します。 setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1 もしくは、上記の設定を /usr/share/skel/dot.profile /usr/share/skel/dot.login に追加してください。 Xorg を設定するには、 使用しているシェルに合った形式で以下の どちらかを ~/.xinitrc に追加してください。 LANG=de_DE.ISO8859-1; export LANG setenv LANG de_DE.ISO8859-1 コンソールの設定 C 言語の char で表現できるシングルバイトの文字セット用に、 /etc/rc.conf でその言語に対応した適切なコンソールフォントを指定してください。 font8x16=フォント名 font8x14=フォント名 font8x8=フォント名 ここで フォント名/usr/share/syscons/fonts にあるフォントファイルから .fnt という拡張子を除いたものです。 sysinstall keymap screenmap sysinstall を使って、C 言語の char で表現できるシングルバイトの文字セット用のキーマップとスクリーンマップを指定できます。 sysinstall で、 Configure を選択し、 Console を選択してください。 もしくは、/etc/rc.conf に以下の行を加えてください。 scrnmap=スクリーンマップ名 keymap=キーマップ名 keychange="ファンクションキー番号の並び" ここで スクリーンマップ名/usr/share/syscons/scrnmaps にあるマップファイルから .scm という拡張子を除いたものです。 VGA アダプタがフォント文字マトリクスで bit 8 を bit 9 に拡張することに対処するために、 フォントに適切にマップされたスクリーンマップが必要となります。 スクリーンフォントが bit 8 列を使っている時に文字を疑似グラフィクス領域から外に移動します。 /etc/rc.conf において、 moused を有効にしている場合は、 次の段落に書かれているマウスカーソルに関する情報を確認してください。 moused 設定省略時には、&man.syscons.4; ドライバのマウスカーソルはキャラクタセット中の 0xd0-0xd3 の範囲を占めています。そのため、 利用している言語がこの範囲のキャラクタセットを使っている場合、 カーソルの占める範囲を移動してください。 &os; でこれを回避するには、次の行を /etc/rc.conf に追加してください。 mousechar_start=3 上記の例の キーマップ名/usr/share/syscons/keymaps にあるキーマップファイルから .kbd という拡張子を除いたものです。 どのキーマップを使うかよくわからないなら、&man.kbdmap.1; で再起動せずにキーマップを試すことができます。 ファンクションキーの並びはキーマップにより定義されてはいないため、 端末タイプに合わせたファンクションキーを設定するために keychange が必要となります。 /etc/ttys の中のすべての仮想端末のエントリに対して、 正しいコンソール端末タイプを設定するようにしてください。 現在の定義済の値は以下の通りです。 文字セット 端末タイプ ISO8859-1 もしくは ISO8859-15 cons25l1 ISO8859-2 cons25l2 ISO8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (VGA のデフォルト) cons25 US-ASCII cons25w ワイド/多バイト文字の言語については、 /usr/ports/language 内の適切な &os; port を利用してください。 いくつかのアプリケーションは、 システムに対しシリアルターミナルとして振る舞います。 /etc/ttys において、 Xorg と疑似シリアルコンソール用に充分なターミナルを用意してください。 以下はコンソールで他の言語を使うためのアプリケーションのリストの一部です。 言語 ports の位置 繁体字中国語 (BIG-5) chinese/big5con 日本語 japanese/kon2-16dot または japanese/mule-freewnn 韓国語 korean/han Xorg の設定 Xorg は &os; とともにインストールされませんが、 Ports Collection からインストールできます。 インストール方法についての詳細は、 を参照してください。 この節では、インストールされた Xorg をどのように地域化するかについて説明します。 フォント、メニューなどのアプリケーション固有の国際化 (i18n) の設定は、 ~/.Xresources において指定できます。 フォントの表示 Xorg True Type フォントサーバ x11-servers/xorg-server をインストールしたら、言語の &truetype; フォントをインストールしてください。 ロケールを正しく設定すれば、 選んだ言語がアプリケーションのメニューに表示されるはずです。 非英語の文字を入力する X Input Method (XIM) X Input Method (XIM) プロトコルは Xorg クライアント用の標準規格です。 すべての Xorg アプリケーションは XIM 入力サーバからの入力を受け取る XIM クライアントとして書かれるべきです。 様々な言語用の XIM サーバが存在します。 プリンタの設定 プリンタにはいくつかの C 言語の char で表現できる シングルバイトの文字セットがハードウェアに組み込まれています。 ワイド/多バイトの文字セットでは、apsfilter といったユーティリティを使用する特殊な設定が必要です。 言語固有のコンバータを用いて、文書を &postscript; や PDF フォーマットにコンバートできます。 カーネルとファイルシステム &os; の高速ファイルシステム (FFS) は 8-bit 透過であり、 C 言語の char で表現できるいかなる文字セットも使うことが できます。 しかし、ファイルシステム中には文字セットの名前は記録されていません。 したがって、これは単なる 8-bit であり、 エンコーディングに関しては何の情報もないのです。 公式には、FFS はいかなるワイド/マルチバイトの文字セットもサポートしていません。 しかし FFS でそのようなサポートを行うためのパッチが、 多くのワイド/マルチバイトの文字セットに存在します。 これらのパッチに関しては、各言語のウェブサイトを参照してください。 DOS Unicode &os; の &ms-dos; ファイルシステムに対する対応については、 &ms-dos;, Unicode 文字セット、&os; ファイルシステムの文字セットの間で変換を行うことが可能です。 詳細は &man.mount.msdosfs.8; を参照してください。 国際化 (<acronym>i18n</acronym>) に対応したプログラムのコンパイル &os; Ports Collection の多くのアプリケーションはすでに国際化 (i18n) されています。 いくつかの port の名前には、-i18n と付いています。 これらはもちろんのこと、 他のプログラムも国際化 (i18n) への対応を組み込んだものがあり、 コンパイルに際して特別な注意を払う必要はありません。 MySQL しかし、MySQL のようなアプリケーションでは、 特定の文字セットを使うように port の Makefile を設定する必要があります。 これは大抵 Makefile の中で 対処されているか、ソース中の configure に値を渡すことで対応しています。 &os; を特定の言語に地域化する ロシア語 (KOI8-R エンコーディング) AndreyChernov原作: - + 地域化 ロシア語 KOI8-R エンコーディングの詳細については、 KOI8-R References (Russian Net Character Set) を参照してください。 ロケールの設定 このロケールに設定するには、以下の行を各ユーザの ~/.login_conf に追加してください。 me:My Account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R: コンソールの設定 /etc/rc.conf に以下の行を追加してください。 keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" mousechar_start=3 /etc/ttys の各 ttyv エントリにおいて、 端末タイプとして cons25r を指定してください。 プリンタの設定 プリンタ ロシア語用の文字を搭載したプリンタはほとんど ハードウェアコードページ CP866 を使っているため、 KOI8-R を CP866 に変換する専用の出力フィルタが必要となります。 &os; は、デフォルトフィルタを /usr/libexec/lpr/ru/koi2alt にインストールします。 ロシア語用のプリンタの /etc/printcap エントリは以下のようになります。 lp|Russian local line printer:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: 記述のより詳細については &man.printcap.5; を参照してください。 &ms-dos; およびロシア語ファイル名 以下の &man.fstab.5; エントリの例は、マウントされた &ms-dos; ファイルシステムにおいてロシア語ファイル名を 使えるようにします。 /dev/ad0s2 /dos/c msdos rw,-Lru_RU.KOI8-R 0 0 はロケール名を選択します。 詳しくは、&man.mount.msdosfs.8; を参照してください。 <application>Xorg</application> の設定 まず X 以外のロケールの設定 を行ってください。 &xorg; を使う際には、 x11-fonts/xorg-fonts-cyrillic パッケージをインストールしてください。 /etc/X11/xorg.conf"Files" セクションをチェックしてください。 既存の FontPath エントリの前に以下の行を追加しなければなりません。 FontPath "/usr/local/lib/X11/fonts/cyrillic" 他の Cyrillic フォントについては、 Ports Collection を検索してください。 ロシア語のキーボードを使えるようにするには、 以下の行を xorg.conf"Keyboard" セクションに追加します。 Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:toggle" このファイルの中で XkbDisable がコメントアウトされていることを確認してください。 grp:toggle では Right Alt を使い、 grp:ctrl_shift_toggle では CtrlShift を使います。 grp:caps_toggle では、 CapsLock を使います。 従来の CapsLock の機能は、 ラテン文字モードの時のみ ShiftCapsLock で使うことができます。 &xorg; では、理由は不明ですが grp:caps_toggle は動作しません。 キーボードに &windows; キーがあり、 そのキーにいくつかの非英字キーが割り当てられているようなら、 xorg.conf に以下の行を追加してください。 Option "XkbVariant" ",winkeys" ロシア語の XKB キーボードは、 地域化されていないアプリケーションではうまく動かないかも知れません。 地域化がされたアプリケーションは少なくともプログラムの最初の方で XtSetLanguageProc (NULL, NULL, NULL); を呼び出すべきです。 Xorg アプリケーションを地域化する方法については、 KOI8-R for X Window を参照してください。 台湾向けの繁体字中国語への地域化 地域化 繁体字中国語 &os;-Taiwan プロジェクトは、多くの 中国語 ports を利用した、 &os; を中国語化するための手引き http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/ を提供しています。 &os; Chinese HOWTO の現在の編集者は Shen Chuan-Hsing statue@freebsd.sinica.edu.tw です。 ドイツ語への地域化 (すべての ISO 8859-1 言語向け) 地域化 ドイツ語 Slaven Rezic eserte@cs.tu-berlin.de は &os; マシン上でウムラウトを使うためのチュートリアルを書きました。 チュートリアルはドイツ語で書かれており、 から入手できます。 ギリシャ語への地域化 地域化 Greek Nikos Kokkalis nickkokkalis@gmail.com は、 &os; におけるギリシャ語のサポートについての記事を書きました。 これは、公式の &os; ギリシャ語ドキュメンテーションの一部として ここ で読むことができます。 この文書は、ギリシャ語で書かれています。 日本語/韓国語への地域化 地域化 日本語 地域化 韓国語 - 日本語に関しては - http://www.jp.FreeBSD.org/ - を、韓国語に関しては - http://www.kr.FreeBSD.org/ + 日本語に関しては http://www.jp.FreeBSD.org/ + を、韓国語に関しては http://www.kr.FreeBSD.org/ を参照してください。 英語以外の &os; ドキュメント &os; の文書の一部を他の言語に翻訳してくれている貢献者たちがいます。 これらは メインサイト のリンクを辿るか /usr/share/doc から入手できます。