comment_char %
escape_char  /
%
% Romanian Language Locale for Romania
% Source: RAP
% Address: Sankt Jo//rgens Alle 8
%    DK-1615 Ko//benhavn V, Danmark
% Contact: Keld Simonsen
% Email: Keld.Simonsen@dkuug.dk
% Tel: +45 - 31226543
% Fax: +45 - 33256543
% Language: ro
% Territory: RO
% Revision: 4.3
% Date: 1996-10-15
% Application: general
% Users: general
% Charset: UTF-8
% Distribution and use is free, also
% for commercial purposes.
%
% Corrections by:
%  2006-01-07
%  Eddy Petrisor <eddy.petrisor@gmail.com>

LC_IDENTIFICATION
title      "Romanian locale for Romania"
source     "RAP"
address    "Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark"
contact    ""
email      "bug-glibc-locales@gnu.org"
tel        ""
fax        ""
language   "Romanian"
territory  "Romania"
revision   "1.0"
date       "2000-06-29"
%
category  "ro_RO:2000";LC_IDENTIFICATION
category  "ro_RO:2000";LC_CTYPE
category  "ro_RO:2000";LC_COLLATE
category  "ro_RO:2000";LC_TIME
category  "ro_RO:2000";LC_NUMERIC
category  "ro_RO:2000";LC_MONETARY
category  "ro_RO:2000";LC_MESSAGES
category  "ro_RO:2000";LC_PAPER
category  "ro_RO:2000";LC_NAME
category  "ro_RO:2000";LC_ADDRESS
category  "ro_RO:2000";LC_TELEPHONE
category  "ro_RO:2000";LC_MEASUREMENT
END LC_IDENTIFICATION

LC_COLLATE

% Copy the template from ISO/IEC 14651
copy "iso14651_t1"

