xref: /dflybsd-src/share/man/man7/nls.7 (revision a2166fa415c3b1971e810e31b9da5c2139713510)
1*a2166fa4SSascha Wildner.\"     $NetBSD: nls.7,v 1.15 2009/04/09 02:51:54 joerg Exp $
2dcc86267SJeroen Ruigrok/asmodai.\"
3dcc86267SJeroen Ruigrok/asmodai.\" Copyright (c) 2003 The NetBSD Foundation, Inc.
4dcc86267SJeroen Ruigrok/asmodai.\" All rights reserved.
5dcc86267SJeroen Ruigrok/asmodai.\"
6dcc86267SJeroen Ruigrok/asmodai.\" This code is derived from software contributed to The NetBSD Foundation
7dcc86267SJeroen Ruigrok/asmodai.\" by Gregory McGarry.
8dcc86267SJeroen Ruigrok/asmodai.\"
9dcc86267SJeroen Ruigrok/asmodai.\" Redistribution and use in source and binary forms, with or without
10dcc86267SJeroen Ruigrok/asmodai.\" modification, are permitted provided that the following conditions
11dcc86267SJeroen Ruigrok/asmodai.\" are met:
12dcc86267SJeroen Ruigrok/asmodai.\" 1. Redistributions of source code must retain the above copyright
13dcc86267SJeroen Ruigrok/asmodai.\"    notice, this list of conditions and the following disclaimer.
14dcc86267SJeroen Ruigrok/asmodai.\" 2. Redistributions in binary form must reproduce the above copyright
15dcc86267SJeroen Ruigrok/asmodai.\"    notice, this list of conditions and the following disclaimer in the
16dcc86267SJeroen Ruigrok/asmodai.\"    documentation and/or other materials provided with the distribution.
17dcc86267SJeroen Ruigrok/asmodai.\"
18dcc86267SJeroen Ruigrok/asmodai.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19dcc86267SJeroen Ruigrok/asmodai.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20dcc86267SJeroen Ruigrok/asmodai.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21dcc86267SJeroen Ruigrok/asmodai.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22dcc86267SJeroen Ruigrok/asmodai.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23dcc86267SJeroen Ruigrok/asmodai.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24dcc86267SJeroen Ruigrok/asmodai.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25dcc86267SJeroen Ruigrok/asmodai.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26dcc86267SJeroen Ruigrok/asmodai.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27dcc86267SJeroen Ruigrok/asmodai.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28dcc86267SJeroen Ruigrok/asmodai.\" POSSIBILITY OF SUCH DAMAGE.
29dcc86267SJeroen Ruigrok/asmodai.\"
30*a2166fa4SSascha Wildner.Dd November 24, 2013
31dcc86267SJeroen Ruigrok/asmodai.Dt NLS 7
32dcc86267SJeroen Ruigrok/asmodai.Os
33dcc86267SJeroen Ruigrok/asmodai.Sh NAME
34dcc86267SJeroen Ruigrok/asmodai.Nm NLS
35dcc86267SJeroen Ruigrok/asmodai.Nd Native Language Support Overview
36dcc86267SJeroen Ruigrok/asmodai.Sh DESCRIPTION
37dcc86267SJeroen Ruigrok/asmodaiNative Language Support (NLS) provides commands for a single
38dcc86267SJeroen Ruigrok/asmodaiworldwide operating system base.
39dcc86267SJeroen Ruigrok/asmodaiAn internationalized system has no built-in assumptions or dependencies
40dcc86267SJeroen Ruigrok/asmodaion language-specific or cultural-specific conventions such as:
41dcc86267SJeroen Ruigrok/asmodai.Pp
42dcc86267SJeroen Ruigrok/asmodai.Bl -bullet -offset indent -compact
43dcc86267SJeroen Ruigrok/asmodai.It
44dcc86267SJeroen Ruigrok/asmodaiCharacter classifications
45dcc86267SJeroen Ruigrok/asmodai.It
46dcc86267SJeroen Ruigrok/asmodaiCharacter comparison rules
47dcc86267SJeroen Ruigrok/asmodai.It
48dcc86267SJeroen Ruigrok/asmodaiCharacter collation order
49dcc86267SJeroen Ruigrok/asmodai.It
50dcc86267SJeroen Ruigrok/asmodaiNumeric and monetary formatting
51dcc86267SJeroen Ruigrok/asmodai.It
52dcc86267SJeroen Ruigrok/asmodaiDate and time formatting
53dcc86267SJeroen Ruigrok/asmodai.It
54dcc86267SJeroen Ruigrok/asmodaiMessage-text language
55dcc86267SJeroen Ruigrok/asmodai.It
56dcc86267SJeroen Ruigrok/asmodaiCharacter sets
57dcc86267SJeroen Ruigrok/asmodai.El
58dcc86267SJeroen Ruigrok/asmodai.Pp
59dcc86267SJeroen Ruigrok/asmodaiAll information pertaining to cultural conventions and language is
60dcc86267SJeroen Ruigrok/asmodaiobtained at program run time.
61dcc86267SJeroen Ruigrok/asmodai.Pp
62dcc86267SJeroen Ruigrok/asmodai.Dq Internationalization
63dcc86267SJeroen Ruigrok/asmodai(often abbreviated
64dcc86267SJeroen Ruigrok/asmodai.Dq i18n )
65dcc86267SJeroen Ruigrok/asmodairefers to the operation by which system software is developed to support
66dcc86267SJeroen Ruigrok/asmodaimultiple cultural-specific and language-specific conventions.
67dcc86267SJeroen Ruigrok/asmodaiThis is a generalization process by which the system is untied from
68dcc86267SJeroen Ruigrok/asmodaicalling only English strings or other English-specific conventions.
69dcc86267SJeroen Ruigrok/asmodai.Dq Localization
70dcc86267SJeroen Ruigrok/asmodai(often abbreviated
71dcc86267SJeroen Ruigrok/asmodai.Dq l10n )
72dcc86267SJeroen Ruigrok/asmodairefers to the operations by which the user environment is customized to
73dcc86267SJeroen Ruigrok/asmodaihandle its input and output appropriate for specific language and cultural
74dcc86267SJeroen Ruigrok/asmodaiconventions.
75dcc86267SJeroen Ruigrok/asmodaiThis is a specialization process, by which generic methods already
76dcc86267SJeroen Ruigrok/asmodaiimplemented in an internationalized system are used in specific ways.
77dcc86267SJeroen Ruigrok/asmodaiThe formal description of cultural conventions for some country, together
78dcc86267SJeroen Ruigrok/asmodaiwith all associated translations targeted to the native language, is
79dcc86267SJeroen Ruigrok/asmodaicalled the
80dcc86267SJeroen Ruigrok/asmodai.Dq locale .
81dcc86267SJeroen Ruigrok/asmodai.Pp
82dcc86267SJeroen Ruigrok/asmodai.Dx
83dcc86267SJeroen Ruigrok/asmodaiprovides extensive support to programmers and system developers to
84dcc86267SJeroen Ruigrok/asmodaienable internationalized software to be developed.
85dcc86267SJeroen Ruigrok/asmodai.Dx
86dcc86267SJeroen Ruigrok/asmodaialso supplies a large variety of locales for system localization.
87dcc86267SJeroen Ruigrok/asmodai.Ss Localization of Information
88dcc86267SJeroen Ruigrok/asmodaiAll locale information is accessible to programs at run time so that
89dcc86267SJeroen Ruigrok/asmodaidata is processed and displayed correctly for specific cultural
90dcc86267SJeroen Ruigrok/asmodaiconventions and language.
91dcc86267SJeroen Ruigrok/asmodai.Pp
92dcc86267SJeroen Ruigrok/asmodaiA locale is divided into categories.
93dcc86267SJeroen Ruigrok/asmodaiA category is a group of language-specific and culture-specific conventions
94dcc86267SJeroen Ruigrok/asmodaias outlined in the list above.
95dcc86267SJeroen Ruigrok/asmodaiISO C specifies the following six standard categories supported by
96dcc86267SJeroen Ruigrok/asmodai.Dx :
97dcc86267SJeroen Ruigrok/asmodai.Pp
98*a2166fa4SSascha Wildner.Bl -tag -compact -width ".Ev LC_MONETARY"
99*a2166fa4SSascha Wildner.It Ev LC_COLLATE
100dcc86267SJeroen Ruigrok/asmodaistring-collation order information
101*a2166fa4SSascha Wildner.It Ev LC_CTYPE
102dcc86267SJeroen Ruigrok/asmodaicharacter classification, case conversion, and other character attributes
103*a2166fa4SSascha Wildner.It Ev LC_MESSAGES
104dcc86267SJeroen Ruigrok/asmodaithe format for affirmative and negative responses
105*a2166fa4SSascha Wildner.It Ev LC_MONETARY
106dcc86267SJeroen Ruigrok/asmodairules and symbols for formatting monetary numeric information
107*a2166fa4SSascha Wildner.It Ev LC_NUMERIC
108dcc86267SJeroen Ruigrok/asmodairules and symbols for formatting nonmonetary numeric information
109*a2166fa4SSascha Wildner.It Ev LC_TIME
110dcc86267SJeroen Ruigrok/asmodairules and symbols for formatting time and date information
111dcc86267SJeroen Ruigrok/asmodai.El
112dcc86267SJeroen Ruigrok/asmodai.Pp
113dcc86267SJeroen Ruigrok/asmodaiLocalization of the system is achieved by setting appropriate values
114dcc86267SJeroen Ruigrok/asmodaiin environment variables to identify which locale should be used.
115dcc86267SJeroen Ruigrok/asmodaiThe environment variables have the same names as their respective
116dcc86267SJeroen Ruigrok/asmodailocale categories.
117dcc86267SJeroen Ruigrok/asmodaiAdditionally, the
118dcc86267SJeroen Ruigrok/asmodai.Ev LANG ,
119dcc86267SJeroen Ruigrok/asmodai.Ev LC_ALL ,
120dcc86267SJeroen Ruigrok/asmodaiand
121dcc86267SJeroen Ruigrok/asmodai.Ev NLSPATH
122dcc86267SJeroen Ruigrok/asmodaienvironment variables are used.
123dcc86267SJeroen Ruigrok/asmodaiThe
124dcc86267SJeroen Ruigrok/asmodai.Ev NLSPATH
125dcc86267SJeroen Ruigrok/asmodaienvironment variable specifies a colon-separated list of directory names
126dcc86267SJeroen Ruigrok/asmodaiwhere the message catalog files of the NLS database are located.
127dcc86267SJeroen Ruigrok/asmodaiThe
128dcc86267SJeroen Ruigrok/asmodai.Ev LC_ALL
129dcc86267SJeroen Ruigrok/asmodaiand
130dcc86267SJeroen Ruigrok/asmodai.Ev LANG
131dcc86267SJeroen Ruigrok/asmodaienvironment variables also determine the current locale.
132dcc86267SJeroen Ruigrok/asmodai.Pp
133dcc86267SJeroen Ruigrok/asmodaiThe values of these environment variables contains a string format as:
134dcc86267SJeroen Ruigrok/asmodai.Bd -literal
135dcc86267SJeroen Ruigrok/asmodai	language[_territory][.codeset][@modifier]
136dcc86267SJeroen Ruigrok/asmodai.Ed
137dcc86267SJeroen Ruigrok/asmodai.Pp
138dcc86267SJeroen Ruigrok/asmodaiValid values for the language field come from the ISO639 standard which
139dcc86267SJeroen Ruigrok/asmodaidefines two-character codes for many languages.
140dcc86267SJeroen Ruigrok/asmodaiSome common language codes are:
141*a2166fa4SSascha Wildner.Bl -column "PERSIAN (farsi)" "Sy Code" "OCEANIC/INDONESIAN"
142*a2166fa4SSascha Wildner.It Sy Language Name Ta Sy Code Ta Sy Language Family
143*a2166fa4SSascha Wildner.It ABKHAZIAN	AB	IBERO-CAUCASIAN
144*a2166fa4SSascha Wildner.It AFAN (OROMO)	OM	HAMITIC
145*a2166fa4SSascha Wildner.It AFAR	AA	HAMITIC
146*a2166fa4SSascha Wildner.It AFRIKAANS	AF	GERMANIC
147*a2166fa4SSascha Wildner.It ALBANIAN	SQ	INDO-EUROPEAN (OTHER)
148*a2166fa4SSascha Wildner.It AMHARIC	AM	SEMITIC
149*a2166fa4SSascha Wildner.It ARABIC	AR	SEMITIC
150*a2166fa4SSascha Wildner.It ARMENIAN	HY	INDO-EUROPEAN (OTHER)
151*a2166fa4SSascha Wildner.It ASSAMESE	AS	INDIAN
152*a2166fa4SSascha Wildner.It AYMARA	AY	AMERINDIAN
153*a2166fa4SSascha Wildner.It AZERBAIJANI	AZ	TURKIC/ALTAIC
154*a2166fa4SSascha Wildner.It BASHKIR	BA	TURKIC/ALTAIC
155*a2166fa4SSascha Wildner.It BASQUE	EU	BASQUE
156*a2166fa4SSascha Wildner.It BENGALI	BN	INDIAN
157*a2166fa4SSascha Wildner.It BHUTANI	DZ	ASIAN
158*a2166fa4SSascha Wildner.It BIHARI	BH	INDIAN
159*a2166fa4SSascha Wildner.It BISLAMA     Ta BI   Ta ""
160*a2166fa4SSascha Wildner.It BRETON	BR	CELTIC
161*a2166fa4SSascha Wildner.It BULGARIAN	BG	SLAVIC
162*a2166fa4SSascha Wildner.It BURMESE	MY	ASIAN
163*a2166fa4SSascha Wildner.It BYELORUSSIAN	BE	SLAVIC
164*a2166fa4SSascha Wildner.It CAMBODIAN	KM	ASIAN
165*a2166fa4SSascha Wildner.It CATALAN	CA	ROMANCE
166*a2166fa4SSascha Wildner.It CHINESE	ZH	ASIAN
167*a2166fa4SSascha Wildner.It CORSICAN	CO	ROMANCE
168*a2166fa4SSascha Wildner.It CROATIAN	HR	SLAVIC
169*a2166fa4SSascha Wildner.It CZECH	CS	SLAVIC
170*a2166fa4SSascha Wildner.It DANISH	DA	GERMANIC
171*a2166fa4SSascha Wildner.It DUTCH	NL	GERMANIC
172*a2166fa4SSascha Wildner.It ENGLISH	EN	GERMANIC
173*a2166fa4SSascha Wildner.It ESPERANTO	EO	INTERNATIONAL AUX.
174*a2166fa4SSascha Wildner.It ESTONIAN	ET	FINNO-UGRIC
175*a2166fa4SSascha Wildner.It FAROESE	FO	GERMANIC
176*a2166fa4SSascha Wildner.It FIJI	FJ	OCEANIC/INDONESIAN
177*a2166fa4SSascha Wildner.It FINNISH	FI	FINNO-UGRIC
178*a2166fa4SSascha Wildner.It FRENCH	FR	ROMANCE
179*a2166fa4SSascha Wildner.It FRISIAN	FY	GERMANIC
180*a2166fa4SSascha Wildner.It GALICIAN	GL	ROMANCE
181*a2166fa4SSascha Wildner.It GEORGIAN	KA	IBERO-CAUCASIAN
182*a2166fa4SSascha Wildner.It GERMAN	DE	GERMANIC
183*a2166fa4SSascha Wildner.It GREEK	EL	LATIN/GREEK
184*a2166fa4SSascha Wildner.It GREENLANDIC	KL	ESKIMO
185*a2166fa4SSascha Wildner.It GUARANI	GN	AMERINDIAN
186*a2166fa4SSascha Wildner.It GUJARATI	GU	INDIAN
187*a2166fa4SSascha Wildner.It HAUSA	HA	NEGRO-AFRICAN
188*a2166fa4SSascha Wildner.It HEBREW	HE	SEMITIC
189*a2166fa4SSascha Wildner.It HINDI	HI	INDIAN
190*a2166fa4SSascha Wildner.It HUNGARIAN	HU	FINNO-UGRIC
191*a2166fa4SSascha Wildner.It ICELANDIC	IS	GERMANIC
192*a2166fa4SSascha Wildner.It INDONESIAN	ID	OCEANIC/INDONESIAN
193*a2166fa4SSascha Wildner.It INTERLINGUA	IA	INTERNATIONAL AUX.
194*a2166fa4SSascha Wildner.It INTERLINGUE	IE	INTERNATIONAL AUX.
195*a2166fa4SSascha Wildner.It INUKTITUT   Ta IU   Ta ""
196*a2166fa4SSascha Wildner.It INUPIAK	IK	ESKIMO
197*a2166fa4SSascha Wildner.It IRISH	GA	CELTIC
198*a2166fa4SSascha Wildner.It ITALIAN	IT	ROMANCE
199*a2166fa4SSascha Wildner.It JAPANESE	JA	ASIAN
200*a2166fa4SSascha Wildner.It JAVANESE	JV	OCEANIC/INDONESIAN
201*a2166fa4SSascha Wildner.It KANNADA	KN	DRAVIDIAN
202*a2166fa4SSascha Wildner.It KASHMIRI	KS	INDIAN
203*a2166fa4SSascha Wildner.It KAZAKH	KK	TURKIC/ALTAIC
204*a2166fa4SSascha Wildner.It KINYARWANDA	RW	NEGRO-AFRICAN
205*a2166fa4SSascha Wildner.It KIRGHIZ	KY	TURKIC/ALTAIC
206*a2166fa4SSascha Wildner.It KURUNDI	RN	NEGRO-AFRICAN
207*a2166fa4SSascha Wildner.It KOREAN	KO	ASIAN
208*a2166fa4SSascha Wildner.It KURDISH	KU	IRANIAN
209*a2166fa4SSascha Wildner.It LAOTHIAN	LO	ASIAN
210*a2166fa4SSascha Wildner.It LATIN	LA	LATIN/GREEK
211*a2166fa4SSascha Wildner.It LATVIAN	LV	BALTIC
212*a2166fa4SSascha Wildner.It LINGALA	LN	NEGRO-AFRICAN
213*a2166fa4SSascha Wildner.It LITHUANIAN	LT	BALTIC
214*a2166fa4SSascha Wildner.It MACEDONIAN	MK	SLAVIC
215*a2166fa4SSascha Wildner.It MALAGASY	MG	OCEANIC/INDONESIAN
216*a2166fa4SSascha Wildner.It MALAY	MS	OCEANIC/INDONESIAN
217*a2166fa4SSascha Wildner.It MALAYALAM	ML	DRAVIDIAN
218*a2166fa4SSascha Wildner.It MALTESE	MT	SEMITIC
219*a2166fa4SSascha Wildner.It MAORI	MI	OCEANIC/INDONESIAN
220*a2166fa4SSascha Wildner.It MARATHI	MR	INDIAN
221*a2166fa4SSascha Wildner.It MOLDAVIAN	MO	ROMANCE
222*a2166fa4SSascha Wildner.It MONGOLIAN   Ta MN   Ta ""
223*a2166fa4SSascha Wildner.It NAURU       Ta NA   Ta ""
224*a2166fa4SSascha Wildner.It NEPALI	NE	INDIAN
225*a2166fa4SSascha Wildner.It NORWEGIAN	NO	GERMANIC
226*a2166fa4SSascha Wildner.It OCCITAN	OC	ROMANCE
227*a2166fa4SSascha Wildner.It ORIYA	OR	INDIAN
228*a2166fa4SSascha Wildner.It PASHTO	PS	IRANIAN
229*a2166fa4SSascha Wildner.It PERSIAN (farsi)	FA	IRANIAN
230*a2166fa4SSascha Wildner.It POLISH	PL	SLAVIC
231*a2166fa4SSascha Wildner.It PORTUGUESE	PT	ROMANCE
232*a2166fa4SSascha Wildner.It PUNJABI	PA	INDIAN
233*a2166fa4SSascha Wildner.It QUECHUA	QU	AMERINDIAN
234*a2166fa4SSascha Wildner.It RHAETO-ROMANCE	RM	ROMANCE
235*a2166fa4SSascha Wildner.It ROMANIAN	RO	ROMANCE
236*a2166fa4SSascha Wildner.It RUSSIAN	RU	SLAVIC
237*a2166fa4SSascha Wildner.It SAMOAN	SM	OCEANIC/INDONESIAN
238*a2166fa4SSascha Wildner.It SANGHO	SG	NEGRO-AFRICAN
239*a2166fa4SSascha Wildner.It SANSKRIT	SA	INDIAN
240*a2166fa4SSascha Wildner.It SCOTS GAELIC	GD	CELTIC
241*a2166fa4SSascha Wildner.It SERBIAN	SR	SLAVIC
242*a2166fa4SSascha Wildner.It SERBO-CROATIAN	SH	SLAVIC
243*a2166fa4SSascha Wildner.It SESOTHO	ST	NEGRO-AFRICAN
244*a2166fa4SSascha Wildner.It SETSWANA	TN	NEGRO-AFRICAN
245*a2166fa4SSascha Wildner.It SHONA	SN	NEGRO-AFRICAN
246*a2166fa4SSascha Wildner.It SINDHI	SD	INDIAN
247*a2166fa4SSascha Wildner.It SINGHALESE	SI	INDIAN
248*a2166fa4SSascha Wildner.It SISWATI	SS	NEGRO-AFRICAN
249*a2166fa4SSascha Wildner.It SLOVAK	SK	SLAVIC
250*a2166fa4SSascha Wildner.It SLOVENIAN	SL	SLAVIC
251*a2166fa4SSascha Wildner.It SOMALI	SO	HAMITIC
252*a2166fa4SSascha Wildner.It SPANISH	ES	ROMANCE
253*a2166fa4SSascha Wildner.It SUNDANESE	SU	OCEANIC/INDONESIAN
254*a2166fa4SSascha Wildner.It SWAHILI	SW	NEGRO-AFRICAN
255*a2166fa4SSascha Wildner.It SWEDISH	SV	GERMANIC
256*a2166fa4SSascha Wildner.It TAGALOG	TL	OCEANIC/INDONESIAN
257*a2166fa4SSascha Wildner.It TAJIK	TG	IRANIAN
258*a2166fa4SSascha Wildner.It TAMIL	TA	DRAVIDIAN
259*a2166fa4SSascha Wildner.It TATAR	TT	TURKIC/ALTAIC
260*a2166fa4SSascha Wildner.It TELUGU	TE	DRAVIDIAN
261*a2166fa4SSascha Wildner.It THAI	TH	ASIAN
262*a2166fa4SSascha Wildner.It TIBETAN	BO	ASIAN
263*a2166fa4SSascha Wildner.It TIGRINYA	TI	SEMITIC
264*a2166fa4SSascha Wildner.It TONGA	TO	OCEANIC/INDONESIAN
265*a2166fa4SSascha Wildner.It TSONGA	TS	NEGRO-AFRICAN
266*a2166fa4SSascha Wildner.It TURKISH	TR	TURKIC/ALTAIC
267*a2166fa4SSascha Wildner.It TURKMEN	TK	TURKIC/ALTAIC
268*a2166fa4SSascha Wildner.It TWI	TW	NEGRO-AFRICAN
269*a2166fa4SSascha Wildner.It UIGUR       Ta UG   Ta ""
270*a2166fa4SSascha Wildner.It UKRAINIAN	UK	SLAVIC
271*a2166fa4SSascha Wildner.It URDU	UR	INDIAN
272*a2166fa4SSascha Wildner.It UZBEK	UZ	TURKIC/ALTAIC
273*a2166fa4SSascha Wildner.It VIETNAMESE	VI	ASIAN
274*a2166fa4SSascha Wildner.It VOLAPUK	VO	INTERNATIONAL AUX.
275*a2166fa4SSascha Wildner.It WELSH	CY	CELTIC
276*a2166fa4SSascha Wildner.It WOLOF	WO	NEGRO-AFRICAN
277*a2166fa4SSascha Wildner.It XHOSA	XH	NEGRO-AFRICAN
278*a2166fa4SSascha Wildner.It YIDDISH	YI	GERMANIC
279*a2166fa4SSascha Wildner.It YORUBA	YO	NEGRO-AFRICAN
280*a2166fa4SSascha Wildner.It ZHUANG      Ta ZA   Ta ""
281*a2166fa4SSascha Wildner.It ZULU	ZU	NEGRO-AFRICAN
282*a2166fa4SSascha Wildner.El
283dcc86267SJeroen Ruigrok/asmodai.Pp
284dcc86267SJeroen Ruigrok/asmodaiFor example, the locale for the Danish language spoken in Denmark
285dcc86267SJeroen Ruigrok/asmodaiusing the ISO 8859-1 character set is da_DK.ISO8859-1.
286dcc86267SJeroen Ruigrok/asmodaiThe da stands for the Danish language and the DK stands for Denmark.
287dcc86267SJeroen Ruigrok/asmodaiThe short form of da_DK is sufficient to indicate this locale.
288dcc86267SJeroen Ruigrok/asmodai.Pp
289dcc86267SJeroen Ruigrok/asmodaiThe environment variable settings are queried by their priority level
290dcc86267SJeroen Ruigrok/asmodaiin the following manner:
291dcc86267SJeroen Ruigrok/asmodai.Bl -bullet
292dcc86267SJeroen Ruigrok/asmodai.It
293dcc86267SJeroen Ruigrok/asmodaiIf the
294dcc86267SJeroen Ruigrok/asmodai.Ev LC_ALL
295dcc86267SJeroen Ruigrok/asmodaienvironment variable is set, all six categories use the locale it
296dcc86267SJeroen Ruigrok/asmodaispecifies.
297dcc86267SJeroen Ruigrok/asmodai.It
298dcc86267SJeroen Ruigrok/asmodaiIf the
299dcc86267SJeroen Ruigrok/asmodai.Ev LC_ALL
300dcc86267SJeroen Ruigrok/asmodaienvironment variable is not set, each individual category uses the
301dcc86267SJeroen Ruigrok/asmodailocale specified by its corresponding environment variable.
302dcc86267SJeroen Ruigrok/asmodai.It
303dcc86267SJeroen Ruigrok/asmodaiIf the
304dcc86267SJeroen Ruigrok/asmodai.Ev LC_ALL
305dcc86267SJeroen Ruigrok/asmodaienvironment variable is not set, and a value for a particular
306dcc86267SJeroen Ruigrok/asmodai.Ev LC_*
307dcc86267SJeroen Ruigrok/asmodaienvironment variable is not set, the value of the
308dcc86267SJeroen Ruigrok/asmodai.Ev LANG
309dcc86267SJeroen Ruigrok/asmodaienvironment variable specifies the default locale for all categories.
310dcc86267SJeroen Ruigrok/asmodaiOnly the
311dcc86267SJeroen Ruigrok/asmodai.Ev LANG
312dcc86267SJeroen Ruigrok/asmodaienvironment variable should be set in /etc/profile, since it makes it
313dcc86267SJeroen Ruigrok/asmodaimost easy for the user to override the system default using the individual
314dcc86267SJeroen Ruigrok/asmodai.Ev LC_*
315dcc86267SJeroen Ruigrok/asmodaivariables.
316dcc86267SJeroen Ruigrok/asmodai.It
317dcc86267SJeroen Ruigrok/asmodaiIf the
318dcc86267SJeroen Ruigrok/asmodai.Ev LC_ALL
319dcc86267SJeroen Ruigrok/asmodaienvironment variable is not set, a value for a particular
320dcc86267SJeroen Ruigrok/asmodai.Ev LC_*
321dcc86267SJeroen Ruigrok/asmodaienvironment variable is not set, and the value of the
322dcc86267SJeroen Ruigrok/asmodai.Ev LANG
323dcc86267SJeroen Ruigrok/asmodaienvironment variable is not set, the locale for that specific
324dcc86267SJeroen Ruigrok/asmodaicategory defaults to the C locale.
325*a2166fa4SSascha WildnerThe C or POSIX locale assumes the ASCII character set and defines
326dcc86267SJeroen Ruigrok/asmodaiinformation for the six categories.
327dcc86267SJeroen Ruigrok/asmodai.El
328dcc86267SJeroen Ruigrok/asmodai.Ss Character Sets
329dcc86267SJeroen Ruigrok/asmodaiA character is any symbol used for the organization, control, or
330dcc86267SJeroen Ruigrok/asmodairepresentation of data.
331dcc86267SJeroen Ruigrok/asmodaiA group of such symbols used to describe a
332dcc86267SJeroen Ruigrok/asmodaiparticular language make up a character set.
333dcc86267SJeroen Ruigrok/asmodaiIt is the encoding values in a character set that provide
334dcc86267SJeroen Ruigrok/asmodaithe interface between the system and its input and output devices.
335dcc86267SJeroen Ruigrok/asmodai.Pp
336dcc86267SJeroen Ruigrok/asmodaiThe following character sets are supported in
337*a2166fa4SSascha Wildner.Dx :
338*a2166fa4SSascha Wildner.Bl -tag -width ISO_8859_family
339*a2166fa4SSascha Wildner.It ASCII
340*a2166fa4SSascha WildnerThe American Standard Code for Information Exchange (ASCII) standard
341*a2166fa4SSascha Wildnerspecifies 128 Roman characters and control codes, encoded in a 7-bit
342*a2166fa4SSascha Wildnercharacter encoding scheme.
343dcc86267SJeroen Ruigrok/asmodai.It ISO 8859 family
344*a2166fa4SSascha WildnerIndustry-standard character sets specified by the ISO/IEC 8859
345*a2166fa4SSascha Wildnerstandard.
346*a2166fa4SSascha WildnerThe standard is divided into 15 numbered parts, with each
347*a2166fa4SSascha Wildnerpart specifying broad script similarities.
348*a2166fa4SSascha WildnerExamples include Western European, Central European, Arabic, Cyrillic,
349*a2166fa4SSascha WildnerHebrew, Greek, and Turkish.
350*a2166fa4SSascha WildnerThe character sets use an 8-bit character encoding scheme which is
351*a2166fa4SSascha Wildnercompatible with the ASCII character set.
352dcc86267SJeroen Ruigrok/asmodai.It Unicode
353*a2166fa4SSascha WildnerThe Unicode character set is the full set of known abstract characters of
354*a2166fa4SSascha Wildnerall real-world scripts.  It can be used in environments where multiple
355*a2166fa4SSascha Wildnerscripts must be processed simultaneously.
356*a2166fa4SSascha WildnerUnicode is compatible with ISO 8859-1 (Western European) and ASCII.
357*a2166fa4SSascha WildnerMany character encoding schemes are available for Unicode, including UTF-8,
358*a2166fa4SSascha WildnerUTF-16 and UTF-32.
359*a2166fa4SSascha WildnerThese encoding schemes are multi-byte encodings.
360*a2166fa4SSascha WildnerThe UTF-8 encoding scheme uses 8-bit, variable-width encodings which is
361*a2166fa4SSascha Wildnercompatible with ASCII.
362*a2166fa4SSascha WildnerThe UTF-16 encoding scheme uses 16-bit, variable-width encodings.
363*a2166fa4SSascha WildnerThe UTF-32 encoding scheme using 32-bit, fixed-width encodings.
364dcc86267SJeroen Ruigrok/asmodai.El
365dcc86267SJeroen Ruigrok/asmodai.Ss Font Sets
366dcc86267SJeroen Ruigrok/asmodaiA font set contains the glyphs to be displayed on the screen for a
367dcc86267SJeroen Ruigrok/asmodaicorresponding character in a character set.
368dcc86267SJeroen Ruigrok/asmodaiA display must support a suitable font to display a character set.
369dcc86267SJeroen Ruigrok/asmodaiIf suitable fonts are available to the X server, then X clients can
370dcc86267SJeroen Ruigrok/asmodaiinclude support for different character sets.
371dcc86267SJeroen Ruigrok/asmodai.Xr xterm 1
372*a2166fa4SSascha Wildnerincludes support for Unicode with UTF-8 encoding.
373dcc86267SJeroen Ruigrok/asmodai.Xr xfd 1
374dcc86267SJeroen Ruigrok/asmodaiis useful for displaying all the characters in an X font.
375dbd5a33cSSascha Wildner.Pp
376dbd5a33cSSascha WildnerThe
377dbd5a33cSSascha Wildner.Dx
378dbd5a33cSSascha Wildner.Xr syscons 4
379dbd5a33cSSascha Wildnerconsole provides support for loading a variety of fonts using the
3803867d280SSascha Wildner.Xr vidcontrol 1
381dbd5a33cSSascha Wildnerutility. Available fonts can be found in
382dbd5a33cSSascha Wildner.Pa /usr/share/syscons/fonts .
383dcc86267SJeroen Ruigrok/asmodai.Ss Internationalization for Programmers
384dcc86267SJeroen Ruigrok/asmodaiTo facilitate translations of messages into various languages and to
385dcc86267SJeroen Ruigrok/asmodaimake the translated messages available to the program based on a
386dcc86267SJeroen Ruigrok/asmodaiuser's locale, it is necessary to keep messages separate from the
387dcc86267SJeroen Ruigrok/asmodaiprograms and provide them in the form of message catalogs that a
388dcc86267SJeroen Ruigrok/asmodaiprogram can access at run time.
389dcc86267SJeroen Ruigrok/asmodai.Pp
390dcc86267SJeroen Ruigrok/asmodaiAccess to locale information is provided through the
391dcc86267SJeroen Ruigrok/asmodai.Xr setlocale 3
392dcc86267SJeroen Ruigrok/asmodaiand
393dcc86267SJeroen Ruigrok/asmodai.Xr nl_langinfo 3
394dcc86267SJeroen Ruigrok/asmodaiinterfaces.
395dcc86267SJeroen Ruigrok/asmodaiSee their respective man pages for further information.
396dcc86267SJeroen Ruigrok/asmodai.Pp
397dcc86267SJeroen Ruigrok/asmodaiMessage source files containing application messages are created by
398dcc86267SJeroen Ruigrok/asmodaithe programmer and converted to message catalogs.
399dcc86267SJeroen Ruigrok/asmodaiThese catalogs are used by the application to retrieve and display
400dcc86267SJeroen Ruigrok/asmodaimessages, as needed.
401dcc86267SJeroen Ruigrok/asmodai.Pp
402dcc86267SJeroen Ruigrok/asmodai.Dx
403dcc86267SJeroen Ruigrok/asmodaisupports two message catalog interfaces: the X/Open
404dcc86267SJeroen Ruigrok/asmodai.Xr catgets 3
405dcc86267SJeroen Ruigrok/asmodaiinterface and the Uniforum
406dcc86267SJeroen Ruigrok/asmodai.Xr gettext 3
407dcc86267SJeroen Ruigrok/asmodaiinterface.
408dcc86267SJeroen Ruigrok/asmodaiThe
409dcc86267SJeroen Ruigrok/asmodai.Xr catgets 3
410dcc86267SJeroen Ruigrok/asmodaiinterface has the advantage that it belongs to a standard which is
411dcc86267SJeroen Ruigrok/asmodaiwell supported.
412dcc86267SJeroen Ruigrok/asmodaiUnfortunately the interface is complicated to use and
413dcc86267SJeroen Ruigrok/asmodaimaintenance of the catalogs is difficult.
414dcc86267SJeroen Ruigrok/asmodaiThe implementation also doesn't support different character sets.
415dcc86267SJeroen Ruigrok/asmodaiThe
416dcc86267SJeroen Ruigrok/asmodai.Xr gettext 3
417dcc86267SJeroen Ruigrok/asmodaiinterface has not been standardized yet, however it is being supported
418dcc86267SJeroen Ruigrok/asmodaiby an increasing number of systems.
419dcc86267SJeroen Ruigrok/asmodaiIt also provides many additional tools which make programming and
420dcc86267SJeroen Ruigrok/asmodaicatalog maintenance much easier.
421*a2166fa4SSascha Wildner.Ss Support for Multi-byte Encodings
422*a2166fa4SSascha WildnerSome character sets with multi-byte encodings may be difficult to decode,
423*a2166fa4SSascha Wildneror may contain state (i.e., adjacent characters are dependent).
424dcc86267SJeroen Ruigrok/asmodaiISO C specifies a set of functions using 'wide characters' which can handle
425*a2166fa4SSascha Wildnermulti-byte encodings properly.
426*a2166fa4SSascha WildnerThe behaviour of these functions is affected
427*a2166fa4SSascha Wildnerby the
428*a2166fa4SSascha Wildner.Ev LC_CTYPE
429*a2166fa4SSascha Wildnercategory of the current locale.
430*a2166fa4SSascha Wildner.Pp
431dcc86267SJeroen Ruigrok/asmodaiA wide character is specified in ISO C
432dcc86267SJeroen Ruigrok/asmodaias being a fixed number of bits wide and is stateless.
433dcc86267SJeroen Ruigrok/asmodaiThere are two types for wide characters:
434dcc86267SJeroen Ruigrok/asmodai.Em wchar_t
435dcc86267SJeroen Ruigrok/asmodaiand
436dcc86267SJeroen Ruigrok/asmodai.Em wint_t .
437dcc86267SJeroen Ruigrok/asmodai.Em wchar_t
438dcc86267SJeroen Ruigrok/asmodaiis a type which can contain one wide character and operates like 'char'
439dcc86267SJeroen Ruigrok/asmodaitype does for one character.
440dcc86267SJeroen Ruigrok/asmodai.Em wint_t
441dcc86267SJeroen Ruigrok/asmodaican contain one wide character or WEOF (wide EOF).
442dcc86267SJeroen Ruigrok/asmodai.Pp
443dcc86267SJeroen Ruigrok/asmodaiThere are functions that operate on
444dcc86267SJeroen Ruigrok/asmodai.Em wchar_t ,
445dcc86267SJeroen Ruigrok/asmodaiand substitute for functions operating on 'char'.
446dcc86267SJeroen Ruigrok/asmodaiSee
447dcc86267SJeroen Ruigrok/asmodai.Xr wmemchr 3
448dcc86267SJeroen Ruigrok/asmodaiand
449dcc86267SJeroen Ruigrok/asmodai.Xr towlower 3
450dcc86267SJeroen Ruigrok/asmodaifor details.
451dcc86267SJeroen Ruigrok/asmodaiThere are some additional functions that operate on
452dcc86267SJeroen Ruigrok/asmodai.Em wchar_t .
453dcc86267SJeroen Ruigrok/asmodaiSee
454dcc86267SJeroen Ruigrok/asmodai.Xr wctype 3
455dcc86267SJeroen Ruigrok/asmodaiand
4560303e2e2SSascha Wildner.Xr wctrans 3
457dcc86267SJeroen Ruigrok/asmodaifor details.
458dcc86267SJeroen Ruigrok/asmodai.Pp
459dcc86267SJeroen Ruigrok/asmodaiWide characters should be used for all I/O processing which may rely
460dcc86267SJeroen Ruigrok/asmodaion locale-specific strings.
461dcc86267SJeroen Ruigrok/asmodaiThe two primary issues requiring special use of wide characters are:
462dcc86267SJeroen Ruigrok/asmodai.Bl -bullet -offset indent
463dcc86267SJeroen Ruigrok/asmodai.It
464dcc86267SJeroen Ruigrok/asmodaiAll I/O is performed using multibyte characters.
465dcc86267SJeroen Ruigrok/asmodaiInput data is converted into wide characters immediately after
466dcc86267SJeroen Ruigrok/asmodaireading and data for output is converted from wide characters to
467*a2166fa4SSascha Wildnermulti-byte encoding immediately before writing.
468*a2166fa4SSascha WildnerConversion is controlled by the
469dcc86267SJeroen Ruigrok/asmodai.Xr mbstowcs 3 ,
470dcc86267SJeroen Ruigrok/asmodai.Xr mbsrtowcs 3 ,
471dcc86267SJeroen Ruigrok/asmodai.Xr wcstombs 3 ,
472dcc86267SJeroen Ruigrok/asmodai.Xr wcsrtombs 3 ,
473dcc86267SJeroen Ruigrok/asmodai.Xr mblen 3 ,
474dcc86267SJeroen Ruigrok/asmodai.Xr mbrlen 3 ,
475dcc86267SJeroen Ruigrok/asmodaiand
476dcc86267SJeroen Ruigrok/asmodai.Xr  mbsinit 3 .
477dcc86267SJeroen Ruigrok/asmodai.It
478dcc86267SJeroen Ruigrok/asmodaiWide characters are used directly for I/O, using
479dcc86267SJeroen Ruigrok/asmodai.Xr getwchar 3 ,
480dcc86267SJeroen Ruigrok/asmodai.Xr fgetwc 3 ,
481dcc86267SJeroen Ruigrok/asmodai.Xr getwc 3 ,
482dcc86267SJeroen Ruigrok/asmodai.Xr ungetwc 3 ,
483dcc86267SJeroen Ruigrok/asmodai.Xr fgetws 3 ,
484dcc86267SJeroen Ruigrok/asmodai.Xr putwchar 3 ,
485dcc86267SJeroen Ruigrok/asmodai.Xr fputwc 3 ,
486dcc86267SJeroen Ruigrok/asmodai.Xr putwc 3 ,
487dcc86267SJeroen Ruigrok/asmodaiand
488dcc86267SJeroen Ruigrok/asmodai.Xr fputws 3 .
489dcc86267SJeroen Ruigrok/asmodaiThey are also used for formatted I/O functions for wide characters
490dcc86267SJeroen Ruigrok/asmodaisuch as
491dcc86267SJeroen Ruigrok/asmodai.Xr fwscanf 3 ,
492dcc86267SJeroen Ruigrok/asmodai.Xr wscanf 3 ,
493dcc86267SJeroen Ruigrok/asmodai.Xr swscanf 3 ,
494dcc86267SJeroen Ruigrok/asmodai.Xr fwprintf 3 ,
495dcc86267SJeroen Ruigrok/asmodai.Xr wprintf 3 ,
496dcc86267SJeroen Ruigrok/asmodai.Xr swprintf 3 ,
497dcc86267SJeroen Ruigrok/asmodai.Xr vfwprintf 3 ,
498dcc86267SJeroen Ruigrok/asmodai.Xr vwprintf 3 ,
499dcc86267SJeroen Ruigrok/asmodaiand
500dcc86267SJeroen Ruigrok/asmodai.Xr vswprintf 3 ,
501dcc86267SJeroen Ruigrok/asmodaiand wide character identifier of %lc, %C, %ls, %S for conventional
502dcc86267SJeroen Ruigrok/asmodaiformatted I/O functions.
503dcc86267SJeroen Ruigrok/asmodai.El
504dcc86267SJeroen Ruigrok/asmodai.Sh SEE ALSO
505dcc86267SJeroen Ruigrok/asmodai.Xr gencat 1 ,
5063867d280SSascha Wildner.Xr vidcontrol 1 ,
507dcc86267SJeroen Ruigrok/asmodai.Xr xfd 1 ,
508dcc86267SJeroen Ruigrok/asmodai.Xr xterm 1 ,
509dcc86267SJeroen Ruigrok/asmodai.Xr catgets 3 ,
510c8e8a2e5SSascha Wildner.Xr gettext 3 Pq Pa devel/gettext ,
511dcc86267SJeroen Ruigrok/asmodai.Xr nl_langinfo 3 ,
5123867d280SSascha Wildner.Xr setlocale 3
513dcc86267SJeroen Ruigrok/asmodai.Sh BUGS
514dcc86267SJeroen Ruigrok/asmodaiThis man page is incomplete.
515