comment_char %
escape_char  /
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Licensed to the Apache Software  Foundation (ASF) under one or more
% contributor  license agreements.  See  the NOTICE  file distributed
% with  this  work  for  additional information  regarding  copyright
% ownership.   The ASF  licenses this  file to  you under  the Apache
% License, Version  2.0 (the  License); you may  not use  this file  
% except in  compliance with the License.   You may obtain  a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the  License is distributed on an  "AS IS" BASIS,
% WITHOUT  WARRANTIES OR CONDITIONS  OF ANY  KIND, either  express or
% implied.   See  the License  for  the  specific language  governing
% permissions and limitations under the License.
%
% Copyright 1999-2007 Rogue Wave Software, Inc.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Belarusian Language Locale for Belarus
% Contact: Aleksey Novodvorsky
% Email: aen@logic.ru
% Language: be
% Territory: BY
% Revision: 0.3
% Date: 2000-03-22
% Application: general
% Users: general
% Repertoiremap: mnemonic.ds
% Charset: CP1251
% Distribution and use is free, also
% for commercial purposes.

LC_IDENTIFICATION
title      "Belarusian locale for Belarus"
source     ""
address    ""
contact    ""
email      "bug-glibc@gnu.org"
tel        ""
fax        ""
language   "Belarusian"
territory  "Belarus"
revision   "1.0"
date       "2000-06-29"
%
category  "be_BY:2000";LC_IDENTIFICATION
category  "be_BY:2000";LC_CTYPE
category  "be_BY:2000";LC_COLLATE
category  "be_BY:2000";LC_TIME
category  "be_BY:2000";LC_NUMERIC
category  "be_BY:2000";LC_MONETARY
category  "be_BY:2000";LC_MESSAGES
category  "be_BY:2000";LC_PAPER
category  "be_BY:2000";LC_NAME
category  "be_BY:2000";LC_ADDRESS
category  "be_BY:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_COLLATE
copy "iso14651_t1"

% iso14651_t1 is missing Ukrainian ghe
collating-symbol <UKR-GHE>

reorder-after <CYR-GZHE>
<UKR-GHE>

reorder-after <U0453>
<U0491> <UKR-GHE>;<BAS>;<MIN>;IGNORE

reorder-after <U0403>
<U0490> <UKR-GHE>;<BAS>;<CAP>;IGNORE

reorder-end
END LC_COLLATE

LC_CTYPE
copy "i18n"
END LC_CTYPE

LC_MESSAGES
yesexpr "<U005E><U005B><U0414><U0434><U0059><U0079><U005D><U002E><U002A>"
noexpr  "<U005E><U005B><U041D><U043D><U004E><U006E><U005D><U002E><U002A>"
END LC_MESSAGES

LC_MONETARY
int_curr_symbol           "<U0042><U0059><U0042><U0020>"
currency_symbol           "<U0440><U0443><U0431>"
mon_decimal_point         "<U002E>"
mon_thousands_sep         "<U0020>"
mon_grouping              3;3
positive_sign             ""
negative_sign             "<U002D>"
int_frac_digits           2
frac_digits               2
p_cs_precedes             0
p_sep_by_space            1
n_cs_precedes             0
n_sep_by_space            1
p_sign_posn               1
n_sign_posn               1
END LC_MONETARY

LC_NUMERIC
decimal_point             "<U002C>"
thousands_sep             "<U002E>"
grouping                  3;3
END LC_NUMERIC

LC_TIME
day     "<U041D><U044F><U0434><U0437><U0435><U043B><U044F>";/
        "<U041F><U0430><U043D><U044F><U0434><U0437><U0435><U043B><U0430><U043A>";/
        "<U0410><U045E><U0442><U043E><U0440><U0430><U043A>";/
        "<U0421><U0435><U0440><U0430><U0434><U0430>";/
        "<U0427><U0430><U0446><U0432><U0435><U0440>";/
        "<U041F><U044F><U0442><U043D><U0456><U0446><U0430>";/
        "<U0421><U0443><U0431><U043E><U0442><U0430>"
abday   "<U041D><U044F><U0434>";/
        "<U041F><U0430><U043D>";/
        "<U0410><U045E><U0442>";/
        "<U0421><U0440><U0434>";/
        "<U0427><U0446><U0432>";/
        "<U041F><U044F><U0442>";/
        "<U0421><U0443><U0431>"
mon     "<U0421><U0442><U0443><U0434><U0437><U0435><U043D><U044C>";/
        "<U041B><U044E><U0442><U044B>";/
        "<U0421><U0430><U043A><U0430><U0432><U0456><U043A>";/
        "<U041A><U0440><U0430><U0441><U0430><U0432><U0456><U043A>";/
        "<U0422><U0440><U0430><U0432><U0435><U043D><U044C>";/
        "<U0427><U044D><U0440><U0432><U0435><U043D><U044C>";/
        "<U041B><U0456><U043F><U0435><U043D><U044C>";/
        "<U0416><U043D><U0456><U0432><U0435><U043D><U044C>";/
        "<U0412><U0435><U0440><U0430><U0441><U0435><U043D><U044C>";/
        "<U041A><U0430><U0441><U0442><U0440><U044B><U0447><U043D><U0456><U043A>";/
        "<U041B><U0456><U0441><U0442><U0430><U043F><U0430><U0434>";/
        "<U0421><U043D><U0435><U0436><U0430><U043D><U044C>"
abmon   "<U0421><U0442><U0434>";/
        "<U041B><U044E><U0442>";/
        "<U0421><U0430><U043A>";/
        "<U041A><U0440><U0441>";/
        "<U0422><U0440><U0430>";/
        "<U0427><U044D><U0440>";/
        "<U041B><U0456><U043F>";/
        "<U0416><U043D><U0432>";/
        "<U0412><U0440><U0441>";/
        "<U041A><U0441><U0442>";/
        "<U041B><U0456><U0441>";/
        "<U0421><U043D><U0436>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062>/
<U0020><U0025><U0059><U0020><U0025><U0054>"
d_fmt     "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
t_fmt     "<U0025><U0054>"
am_pm     "";""
t_fmt_ampm ""
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_PAPER
% FIXME
height   297
% FIXME
width    210
END LC_PAPER

LC_TELEPHONE
tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
int_prefix     "<U0033><U0037><U0035>"
END LC_TELEPHONE

LC_MEASUREMENT
% FIXME
measurement    1
END LC_MEASUREMENT

LC_NAME
name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
END LC_NAME

LC_ADDRESS
postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
END LC_ADDRESS
