]> pere.pagekite.me Git - homepage.git/blob - linux/glibc/howto.html
Mention RFC 3066.
[homepage.git] / linux / glibc / howto.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html lang="en">
3 <head>
4 <title>How to write a GNU libc locale</title>
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6 <meta http-equiv="Content-Language" content="en">
7 <link rel="stylesheet" type="text/css" href="http://i18n.skolelinux.no/stilsett.css" id="nn1">
8 <link rel="stylesheet" type="text/css" href="http://i18n.skolelinux.no/utskrift.css" media="print" id="nn2">
9
10 </head>
11
12 <body>
13 <div class="topp">
14 <h1>How to write a GNU libc locale</h1>
15 </div>
16
17 <div class="meny">
18 <a href="./">Back</a>
19 </div>
20
21 <div class="hovuddel">
22
23 <p>This is a draft document explaining how to write locale files
24 for GNU libc. It will not go into details, but reference
25 specifications. It will on the other hand mention some of the
26 pitfalls, and try to document the current practice.</p>
27
28 <h2>How to choose the locale file name</h2>
29
30 <p>Locale names consist of three parts. The language code, the
31 country/region code, and the optional modifier. The format is
32 language_REGION@modifier. The language code is a code from
33 ISO 639. The two-letter code is prefered, but a three letter
34 code is accepted if no two-letter code is available. The
35 country/region code is a code from ISO 3166. If the language
36 or region in question is missing in the ISO standard, one need
37 to get the ISO standard updated before the locale will be
38 included in glibc.</p>
39
40 <p>Little is known about the requirements for the naming of
41 modifiers. The following modifiers are currently used:
42 abegede, cyrillic, euro and saaho. This might indicate that
43 lower case letters are prefered in modifier names.</p>
44
45 <p>It is recommended to follow RFC 3066 when selecting locale
46 names.</p>
47
48 <ul>
49
50 <li><a href="http://www.unicode.org/onlinedat/countries.html">ISO
51 3166</a></li>
52
53 <li><a href="http://www.loc.gov/standards/iso639-2/">ISO 639</a></li>
54
55 <li><a href="http://rfc.sunsite.dk/rfc/rfc3066.html"> RFC 3066
56 - Tags for the Identification of Languages</a></li>
57
58 </ul>
59
60 <h2>Category order</h2>
61
62 <p>To make it easier to compare locales with each other, I
63 recommend using the same order for the categories in all
64 locales. Any order will do, so I picked the order used in most
65 locales, and decided to recommend this order:</p>
66
67 <ol>
68 <li>LC_IDENTIFICATION
69 <li>LC_CTYPE
70 <li>LC_COLLATE
71 <li>LC_MONETARY
72 <li>LC_NUMERIC
73 <li>LC_TIME
74 <li>LC_MESSAGES
75 <li>LC_PAPER
76 <li>LC_NAME
77 <li>LC_ADDRESS
78 <li>LC_TELEPHONE
79 <li>LC_MEASUREMENT
80 </ol>
81
82 <h2>Reuse when possible</h2>
83
84 - "copy" from existing locales if the content should be identical
85
86 <h2>LD_INDENTIFICATION</h2>
87
88 - standard refs in the LD_INDENTIFICATION
89
90 <h2>LC_MESSAGES</h2>
91
92 - yes/no expr should have the form ^[yYnN<extra>], without 0 and 1
93
94 <h2>Standard documents and specifications</h2>
95
96 </div>
97
98 <hr>
99 <address><a href="mailto:pere@hungry.com">Petter Reinholdtsen</a></address>
100 <!-- Created: Sun Mar 21 18:14:42 CET 2004 -->
101 <!-- hhmts start -->
102 Last modified: Tue Jul 27 09:03:37 CEST 2004
103 <!-- hhmts end -->
104 </body>
105 </html>