FreeBSD 4.11-R で ja_JP.UTF-8 を使う
ロケールデータベース


ports/misc/utf8locale

FreeBSD 5.x には各言語の UTF-8 ロケールが用意されていますが、 4.11-R の場合は、ports から別途インストールする必要があります。 /usr/pors/misc/utf8locale をインストールします。


パッチ

ports のロケールデータベースをインストールしてテストしてみたところ、 scanf (sscanf) が誤動作しました。scanf 側のバグのような気もするのです が、SPACE に関するエントリをコメントアウトすればとりあえず実用の範囲で 動くようになるので、以下のようなパッチをあててからインストールしています。 /usr/ports/misc/utf8locale/files/patch-local-space というファイル名 で置いてからインストールしてください。

--- mklocale/la_LN.UTF-8.src~	Sat Dec  4 17:51:01 2004
+++ mklocale/la_LN.UTF-8.src	Sat Dec 11 00:58:33 2004
@@ -70,7 +70,7 @@
 LOWER     0x00aa  0x00b5  0x00ba  0x00df - 0x00f6  0x00f8 - 0x00ff
 PUNCT     0x00a1 - 0x00a9  0x00ab - 0x00b1  0x00b4  0x00b6 - 0x00b8
 PUNCT     0x00bb  0x00bf  0x00d7  0x00f7
-SPACE     0x0085  0x00a0
+/* SPACE     0x0085  0x00a0 */
 UPPER     0x00c0 - 0x00d6  0x00d8 - 0x00de
 BLANK     0x00a0
 PRINT     0x00a0 - 0x00ff

インストール

# cd /usr/ports/misc/utf8locale
# make install

でインストール後、 LANG や LC_CTYPE や LC_ALL に ja_JP.UTF-8 を指定します。

データベースの実体は /usr/local/share/locale 以下にインストールされま すが、/usr/share/locale にシンボリックリンクが張られこれが参照されます。 FreeBSD ベースシステムのアップグレードなどを行うと、/usr/share/locale 以下がクリアされてしまうので、make installworld したあとで

# cd /usr/ports/misc/utf8lcoale
# make all deinstall reinstall

するのを忘れないようにしましょう。


$Date: 2005/07/13 11:03:25 $