1a2166fa4SSascha 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.\" 30a2166fa4SSascha 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 98a2166fa4SSascha Wildner.Bl -tag -compact -width ".Ev LC_MONETARY" 99a2166fa4SSascha Wildner.It Ev LC_COLLATE 100dcc86267SJeroen Ruigrok/asmodaistring-collation order information 101a2166fa4SSascha Wildner.It Ev LC_CTYPE 102dcc86267SJeroen Ruigrok/asmodaicharacter classification, case conversion, and other character attributes 103a2166fa4SSascha Wildner.It Ev LC_MESSAGES 104dcc86267SJeroen Ruigrok/asmodaithe format for affirmative and negative responses 105a2166fa4SSascha Wildner.It Ev LC_MONETARY 106dcc86267SJeroen Ruigrok/asmodairules and symbols for formatting monetary numeric information 107a2166fa4SSascha Wildner.It Ev LC_NUMERIC 108dcc86267SJeroen Ruigrok/asmodairules and symbols for formatting nonmonetary numeric information 109a2166fa4SSascha 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: 141a2166fa4SSascha Wildner.Bl -column "PERSIAN (farsi)" "Sy Code" "OCEANIC/INDONESIAN" 142a2166fa4SSascha Wildner.It Sy Language Name Ta Sy Code Ta Sy Language Family 143*2b6f54f6Szrj.It ABKHAZIAN Ta AB Ta IBERO-CAUCASIAN 144*2b6f54f6Szrj.It AFAN (OROMO) Ta OM Ta HAMITIC 145*2b6f54f6Szrj.It AFAR Ta AA Ta HAMITIC 146*2b6f54f6Szrj.It AFRIKAANS Ta AF Ta GERMANIC 147*2b6f54f6Szrj.It ALBANIAN Ta SQ Ta INDO-EUROPEAN (OTHER) 148*2b6f54f6Szrj.It AMHARIC Ta AM Ta SEMITIC 149*2b6f54f6Szrj.It ARABIC Ta AR Ta SEMITIC 150*2b6f54f6Szrj.It ARMENIAN Ta HY Ta INDO-EUROPEAN (OTHER) 151*2b6f54f6Szrj.It ASSAMESE Ta AS Ta INDIAN 152*2b6f54f6Szrj.It AYMARA Ta AY Ta AMERINDIAN 153*2b6f54f6Szrj.It AZERBAIJANI Ta AZ Ta TURKIC/ALTAIC 154*2b6f54f6Szrj.It BASHKIR Ta BA Ta TURKIC/ALTAIC 155*2b6f54f6Szrj.It BASQUE Ta EU Ta BASQUE 156*2b6f54f6Szrj.It BENGALI Ta BN Ta INDIAN 157*2b6f54f6Szrj.It BHUTANI Ta DZ Ta ASIAN 158*2b6f54f6Szrj.It BIHARI Ta BH Ta INDIAN 159a2166fa4SSascha Wildner.It BISLAMA Ta BI Ta "" 160*2b6f54f6Szrj.It BRETON Ta BR Ta CELTIC 161*2b6f54f6Szrj.It BULGARIAN Ta BG Ta SLAVIC 162*2b6f54f6Szrj.It BURMESE Ta MY Ta ASIAN 163*2b6f54f6Szrj.It BYELORUSSIAN Ta BE Ta SLAVIC 164*2b6f54f6Szrj.It CAMBODIAN Ta KM Ta ASIAN 165*2b6f54f6Szrj.It CATALAN Ta CA Ta ROMANCE 166*2b6f54f6Szrj.It CHINESE Ta ZH Ta ASIAN 167*2b6f54f6Szrj.It CORSICAN Ta CO Ta ROMANCE 168*2b6f54f6Szrj.It CROATIAN Ta HR Ta SLAVIC 169*2b6f54f6Szrj.It CZECH Ta CS Ta SLAVIC 170*2b6f54f6Szrj.It DANISH Ta DA Ta GERMANIC 171*2b6f54f6Szrj.It DUTCH Ta NL Ta GERMANIC 172*2b6f54f6Szrj.It ENGLISH Ta EN Ta GERMANIC 173*2b6f54f6Szrj.It ESPERANTO Ta EO Ta INTERNATIONAL AUX. 174*2b6f54f6Szrj.It ESTONIAN Ta ET Ta FINNO-UGRIC 175*2b6f54f6Szrj.It FAROESE Ta FO Ta GERMANIC 176*2b6f54f6Szrj.It FIJI Ta FJ Ta OCEANIC/INDONESIAN 177*2b6f54f6Szrj.It FINNISH Ta FI Ta FINNO-UGRIC 178*2b6f54f6Szrj.It FRENCH Ta FR Ta ROMANCE 179*2b6f54f6Szrj.It FRISIAN Ta FY Ta GERMANIC 180*2b6f54f6Szrj.It GALICIAN Ta GL Ta ROMANCE 181*2b6f54f6Szrj.It GEORGIAN Ta KA Ta IBERO-CAUCASIAN 182*2b6f54f6Szrj.It GERMAN Ta DE Ta GERMANIC 183*2b6f54f6Szrj.It GREEK Ta EL Ta LATIN/GREEK 184*2b6f54f6Szrj.It GREENLANDIC Ta KL Ta ESKIMO 185*2b6f54f6Szrj.It GUARANI Ta GN Ta AMERINDIAN 186*2b6f54f6Szrj.It GUJARATI Ta GU Ta INDIAN 187*2b6f54f6Szrj.It HAUSA Ta HA Ta NEGRO-AFRICAN 188*2b6f54f6Szrj.It HEBREW Ta HE Ta SEMITIC 189*2b6f54f6Szrj.It HINDI Ta HI Ta INDIAN 190*2b6f54f6Szrj.It HUNGARIAN Ta HU Ta FINNO-UGRIC 191*2b6f54f6Szrj.It ICELANDIC Ta IS Ta GERMANIC 192*2b6f54f6Szrj.It INDONESIAN Ta ID Ta OCEANIC/INDONESIAN 193*2b6f54f6Szrj.It INTERLINGUA Ta IA Ta INTERNATIONAL AUX. 194*2b6f54f6Szrj.It INTERLINGUE Ta IE Ta INTERNATIONAL AUX. 195a2166fa4SSascha Wildner.It INUKTITUT Ta IU Ta "" 196*2b6f54f6Szrj.It INUPIAK Ta IK Ta ESKIMO 197*2b6f54f6Szrj.It IRISH Ta GA Ta CELTIC 198*2b6f54f6Szrj.It ITALIAN Ta IT Ta ROMANCE 199*2b6f54f6Szrj.It JAPANESE Ta JA Ta ASIAN 200*2b6f54f6Szrj.It JAVANESE Ta JV Ta OCEANIC/INDONESIAN 201*2b6f54f6Szrj.It KANNADA Ta KN Ta DRAVIDIAN 202*2b6f54f6Szrj.It KASHMIRI Ta KS Ta INDIAN 203*2b6f54f6Szrj.It KAZAKH Ta KK Ta TURKIC/ALTAIC 204*2b6f54f6Szrj.It KINYARWANDA Ta RW Ta NEGRO-AFRICAN 205*2b6f54f6Szrj.It KIRGHIZ Ta KY Ta TURKIC/ALTAIC 206*2b6f54f6Szrj.It KURUNDI Ta RN Ta NEGRO-AFRICAN 207*2b6f54f6Szrj.It KOREAN Ta KO Ta ASIAN 208*2b6f54f6Szrj.It KURDISH Ta KU Ta IRANIAN 209*2b6f54f6Szrj.It LAOTHIAN Ta LO Ta ASIAN 210*2b6f54f6Szrj.It LATIN Ta LA Ta LATIN/GREEK 211*2b6f54f6Szrj.It LATVIAN Ta LV Ta BALTIC 212*2b6f54f6Szrj.It LINGALA Ta LN Ta NEGRO-AFRICAN 213*2b6f54f6Szrj.It LITHUANIAN Ta LT Ta BALTIC 214*2b6f54f6Szrj.It MACEDONIAN Ta MK Ta SLAVIC 215*2b6f54f6Szrj.It MALAGASY Ta MG Ta OCEANIC/INDONESIAN 216*2b6f54f6Szrj.It MALAY Ta MS Ta OCEANIC/INDONESIAN 217*2b6f54f6Szrj.It MALAYALAM Ta ML Ta DRAVIDIAN 218*2b6f54f6Szrj.It MALTESE Ta MT Ta SEMITIC 219*2b6f54f6Szrj.It MAORI Ta MI Ta OCEANIC/INDONESIAN 220*2b6f54f6Szrj.It MARATHI Ta MR Ta INDIAN 221*2b6f54f6Szrj.It MOLDAVIAN Ta MO Ta ROMANCE 222a2166fa4SSascha Wildner.It MONGOLIAN Ta MN Ta "" 223a2166fa4SSascha Wildner.It NAURU Ta NA Ta "" 224*2b6f54f6Szrj.It NEPALI Ta NE Ta INDIAN 225*2b6f54f6Szrj.It NORWEGIAN Ta NO Ta GERMANIC 226*2b6f54f6Szrj.It OCCITAN Ta OC Ta ROMANCE 227*2b6f54f6Szrj.It ORIYA Ta OR Ta INDIAN 228*2b6f54f6Szrj.It PASHTO Ta PS Ta IRANIAN 229*2b6f54f6Szrj.It PERSIAN (farsi) Ta FA Ta IRANIAN 230*2b6f54f6Szrj.It POLISH Ta PL Ta SLAVIC 231*2b6f54f6Szrj.It PORTUGUESE Ta PT Ta ROMANCE 232*2b6f54f6Szrj.It PUNJABI Ta PA Ta INDIAN 233*2b6f54f6Szrj.It QUECHUA Ta QU Ta AMERINDIAN 234*2b6f54f6Szrj.It RHAETO-ROMANCE Ta RM Ta ROMANCE 235*2b6f54f6Szrj.It ROMANIAN Ta RO Ta ROMANCE 236*2b6f54f6Szrj.It RUSSIAN Ta RU Ta SLAVIC 237*2b6f54f6Szrj.It SAMOAN Ta SM Ta OCEANIC/INDONESIAN 238*2b6f54f6Szrj.It SANGHO Ta SG Ta NEGRO-AFRICAN 239*2b6f54f6Szrj.It SANSKRIT Ta SA Ta INDIAN 240*2b6f54f6Szrj.It SCOTS GAELIC Ta GD Ta CELTIC 241*2b6f54f6Szrj.It SERBIAN Ta SR Ta SLAVIC 242*2b6f54f6Szrj.It SERBO-CROATIAN Ta SH Ta SLAVIC 243*2b6f54f6Szrj.It SESOTHO Ta ST Ta NEGRO-AFRICAN 244*2b6f54f6Szrj.It SETSWANA Ta TN Ta NEGRO-AFRICAN 245*2b6f54f6Szrj.It SHONA Ta SN Ta NEGRO-AFRICAN 246*2b6f54f6Szrj.It SINDHI Ta SD Ta INDIAN 247*2b6f54f6Szrj.It SINGHALESE Ta SI Ta INDIAN 248*2b6f54f6Szrj.It SISWATI Ta SS Ta NEGRO-AFRICAN 249*2b6f54f6Szrj.It SLOVAK Ta SK Ta SLAVIC 250*2b6f54f6Szrj.It SLOVENIAN Ta SL Ta SLAVIC 251*2b6f54f6Szrj.It SOMALI Ta SO Ta HAMITIC 252*2b6f54f6Szrj.It SPANISH Ta ES Ta ROMANCE 253*2b6f54f6Szrj.It SUNDANESE Ta SU Ta OCEANIC/INDONESIAN 254*2b6f54f6Szrj.It SWAHILI Ta SW Ta NEGRO-AFRICAN 255*2b6f54f6Szrj.It SWEDISH Ta SV Ta GERMANIC 256*2b6f54f6Szrj.It TAGALOG Ta TL Ta OCEANIC/INDONESIAN 257*2b6f54f6Szrj.It TAJIK Ta TG Ta IRANIAN 258*2b6f54f6Szrj.It TAMIL Ta TA Ta DRAVIDIAN 259*2b6f54f6Szrj.It TATAR Ta TT Ta TURKIC/ALTAIC 260*2b6f54f6Szrj.It TELUGU Ta TE Ta DRAVIDIAN 261*2b6f54f6Szrj.It THAI Ta TH Ta ASIAN 262*2b6f54f6Szrj.It TIBETAN Ta BO Ta ASIAN 263*2b6f54f6Szrj.It TIGRINYA Ta TI Ta SEMITIC 264*2b6f54f6Szrj.It TONGA Ta TO Ta OCEANIC/INDONESIAN 265*2b6f54f6Szrj.It TSONGA Ta TS Ta NEGRO-AFRICAN 266*2b6f54f6Szrj.It TURKISH Ta TR Ta TURKIC/ALTAIC 267*2b6f54f6Szrj.It TURKMEN Ta TK Ta TURKIC/ALTAIC 268*2b6f54f6Szrj.It TWI Ta TW Ta NEGRO-AFRICAN 269a2166fa4SSascha Wildner.It UIGUR Ta UG Ta "" 270*2b6f54f6Szrj.It UKRAINIAN Ta UK Ta SLAVIC 271*2b6f54f6Szrj.It URDU Ta UR Ta INDIAN 272*2b6f54f6Szrj.It UZBEK Ta UZ Ta TURKIC/ALTAIC 273*2b6f54f6Szrj.It VIETNAMESE Ta VI Ta ASIAN 274*2b6f54f6Szrj.It VOLAPUK Ta VO Ta INTERNATIONAL AUX. 275*2b6f54f6Szrj.It WELSH Ta CY Ta CELTIC 276*2b6f54f6Szrj.It WOLOF Ta WO Ta NEGRO-AFRICAN 277*2b6f54f6Szrj.It XHOSA Ta XH Ta NEGRO-AFRICAN 278*2b6f54f6Szrj.It YIDDISH Ta YI Ta GERMANIC 279*2b6f54f6Szrj.It YORUBA Ta YO Ta NEGRO-AFRICAN 280a2166fa4SSascha Wildner.It ZHUANG Ta ZA Ta "" 281*2b6f54f6Szrj.It ZULU Ta ZU Ta NEGRO-AFRICAN 282a2166fa4SSascha 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. 325a2166fa4SSascha 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 337a2166fa4SSascha Wildner.Dx : 338a2166fa4SSascha Wildner.Bl -tag -width ISO_8859_family 339a2166fa4SSascha Wildner.It ASCII 340a2166fa4SSascha WildnerThe American Standard Code for Information Exchange (ASCII) standard 341a2166fa4SSascha Wildnerspecifies 128 Roman characters and control codes, encoded in a 7-bit 342a2166fa4SSascha Wildnercharacter encoding scheme. 343dcc86267SJeroen Ruigrok/asmodai.It ISO 8859 family 344a2166fa4SSascha WildnerIndustry-standard character sets specified by the ISO/IEC 8859 345a2166fa4SSascha Wildnerstandard. 346a2166fa4SSascha WildnerThe standard is divided into 15 numbered parts, with each 347a2166fa4SSascha Wildnerpart specifying broad script similarities. 348a2166fa4SSascha WildnerExamples include Western European, Central European, Arabic, Cyrillic, 349a2166fa4SSascha WildnerHebrew, Greek, and Turkish. 350a2166fa4SSascha WildnerThe character sets use an 8-bit character encoding scheme which is 351a2166fa4SSascha Wildnercompatible with the ASCII character set. 352dcc86267SJeroen Ruigrok/asmodai.It Unicode 353a2166fa4SSascha WildnerThe Unicode character set is the full set of known abstract characters of 354a2166fa4SSascha Wildnerall real-world scripts. It can be used in environments where multiple 355a2166fa4SSascha Wildnerscripts must be processed simultaneously. 356a2166fa4SSascha WildnerUnicode is compatible with ISO 8859-1 (Western European) and ASCII. 357a2166fa4SSascha WildnerMany character encoding schemes are available for Unicode, including UTF-8, 358a2166fa4SSascha WildnerUTF-16 and UTF-32. 359a2166fa4SSascha WildnerThese encoding schemes are multi-byte encodings. 360a2166fa4SSascha WildnerThe UTF-8 encoding scheme uses 8-bit, variable-width encodings which is 361a2166fa4SSascha Wildnercompatible with ASCII. 362a2166fa4SSascha WildnerThe UTF-16 encoding scheme uses 16-bit, variable-width encodings. 363a2166fa4SSascha 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 372a2166fa4SSascha 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. 421a2166fa4SSascha Wildner.Ss Support for Multi-byte Encodings 422a2166fa4SSascha WildnerSome character sets with multi-byte encodings may be difficult to decode, 423a2166fa4SSascha 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 425a2166fa4SSascha Wildnermulti-byte encodings properly. 426a2166fa4SSascha WildnerThe behaviour of these functions is affected 427a2166fa4SSascha Wildnerby the 428a2166fa4SSascha Wildner.Ev LC_CTYPE 429a2166fa4SSascha Wildnercategory of the current locale. 430a2166fa4SSascha 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 467a2166fa4SSascha Wildnermulti-byte encoding immediately before writing. 468a2166fa4SSascha 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