comment_char %
escape_char /

% This file is part of the GNU C Library and contains locale data.
% The Free Software Foundation does not claim any copyright interest
% in the locale data contained in this file.  The foregoing does not
% affect the license of the GNU C Library as a whole.  It does not
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.

% Malayalam language locale for India.
% Contributed by Free Software Foundation of India http://gnu.org.in
% E-Mail : gnu@gnu.org.in

LC_IDENTIFICATION
title     "Malayalam language locale for India"
source     "Free Software Foundation of India, Trivandrum"
address     ""
contact     ""
email     "bug-glibc-locales@gnu.org"
tel     ""
fax     ""
language     "Malayalam"
territory     "India"
revision     "0.1"
date     "2003-February-01"

category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_CTYPE
category "i18n:2012";LC_COLLATE
category "i18n:2012";LC_TIME
category "i18n:2012";LC_NUMERIC
category "i18n:2012";LC_MONETARY
category "i18n:2012";LC_MESSAGES
category "i18n:2012";LC_PAPER
category "i18n:2012";LC_NAME
category "i18n:2012";LC_ADDRESS
category "i18n:2012";LC_TELEPHONE
category "i18n:2012";LC_MEASUREMENT
END LC_IDENTIFICATION
LC_CTYPE
copy	"i18n"

% Malayalam uses the alternate digits U+0D66..U+0D6F
outdigit <U0D66>..<U0D6F>

% This is used in the scanf family of functions to read Malayalam numbers
% using "%Id" and such.
map to_inpunct; /
  (<U0030>,<U0D66>); /
  (<U0031>,<U0D67>); /
  (<U0032>,<U0D68>); /
  (<U0033>,<U0D69>); /
  (<U0034>,<U0D6A>); /
  (<U0035>,<U0D6B>); /
  (<U0036>,<U0D6C>); /
  (<U0037>,<U0D6D>); /
  (<U0038>,<U0D6E>); /
  (<U0039>,<U0D6F>);

