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.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Nynorsk language locale for Norway.
% Contributed by Kentaroh Noji <knoji@jp.ibm.com> and
% Tetsuji Orita <orita@jp.ibm.com>.

LC_IDENTIFICATION
title      "Nynorsk language locale for Norway"
source     "IBM Globalization Center of Competency, Yamato Software Laboratory"
address    "1623-14, Shimotsuruma, Yamato-shi, Kanagawa-ken, 242-8502, Japan"
contact    ""
email      "bug-glibc@gnu.org"
tel        ""
fax        ""
language   "Norwegian, Nynorsk"
territory  "Norway"
revision   "1.0"
date       "2000-08-31"
%
category  "nn_NO:2000";LC_IDENTIFICATION
category  "nn_NO:2000";LC_CTYPE
category  "nn_NO:2000";LC_COLLATE
category  "nn_NO:2000";LC_TIME
category  "nn_NO:2000";LC_NUMERIC
category  "nn_NO:2000";LC_MONETARY
category  "nn_NO:2000";LC_MESSAGES
category  "nn_NO:2000";LC_PAPER
category  "nn_NO:2000";LC_NAME
category  "nn_NO:2000";LC_ADDRESS
category  "nn_NO:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_CTYPE
copy "i18n"
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 difintion file
% for IBM Class for Unicode/Java
%
int_curr_symbol       "<U004E><U004F><U004B><U0020>"
currency_symbol       "<U006B><U0072>"
mon_decimal_point     "<U002C>"
mon_thousands_sep     "<U00A0>"
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        0
p_sign_posn           1
n_sign_posn           3
%
END LC_MONETARY


LC_NUMERIC
% This is the POSIX Locale definition for the LC_NUMERIC  category.
%
decimal_point          "<U002C>"
thousands_sep          "<U00A0>"
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 difintion file
% for IBM Class for Unicode/Java
%
% Abbreviated weekday names (%a)
abday       "<U0073><U0075><U0020>";"<U006D><U00E5><U0020>";/
            "<U0074><U0079><U0020>";"<U006F><U006E><U0020>";/
            "<U0074><U006F><U0020>";"<U0066><U0072><U0020>";/
            "<U006C><U0061><U0075><U0020>"
%
% Full weekday names (%A)
day         "<U0073><U0075><U006E><U0064><U0061><U0067><U0020>";/
            "<U006D><U00E5><U006E><U0064><U0061><U0067><U0020>";/
            "<U0074><U0079><U0073><U0064><U0061><U0067><U0020>";/
            "<U006F><U006E><U0073><U0064><U0061><U0067><U0020>";/
            "<U0074><U006F><U0072><U0073><U0064><U0061><U0067><U0020>";/
            "<U0066><U0072><U0065><U0064><U0061><U0067><U0020>";/
            "<U006C><U0061><U0075><U0072><U0064><U0061><U0067><U0020>"
%
% Abbreviated month names (%b)
abmon       "<U006A><U0061><U006E>";"<U0066><U0065><U0062>";/
            "<U006D><U0061><U0072>";"<U0061><U0070><U0072>";/
            "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
            "<U006A><U0075><U006C>";"<U0061><U0075><U0067>";/
            "<U0073><U0065><U0070>";"<U006F><U006B><U0074>";/
            "<U006E><U006F><U0076>";"<U0064><U0065><U0073>"
%
% Full month names (%B)
mon         "<U006A><U0061><U006E><U0075><U0061><U0072>";/
            "<U0066><U0065><U0062><U0072><U0075><U0061><U0072>";/
            "<U006D><U0061><U0072><U0073>";/
            "<U0061><U0070><U0072><U0069><U006C>";/
            "<U006D><U0061><U0069>";/
            "<U006A><U0075><U006E><U0069>";/
            "<U006A><U0075><U006C><U0069>";/
            "<U0061><U0075><U0067><U0075><U0073><U0074>";/
            "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
            "<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/
            "<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
            "<U0064><U0065><U0073><U0065><U006D><U0062><U0065><U0072>"
%
% Equivalent of AM PM
am_pm       "";""
%
% Appropriate date and time representation
% %d. %b %Ykl %H.%M %Z
d_t_fmt     "<U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025>/
<U0059><U0020><U006B><U006C><U0020><U0025><U0048><U002E><U0025><U004D>/
<U0020><U0025><U005A>"
%
% Appropriate date representation
% %d. %b %Y
d_fmt       "<U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025><U0059>"
%
% Appropriate time representation
% kl %H.%M %Z
t_fmt       "<U006B><U006C><U0020><U0025><U0048><U002E><U0025><U004D>/
<U0020><U0025><U005A>"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm  ""
%
% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
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><U004A><U006A><U0059><U0079><U005D><U002E><U002A>"
noexpr      "<U005E><U005B><U004E><U006E><U005D><U002E><U002A>"
END LC_MESSAGES


LC_PAPER
height      297
width       210
END LC_PAPER


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


LC_TELEPHONE
tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U006C>"
tel_dom_fmt    "<U0025><U006C>"
int_select     "<U0030><U0030>"
int_prefix     "<U0034><U0037>"
END LC_TELEPHONE


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

END LC_MEASUREMENT
