1comment_char % 2escape_char / 3 4% This file is part of the GNU C Library and contains locale data. 5% The Free Software Foundation does not claim any copyright interest 6% in the locale data contained in this file. The foregoing does not 7% affect the license of the GNU C Library as a whole. It does not 8% exempt you from the conditions of the license if your use would 9% otherwise be governed by that license. 10 11% Malayalam language locale for India. 12 13LC_IDENTIFICATION 14title "Malayalam language locale for India" 15source "Free Software Foundation of India, Trivandrum" 16address "" 17contact "" 18email "bug-glibc-locales@gnu.org" 19tel "" 20fax "" 21language "Malayalam" 22territory "India" 23revision "0.1" 24date "2003-February-01" 25 26category "i18n:2012";LC_IDENTIFICATION 27category "i18n:2012";LC_CTYPE 28category "i18n:2012";LC_COLLATE 29category "i18n:2012";LC_TIME 30category "i18n:2012";LC_NUMERIC 31category "i18n:2012";LC_MONETARY 32category "i18n:2012";LC_MESSAGES 33category "i18n:2012";LC_PAPER 34category "i18n:2012";LC_NAME 35category "i18n:2012";LC_ADDRESS 36category "i18n:2012";LC_TELEPHONE 37category "i18n:2012";LC_MEASUREMENT 38END LC_IDENTIFICATION 39LC_CTYPE 40copy "i18n" 41 42% Malayalam uses the alternate digits U+0D66..U+0D6F 43outdigit <U0D66>..<U0D6F> 44 45% This is used in the scanf family of functions to read Malayalam numbers 46% using "%Id" and such. 47map to_inpunct; / 48 (<U0030>,<U0D66>); / 49 (<U0031>,<U0D67>); / 50 (<U0032>,<U0D68>); / 51 (<U0033>,<U0D69>); / 52 (<U0034>,<U0D6A>); / 53 (<U0035>,<U0D6B>); / 54 (<U0036>,<U0D6C>); / 55 (<U0037>,<U0D6D>); / 56 (<U0038>,<U0D6E>); / 57 (<U0039>,<U0D6F>); 58 59translit_start 60include "translit_combining";"" 61translit_end 62END LC_CTYPE 63% 64% 65LC_COLLATE 66% CLDR collation rules for Malayalam: 67% (see: https://unicode.org/cldr/trac/browser/trunk/common/collation/ml.xml) 68% 69% <collation type="standard" references="Sabdatharavali Malayalam Dictionary 23rd Ed. by Sahithya Pravarthaka Co-operative Society Ltd."> 70% <cr><![CDATA[ 71% [reorder Mlym Latn Deva Arab Taml Knda Telu Beng Guru Gujr Orya Sinh] # native speaker's special list 72% # 73% # Avagraha and Visarga are primary ignorables. 74% # 75% &ഃ<<ഽ 76% # 77% # Vowel sign AU ( ൌ) and AU length mark ( ൗ) need to differ 78% # only on secondary level, not primary. 79% # 80% &\u0D4C<<\u0D57 81% # 82% # Pre-5.1 Chillus secondary equal to 5.1 chillus. 83% # Chillus primary equal to their consonant_dead form. 84% # 85% &ക്<<ക്\u200D<<<ൿ 86% &ണ്<<ണ്\u200D<<<ൺ 87% &ന്<<ന്\u200D<<<ൻ 88% &ര്<<ര്\u200D<<<ർ 89% &ല്<<ല്\u200D<<<ൽ 90% &ള്<<ള്\u200D<<<ൾ 91% # 92% # Anuswara primary equal to MA_dead. 93% # 94% &മ്<<ം 95% # 96% # /nta/ is sorted as <NA, Virama, RRA>. 97% # 98% &ന്<<<ൻ് 99% ]]></cr> 100% </collation> 101% 102% And CLDR also lists the following 103% index characters: 104% (see: https://unicode.org/cldr/trac/browser/trunk/common/main/ml.xml) 105% 106% <exemplarCharacters type="index" draft="contributed">[അ ആ ഇ ഈ ഉ ഊ ഋ എ ഏ ഐ ഒ ഓ ഔ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ത ഥ ദ ധ ന പ ഫ ബ ഭ മ യ ര ല വ ശ ഷ സ ഹ ള ഴ റ]</exemplarCharacters> 107% 108% The following rules implement the same order for glibc. 109copy "iso14651_t1" 110% &ക്<<ക്\u200D<<<ൿ 111collating-element <e0d15-0d4d> from "<U0D15><U0D4D>" 112collating-symbol <s0d15-0d4d> 113collating-element <e0d15-0d4d-200d> from "<U0D15><U0D4D><U200D>" 114collating-symbol <s0d15-0d4d-200d> 115% &ണ്<<ണ്\u200D<<<ൺ 116collating-element <e0d23-0d4d> from "<U0D23><U0D4D>" 117collating-symbol <s0d23-0d4d> 118collating-element <e0d23-0d4d-200d> from "<U0D23><U0D4D><U200D>" 119collating-symbol <s0d23-0d4d-200d> 120% &ന്<sന്\u200D<<<ൻ 121collating-element <e0d28-0d4d> from "<U0D28><U0D4D>" 122collating-symbol <s0d28-0d4d> 123collating-element <e0d28-0d4d-200d> from "<U0D28><U0D4D><U200D>" 124collating-symbol <s0d28-0d4d-200d> 125% &ര്<<ര്\u200D<<<ർ 126collating-element <e0d30-0d4d> from "<U0D30><U0D4D>" 127collating-symbol <s0d30-0d4d> 128collating-element <e0d30-0d4d-200d> from "<U0D30><U0D4D><U200D>" 129collating-symbol <s0d30-0d4d-200d> 130% &ല്<<ല്\u200D<<<ൽ 131collating-element <e0d32-0d4d> from "<U0D32><U0D4D>" 132collating-symbol <s0d32-0d4d> 133collating-element <e0d32-0d4d-200d> from "<U0D32><U0D4D><U200D>" 134collating-symbol <s0d32-0d4d-200d> 135% &ള്<<ള്\u200D<<<ൾ 136collating-element <e0d33-0d4d> from "<U0D33><U0D4D>" 137collating-symbol <s0d33-0d4d> 138collating-element <e0d33-0d4d-200d> from "<U0D33><U0D4D><U200D>" 139collating-symbol <s0d33-0d4d-200d> 140% # 141% # Anuswara primary equal to MA_dead. 142% # 143% &മ്<<ം 144collating-element <e0d2e-0d4d> from "<U0D2e><U0D4D>" 145collating-symbol <s0d2e-0d4d> 146% # 147% # /nta/ is sorted as <NA, Virama, RRA>. 148% # 149% &ന്<<<ൻ് 150% already defined: 151% collating-element <e0d28-0d4d> from "<U0D28><U0D4D>" 152% already defined: 153% collating-symbol <s0d28-0d4d> 154collating-element <e0d7b-0d4d> from "<U0D7B><U0D4D>" 155collating-symbol <s0d7b-0d4d> 156%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 157% Finished defining collating-elements and collating-symbols 158% 159% One dummy reorder-after statement here to avoid a syntax error 160% because the first rule reordering stuff starts without a reorder-after: 161collating-symbol <dummy> 162reorder-after <AFTER-A> 163<dummy> 164%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 165% # Avagraha and Visarga are primary ignorables. 166% &ഃ<<ഽ 167<U0D03> IGNORE;<VISARGA>;<MIN>;<U0D03> % MALAYALAM SIGN VISARGA 168<U0D3D> IGNORE;<VRNT1>;<MIN>;<U0D3D> % MALAYALAM SIGN AVAGRAHA 169% # Vowel sign AU ( ൌ) and AU length mark ( ൗ) need to differ 170% # only on secondary level, not primary. 171% # 172% &\u0D4C<<\u0D57 173<U0D4C> <S0D4C>;<BASE>;<MIN>;<U0D4C> % MALAYALAM VOWEL SIGN AU 174<U0D57> <S0D4C>;<VRNT1>;<MIN>;<U0D57> % MALAYALAM AU LENGTH MARK 175% &ക്<<ക്\u200D<<<ൿ 176<e0d15-0d4d> "<S0D15><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE 177<e0d15-0d4d-200d> "<S0D15><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE 178<U0D7F> "<S0D15><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7F> 179% &ണ്<<ണ്\u200D<<<ൺ 180<e0d23-0d4d> "<S0D23><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE 181<e0d23-0d4d-200d> "<S0D23><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE 182<U0D7A> "<S0D23><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7A> 183% &ന്<<ന്\u200D<<<ൻ 184<e0d28-0d4d> "<S0D28><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE % ന് 185<e0d28-0d4d-200d> "<S0D28><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE % ന് 186<U0D7B> "<S0D28><S0D4D>";"<BASE><VRNT1>";"<COMPATCAP><COMPATCAP>";<U0D7B> % ൻ 187% &ര്<<ര്\u200D<<<ർ 188<e0d30-0d4d> "<S0D30><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE 189<e0d30-0d4d-200d> "<S0D30><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE 190<U0D7C> "<S0D30><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7C> % ർ 191% &ല്<<ല്\u200D<<<ൽ 192<e0d32-0d4d> "<S0D32><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE 193<e0d32-0d4d-200d> "<S0D32><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE 194<U0D7D> "<S0D32><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7D> 195% &ള്<<ള്\u200D<<<ൾ 196<e0d33-0d4d> "<S0D33><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE 197<e0d33-0d4d-200d> "<S0D33><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE 198<U0D7E> "<S0D33><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7E> 199% # 200% # Anuswara primary equal to MA_dead. 201% # 202% &മ്<<ം 203<e0d2e-0d4d> "<S0D2E><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE % മ് 204<U0D02> "<S0D2E><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE % MALAYALAM SIGN ANUSVARA 205% # 206% # /nta/ is sorted as <NA, Virama, RRA>. 207% # 208% &ന്<<<ൻ് 209% 210% It looks to me that the above line 211% is a contradiction to the earlier rule: &ന്<<ന്\u200D<<<ൻ 212% I experimented with libicu to see how libicu sorts given these rules. 213% And the end result seems to be the same as if the above two rules had been 214% combined in a rule like this: 215% 216% &ന്<<ന്\u200D<<<ൻ്<<<ൻ 217% 218% So I write the glibc rules to reproduce that behaviour. 219<e0d28-0d4d> "<S0D28><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";<U0D28> % ന് 220<e0d7b-0d4d> "<S0D28><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7B> % ൻ് 221 222reorder-end 223 224END LC_COLLATE 225% 226LC_MONETARY 227copy "hi_IN" 228END LC_MONETARY 229% 230LC_NUMERIC 231% This is the POSIX Locale definition for the LC_NUMERIC category. 232% 233decimal_point "." 234thousands_sep "," 235grouping 3;2 236% 237END LC_NUMERIC 238% 239LC_TIME 240% This is the POSIX Locale definition for the LC_TIME category 241% generated by IBM Basic CountryPack Transformer. 242% These are generated based on XML base Locale definition file 243% for IBM Class for Unicode. 244% 245% Abbreviated weekday names (%a) 246abday "<U0D1E><U0D3E>";"<U0D24><U0D3F>";/ 247"<U0D1A><U0D4A>";"<U0D2C><U0D41>";/ 248"<U0D35><U0D4D><U0D2F><U0D3E>";"<U0D35><U0D46>";/ 249"<U0D36>" 250% 251% Full weekday names (%A) 252day "<U0D1E><U0D3E><U0D2F><U0D30><U0D4D><U200D>";/ 253"<U0D24><U0D3F><U0D19><U0D4D><U0D15><U0D33><U0D4D><U200D>";/ 254"<U0D1A><U0D4A><U0D35><U0D4D><U0D35>";/ 255"<U0D2C><U0D41><U0D27><U0D28><U0D4D><U200D>";/ 256"<U0D35><U0D4D><U0D2F><U0D3E><U0D34><U0D02>";/ 257"<U0D35><U0D46><U0D33><U0D4D><U0D33><U0D3F>";/ 258"<U0D36><U0D28><U0D3F>" 259% 260% Abbreviated month names (%b) 261abmon "<U0D1C><U0D28><U0D41>";/ 262"<U0D2B><U0D46><U0D2C><U0D4D><U0D30><U0D41>";/ 263"<U0D2E><U0D3E><U0D7C>";/ 264"<U0D0F><U0D2A><U0D4D><U0D30><U0D3F>";/ 265"<U0D2E><U0D47><U0D2F><U0D4D>";/ 266"<U0D1C><U0D42><U0D7A>";/ 267"<U0D1C><U0D42><U0D32><U0D48>";/ 268"<U0D13><U0D17>";/ 269"<U0D38><U0D46><U0D2A><U0D4D><U0D31><U0D4D><U0D31><U0D02>";/ 270"<U0D12><U0D15><U0D4D><U0D1F><U0D4B>";/ 271"<U0D28><U0D35><U0D02>";/ 272"<U0D21><U0D3F><U0D38><U0D02>" 273% 274% FULL month names (%B) 275mon "<U0D1C><U0D28><U0D41><U0D35><U0D30><U0D3F>";/ 276"<U0D2B><U0D46><U0D2C><U0D4D><U0D30><U0D41><U0D35><U0D30><U0D3F>";/ 277"<U0D2E><U0D3E><U0D7C><U0D1A><U0D4D><U0D1A><U0D4D>";/ 278"<U0D0F><U0D2A><U0D4D><U0D30><U0D3F><U0D7D>";/ 279"<U0D2E><U0D47><U0D2F><U0D4D>";/ 280"<U0D1C><U0D42><U0D7A>";/ 281"<U0D1C><U0D42><U0D32><U0D48>";/ 282"<U0D13><U0D17><U0D38><U0D4D><U0D31><U0D4D><U0D31><U0D4D>";/ 283"<U0D38><U0D46><U0D2A><U0D4D><U0D31><U0D4D><U0D31><U0D02><U0D2C><U0D7C>";/ 284"<U0D12><U0D15><U0D4D><U200C><U0D1F><U0D4B><U0D2C><U0D7C>";/ 285"<U0D28><U0D35><U0D02><U0D2C><U0D7C>";/ 286"<U0D21><U0D3F><U0D38><U0D02><U0D2C><U0D7C>" 287% 288% 289% Equivalent of AM PM 290am_pm "<U0D30><U0D3E><U0D35><U0D3F><U0D32><U0D46>";"<U0D35><U0D48><U0D15><U0D41>" 291% 292% Appropriate date and time representation 293d_t_fmt "%A %d %B %Y %I:%M:%S %p" 294% 295% Appropriate date and time representation for date(1) 296date_fmt "%A %d %B %Y %I:%M:%S %p %Z" 297% 298% Appropriate date representation 299d_fmt "%-d//%-m//%y" 300% 301% Appropriate time representation 302t_fmt "%I:%M:%S %p %Z" 303% 304% Appropriate 12 h time representation (%r) 305t_fmt_ampm "%I:%M:%S %p %Z" 306% 307week 7;19971130;1 308END LC_TIME 309% 310LC_MESSAGES 311yesexpr "^[+1yY<U0D09>]" 312noexpr "^[-0nN<U0D05>]" 313yesstr "<U0D09><U0D35><U0D4D><U0D35><U0D4D>" 314nostr "<U0D05><U0D32><U0D4D><U0D32>" 315END LC_MESSAGES 316% 317LC_PAPER 318copy "hi_IN" 319END LC_PAPER 320% 321LC_NAME 322% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category 323% generated by IBM Basic CountryPack Transformer. 324% 325% 326name_fmt "%p%t%f%t%g" 327name_gen "<U0D36><U0D4D><U0D30><U0D40>" 328name_mr "<U0D36><U0D4D><U0D30><U0D40><U0D2E><U0D3E><U0D28><U0D41><U0D4D>" 329name_mrs "<U0D36><U0D4D><U0D30><U0D40><U0D2E><U0D24><U0D3F>" 330name_miss "<U0D15><U0D41><U0D2E><U0D3E><U0D30><U0D3F>" 331name_ms "<U0D36><U0D4D><U0D30><U0D40><U0D2E><U0D24><U0D3F>" 332END LC_NAME 333LC_ADDRESS 334% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category 335% generated by IBM Basic CountryPack Transformer. 336postal_fmt "%z%c%T%s%b%e%r" 337country_name "<U0D07><U0D28><U0D4D><U0D24><U0D4D><U0D2F>" 338country_ab2 "IN" 339country_ab3 "IND" 340country_num 356 341country_car "IND" 342% മലയാളം 343lang_name "<U0D2E><U0D32><U0D2F><U0D3E><U0D33><U0D02>" 344lang_ab "ml" 345lang_term "mal" 346lang_lib "mal" 347END LC_ADDRESS 348% 349LC_TELEPHONE 350copy "hi_IN" 351END LC_TELEPHONE 352% 353LC_MEASUREMENT 354copy "hi_IN" 355END LC_MEASUREMENT 356