comment_char    %
escape_char     /
% Gurajati Language Locale For India.
% Copied from hi_IN one, G Karunakar <karunakar@freedomink.org>
% Gujarati stuff from Tapan Parikh <tap2k@yahoo.com>
% Gujarati stuff Modified by Ankit Patel <ankit@redhat.com>

LC_IDENTIFICATION
title      "Gujarati Language Locale For India"
source     "IndLinux.org"
address    ""
contact    ""
email      "bug-glibc-locales@gnu.org"
tel        ""
fax        ""
language   "Gujarati"
territory  "India"
revision   "0.2"
date       "2004-14-09"
%
category  "gu_IN:2000";LC_IDENTIFICATION
category  "gu_IN:2000";LC_CTYPE
category  "gu_IN:2000";LC_COLLATE
category  "gu_IN:2000";LC_TIME
category  "gu_IN:2000";LC_NUMERIC
category  "gu_IN:2000";LC_MONETARY
category  "gu_IN:2000";LC_MESSAGES
category  "gu_IN:2000";LC_PAPER
category  "gu_IN:2000";LC_NAME
category  "gu_IN:2000";LC_ADDRESS
category  "gu_IN:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"

% Gujarati uses the alternate digits U+0AE6..U+0AEF
outdigit <U0AE6>..<U0AEF>

% This is used in the scanf family of functions to read Gujarati numbers
% using "%Id" and such.
map to_inpunct; /
  (<U0030>,<U0AE6>); /
  (<U0031>,<U0AE7>); /
  (<U0032>,<U0AE8>); /
  (<U0033>,<U0AE9>); /
  (<U0034>,<U0AEA>); /
  (<U0035>,<U0AEB>); /
  (<U0036>,<U0AEC>); /
  (<U0037>,<U0AED>); /
  (<U0038>,<U0AEE>); /
  (<U0039>,<U0AEF>);

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         "<U002B>"
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

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		"<U0AB0><U0AB5><U0ABF>";/
		"<U0AB8><U0ACB><U0AAE>";/
		"<U0AAE><U0A82><U0A97><U0AB3>";/
		"<U0AAC><U0AC1><U0AA7>";/
		"<U0A97><U0AC1><U0AB0><U0AC1>";/
		"<U0AB6><U0AC1><U0A95><U0ACD><U0AB0>";/
		"<U0AB6><U0AA8><U0ABF>"

%
% Full weekday names (%A)
day		"<U0AB0><U0AB5><U0ABF><U0AB5><U0ABE><U0AB0>";/
		"<U0AB8><U0ACB><U0AAE><U0AB5><U0ABE><U0AB0>";/
		"<U0AAE><U0A82><U0A97><U0AB3><U0AB5><U0ABE><U0AB0>";/
		"<U0AAC><U0AC1><U0AA7><U0AB5><U0ABE><U0AB0>";/
		"<U0A97><U0AC1><U0AB0><U0AC1><U0AB5><U0ABE><U0AB0>";/
		"<U0AB6><U0AC1><U0A95><U0ACD><U0AB0><U0AB5><U0ABE><U0AB0>";/
		"<U0AB6><U0AA8><U0ABF><U0AB5><U0ABE><U0AB0>"

% Abbreviated month names (%b)
abmon 		"<U0A9C><U0ABE><U0AA8>";/
		"<U0AAB><U0AC7><U0AAC>";/
		"<U0AAE><U0ABE><U0AB0>";/
		"<U0A8F><U0AAA><U0ACD><U0AB0>";/
		"<U0AAE><U0AC7>";/
		"<U0A9C><U0AC1><U0AA8>";/
		"<U0A9C><U0AC1><U0AB2>";/
		"<U0A93><U0A97>";/
		"<U0AB8><U0AAA><U0ACD><U0A9F>";/
		"<U0A93><U0A95><U0ACD><U0A9F>";/
		"<U0AA8><U0ACB><U0AB5>";/
		"<U0AA1><U0ABF><U0AB8>"

%
% Full month names (%B)
mon	"<U0A9C><U0ABE><U0AA8><U0ACD><U0AAF><U0AC1><U0A86><U0AB0><U0AC0>";/
	"<U0AAB><U0AC7><U0AAC><U0ACD><U0AB0><U0AC1><U0A86><U0AB0><U0AC0>";/
	"<U0AAE><U0ABE><U0AB0><U0ACD><U0A9A>";/
	"<U0A8F><U0AAA><U0ACD><U0AB0><U0ABF><U0AB2>";/
	"<U0AAE><U0AC7>";/
	"<U0A9C><U0AC1><U0AA8>";/
	"<U0A9C><U0AC1><U0AB2><U0ABE><U0A87>";/
	"<U0A93><U0A97><U0AB8><U0ACD><U0A9F>";/
	"<U0AB8><U0AAA><U0ACD><U0A9F><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>";/
	"<U0A93><U0A95><U0ACD><U0A9F><U0ACB><U0AAC><U0AB0>";/
	"<U0AA8><U0AB5><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>";/
	"<U0AA1><U0ABF><U0AB8><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>"

%
% Equivalent of AM PM
am_pm		"<U0AB8><U0AB5><U0ABE><U0AB0><U0AC7>";/
		"<U0AB8><U0ABE><U0A82><U0A9C><U0AC7>"

% *** There aren't any Devanagari characters below, so for time being
% *** maintain same for Gujarati 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><U0AB9><U005D>"
noexpr  "<U005E><U005B><U006E><U004E><U0AA8><U005D>"
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    "<U0A9C><U0ABE><U0AA4><U0ABF>"
name_mr     "<U0AB6><U0ACD><U0AB0><U0AC0><U0AAE><U0ABE><U0AA8>"
name_mrs    "<U0AB6><U0ACD><U0AB0><U0AC0><U0AAE><U0AA4><U0ABF>"
name_miss   "<U0A95><U0AC1><U0AAE><U0ABE><U0AB0><U0AC0>"
name_ms     "<U0AB8><U0AB6><U0ACD><U0AB0><U0AC0>"

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
