comment_char    %
escape_char     /
% Tharu language locale for Nepal.
% Contributed by Arun Kumar Pyasi <arun@chitwanix.com>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% This file is a part of GNU C Library (glibc) and contains locale data. The
% Free Software Foundation does not claim any copyright interest in the
% locale data contained in this file. The foregoing does not affect the
% license of GNU C Library (glibc) as a whole. It does not exempt you from the
% conditions of the license if your use would otherwise be governed by
% that license.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LC_IDENTIFICATION
title      "Tharu language locale for Nepal"
source     "Chitwanix OS Development"
address    "Sangam Market, narayanghat, Nepal"
contact    ""
email      "info@chitwanix.com"
tel        "9779845330174"
fax        ""
language   "Chitwania Tharu"
territory  "Nepal"
revision   "1.1"
date       "2013-11-15"
%
category  "the_NP:2013";LC_IDENTIFICATION
category  "the_NP:2013";LC_CTYPE
category  "the_NP:2013";LC_COLLATE
category  "the_NP:2013";LC_TIME
category  "the_NP:2013";LC_NUMERIC
category  "the_NP:2013";LC_MONETARY
category  "the_NP:2013";LC_MESSAGES
category  "the_NP:2013";LC_PAPER
category  "the_NP:2013";LC_NAME
category  "the_NP:2013";LC_ADDRESS
category  "the_NP:2013";LC_TELEPHONE
category  "the_NP:2013";LC_MEASUREMENT

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"

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       "<U0930><U0942>"
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
% This is the POSIX Locale definition for the LC_NUMERIC  category.
%
decimal_point          "<U002E>"
thousands_sep          "<U002C>"
grouping               3
%
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       "<U0906><U0907><U0924><U0020>";/
            "<U0938><U094B><U092E><U0020>";/
            "<U092E><U0902><U0917><U0932><U0020>";/
            "<U092C><U0941><U0927><U0020>";/
            "<U092C><U093F><U0939><U093F><U0020>";/
            "<U0936><U0941><U0915><U094D><U0930><U0020>";/
            "<U0936><U0928><U093F><U0020>"
%
% Full weekday names (%A)
day         "<U0906><U0907><U0924><U092C><U093E><U0930><U0020>";/
            "<U0938><U094B><U092E><U092C><U093E><U0930><U0020>";/
            "<U092E><U0902><U0917><U0932><U092C><U093E><U0930><U0020>";/
            "<U092C><U0941><U0927><U092C><U093E><U0930><U0020>";/
            "<U092C><U093F><U0939><U093F><U092C><U093E><U0930><U0020>";/
            "<U0936><U0941><U0915><U094D><U0930><U092C><U093E><U0930><U0020>";/
            "<U0936><U0928><U093F><U092C><U093E><U0930><U0020>"
%
% Abbreviated month names (%b)
abmon       "<U091C><U0928><U0935><U0930><U0940>";/
            "<U092B><U093C><U0930><U0935><U0930><U0940>";/
            "<U092E><U093E><U0930><U094D><U091A>";/
            "<U0905><U092A><U094D><U0930><U0947><U0932>";/
            "<U092E><U0908>";"<U091C><U0942><U0928>";/
            "<U091C><U0941><U0932><U093E><U0908>";/
            "<U0905><U0917><U0938><U094D><U0924>";/
            "<U0938><U093F><U0924><U092E><U094D><U092C><U0930>";/
            "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
            "<U0928><U0935><U092E><U094D><U092C><U0930>";/
            "<U0926><U093F><U0938><U092E><U094D><U092C><U0930>"
%
% Full month names (%B)
mon         "<U091C><U0928><U0935><U0930><U0940>";/
            "<U092B><U093C><U0930><U0935><U0930><U0940>";/
            "<U092E><U093E><U0930><U094D><U091A>";/
            "<U0905><U092A><U094D><U0930><U0947><U0932>";/
            "<U092E><U0908>";"<U091C><U0942><U0928>";/
            "<U091C><U0941><U0932><U093E><U0908>";/
            "<U0905><U0917><U0938><U094D><U0924>";/
            "<U0938><U093F><U0924><U092E><U094D><U092C><U0930>";/
            "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
            "<U0928><U0935><U092E><U094D><U092C><U0930>";/
            "<U0926><U093F><U0938><U092E><U094D><U092C><U0930>"
%
% Equivalent of AM PM
am_pm       "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
            "<U0905><U092A><U0930><U093E><U0939><U094D><U0928>"
%
% 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>"
%  FIXME: found in CLDR
first_weekday 1
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
% This is the ISO_IEC TR14652 Locale definition for the
% LC_PAPER category
height      297
width       210

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>"
% the
lang_term    "<U0074><U0068><U0065>"
% the
lang_lib     "<U0074><U0068><U0065>"
country_ab2 "<U004E><U0050>"
country_ab3 "<U004E><U0050><U004C>"
country_num 524
END LC_ADDRESS


LC_TELEPHONE
% This is the ISO_IEC TR14652 Locale definition for the
%
tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020>/
<U003B><U0025><U006C>"
int_prefix     "<U0039><U0031>"

END LC_TELEPHONE


LC_MEASUREMENT
% This is the ISO_IEC TR14652 Locale definition for the
%
measurement 1

END LC_MEASUREMENT
