comment_char    %
escape_char     /
% Tamil language locale for India.
% Contributed by Kentaroh Noji <knoji@jp.ibm.com> and
% Tetsuji Orita <orita@jp.ibm.com>.
% Fixed day and month abbr & LC_NAME <sivaraj_d@hotmail.com>
% Added Madras Tamil Lexicon Collation Order: T. Vaseeharan <t_vasee@yahoo.com>

LC_IDENTIFICATION
title      "Tamil language locale for India"
source     "IBM Globalization Center of Competency, Yamato Software Laboratory"
address    "1623-14, Shimotsuruma, Yamato-shi, Kanagawa-ken, 242-8502, Japan"
contact    ""
email      "bug-glibc-locales@gnu.org"
tel         ""
fax         ""
language    "Tamil"
territory   "India"
revision    "1.0"
date        "2000,October,27 (XML source:2000,July,20)"
%
category  "ta_IN:2000";LC_IDENTIFICATION
category  "ta_IN:2000";LC_CTYPE
category  "ta_IN:2000";LC_COLLATE
category  "ta_IN:2000";LC_MONETARY
category  "ta_IN:2000";LC_NUMERIC
category  "ta_IN:2000";LC_TIME
category  "ta_IN:2000";LC_MESSAGES
category  "ta_IN:2000";LC_PAPER
category  "ta_IN:2000";LC_NAME
category  "ta_IN:2000";LC_ADDRESS
category  "ta_IN:2000";LC_TELEPHONE
category  "ta_IN:2000";LC_MEASUREMENT

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"

% Tamil uses the alternate digits U+0BE6..U+0BEF
outdigit <U0BE6>..<U0BEF>

% This is used in the scanf family of functions to read Tamil numbers
% using "%Id" and such.
map to_inpunct; /
  (<U0030>,<U0BE6>); /
  (<U0031>,<U0BE7>); /
  (<U0032>,<U0BE8>); /
  (<U0033>,<U0BE9>); /
  (<U0034>,<U0BEA>); /
  (<U0035>,<U0BEB>); /
  (<U0036>,<U0BEC>); /
  (<U0037>,<U0BED>); /
  (<U0038>,<U0BEE>); /
  (<U0039>,<U0BEF>); 

translit_start
include  "translit_combining";""
translit_end
END LC_CTYPE

LC_COLLATE

% Copy the template from ISO/IEC 14651
copy "iso14651_t1"

END LC_COLLATE


LC_MONETARY
% This is the POSIX Locale definition the LC_MONETARY category
% generated by IBM Basic CountryPack Transformer.
% These are generated based on XML base Locale defintion file
% for IBM Class for Unicode.
%
int_curr_symbol       "<U0049><U004E><U0052><U0020>"
currency_symbol       "<U20B9>"
mon_decimal_point     "<U002E>"
mon_thousands_sep     "<U002C>"
mon_grouping          3;2
positive_sign         ""
negative_sign         "<U002D>"
int_frac_digits       2
frac_digits           2
p_cs_precedes         1
p_sep_by_space        1
n_cs_precedes         1
n_sep_by_space        1
p_sign_posn           1
n_sign_posn           1
%
END LC_MONETARY


LC_NUMERIC
% This is the POSIX Locale definition for the LC_NUMERIC  category.
%
decimal_point          "<U002E>"
thousands_sep          "<U002C>"
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       "<U0B9E><U0BBE>";"<U0BA4><U0BBF>";/
            "<U0B9A><U0BC6>";"<U0BAA><U0BC1>";/
            "<U0BB5><U0BBF>";"<U0BB5><U0BC6>";/
            "<U0B9A>"
%
% Full weekday names (%A)
day         "<U0B9E><U0BBE><U0BAF><U0BBF><U0BB1><U0BC1>";"<U0BA4><U0BBF><U0B99><U0BCD><U0B95><U0BB3><U0BCD>";/
            "<U0B9A><U0BC6><U0BB5><U0BCD><U0BB5><U0BBE><U0BAF><U0BCD>";"<U0BAA><U0BC1><U0BA4><U0BA9><U0BCD>";/
            "<U0BB5><U0BBF><U0BAF><U0BBE><U0BB4><U0BA9><U0BCD>";"<U0BB5><U0BC6><U0BB3><U0BCD><U0BB3><U0BBF>";/
            "<U0B9A><U0BA9><U0BBF>"
