comment_char    %
escape_char     /
% Kannada language locale for India.
% Copied fron hi_IN one, G Karunakar <karunakar@freedomink.org> . Kannada Translations by Arun Sharma <arun@sharma-home.net>

% *** Below just modify to suit your language. I have modified for Kannada
% *** other language codes - Gujarati - gu, Punjabi - pa, Oriya - or

LC_IDENTIFICATION
title      "Kannada language locale for India"
source     "IndLinux.org"
address    ""
contact    ""
email      "bug-glibc-locales@gnu.org"
tel        ""
fax        ""
language   "Kannada"
territory  "India"
revision   "0.1"
date       "2002-11-28"
%
category  "kn_IN:2000";LC_IDENTIFICATION
category  "kn_IN:2000";LC_CTYPE
category  "kn_IN:2000";LC_COLLATE
category  "kn_IN:2000";LC_TIME
category  "kn_IN:2000";LC_NUMERIC
category  "kn_IN:2000";LC_MONETARY
category  "kn_IN:2000";LC_MESSAGES
category  "kn_IN:2000";LC_PAPER
category  "kn_IN:2000";LC_NAME
category  "kn_IN:2000";LC_ADDRESS
category  "kn_IN:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"

% Kannada uses the alternate digits U+0CE6..U+0CEF
outdigit <U0CE6>..<U0CEF>

% This is used in the scanf family of functions to read Kannada numbers
% using "%Id" and such.
map to_inpunct; /
  (<U0030>,<U0CE6>); /
  (<U0031>,<U0CE7>); /
  (<U0032>,<U0CE8>); /
  (<U0033>,<U0CE9>); /
  (<U0034>,<U0CEA>); /
  (<U0035>,<U0CEB>); /
  (<U0036>,<U0CEC>); /
  (<U0037>,<U0CED>); /
  (<U0038>,<U0CEE>); /
  (<U0039>,<U0CEF>);

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.
% These are generated based on XML base Locale definition file
% for IBM Class for Unicode/Java
%
int_curr_symbol       "<U0049><U004E><U0052><U0020>"
currency_symbol       "<U20B9>"
mon_decimal_point     "<U002E>"
mon_thousands_sep     "<U002C>"
mon_grouping          3
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
copy "hi_IN"
END LC_NUMERIC


% *** Modify them for Kannada - eg write down on paper - see what all unicode
% *** characters are needed, look up their codes & put them here - Kannada

LC_TIME
% This is the POSIX Locale definition for the LC_TIME category.
% These are generated based on XML base Locale definition file
% for IBM Class for Unicode/Java
%
% Abbreviated weekday names (%a)
abday       "<U0CB0>";/
            "<U0CB8><U0CCB>";/
            "<U0CAE><U0C82>";/
            "<U0CAC><U0CC1>";/
            "<U0C97><U0CC1>";/
            "<U0CB6><U0CC1>";/
            "<U0CB6>"
%
% Full weekday names (%A)
day      "<U0CB0><U0CB5><U0CBF><U0CB5><U0CBE><U0CB0>";/
            "<U0CB8><U0CCB><U0CAE><U0CB5><U0CBE><U0CB0>";/
            "<U0CAE><U0C82><U0C97><U0CB3><U0CB5><U0CBE><U0CB0>";/
            "<U0CAC><U0CC1><U0CA7><U0CB5><U0CBE><U0CB0>";/
            "<U0C97><U0CC1><U0CB0><U0CC1><U0CB5><U0CBE><U0CB0>";/
            "<U0CB6><U0CC1><U0C95><U0CCD><U0CB0><U0CB5><U0CBE><U0CB0>";/
            "<U0CB6><U0CA8><U0CBF><U0CB5><U0CBE><U0CB0>"

%
% Abbreviated month names (%b)
abmon       	"<U0C9C>";/
	"<U0CAB><U0CC6>";/
	"<U0CAE><U0CBE>";/
	"<U0C8F>";/
	"<U0CAE><U0CC7>";/
	"<U0C9C><U0CC2>";/
	"<U0C9C><U0CC1>";/
	"<U0C86>";/
	"<U0CB8><U0CC6>";/
	"<U0C85>";/
	"<U0CA8>";/
	"<U0CA6>"

%
% Full month names (%B)
mon      	"<U0C9C><U0CA8><U0CB5><U0CB0><U0CBF>";/
	"<U0CAB><U0CC6><U0CAC><U0CCD><U0CB0><U0CB5><U0CB0><U0CBF>";/
	"<U0CAE><U0CBE><U0CB0><U0CCD><U0C9A>";/
	"<U0C8F><U0CAA><U0CCD><U0CB0><U0CBF><U0CB2><U0CCD>";/
	"<U0CAE><U0CC7>";/
	"<U0C9C><U0CC2><U0CA8><U0CCD>";/
	"<U0C9C><U0CC1><U0CB2><U0CBE><U0CAF><U0CBF>";/
	"<U0C86><U0C97><U0CB8><U0CCD><U0CA4><U0CC1>";/
	"<U0CB8><U0CC6><U0CAA><U0CCD><U0C9F><U0CC6><U0C82><U0CAC><U0CB0>";/
	"<U0C85><U0C95><U0CCD><U0CA4><U0CC2><U0CAC><U0CB0>";/
	"<U0CA8><U0CB5><U0CC6><U0C82><U0CAC><U0CB0>";/
	"<U0CA6><U0CB6><U0C82><U0CAC><U0CB0>"
%
% Equivalent of AM PM
am_pm       	"<U0CAA><U0CC2><U0CB0><U0CCD><U0CB5><U0CBE><U0CB9><U0CCD><U0CA8>";/
            	"<U0C85><U0CAA><U0CB0><U0CBE><U0CB9><U0CCD><U0CA8>"

% *** There arent any Devanagari characters below, so for time being
% *** maintain same for Kannada also,  Karunakar

%
% Appropriate date and time representation
% %A %d %b %Y%I:%M:%S  %Z
d_t_fmt     "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
<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><U0062>/
<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>"
%
date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
END LC_TIME


LC_MESSAGES
yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
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.
%
name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
<U0025><U0067>"
name_gen    ""
name_mr     "<U004D><U0072><U002E>"
name_mrs    "<U004D><U0072><U0073><U002E>"
name_miss   "<U004D><U0069><U0073><U0073><U002E>"
name_ms     "<U004D><U0073><U002E>"

END LC_NAME


LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the
% LC_ADDRESS
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
