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

man-db locale support


In article <y5aso44qwm9.fsf@xlj06203.nifty.ne.jp>, 
 on debian-devel@lists.debian.org, I wrote:

>  We are looking forward to new man-db coming with Japanese support :)

I have found that man-db_2.3.10-69j has been installed and it does
now support to display manpages written in Japanese. Wow!

Thank you for your effort, Fabrizio.

But if one set LANG environment to ja_JP.ujis, this man-db does not
search man/ja/ tree. So LANG=ja is required. 

I have found that following change is done between 2.3.10-69i 
and 2.3.10-69j:

@@ -778,8 +778,8 @@
                                internal_locale = "C";
        if ( internal_locale ) {
                internal_locale = xstrdup( internal_locale);
-               if (internal_locale[2] == '_' )
-                       internal_locale[2] = '\0';
+               /*if (internal_locale[2] == '_' )
+                       internal_locale[2] = '\0';*/
 /* export argv, it might be needed when invoking the vendor supplied browser */

Why did you comment out these lines ? Many users who use Japanese
may set their LANG environment to ja_JP.ujis.

But if you think that each of ja_JP.ujis, ja_JP.jis, ja_JP.sjis is
different each other, and they should be treated differently, then
we should create directories: 
as well as /usr/share/man/ja.

I don't know which is better. I have heard that the symbolic link of 
/usr/man/ja_JP.ujis to /usr/man/ja is obsoleted and /usr/share/man/ja_JP.ujis
will not be created, 

But, FHS 2.0 included in debian-policy describes:

# It maybe boring to you, but I don't know these ideas well now, 
# so I can't make assure which part is especially important,,,

4.8.2  /usr/share/man : Manual pages


Manual pages are stored in <mandir>/<locale>/man<section>/<arch>.  An
explanation of <mandir>, <locale>, <section>, and <arch> is given below.

Provisions must be made in the structure of /usr/share/man to support
manual pages which are written in different (or multiple) languages.
These provisions must take into account the storage and reference of
these manual pages.  Relevant factors include language (including
geographical-based differences), and character code set.

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:


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.

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.

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


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

Various 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

In order to this documents, I feel that we should create /usr/share/man/ja_JP.ujis
for current manpages written in ja_JP.ujis coded Japanese.

# I checked that manpages under /usr/share/man/ja/, and found that most of them
# are written in ja_JP.ujis.

as just a shortcut, I create symbolic link ja_JP.ujis to ja under /usr/share/man
locally, then man-db_2.3.10-69j successfully find manpages under that tree.

I found dhelp_0.3.14 creates /usr/share/man/de_DE, but man-db_2.3.10-69j creates
/usr/share/man/de (as well as es and it) and does not touch de_DE.

and Examples in FHS 2.0:

Language   Territory        Character Set     Directory
English    --               ASCII             /usr/share/man/en
English    United Kingdom   ASCII             /usr/share/man/en_GB
English    United States    ASCII             /usr/share/man/en_US
French     Canada           ISO 8859-1        /usr/share/man/fr_CA
French     France           ISO 8859-1        /usr/share/man/fr_FR
German     Germany          ISO 646           /usr/share/man/de_DE.646
German     Germany          ISO 6937          /usr/share/man/de_DE.6937
German     Germany          ISO 8859-1        /usr/share/man/de_DE.88591
German     Switzerland      ISO 646           /usr/share/man/de_CH.646
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

So, then, what should we do ? Maybe manpages-ja creates the symbolic link 
(ja_JP.ujis -> ja) ? or man-db creates separate directories for 
many locales in the same way of `locales' package ?

# I don't know why `locale-ja' has not been merged into `locales' package,
# but it is another story,,,

I like to know the opinions of maintainers and users. Thanks.

  Taketoshi Sano: <sano@debian.org>,<sano@debian.or.jp>,<kgh12351@nifty.ne.jp>

Reply to: