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