[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: locale name for Japanese EUC encoding



佐野@浜松です。

In <14337.60784.387957.9786L@lavender.ukai.org>,
 at Mon, 11 Oct 1999 23:00:16 +0900,
 on locale name for Japanese EUC encoding (Re: Re: Where are the prefered place for manpages written in Japanese ?),
  Fumitoshi UKAI <ukai@debian.or.jp> さん writes:

> > # 余談ですが、FHS は他の Un*x も考慮した規格の
> > # はずですよね。だとすれば、Linux 以外も考えて
> > # ja_JP.eucJP がいいかもしれませんね。
> > # See: http://www.opengroup.or.jp/jvc/cde/sjis-euc.html

このページ、職場からは読めなかったです。タイムアウトしちゃう。

> これ結局どちら ujis or eucJP がよいのでしょうね?

FHS 2.0 には

 =====  =====  =====  =====  =====  =====  =====  =====  =====  =====  ===== 

This naming of language subdirectories of /usr/share/man is based on
Appendix E of the POSIX 1003.1 standard which describes the locale
identification string -- the most well-accepted method to describe a
cultural environment.  The <locale> string is:

 /usr/share/man の言語別サブディレクトリの命名は POSIX 1003.1 標準の
付録 E をベースにしている。これは locale 識別文字列を規定したものであり
文化的環境を規定するために最も広く受け入れられている方法である。

<locale> 文字列は以下の形式で指定される

     <language>[_<territory>][.<character-set>][,<version>]

The <language> field shall be taken from ISO 639 (a code for the
representation of names of languages).  It shall be two characters wide
and specified with lowercase letters only.

 <language> フィールドは ISO639 (言語名を表現するコード) から選ばれる。
これは 2 文字からなり、小文字 (lowercase) だけで指定される。

The <territory> field shall be the two-letter code of ISO 3166 (a
specification of representations of countries), if possible.  (Most
people are familiar with the two-letter codes used for the country codes
in email addresses.1) It shall be two characters wide and specified with
uppercase letters only.

 <territory> フィールドはそれが可能な場合には ISO 3166 (国別コード) に
よる 2 文字である。(ほとんどの人々は e-mail アドレスに使われている 2 文字
から成る国別コードに慣れているはず。) これは 2 文字であり、かつ大文字
 (uppercase) だけで指定される。

The <character-set> field should represent the standard describing the
character set.  If the <character-set> field is just a numeric
specification, the number represents the number of the international
standard describing the character set.  It is recommended that this be a
numeric representation if possible (ISO standards, especially), not
include additional punctuation symbols, and that any letters be in
lowercase.

 <character-set> フィールドは文字セットを表現する標準コードである。
このフィールドに数値だけが指定されている場合、この数値は文字セットを
規定する国際標準 (International Standard) の番号を意味する。
可能であれば、句読点無しの数値表現 (特に ISO 標準の番号) とすることが
推奨される。またすべての文字は小文字 (lowercase) とすることが推奨される。

A parameter specifying a <version> of the profile may be placed after
the <character-set> field, delimited by a comma.  This may be used to
discriminate between different cultural needs; for instance, dictionary
order versus a more systems-oriented collating order.  This standard
recommends not using the <version> field, unless it is necessary.

プロファイルの <version> を規定するパラメータをコンマで区切って
 <character-set> フィールドの後に置くことができる。
これはいくつかの異なる文化的要求を区別するために利用できる。例えば、
辞書順とシステムによる対照順 (collating order) など。この標準では
必要が無い限り、 <version> フィールドを使わないことを推奨する。

Systems which use a unique language and code set for all manual pages
may omit the <locale> substring and store all manual pages in <mandir>.
For example, systems which only have English manual pages coded with
ASCII, may store manual pages (the man<section> directories) directly in
/usr/share/man.  (That is the traditional circumstance and arrangement,
in fact.)

すべてのマニュアルページについて唯一の言語とコードセットを採用する
システムでは、 <locale> 部分文字列を省略して <mandir> にすべての
マニュアルページを保存することができる。例えば、ASCII コードによる
英語のマニュアルページのみを持つシステムではマニュアルページ
 (man<section> ディレクトリ群) を /usr/share/man に直接保存できる。
 (これは事実上、伝統的な環境、配置となっている。)

Countries for which there is a well-accepted standard character code set
may omit the <character-set> field, but it is strongly recommended that
it be included, especially for countries with several competing
standards.

広く受け入れられた標準的な文字コードセットがひとつだけ存在する国では
 <character-set> フィールドを省略できる。しかし、これを含むことは
強く推奨される。
特に複数の標準が並存する国では <character-set> フィールドを指定するべき
である。

 =====  =====  =====  =====  =====  =====  =====  =====  =====  =====  ===== 

と書かれてますね。「小文字が推奨」というあたりを見ると ujis のほうが
好まれるのかなという気もする。

 ISO 関係の情報を探して  <http://anubis.dkuug.dk/JTC1/SC22/WG15/> あたりを
眺めてみたんですが、あんまり参考になる情報は見つからなかったです。

一方、 <http://www.sun.com/software/white-papers/wp-asianlanguage/#locales> を
見ると

Japanese Solaris 7 Operating Environment

   The following tables contain an overview of features of the Japanese
   Solaris 7 operating environment

   CAPTION: TABLE  10   Codesets

   Locale Name	   Description	   Supported Character Set
   ja		   Japanese EUC	   JIS x 0201, JIS x 0208, JIS x 0212, UDC, VDC
   ja_JP.PCK	   Japanese PCK1   JIS x 0201, JIS x 0208, UDC, VDC
   ja_JP.UTF-8	   en_US.UTF-8	   JIS x 0212, UDC, VDC, ISO 10646

とかなっているみたいですね。 

   Codeset Conversions Supported

   eucJP   SJIS   PCK   ISO-2022-JP   UTF-8   JIS7   jis
   ibmj
   For the JavaTM language codeset, UTF-8-Java
   ibmj-EBCDIK

とか書いてあって eucJP という Codeset の名前は使われているけど、
ロケール名としては ja が Japanese EUC を現わすことになっているみたい。

職場の FreeBSD 2.2.7 なサーバーの /usr/share/locale を見ると
 ja_JP.EUC と ja_JP.SJIS の 2 つが用意されているみたいだけど、
たしか以前 freebsd-tech-jp とかで "EUC" だけなのは NG で EUC-JP (?) とか
しないと EUC-KR などを区別できない、というような話を見た覚えがあるような。

 slink なシステムで ls /usr/share/locale/|grep ja すると

ja
ja_JP
ja_JP.EUC
ja_JP.iso-2022-jp
ja_JP.iso-2022-jp.strict
ja_JP.jis
ja_JP.jis-1978
ja_JP.jis-1983
ja_JP.jis-1990
ja_JP.sjis
ja_JP.ujis

とか出てくるんですが、

 potato なシステムでやると

ja
ja_JP
ja_JP.sjis
ja_JP.ujis

ですね。

たぶん、Linux 上では結局 glibc (2.1 or 2.2 ?) での実装方針次第、って
ことになるような気もするんですが、今のところは FHS 2.0 の examples に
従って

Language   Territory        Character Set     Directory
-------------------------------------------------------------------------
Japanese   Japan            JIS               /usr/share/man/ja_JP.jis
Japanese   Japan            SJIS              /usr/share/man/ja_JP.sjis
Japanese   Japan            UJIS (or EUC-J)   /usr/share/man/ja_JP.ujis

としておけば良いように思います。もし ujis より eucJP にするべき、
ということなら、まず FHS 2.0 の examples を修正するよう動かないと
いけないのでは ?

 glibc はまだこのへんの locale を実装してはいないのですよね ?
あれ、でも glibc_2.1.2-5 のパッケージソースには
localedata/locales/ja_JP ってのがあるな。こっちには EUC とか SJIS とかは
無いみたいだけど。

iconvdata/euc-jp.c には

#define CHARSET_NAME            "EUC-JP//"

とか書いてあるから、EUC-JP がいいのかな、、、

 CN, KR, TW が EUC-CN, EUC-KR, EUC-TW を使うならそれに揃えて EUC-JP かな。

あ、potato の /usr/share/locale/locale.alias には

japanese        ja_JP.EUC

となってますね。

このファイルには /usr/lib/X11/locale/locale.alias に対応するもの、とか
いう説明が書いてあって、そっち (/usr/lib/X11/locale/locale.alias) には

ja                      ja_JP.eucJP
ja_JP                   ja_JP.eucJP
ja_JP.ujis              ja_JP.eucJP
ja_JP.eucJP             ja_JP.eucJP
Jp_JP                   ja_JP.eucJP
ja_JP.AJEC              ja_JP.eucJP
ja_JP.EUC               ja_JP.eucJP
ja_JP.ISO-2022-JP       ja_JP.JIS7
ja_JP.JIS               ja_JP.JIS7
ja_JP.jis7              ja_JP.JIS7
ja_JP.mscode            ja_JP.SJIS
ja_JP.SJIS              ja_JP.SJIS

ko                      ko_KR.eucKR
ko_KR                   ko_KR.eucKR
ko_KR.EUC               ko_KR.eucKR
ko_KR.euc               ko_KR.eucKR

# The following locale names are used in HPUX 9.x

japanese                ja_JP.SJIS
japanese.euc            ja_JP.eucJP
korean                  ko_KR.eucKR

# Microsoft Windows/NT 3.51 Japanese Edition
Korean_Korea.949        ko_KR.eucKR
Japanese_Japan.932      ja_JP.SJIS

# Other miscellaneous locale names

japan                   ja_JP.eucJP
Japanese-EUC            ja_JP.eucJP

とかなってますね。X11 的には ja_JP.eucJP ( + ja_JP.JIS7, ja_JP.SJIS) が
 full locale name ってことなんでしょうか。

まあ HPUX 9.x と Solaris でも違うみたいなんで、絶対一緒じゃなきゃ、って
ことは無いかもしませんが。

そういえば /usr/lib/X11/ にある app-default の置き場所 (directory) は
 ja_JP.ujis を使ってますが、xcalendar-i18n にリクエストされた KR な
リソースの置き場所は ko_KR.eucKR だったりしますね。

やっぱり長期的には FHS 2.0 の examples に修正要求を出して、
glibc の locale も含めて ja_JP.eucJP を使う方向に振っていったほうが
わかりやすくて良いような気が。

でも今の時点では (フリーズまでわずかだし) とりあえず ja_JP.ujis に
 EUC-JP な manpages を入れて、鵜飼さんの書いた dh_link で ja/ 以下に
リンクを張る、という対処にしておきましょう。

これに関する問題提起は potato のリリース後にしたほうがタイミング的に
良いだろうと思います。

--
     # 11/13 に何かが起きる? > "http://www.szlug.factory.to"
     # (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
    <xlj06203@nifty.ne.jp> : Taketoshi Sano (佐野 武俊)