translit_start
include     "translit_combining";""
translit_end
END LC_CTYPE
%
%
LC_COLLATE
% CLDR collation rules for Malayalam:
% (see: https://unicode.org/cldr/trac/browser/trunk/common/collation/ml.xml)
%
% <collation type="standard" references="Sabdatharavali Malayalam Dictionary 23rd Ed. by Sahithya Pravarthaka Co-operative Society Ltd.">
%   <cr><![CDATA[
%     [reorder Mlym Latn Deva Arab Taml Knda Telu Beng Guru Gujr Orya Sinh]  # native speaker's special list
%     #
%     #  Avagraha and Visarga are primary ignorables.
%     #
%     &ഃ<<ഽ
%     #
%     #  Vowel sign AU ( ൌ) and AU length mark ( ൗ) need to differ
%     #  only on secondary level, not primary.
%     #
%     &\u0D4C<<\u0D57
%     #
%     #  Pre-5.1 Chillus secondary equal to 5.1 chillus.
%     #  Chillus primary equal to their consonant_dead form.
%     #
%     &ക്<<ക്\u200D<<<ൿ
%     &ണ്<<ണ്\u200D<<<ൺ
%     &ന്<<ന്\u200D<<<ൻ
%     &ര്<<ര്\u200D<<<ർ
%     &ല്<<ല്\u200D<<<ൽ
%     &ള്<<ള്\u200D<<<ൾ
%     #
%     #  Anuswara primary equal to MA_dead.
%     #
%     &മ്<<ം
%     #
%     #  /nta/ is sorted as <NA, Virama, RRA>.
%     #
%     &ന്<<<ൻ്
%   ]]></cr>
% </collation>
%
% And CLDR also lists the following
% index characters:
% (see: https://unicode.org/cldr/trac/browser/trunk/common/main/ml.xml)
%
% <exemplarCharacters type="index" draft="contributed">[അ ആ ഇ ഈ ഉ ഊ ഋ എ ഏ ഐ ഒ ഓ ഔ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ത ഥ ദ ധ ന പ ഫ ബ ഭ മ യ ര ല വ ശ ഷ സ ഹ ള ഴ റ]</exemplarCharacters>
%
% The following rules implement the same order for glibc.
copy "iso14651_t1"
%     &ക്<<ക്\u200D<<<ൿ
collating-element <e0d15-0d4d> from "<U0D15><U0D4D>"
collating-symbol <s0d15-0d4d>
collating-element <e0d15-0d4d-200d> from "<U0D15><U0D4D><U200D>"
collating-symbol <s0d15-0d4d-200d>
%     &ണ്<<ണ്\u200D<<<ൺ
collating-element <e0d23-0d4d> from "<U0D23><U0D4D>"
collating-symbol <s0d23-0d4d>
collating-element <e0d23-0d4d-200d> from "<U0D23><U0D4D><U200D>"
collating-symbol <s0d23-0d4d-200d>
%     &ന്<sന്\u200D<<<ൻ
collating-element <e0d28-0d4d> from "<U0D28><U0D4D>"
collating-symbol <s0d28-0d4d>
collating-element <e0d28-0d4d-200d> from "<U0D28><U0D4D><U200D>"
collating-symbol <s0d28-0d4d-200d>
%     &ര്<<ര്\u200D<<<ർ
collating-element <e0d30-0d4d> from "<U0D30><U0D4D>"
collating-symbol <s0d30-0d4d>
collating-element <e0d30-0d4d-200d> from "<U0D30><U0D4D><U200D>"
collating-symbol <s0d30-0d4d-200d>
%     &ല്<<ല്\u200D<<<ൽ
collating-element <e0d32-0d4d> from "<U0D32><U0D4D>"
collating-symbol <s0d32-0d4d>
collating-element <e0d32-0d4d-200d> from "<U0D32><U0D4D><U200D>"
collating-symbol <s0d32-0d4d-200d>
%     &ള്<<ള്\u200D<<<ൾ
collating-element <e0d33-0d4d> from "<U0D33><U0D4D>"
collating-symbol <s0d33-0d4d>
collating-element <e0d33-0d4d-200d> from "<U0D33><U0D4D><U200D>"
collating-symbol <s0d33-0d4d-200d>
%     #
%     #  Anuswara primary equal to MA_dead.
%     #
%     &മ്<<ം
collating-element <e0d2e-0d4d> from "<U0D2e><U0D4D>"
collating-symbol <s0d2e-0d4d>
%     #
%     #  /nta/ is sorted as <NA, Virama, RRA>.
%     #
%     &ന്<<<ൻ്
% already defined:
% collating-element <e0d28-0d4d> from "<U0D28><U0D4D>"
% already defined:
% collating-symbol <s0d28-0d4d>
collating-element <e0d7b-0d4d> from "<U0D7B><U0D4D>"
collating-symbol <s0d7b-0d4d>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Finished defining collating-elements and collating-symbols
%
% One dummy reorder-after statement here to avoid a syntax error
% because the first rule reordering stuff starts without a reorder-after:
collating-symbol <dummy>
reorder-after <AFTER-A>
<dummy>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% # Avagraha and Visarga are primary ignorables.
% &ഃ<<ഽ
<U0D03> IGNORE;<VISARGA>;<MIN>;<U0D03> % MALAYALAM SIGN VISARGA
<U0D3D> IGNORE;<VRNT1>;<MIN>;<U0D3D> % MALAYALAM SIGN AVAGRAHA
% #  Vowel sign AU ( ൌ) and AU length mark ( ൗ) need to differ
% #  only on secondary level, not primary.
% #
% &\u0D4C<<\u0D57
<U0D4C> <S0D4C>;<BASE>;<MIN>;<U0D4C> % MALAYALAM VOWEL SIGN AU
<U0D57> <S0D4C>;<VRNT1>;<MIN>;<U0D57> % MALAYALAM AU LENGTH MARK
% &ക്<<ക്\u200D<<<ൿ
<e0d15-0d4d>      "<S0D15><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE
<e0d15-0d4d-200d> "<S0D15><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE
<U0D7F>           "<S0D15><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7F>
% &ണ്<<ണ്\u200D<<<ൺ
<e0d23-0d4d>      "<S0D23><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE
<e0d23-0d4d-200d> "<S0D23><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE
<U0D7A>           "<S0D23><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7A>
% &ന്<<ന്\u200D<<<ൻ
<e0d28-0d4d>      "<S0D28><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE % ന്
<e0d28-0d4d-200d> "<S0D28><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE % ന്‍
<U0D7B>           "<S0D28><S0D4D>";"<BASE><VRNT1>";"<COMPATCAP><COMPATCAP>";<U0D7B> % ൻ
% &ര്<<ര്\u200D<<<ർ
<e0d30-0d4d>      "<S0D30><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE
<e0d30-0d4d-200d> "<S0D30><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE
<U0D7C>           "<S0D30><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7C> % ർ
% &ല്<<ല്\u200D<<<ൽ
<e0d32-0d4d>      "<S0D32><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE
<e0d32-0d4d-200d> "<S0D32><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE
<U0D7D>           "<S0D32><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7D>
% &ള്<<ള്\u200D<<<ൾ
<e0d33-0d4d>      "<S0D33><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE
<e0d33-0d4d-200d> "<S0D33><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE
<U0D7E>           "<S0D33><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7E>
% #
% #  Anuswara primary equal to MA_dead.
% #
% &മ്<<ം
<e0d2e-0d4d> "<S0D2E><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";IGNORE % മ്
<U0D02>      "<S0D2E><S0D4D>";"<BASE><VRNT1>";"<MIN><MIN>";IGNORE % MALAYALAM SIGN ANUSVARA
% #
% #  /nta/ is sorted as <NA, Virama, RRA>.
% #
% &ന്<<<ൻ്
%
% It looks to me that the above line
% is a contradiction to the earlier rule: &ന്<<ന്\u200D<<<ൻ
% I experimented with libicu to see how libicu sorts given these rules.
% And the end result seems to be the same as if the above two rules had been
% combined in a rule like this:
%
%  &ന്<<ന്\u200D<<<ൻ്<<<ൻ
%
% So I write the glibc rules to reproduce that behaviour.
<e0d28-0d4d> "<S0D28><S0D4D>";"<BASE><BASE>";"<MIN><MIN>";<U0D28> % ന്
<e0d7b-0d4d> "<S0D28><S0D4D>";"<BASE><VRNT1>";"<COMPAT><COMPAT>";<U0D7B> % ൻ്

reorder-end

END LC_COLLATE
%
LC_MONETARY
copy "hi_IN"
END LC_MONETARY
%
LC_NUMERIC
% This is the POSIX Locale definition for the LC_NUMERIC  category.
%
decimal_point     "."
thousands_sep     ","
grouping               3;2
%
END LC_NUMERIC
%
LC_TIME
% This is the POSIX Locale definition for the LC_TIME category
% generated by IBM Basic CountryPack Transformer.
% These are generated based on XML base Locale definition file
% for IBM Class for Unicode.
%
% Abbreviated weekday names (%a)
abday     "<U0D1E><U0D3E>";"<U0D24><U0D3F>";/
"<U0D1A><U0D4A>";"<U0D2C><U0D41>";/
"<U0D35><U0D4D><U0D2F><U0D3E>";"<U0D35><U0D46>";/
"<U0D36>"
%
% Full weekday names (%A)
day     "<U0D1E><U0D3E><U0D2F><U0D30><U0D4D><U200D>";/
"<U0D24><U0D3F><U0D19><U0D4D><U0D15><U0D33><U0D4D><U200D>";/
"<U0D1A><U0D4A><U0D35><U0D4D><U0D35>";/
"<U0D2C><U0D41><U0D27><U0D28><U0D4D><U200D>";/
"<U0D35><U0D4D><U0D2F><U0D3E><U0D34><U0D02>";/
"<U0D35><U0D46><U0D33><U0D4D><U0D33><U0D3F>";/
"<U0D36><U0D28><U0D3F>"
%
% Abbreviated month names (%b)
abmon     "<U0D1C><U0D28><U0D41>";/
"<U0D2B><U0D46><U0D2C><U0D4D><U0D30><U0D41>";/
"<U0D2E><U0D3E><U0D7C>";/
"<U0D0F><U0D2A><U0D4D><U0D30><U0D3F>";/
"<U0D2E><U0D47><U0D2F><U0D4D>";/
"<U0D1C><U0D42><U0D7A>";/
"<U0D1C><U0D42><U0D32><U0D48>";/
"<U0D13><U0D17>";/
"<U0D38><U0D46><U0D2A><U0D4D><U0D31><U0D4D><U0D31><U0D02>";/
"<U0D12><U0D15><U0D4D><U0D1F><U0D4B>";/
"<U0D28><U0D35><U0D02>";/
"<U0D21><U0D3F><U0D38><U0D02>"
%
% FULL month names (%B)
mon     "<U0D1C><U0D28><U0D41><U0D35><U0D30><U0D3F>";/
"<U0D2B><U0D46><U0D2C><U0D4D><U0D30><U0D41><U0D35><U0D30><U0D3F>";/
"<U0D2E><U0D3E><U0D7C><U0D1A><U0D4D><U0D1A><U0D4D>";/
"<U0D0F><U0D2A><U0D4D><U0D30><U0D3F><U0D7D>";/
"<U0D2E><U0D47><U0D2F><U0D4D>";/
"<U0D1C><U0D42><U0D7A>";/
"<U0D1C><U0D42><U0D32><U0D48>";/
"<U0D13><U0D17><U0D38><U0D4D><U0D31><U0D4D><U0D31><U0D4D>";/
"<U0D38><U0D46><U0D2A><U0D4D><U0D31><U0D4D><U0D31><U0D02><U0D2C><U0D7C>";/
"<U0D12><U0D15><U0D4D><U200C><U0D1F><U0D4B><U0D2C><U0D7C>";/
"<U0D28><U0D35><U0D02><U0D2C><U0D7C>";/
"<U0D21><U0D3F><U0D38><U0D02><U0D2C><U0D7C>"
%
%
% Equivalent of AM PM
am_pm     "<U0D30><U0D3E><U0D35><U0D3F><U0D32><U0D46>";"<U0D35><U0D48><U0D15><U0D41>"
%
% Appropriate date and time representation
d_t_fmt     "%A %d %B %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
d_fmt     "%A %d %B %Y"
%
% Appropriate time representation
t_fmt     "%I:%M:%S  %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm     "%I:%M:%S %p %Z"
%
week 7;19971130;1
END LC_TIME
%
LC_MESSAGES
yesexpr "^[+1yY<U0D09>]"
noexpr  "^[-0nN<U0D05>]"
yesstr  "<U0D09><U0D35><U0D4D><U0D35><U0D4D>"
nostr   "<U0D05><U0D32><U0D4D><U0D32>"
END LC_MESSAGES
%
LC_PAPER
copy "hi_IN"
END LC_PAPER
%
LC_NAME
% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
% generated by IBM Basic CountryPack Transformer.
%
%
name_fmt     "%p%t%f%t%g"
name_gen     "<U0D36><U0D4D><U0D30><U0D40>"
name_mr      "<U0D36><U0D4D><U0D30><U0D40><U0D2E><U0D3E><U0D28><U0D41><U0D4D>"
name_mrs     "<U0D36><U0D4D><U0D30><U0D40><U0D2E><U0D24><U0D3F>"
name_miss    "<U0D15><U0D41><U0D2E><U0D3E><U0D30><U0D3F>"
name_ms      "<U0D36><U0D4D><U0D30><U0D40><U0D2E><U0D24><U0D3F>"
END LC_NAME
LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
% generated by IBM Basic CountryPack Transformer.
postal_fmt     "%z%c%T%s%b%e%r"
country_name "<U0D07><U0D28><U0D4D><U0D24><U0D4D><U0D2F>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
country_car "IND"
% മലയാളം
lang_name    "<U0D2E><U0D32><U0D2F><U0D3E><U0D33><U0D02>"
lang_ab      "ml"
lang_term    "mal"
lang_lib    "mal"
END LC_ADDRESS
%
LC_TELEPHONE
copy "hi_IN"
END LC_TELEPHONE
%
LC_MEASUREMENT
copy "hi_IN"
END LC_MEASUREMENT