%
% Abbreviated month names (%b)
abmon       "<U0B9C><U0BA9>";"<U0BAA><U0BBF><U0BAA><U0BCD>";/
            "<U0BAE><U0BBE><U0BB0><U0BCD>";"<U0B8F><U0BAA><U0BCD>";/
            "<U0BAE><U0BC7>";"<U0B9C><U0BC2><U0BA9><U0BCD>";/
            "<U0B9C><U0BC2><U0BB2><U0BC8>";"<U0B86><U0B95>";/
            "<U0B9A><U0BC6><U0BAA><U0BCD>";"<U0B85><U0B95><U0BCD>";/
            "<U0BA8><U0BB5>";"<U0B9F><U0BBF><U0B9A>"
%
% Full month names (%B)
mon         "<U0B9C><U0BA9><U0BB5><U0BB0><U0BBF>";"<U0BAA><U0BBF><U0BAA><U0BCD><U0BB0><U0BB5><U0BB0><U0BBF>";/
            "<U0BAE><U0BBE><U0BB0><U0BCD><U0B9A><U0BCD>";"<U0B8F><U0BAA><U0BCD><U0BB0><U0BB2><U0BCD>";/
            "<U0BAE><U0BC7>";"<U0B9C><U0BC2><U0BA9><U0BCD>";/
            "<U0B9C><U0BC2><U0BB2><U0BC8>";"<U0B86><U0B95><U0BB8><U0BCD><U0B9F><U0BCD>";/
            "<U0B9A><U0BC6><U0BAA><U0BCD><U0B9F><U0BAE><U0BCD><U0BAA><U0BB0><U0BCD>";"<U0B85><U0B95><U0BCD><U0B9F><U0BCB><U0BAA><U0BB0><U0BCD>";/
            "<U0BA8><U0BB5><U0BAE><U0BCD><U0BAA><U0BB0><U0BCD>";"<U0B9F><U0BBF><U0B9A><U0BAE><U0BCD><U0BAA><U0BB0><U0BCD>"
%
% Equivalent of AM PM
am_pm       "<U0B95><U0BBE><U0BB2><U0BC8>";"<U0BAE><U0BBE><U0BB2><U0BC8>"
%
% Appropriate date and time representation
% %A %d %B %Y %I:%M:%S  %Z
d_t_fmt     "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
%
% Appropriate date representation
% %A %d %B %Y
d_fmt       "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059>"
%
% Appropriate time representation
% %I:%M:%S  %Z
t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0020><U0025><U005A>"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
%
%  FIXME: found in CLDR
first_weekday 1
END LC_TIME


LC_MESSAGES
% This is the POSIX Locale definition for the LC_MESSAGES category
% generated by IBM Basic CountryPack Transformer.
% These are generated based on XML base Locale definition file
% for IBM Class for Unicode.
%
yesexpr     "<U005E><U005B><U0B86><U0BAE><U0BCD><U0079><U0059><U005D>"

noexpr      "<U005E><U005B><U0B87><U0BB2><U0BCD><U0BB2><U0BC8><U006E><U004E><U005D>"

% \u0b86\u0bae\u0bcd
yesstr      "<U0B86><U0BAE><U0BCD>"
%
% \u0b87\u0bb2\u0bcd\u0bb2\u0bc8
nostr       "<U0B87><U0BB2><U0BCD><U0BB2><U0BC8>"
%
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    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
name_gen    ""
name_mr     "<U0BA4><U0BBF><U0BB0><U0BC1><U0020>"
name_mrs    "<U0BA4><U0BBF><U0BB0><U0BC1><U0BAE><U0BA4><U0BBF><U0020>"
name_miss   "<U0B9A><U0BC6><U0BB2><U0BCD><U0BB5><U0BBF><U0020>"
name_ms     "<U004D><U0073><U002E>"

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  "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U0062><U0025><U0065><U0025><U0072>"

country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
END LC_ADDRESS


LC_TELEPHONE
copy "hi_IN"
END LC_TELEPHONE


LC_MEASUREMENT
copy "hi_IN"
END LC_MEASUREMENT
