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


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
