comment_char    %
escape_char     /
% Punjabi language locale for Indian Punjabi(Gurmukhi)
% Last update by A Alam <amanlinux@netscape.net>

LC_IDENTIFICATION
title      "Punjabi language locale for Indian Punjabi(Gurmukhi)"
source     "IndLinux.org"
address    ""
contact    ""
email      "bug-glibc-locales@gnu.org"
tel        ""
fax        ""
language   "Punjabi"
territory  "India"
revision   "0.2"
date       "2004-09-30"
%
category  "pa_IN:2000";LC_IDENTIFICATION
category  "pa_IN:2000";LC_CTYPE
category  "pa_IN:2000";LC_COLLATE
category  "pa_IN:2000";LC_TIME
category  "pa_IN:2000";LC_NUMERIC
category  "pa_IN:2000";LC_MONETARY
category  "pa_IN:2000";LC_MESSAGES
category  "pa_IN:2000";LC_PAPER
category  "pa_IN:2000";LC_NAME
category  "pa_IN:2000";LC_ADDRESS
category  "pa_IN:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_CTYPE
copy	"i18n"

% Punjabi uses the alternate digits U+0A66..U+0A6F
outdigit <U0A66>..<U0A6F>

% This is used in the scanf family of functions to read Punjabi numbers
% using "%Id" and such.
map to_inpunct; /
  (<U0030>,<U0A66>); /
  (<U0031>,<U0A67>); /
  (<U0032>,<U0A68>); /
  (<U0033>,<U0A69>); /
  (<U0034>,<U0A6A>); /
  (<U0035>,<U0A6B>); /
  (<U0036>,<U0A6C>); /
  (<U0037>,<U0A6D>); /
  (<U0038>,<U0A6E>); /
  (<U0039>,<U0A6F>); 

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.
int_curr_symbol       "<U0049><U004E><U0052><U0020>"
currency_symbol       "<U0A30><U0A41><U0A2A><U0A0F>"
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


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       "<U0A10><U0A24><U0020>";/
            "<U0A38><U0A4B><U0A2E><U0020>";/
            "<U0A2E><U0A70><U0A17><U0A32><U0020>";/
            "<U0A2C><U0A41><U0A71><U0A27><U0020>";/
            "<U0A35><U0A40><U0A30><U0020>";/
            "<U0A36><U0A41><U0A71><U0A15><U0A30><U0020>";/
            "<U0A36><U0A28><U0A3F><U0A71><U0A1A><U0A30><U0020>"
%
% Full weekday names (%A)
day       "<U0A10><U0A24><U0A35><U0A3E><U0A30><U0020>";/
            "<U0A38><U0A4B><U0A2E><U0A35><U0A3E><U0A30><U0020>";/
            "<U0A2E><U0A70><U0A17><U0A32><U0A35><U0A3E><U0A30><U0020>";/
            "<U0A2C><U0A41><U0A71><U0A27><U0A35><U0A3E><U0A30><U0020>";/
            "<U0A35><U0A40><U0A30><U0A35><U0A3E><U0A30><U0020>";/
            "<U0A36><U0A41><U0A71><U0A15><U0A30><U0A35><U0A3E><U0A30><U0020>";/
            "<U0A36><U0A28><U0A3F><U0A71><U0A1A><U0A30><U0A35><U0A3E><U0A30><U0020>"


% Abbreviated month names (%b)
abmon       "<U0A1C><U0A28><U0A35><U0A30><U0A40>";/
            "<U0A5E><U0A30><U0A35><U0A30><U0A40>";/
            "<U0A2E><U0A3E><U0A30><U0A1A>";/
            "<U0A05><U0A2A><U0A30><U0A48><U0A32>";/
            "<U0A2E><U0A08>";/
	    "<U0A1C><U0A42><U0A28>";/
            "<U0A1C><U0A41><U0A32><U0A3E><U0A08>";/
            "<U0A05><U0A17><U0A38><U0A24>";/
            "<U0A38><U0A24><U0A70><U0A2C><U0A30>";/
            "<U0A05><U0A15><U0A24><U0A42><U0A2C><U0A30>";/
            "<U0A28><U0A35><U0A70><U0A2C><U0A30>";/
            "<U0A26><U0A38><U0A70><U0A2C><U0A30>"
%
% Full month names (%B)
mon         "<U0A1C><U0A28><U0A35><U0A30><U0A40>";/
            "<U0A5E><U0A30><U0A35><U0A30><U0A40>";/
            "<U0A2E><U0A3E><U0A30><U0A1A>";/
            "<U0A05><U0A2A><U0A30><U0A48><U0A32>";/
            "<U0A2E><U0A08>";/
	    "<U0A1C><U0A42><U0A28>";/
            "<U0A1C><U0A41><U0A32><U0A3E><U0A08>";/
            "<U0A05><U0A17><U0A38><U0A24>";/
            "<U0A38><U0A24><U0A70><U0A2C><U0A30>";/
            "<U0A05><U0A15><U0A24><U0A42><U0A2C><U0A30>";/
            "<U0A28><U0A35><U0A70><U0A2C><U0A30>";/
            "<U0A26><U0A38><U0A70><U0A2C><U0A30>"

%
% Equivalent of AM PM
am_pm       "<U0A38><U0A35><U0A47><U0A30><U0A47>";/
            "<U0A36><U0A3E><U0A2E>"

%
% 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