% The modern Romanian alphabet has 31 letters, ordered as below:
% a a( a> b c d e f g h i i> j k l m n o p q r s s, t t, u v w x y z

collating-symbol <a(>
collating-symbol <a/>>
collating-symbol <i/>>
collating-symbol <s,>
collating-symbol <t,>

reorder-after <GRA>
<CIR>
<BRE>

reorder-after <a>
<a(>
<a/>>
reorder-after <i>
<i/>>
reorder-after <s>
<s,>
reorder-after <t>
<t,>

reorder-after <U0061>
<U0103> <a(>;<BRE>;<MIN>;IGNORE
<U00E2> <a/>>;<CIR>;<MIN>;IGNORE
reorder-after <U0041>
<U0102> <a(>;<BRE>;<CAP>;IGNORE
<U00C2> <a/>>;<CIR>;<CAP>;IGNORE

reorder-after <U0069>
<U00EE> <i/>>;<CIR>;<MIN>;IGNORE
reorder-after <U0049>
<U00CE> <i/>>;<CIR>;<CAP>;IGNORE

reorder-after <U0073>
<U0219> <s,>;<CDI>;<MIN>;IGNORE
<U015F> <s,>;<CDI>;<MIN>;IGNORE
reorder-after <U0053>
<U0218> <s,>;<CDI>;<CAP>;IGNORE
<U015E> <s,>;<CDI>;<CAP>;IGNORE

reorder-after <U0074>
<U021B> <t,>;<CDI>;<MIN>;IGNORE
<U0163> <t,>;<CDI>;<MIN>;IGNORE
reorder-after <U0054>
<U021A> <t,>;<CDI>;<CAP>;IGNORE
<U0162> <t,>;<CDI>;<CAP>;IGNORE

reorder-end

END LC_COLLATE



LC_CTYPE
copy "i18n"

%
% Transliteration is _currently_ a good idea as most fonts/applications do not
% have the correct diacritics for "t comma bellow" (U021A, U021B) and
% "s comma bellow" (U0218, U0219). Thus we currently use and compromise with
% "t cedilla" (U0162, U0163) - which, actually, does not belong to any
% language - and "s cedilla" (U015E, U015F) - which is _not_ correct for
% Romanian, but is correct for Turkish.
%
% This issue should be fixed in the future, when enough font and application
% support will be provided in current operating systems.
%
translit_start
include "translit_combining";""

% if t/scomma is not available, try first t/scedilla
<U0218> "<U015E>";"<U0053>"
<U0219> "<U015F>";"<U0073>"
<U021A> "<U0162>";"<U0054>"
<U021B> "<U0163>";"<U0074>"

% if t/scedilla is not available, try first t/scomma
<U015E> "<U0218>";"<U0053>"
<U015F> "<U0219>";"<U0073>"
<U0162> "<U021A>";"<U0054>"
<U0163> "<U021B>";"<U0074>"

translit_end
END LC_CTYPE



LC_MESSAGES
yesexpr "<U005E><U005B><U0044><U0064><U0059><U0079><U005D><U002E><U002A>"
noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES


LC_MONETARY
% Since the 1st of July 2005, the new currency is the ROmanian New leu
% the symbol is RON and 1 RON = 10000 ROL (old ROmanian Leu)...
int_curr_symbol           "<U0052><U004F><U004E><U0020>"
% but representing counted coins is made in the same way as before.
currency_symbol           "<U004C><U0065><U0069>"
% decimal point is comma
mon_decimal_point         "<U002C>"
% the separation of digits is made in groups of three
% and the separator between the groups is the full stop (dot)
mon_thousands_sep         "<U002E>"
mon_grouping              3;3
% the positive sign is not usualy represented
positive_sign             ""
% while the negative one is
negative_sign             "<U002D>"
% usualy one will display only two digits after the decimal point
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
% same rules as for monetary apply for regular figures:
% decimal point is comma
decimal_point             "<U002C>"
% and the separator between groups is full stop
thousands_sep             "<U002E>"
% the separation of figures is made in groups of three
grouping                  3;3
END LC_NUMERIC


LC_TIME
% abbreviated day names are (starting from Monday): Lu Ma Mi Jo Vi Sb Du
abday   "<U0044><U0075>";"<U004C><U0075>";"<U004D><U0061>";"<U004D><U0069>";/
        "<U004A><U006F>";"<U0056><U0069>";"<U0053><U0062>"
%
% Because in 1992 the Romanian Academy stated that within words the
% writing of the letter i> (i circumflex - U00EE) should be replaced
% by a> (acircumflex - U00E2), we use the post92 writing.
% Note: The actual rule is more complex, but the case which applies for
% Satruday is covered by the exposed explanation above.
%
% Day names are not capitalized:
% duminic<abreve>, luni, mar<tcomma>i,
% miercuri, joi, vineri,
% s<acircumflex>mb<abreve>t<abreve>
%
% Note that Tuesday Romanian day should be using t comma, not t cedilla,
% but due to the low availability of the glyph (U021B) in fonts we use
% the "so called t cedilla"
day     "<U0064><U0075><U006D><U0069><U006E><U0069><U0063><U0103>";/
        "<U006C><U0075><U006E><U0069>";/
        "<U006D><U0061><U0072><U0163><U0069>";/
        "<U006D><U0069><U0065><U0072><U0063><U0075><U0072><U0069>";/
        "<U006A><U006F><U0069>";/
        "<U0076><U0069><U006E><U0065><U0072><U0069>";/
        "<U0073><U00E2><U006D><U0062><U0103><U0074><U0103>"
%
% All month abbreviations are composed of the first three letters of the full
% Romanian names of the months, except for November, whose abbreviation comes
% from the Latin month name, thus the abbreviation is "nov"
%
% Month names are not capitalized:
% ian feb mar apr mai iun iul aug sep oct nov dec
abmon   "<U0069><U0061><U006E>";"<U0066><U0065><U0062>";/
        "<U006D><U0061><U0072>";"<U0061><U0070><U0072>";/
        "<U006D><U0061><U0069>";"<U0069><U0075><U006E>";/
        "<U0069><U0075><U006C>";"<U0061><U0075><U0067>";/
        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
        "<U006E><U006F><U0076>";"<U0064><U0065><U0063>"
%
% Month names are _not_ capitalized in Romanian:
% ianuarie februarie martie
% aprilie mai iunie
% iulie august septembrie
% octombrie noiembrie decembrie
mon     "<U0069><U0061><U006E><U0075><U0061><U0072><U0069><U0065>";/
        "<U0066><U0065><U0062><U0072><U0075><U0061><U0072><U0069><U0065>";/
        "<U006D><U0061><U0072><U0074><U0069><U0065>";/
        "<U0061><U0070><U0072><U0069><U006C><U0069><U0065>";/
        "<U006D><U0061><U0069>";/
        "<U0069><U0075><U006E><U0069><U0065>";/
        "<U0069><U0075><U006C><U0069><U0065>";/
        "<U0061><U0075><U0067><U0075><U0073><U0074>";/
        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0069><U0065>";/
        "<U006F><U0063><U0074><U006F><U006D><U0062><U0072><U0069><U0065>";/
        "<U006E><U006F><U0069><U0065><U006D><U0062><U0072><U0069><U0065>";/
        "<U0064><U0065><U0063><U0065><U006D><U0062><U0072><U0069><U0065>"
% Appropriate date and time representation (%c)
% Romania uses daylight saving and the names of the time zones are
% not widely known nor used
%	"%a %d %b %Y %T %z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020>/
<U0025><U0059><U0020><U0025><U0054><U0020><U0025><U007A>"
%
% Appropriate date representation (%x)
%	"%d.%m.%Y"
d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
% 24 hour format is used,
t_fmt   "<U0025><U0054>"
%  thus no am/pm markers are defined/used
am_pm   "";""
% also am/pm hour display format is not used
t_fmt_ampm ""
% %A %-e %B %Y, %H:%M:%S %z
date_fmt       "<U0025><U0041><U0020><U0025><U002D><U0065><U0020><U0025><U0042>/
<U0020><U0025><U0059><U002C><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U007A>"
% First week day is Monday
first_weekday 2
% First work day is Monday
first_workday 2
END LC_TIME


% Romania uses A4 paper format
LC_PAPER
height   297
width    210
END LC_PAPER


LC_TELEPHONE
tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
int_prefix     "<U0034><U0030>"
END LC_TELEPHONE


% Romania uses the metric system
LC_MEASUREMENT
% metric
measurement 1
END LC_MEASUREMENT


LC_NAME
% Format of a name, taken from the glibc locale for Ukrainian.
% %f Family names.
% %F Family names in uppercase.
% %g First given name.
% %G First given initial.
% %l First given name with Latin letters.
% %o Other shorter name.
% %m Additional given names.
% %M Initials for additional given names.
% %p Profession.
% %s Salutation, such as "Doctor"
% %S Abbreviated salutation, such as "Mr." or "Dr."
% %d Salutation, using the FDCC-sets conventions
%    1 for the name_gen
%    2 for name_mr
%    3 for name_mrs
%    4 for name_miss
%    5 for name_ms
% %t If the preceding field descriptor resulted in an empty string,
%    then the empty string, else a <space>.
%
% FIXME: There are two prefered ways:
% %d%t%s%t%g%t%f and %d%t%s%t%f%t%g%t%m
% The current tendency is to use the first form, while the second is the most
% popular form, it is widespread and widely known.
% Now we stick to the traditional/old/second form: %d%t%s%t%f%t%g%t%m
name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0073><U0025>/
<U0074><U0025><U0066><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D>"
% Dl.
name_mr     "<U0044><U006C><U002E>"
% D-na.
name_mrs    "<U0044><U002D><U006E><U0061><U002E>"
% D-ra.
name_miss     "<U0044><U002D><U0072><U0061><U002E>"
END LC_NAME

LC_ADDRESS
% Format of an address. The fields have the following meaning
% (inspired originaly by glibc locale for Ukranian):

% %n Person's name, possibly constructed with the LC_NAME
%    "name_fmt" keyword. (it appears to be invalid)
% %a Care of person, or organization.
% %f Firm name.
% %d Department name.
% %b Building name.
% %s Street or block (eg. Japanese) name.
% %h House number or designation.
% %N Insert an <end-of-line> if the previous descriptor
%    value was not an empty string; otherwise ignore.
% %t Insert a <space> if the previous descriptor value
%    was not an empty string; otherwise ignore.
% %r Room number, door designation.
% %e Floor number.
% %C Country designation, from the <country_post> keyword.
% %l Local township within town or city. (it appears to be invalid)
% %z Zip number, postal code.
% %T Town, city.
% %S State, province, or prefecture.
% %c Country, as taken from data record.
%
% FIXME: it appears that %n and %l are not working; correct form is:
% %n%N%f%N%a%d%N%s%t%h%N%b%t%e%t%r%N%l%z%t%T%N%S%t%c%N
% implemented form:
% %f%N%a%d%N%s%t%h%N%b%t%e%t%r%N%z%t%T%N%S%t%c%N
postal_fmt    "<U0025><U0066>/
<U0025><U004E><U0025><U0061><U0025><U0064><U0025><U004E>/
<U0025><U0073><U0025><U0074><U0025><U0068><U0025><U004E>/
<U0025><U0062><U0025><U0074><U0025><U0065><U0025><U0074>/
<U0025><U0072><U0025><U004E><U0025><U007A>/
<U0025><U0074><U0025><U0054><U0025><U004E><U0025><U0053>/
<U0025><U0074><U0025><U0063><U0025><U004E>"
% Country names are capitalized: Roma>nia
country_name "<U0052><U006F><U006D><U00E2><U006E><U0069><U0061>"
country_ab2 "<U0052><U004F>"
country_ab3 "<U0052><U004F><U0055>"
country_num 642
country_car "<U0052><U004F>"
% ISBN code is 973
% see: http://homepages.cwi.nl/~dik/english/codes/isbn.html
% and other sources
country_isbn 973
% FIXME: is it really RO?
country_post "<U0052><U004F>"
% language names are not capitalized in Romanian ( roma>na( )
lang_name "<U0072><U006F><U006D><U00E2><U006E><U0103>"
lang_ab "<U0072><U006F>"
% set the terminology code to "ron" as defined in iso639-2
lang_term "<U0072><U006F><U006E>"
% set the bibliographic code to "rum" as defined in iso639-2
lang_lib "<U0072><U0075><U006D>"
END LC_ADDRESS

