Ukrainian locale

Volodymyr M. Lisivka lvm@mystery.lviv.net
Tue Jun 17 14:08:00 GMT 2003


цЇ ц▌ц└, 15-ц·ц┘ц▓-03 14:31 Petter Reinholdtsen ц░ц┴ц⌠ц│ц▄ц┴:
> 
> [Volodymyr M. Lisivka]
> > Fine, but I am change my employer and _very_ busy now, sorry.
> 
> OK.  I'm in no hurry to get the locale included in glibc, so we can
> continue when you have more time.
Ok, but current locale has bugs in collation order for Ukrainian letters.
Can You update at least LC_COLLATION section to fix bugs?


> There is also a licensing issue.  Your locale contains the following
> copyright comment:
> 
>   % Copyright (C) 2003 Volodymyr M. Lisivka <v_lisivka@sourceforge.net>
>   %
>   % Distribution and use is free, also for commercial purposes
>   % if this copyright notice are preserved.
> 
> I am not sure if this is compatible with the GNU GPL.  Did you intend
> it to be?

What I want:
   - locale definition must be free for all (even for non-GPL OS'es and
systems);
   - information about author must be preserved in source file (I want
receive any bugreports and questions about current Ukrainian locale).

AFAIK these requirements is compatible with GNU GPL v2.
But if not, I can remove all incompatibles from copyright comment. just say,
what I must change.


> It might also be required for you to sigh some legal
> paperwork to assign the copyright over to the Free Software Fundation.
> Is this OK with you?
Yes, but my previous letter was found in 1.5 year after arriving to FSF. ;)

> Then some comments on the locale itself.
> 
>  - I've been told by the glibc maintainers that the <U#> notation
>    should be used for ASCII values as well as non-ASCII values.  The
>    locale uses ASCII texts several places.  This should probably be
>    changed.
Is there any tool to do that?


>  - The glibc locales seem to contain some information in comments at
>    the top of the file.  Your file is missing these.  The included
>    patch adds these headers.
Where I can find documentation about format and purpose of this comment?


> +% Charset: KOI8-U
What this string mean? (Default encoding for locale?)


>  - I believe the full name of the language and region should be used
>    in LC_IDENTIFICATION.  Your locale uses the codes.  This patch
>    changes this.
> 
>  - The category in LC_IDENTIFICATION should probably use uk_UA instead
>    of il18n to match the other locales in glibc.  This patch fixes it.
> 
>  - Why do you use posix:1993 for LC_NUMERIC?
Please read ISO TR14652 about LC_IDENTIFICATION section.

>  - The locale uses your sourceforge address.  I do not think it is
>    working.
Yes, You right. Correct address - "v_lisivka@users.sourceforge.net", sorry.


See newer version in atachment.


-- 
Best regards,         mailto:lvm@mystery.lviv.net
Volodymyr M. Lisivka  ICQ#14549856
-------------- next part --------------
comment_char %
escape_char  /
%
% Copyright (C) 2003 Volodymyr M. Lisivka <v_lisivka@sourceforge.net>
%
% Ukrainian Language Locale for Ukraine
% Source: Unknown
% Contact: Volodymyr M. Lisivka
% Email: v_lisivka@users.sourceforge.net
% Language: uk
% Territory: UA
% Revision: 2.1.4
% Date: 2003-06-17
% Application: general
% Users: general
% Charset: KOI8-U
%
% Distribution and use is free, also for commercial purposes
% if this copyright notice are preserved.

LC_IDENTIFICATION
% Title of document.
title      "Ukrainian Language Locale for Ukraine"
%Organization name.
source     ""
%Organization postal address.
address    ""
%Name of contact person.
contact    "GNU libc maintainers"
%Electronic address of organization or contact person.
email      "bug-glibc@gnu.org"
%Telephone number of organization in international format.
tel        ""
%Fax number of organization in international format.
fax        ""
%Code of language, to which this document applies.
language   "uk"
%Code of country/geographic extent (ISO 3166), to which this document applies.
territory  "UA"
%Intended user audience.
audience   "general"
%If for use with special application, a description of this application.
application "general"
%Short name.
abbreviation "ULU-2.1.4"
%Revision (numbers and dots).
revision   "2.1.4"
%Revision date
date       "2003-06-17"

category  "il18n:2002";LC_IDENTIFICATION
category  "il18n:2002";LC_CTYPE
category  "il18n:2002";LC_COLLATE
category  "il18n:2000";LC_TIME
category  "posix:1993";LC_NUMERIC
category  "il18n:2002";LC_MONETARY
category  "il18n:2002";LC_MESSAGES
category  "il18n:2002";LC_PAPER
category  "il18n:2002";LC_NAME
category  "il18n:2000";LC_ADDRESS
category  "il18n:2002";LC_TELEPHONE
category  "posix:1993";LC_MEASUREMENT

END LC_IDENTIFICATION



LC_CTYPE
copy "i18n"
translit_start

% http://www.rada.gov.ua/translit.htm
% UKRAINIAN-ENGLISH TRANSLITERATION TABLE
%
% On 19 April 1996, an official Ukrainian-English transliteration system
% was adopted by the Ukrainian Legal Terminology Commission (Decision
% No 9).
%
%    * Use of the approved system is not mandatory for the transliteration
% of foreign names into Ukrainian.
%    * Transliteration should be made directly between Ukrainian and English
% without the use of any intermediary languages.
%    * Decision No9, in accordance with the Legal Terminology Commission's
% express authority, is binding only for the transliteration of Ukrainian
% names in English in legislative and official acts.
%    * For brevity's sake, the system routinely allows for names such as the
% city of 'Zaporizhzhia' to be given as 'Zaporizhia,' 'L`viv' as 'Lviv,'
% etc. Also included is a short list of official spellings for miscellaneous
% terms: 'Ukraine' (no use of the article 'the'), 'Crimea' (as opposed to
% 'Krym'), 'Black Sea,' and 'Sea of Azov'. In certain cases, 'traditional'
% forms may be shown in parentheses after the official form:
% 'Dnipro (Dnieper).'
%    * In addition, apostrophe marks and softening marks may be omitted upon
%  transliteration into English.
%
%Ukrainian  English  Note  Example
%letter     letter 
%
%<U0410>	<U0410>	-	<U0410><U043B><U0443><U0448><U0442><U0430> - Alushta
<U0410> "A"
<U0430> "a"
%<U0411>	B	-	<U0411><U043E><U0440><U0449><U0430><U0433><U0456><U0432><U043A><U0430> - Borschahivka
<U0411> "B"
<U0431> "b"
%<U0412>	V	-	<U0412><U0438><U0448><U0433><U043E><U0440><U043E><U0434> - Vyshhorod
<U0412> "V"
<U0432> "v"
%<U0413>	H, gh	<U041D>-in most cases, gh - when recreating the combination "<U0437><U0433>"	<U0413><U0430><U0434><U044F><U0447> - Hadiach; <U0417><U0433><U043E><U0440><U0430><U043D><U0438> - Zghorany
<U0413> "H"
<U0433> "h"
<U0417><U0413> "ZGH"
<U0417><U0433> "Zgh"
<U0437><U0413> "zGH"
<U0437><U0433> "zgh"
%<U0490>	G	-	<U0490><U0430><U043B><U0430><U0491><U0430><U043D> - Galagan
<U0490> "G"
<U0491> "g"
%<U0414>	D	-	<U0414><U043E><U043D> - Don
<U0414> "D"
<U0434> "d"
%<U0415>	E	-	<U0420><U0456><U0432><U043D><U0435> - Rivne
<U0415> "E"
<U0435> "e"
%<U0404>	Ye, ie	Ye - at the beginning of words, <U0456><U0435> - in other positions 	<U0404><U043D><U0430><U043A><U0456><U0454><U0432><U0435> - Yenakiieve; <U041D><U0430><U0454><U043D><U043A><U043E> - Naienko
<U0404> "YE"
<U0454> "ye"
%TODO
%<U0416>	Zh	-	<U0416><U0438><U0442><U043E><U043C><U0438><U0440> - Zhytomyr
<U0416> "ZH"
<U0436> "zh"
%<U0417>	Z	-	<U0417><U0430><U043A><U0430><U0440><U043F><U0430><U0442><U0442><U044F> - Zakarpattia
<U0417> "Z"
<U0437> "z"
%<U0418>	Y	-	<U041C><U0435><U0434><U0432><U0438><U043D> - Medvyn
<U0418> "Y"
<U0438> "y"
%<U0406>	I	-	<U0406><U0440><U0448><U0430><U0432><U0430> - Irshava
<U0406> "I"
<U0456> "i"
%<U0407>	Yi, I	Yi - at the beginning of words, <U0456> - in other positions	<U0407><U0436><U0430><U043A><U0435><U0432><U0438><U0447> - Yizhakevych;<U041A><U0430><U0434><U0456><U0457><U0432><U043A><U0430> - Kadiivka
<U0407> "YI"
<U0457> "yi"
%TODO: 'i ' if after any letter
%<U0419>	Y, i	Y - at the beginning of words, <U0456> - in other positions	<U0419><U043E><U0441><U0438><U043F><U0456><U0432><U043A><U0430> - Yosypivka;<U0421><U0442><U0440><U0438><U0439> - Stryi
<U0419> "Y"
<U0439> "y"
%TODO: 'i' if after any letter
%<U041A>	K	-	<U041A><U0438><U0457><U0432> - Kyiv
<U041A> "K"
<U043A> "k"
%<U041B>	L	-	<U041B><U0435><U0431><U0435><U0434><U0438><U043D> - Lebedyn
<U041B> "L"
<U043B> "l"
%<U041C>	M	-	<U041C><U0438><U043A><U043E><U043B><U0430><U0457><U0432> - Mykolaiv
<U041C> "M"
<U043C> "m"
%<U041D>	N	-	<U041D><U0456><U0436><U0438><U043D> - Nizhin
<U041D> "N"
<U043D> "n"
%<U041E>	O	-	<U041E><U0434><U0435><U0441><U0430> - Odesa
<U041E> "O"
<U043E> "o"
%<U041F>	P	-	<U041F><U043E><U043B><U0442><U0430><U0432><U0430> - Poltava
<U041F> "P"
<U043F> "p"
%<U0420>	R	-	<U0420><U043E><U043C><U043D><U0438> - Romny
<U0420> "R"
<U0440> "r"
%<U0421>	S	-	<U0421><U0443><U043C><U0438> - Sumy
<U0421> "S"
<U0441> "s"
%<U0422>	T	-	<U0422><U0435><U0442><U0435><U0440><U0456><U0432> - Teteriv
<U0422> "T"
<U0442> "t"
%<U0423>	U	-	<U0423><U0436><U0433><U043E><U0440><U043E><U0434> - Uzhhorod
<U0423> "U"
<U0443> "u"
%<U0424>	F	-	<U0424><U0430><U0441><U0442><U0456><U0432> - Fastiv
<U0424> "F"
<U0444> "f"
%<U0425>	Kh	-	<U0425><U0430><U0440><U043A><U0456><U0432> - Kharkiv
<U0425> "KH"
<U0445> "kh"
%<U0426>	Ts	-	<U0411><U0456><U043B><U0430> <U0426><U0435><U0440><U043A><U0432><U0430> - Bila Tserkva
<U0426> "TS"
<U0446> "ts"
%<U0427>	Ch	-	<U0427><U0435><U0440><U043D><U0456><U0432><U0446><U0456> - Chernivtsi
<U0427> "CH"
<U0447> "ch"
%<U0428>	Sh	-	<U0428><U043E><U0441><U0442><U043A><U0430> - Shostka
<U0428> "SH"
<U0448> "sh"
%<U0429>	Sch	-	<U0413><U043E><U0449><U0430> -Hoscha
<U0429> "SCH"
<U0449> "sch"
%<U042C>	`	(see commentary)	<U0420><U0443><U0441><U044C> - Rus`; <U041B><U044C><U0432><U0456><U0432> - L`viv
<U042C> "`"
<U044C> "`"
%<U042E>	Yu, iu	Yu - at the beginning of words, iu - in other positions 	<U042E><U0440><U0456><U0439> - Yurii;<U041A><U0440><U044E><U043A><U0456><U0432><U043A><U0430> - Krukivka
<U042E> "YU"
<U044E> "yu"
%TODO: 'iu' if after any letter
%<U042F>	Ya, ia	Ya - at the beginning of words, <U0456><U0430> - in other positions 	<U042F><U0433><U043E><U0442><U0438><U043D> - Yahotyn;I<U0447><U043D><U044F> - Ichnia
<U042F> "YA"
<U044F> "ya"
%TODO: 'ia' if after any letter
%'	'	(see commentary)	<U0417><U043D><U0430><U043C>'<U044F><U043D><U043A><U0430> - Znamianka
%TODO


%Specials:

% NUMERO SIGN
<U2116> "No"
% LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
<U00AB> "<U003C><U003C>" % <<
% RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
<U00BB> "<U003E><U003E>" % >>

translit_end

END LC_CTYPE



LC_COLLATE
% Ukrainian Alpahabet (1881-1933) (old but right)
%
% <U0410><U0430> <U0411><U0431> <U0412><U0432> <U0413><U0433>
% <U0490><U0491> <U0414><U0434> <U0415><U0435> <U0404><U0454>
% <U0416><U0436> <U0417><U0437> <U0418><U0438> <U0406><U0456>
% <U0407><U0457> <U0419><U0439> <U041A><U043A> <U041B><U043B>
% <U041C><U043C> <U041D><U043D> <U041E><U043E> <U041F><U043F>
% <U0420><U0440> <U0421><U0441> <U0422><U0442> <U0423><U0443>
% <U0424><U0444> <U0425><U0445> <U0426><U0446> <U0427><U0447>
% <U0428><U0448> <U0429><U0449> <U042E><U044E> <U042F><U044F>
% <U042C><U044C>
%
%
% Ukrainian Alpahabet (1933-1991) (old)
%
% <U0410><U0430> <U0411><U0431> <U0412><U0432> <U0413><U0433>
% <U0414><U0434> <U0415><U0435> <U0404><U0454> <U0416><U0436>
% <U0417><U0437> <U0418><U0438> <U0406><U0456> <U0407><U0457>
% <U0419><U0439> <U041A><U043A> <U041B><U043B> <U041C><U043C>
% <U041D><U043D> <U041E><U043E> <U041F><U043F> <U0420><U0440>
% <U0421><U0441> <U0422><U0442> <U0423><U0443> <U0424><U0444>
% <U0425><U0445> <U0426><U0446> <U0427><U0447> <U0428><U0448>
% <U0429><U0449> <U042E><U044E> <U042F><U044F> <U042C><U044C>
%
% Note:
% Ukrainian letter GHE_WITH_UPTURN (<U0490>) was removed from Ukrainian
% alphabet by Stalin in 1933 and was returned back in 1991, when
% Ukraine takes independency.
%
%
% Ukrainian Alphabet (1991) (current but not right)
%
% <U0410><U0430> <U0411><U0431> <U0412><U0432> <U0413><U0433>
% <U0490><U0491> <U0414><U0434> <U0415><U0435> <U0404><U0454>
% <U0416><U0436> <U0417><U0437> <U0418><U0438> <U0406><U0456>
% <U0407><U0457> <U0419><U0439> <U041A><U043A> <U041B><U043B>
% <U041C><U043C> <U041D><U043D> <U041E><U043E> <U041F><U043F>
% <U0420><U0440> <U0421><U0441> <U0422><U0442> <U0423><U0443>
% <U0424><U0444> <U0425><U0445> <U0426><U0446> <U0427><U0447>
% <U0428><U0448> <U0429><U0449> <U042C><U044C> <U042E><U044E>
% <U042F><U044F>
%
% Note:
% Soft sign (<U042C>) is not a real letter and must be placed at the end, but
% Ukrainian alpabet was changed to be compatible with Russian alphabet
% in last year before Ukraine take independency (1990-1991,
% by academic Ivanenko, which tries to make one code page for Russian,
% Ukrainian and Belarusian and, instead of fixing MS-DOS, change Ukrainian
% alphabet to make it compatible with Russian and Belarusian alphabets),
% so many peoples missunderstand this change as return to proper alphabet.

copy "iso14651_t1"

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

% Soft sign and apostrophe must be ignored when sorting because they is
% just signs, not real letters.
% ( "n`"=="n", "'ya"=="ya", etc. )
%
% Apostrophe already ignored by iso14651_t1.
%
% Soft sign may be placed after nine letters (in Ukrainian language).
% <U0432><U0434><U0437><U043B><U043D><U0440><U0441><U0442><U0446> + <U044C>
%
collating-symbol <V+SS>
collating-element <V-SS> from "<U0412><U042C>"
collating-element <V-ss> from "<U0412><U044C>"
collating-element <v-SS> from "<U0432><U042C>"
collating-element <v-ss> from "<U0432><U044C>"

collating-symbol <D+SS>
collating-element <D-SS> from "<U0414><U042C>"
collating-element <D-ss> from "<U0414><U044C>"
collating-element <d-SS> from "<U0434><U042C>"
collating-element <d-ss> from "<U0434><U044C>"

collating-symbol <Z+SS>
collating-element <Z-SS> from "<U0417><U042C>"
collating-element <Z-ss> from "<U0417><U044C>"
collating-element <z-SS> from "<U0437><U042C>"
collating-element <z-ss> from "<U0437><U044C>"

collating-symbol <L+SS>
collating-element <L-SS> from "<U041B><U042C>"
collating-element <L-ss> from "<U041B><U044C>"
collating-element <l-SS> from "<U043B><U042C>"
collating-element <l-ss> from "<U043B><U044C>"

collating-symbol <N+SS>
collating-element <N-SS> from "<U041D><U042C>"
collating-element <N-ss> from "<U041D><U044C>"
collating-element <n-SS> from "<U043D><U042C>"
collating-element <n-ss> from "<U043D><U044C>"

collating-symbol <R+SS>
collating-element <R-SS> from "<U0420><U042C>"
collating-element <R-ss> from "<U0420><U044C>"
collating-element <r-SS> from "<U0440><U042C>"
collating-element <r-ss> from "<U0440><U044C>"

collating-symbol <S+SS>
collating-element <S-SS> from "<U0421><U042C>"
collating-element <S-ss> from "<U0421><U044C>"
collating-element <s-SS> from "<U0441><U042C>"
collating-element <s-ss> from "<U0441><U044C>"

collating-symbol <T+SS>
collating-element <T-SS> from "<U0422><U042C>"
collating-element <T-ss> from "<U0422><U044C>"
collating-element <t-SS> from "<U0442><U042C>"
collating-element <t-ss> from "<U0442><U044C>"

collating-symbol <TSE+SS>
collating-element <TS-SS> from "<U0426><U042C>"
collating-element <TS-ss> from "<U0426><U044C>"
collating-element <ts-SS> from "<U0446><U042C>"
collating-element <ts-ss> from "<U0446><U044C>"


collating-symbol <CAP-MIN>
collating-symbol <MIN-CAP>

%Capital letters come before small letters. ("A"<"a")
reorder-after <CAP>
<CAP-MIN>
<MIN-CAP>
<MIN>


%Reorder letters with soft sign
% <U0432><U0434><U0437><U043B><U043D><U0440><U0441><U0442><U0446> + <U044C>

reorder-after <CYR-VE>
<V+SS>
reorder-after <U0412>
<V-SS> <CYR-VE>;<BAS>;<CAP>;<V+SS>
<V-ss> <CYR-VE>;<BAS>;<CAP-MIN>;<V+SS>
reorder-after <U0432>
<v-SS> <CYR-VE>;<BAS>;<MIN-CAP>;<V+SS>
<v-ss> <CYR-VE>;<BAS>;<MIN>;<V+SS>

reorder-after <CYR-DE>
<D+SS>
reorder-after <U0414>
<D-SS> <CYR-DE>;<BAS>;<CAP>;<D+SS>
<D-ss> <CYR-DE>;<BAS>;<CAP-MIN>;<D+SS>
reorder-after <U0434>
<d-SS> <CYR-DE>;<BAS>;<MIN-CAP>;<D+SS>
<d-ss> <CYR-DE>;<BAS>;<MIN>;<D+SS>

reorder-after <CYR-ZE>
<Z+SS>
reorder-after <U0417>
<Z-SS> <CYR-ZE>;<BAS>;<CAP>;<Z+SS>
<Z-ss> <CYR-ZE>;<BAS>;<CAP-MIN>;<Z+SS>
reorder-after <U0437>
<z-SS> <CYR-ZE>;<BAS>;<MIN-CAP>;<Z+SS>
<z-ss> <CYR-ZE>;<BAS>;<MIN>;<Z+SS>

reorder-after <CYR-EL>
<L+SS>
reorder-after <U041B>
<L-SS> <CYR-EL>;<BAS>;<CAP>;<L+SS>
<L-ss> <CYR-EL>;<BAS>;<CAP-MIN>;<L+SS>
reorder-after <U043B>
<l-SS> <CYR-EL>;<BAS>;<MIN-CAP>;<L+SS>
<l-ss> <CYR-EL>;<BAS>;<MIN>;<L+SS>

reorder-after <CYR-EN>
<N+SS>
reorder-after <U041D>
<N-SS> <CYR-EN>;<BAS>;<CAP>;<N+SS>
<N-ss> <CYR-EN>;<BAS>;<CAP-MIN>;<N+SS>
reorder-after <U043D>
<n-SS> <CYR-EN>;<BAS>;<MIN-CAP>;<N+SS>
<n-ss> <CYR-EN>;<BAS>;<MIN>;<N+SS>

reorder-after <CYR-ER>
<R+SS>
reorder-after <U0420>
<R-SS> <CYR-ER>;<BAS>;<CAP>;<R+SS>
<R-ss> <CYR-ER>;<BAS>;<CAP-MIN>;<R+SS>
reorder-after <U0440>
<r-SS> <CYR-ER>;<BAS>;<MIN-CAP>;<R+SS>
<r-ss> <CYR-ER>;<BAS>;<MIN>;<R+SS>

reorder-after <CYR-ES>
<S+SS>
reorder-after <U0421>
<S-SS> <CYR-ES>;<BAS>;<CAP>;<S+SS>
<S-ss> <CYR-ES>;<BAS>;<CAP-MIN>;<S+SS>
reorder-after <U0441>
<s-SS> <CYR-ES>;<BAS>;<MIN-CAP>;<S+SS>
<s-ss> <CYR-ES>;<BAS>;<MIN>;<S+SS>

reorder-after <CYR-TE>
<T+SS>
reorder-after <U0422>
<T-SS> <CYR-TE>;<BAS>;<CAP>;<T+SS>
<T-ss> <CYR-TE>;<BAS>;<CAP-MIN>;<T+SS>
reorder-after <U0442>
<t-SS> <CYR-TE>;<BAS>;<MIN-CAP>;<T+SS>
<t-ss> <CYR-TE>;<BAS>;<MIN>;<T+SS>

reorder-after <CYR-TSE>
<TSE+SS>
reorder-after <U0426>
<TS-SS> <CYR-TSE>;<BAS>;<CAP>;<TSE+SS>
<TS-ss> <CYR-TSE>;<BAS>;<CAP-MIN>;<TSE+SS>
reorder-after <U0446>
<ts-SS> <CYR-TSE>;<BAS>;<MIN-CAP>;<TSE+SS>
<ts-ss> <CYR-TSE>;<BAS>;<MIN>;<TSE+SS>


%Placing <UKR-GHE> to proper position.
% iso14651_t1
%<U0432> <CYR-VE>;<BAS>;<MIN>;IGNORE
%<U0433> <CYR-GHE>;<BAS>;<MIN>;IGNORE
%<U0434> <CYR-DE>;<BAS>;<MIN>;IGNORE
reorder-after <CYR-GHE>
<UKR-GHE>
reorder-after <U0413>
<U0490> <UKR-GHE>;<BAS>;<CAP>;IGNORE
reorder-after <U0433>
<U0491> <UKR-GHE>;<BAS>;<MIN>;IGNORE



%Broken collation order for capital letter UKR-I (<U0406>)
% iso14651_t1:
%<U0438> <CYR-I>;<BAS>;<MIN>;IGNORE
%<U0456> <UKR-I>;<BAS>;<MIN>;IGNORE
%<U0406> <UKR-I>;<BAS>;<MIN>;IGNORE ???????
%<U0457> <UKR-YI>;<BAS>;<MIN>;IGNORE
%<U0439> <CYR-IBRE>;<BAS>;<MIN>;IGNORE

reorder-after <CYR-I>
<UKR-I>
reorder-after <U0418>
<U0406> <UKR-I>;<BAS>;<CAP>;IGNORE  %FIX
reorder-after <U0438>
<U0456> <UKR-I>;<BAS>;<MIN>;IGNORE  %just


% %For pre-1991 alphabet: placing soft sign (<CYR-YEROU>) at end,
% %unlike other cyrillic alphabets.
%
% reorder-after <CYR-YA>
% <CYR-YEROU>
% reorder-after <U042F>
% <U042C> <CYR-YEROU>;<BAS>;<CAP>;IGNORE
% reorder-after <U044F>
% <U044C> <CYR-YEROU>;<BAS>;<MIN>;IGNORE


% Note:
% All characters from foreign alphabets, must be placed _after_ Ukrainian
% alphabet.

%TODO

reorder-end



END LC_COLLATE



LC_MESSAGES

%WARNING: Symbols Y and Cyrillic_N placed at one key on Ukrainian keyboards
%but mean different responses.
%
%Use key T or Cyrillic_Z(Zhoda) or Cyrillic_GHE(Harazd) to be sure always.
%Use '+' or '1' if You doubt.

%a regular expression that describes possible yes-responses
yesexpr "^[<U0422><U0442><U0417><U0437><U0413><U0433>TtYy1+].*"

%WARNING: Symbols N and Cyrillic_T placed at one key on Ukrainian keyboards
%but mean different responses.
%
%Use key H or Cyrillic_V (Vidmova) to be sure always.
%Use '-' or '0' if You doubt.

%A regular expression that describes possible no-responses.
noexpr  "^[<U041D><U043D><U0412><U0432>HhNn0-].*"

%Output string for ``yes''.
yesstr "<U0442><U0430><U043A>" % tak

%Output string for ``no''.
nostr "<U043D><U0456>"   % ni

END LC_MESSAGES



LC_MONETARY

%Examples:
%
% 100,00 hr
% -100,00 hr
% UAH 100,00
% UAH -100,00
%
%         0,01 hr
%         0,10 hr
%         1,00 hr
%        10,00 hr
%       100,00 hr
%      1000,00 hr (EXCEPTION)
%    10 000,00 hr
%   100 000,00 hr
% 1 000 000,00 hr
%...
%
%Format without comma for documents:
%
% ----15 hryven` 25 kopiyok
% ----15 hry. 25 kop.
% ---- -16 hry. 00 kop.
% ----0 hry. 00 kop.
%( "----" means long line over empty space before number or begin of field).
%
%And with numbers in words, to verify previous field:
%
% ---- p'yatnadtcyat` hryven` dvadtcyat` p'yat` kopiyok
% ---- minus shisnadtcyat` hryven` nul` kopiyok
% ---- p'yatnadtcyat` hry. 25 kop.
% ---- minus shisnadtcyat` hry. 00 kop.
% ---- nul` hry. 00 kop.

%the local currency symbol
currency_symbol           "<U0433><U0440>" % hr (hryvnya)

%This must be a 4-character string containing the international currency
%symbol as defined by the ISO 4217 standard (three characters) followed
%by a separator.
%
% DSTU ISO 3166
% Code   Name    Name in English language
% UAH    <U0433><U0440><U0438><U0432><U043D><U044F>  hryvnya
int_curr_symbol           "UAH "

%the string that will be used as the decimal delimiter when formatting
%monetary quantities.
mon_decimal_point         "," % see LC_NUMERIC:decimal_point

%he string that will be used as a group separator when formatting
%monetary quantities.
mon_thousands_sep         " " % see LC_NUMERIC:thousands separator

%Define  the  size of each group of digits in formatted monetary
%quantities.  The operand is a sequence of integers separated by
%semicolons. Each integer specifies the number of digits in each
%group,  with the initial integer defining the size of the group
%immediately  preceding the decimal delimiter, and the following
%integers  defining the preceding groups. If the last integer is
%not  -1,  then the size of the previous group (if any) shall be
%repeatedly  used  for  the remainder of the digits. If the last
%integer is -1, then no further grouping shall be performed.
%
%FIXME: Must be "123 456 789,01" but "1234,56"
%FIXME: but I can't fix this with current glibc locale system.
mon_grouping              3;3

%a string that is used to indicate a positive sign for monetary
%quantities
positive_sign             ""

%a string that is used to indicate a negative sign for monetary
%quantities
negative_sign             "-"

%followed by the number of fractional digits that should be used when
%formatting with the int_curr_symbol.
int_frac_digits           2

%followed by the number of fractional digits that should be used when
%formatting with the currency_symbol
frac_digits               2

% 1 - the currency_symbol or int_curr_symbol should precede the
% formatted monetary quantity 
% 0 - the symbol succeeds the value
p_cs_precedes             0
int_p_cs_precedes         1

%0 - the currency_symbol succeeds the negative value.
%1 - the currency_symbol precedes the negative value.
n_cs_precedes             0
int_n_cs_precedes         1

%0 - means that no space should be printed between the currency_symbol
% and the value for a monetary quantity with a non-negative value.
%1 - means that a space should be printed between the currency_symbol
% and the value.
%2 - means that a space should be printed between the symbol and the
%sign string, if adjacent.
p_sep_by_space            2
int_p_sep_by_space        2

%0 - no space separates the currency_symbol or int_curr_symbol from the
%value for a negative monetary quantity.
%1 - a space separates the symbol from the value.
%2 - a space separates the symbol and the sign string, if adjacent.
n_sep_by_space            1
int_n_sep_by_space        1

%An integer set to a value indicating the positioning of the
%positive_sign for a monetary quantity with a non-negative value.
%
%0 - Parentheses enclose the quantity and the currency_symbol or
%int_curr_symbol.
%1 - The sign string precedes the quantity and the currency_symbol or the
%int_curr_symbol.
%2 - The sign string succeeds the quantity and the currency_symbol or the
%int_curr_symbol.
%3 - The sign string precedes the currency_symbol or the int_curr_symbol.
%4 - The sign string succeeds the currency_symbol or the int_curr_symbol.
p_sign_posn               1
int_p_sign_posn           4

%An integer set to a value indicating the positioning of the
%negative_sign for a monetary quantity with a negative value.
%
%0 - Parentheses enclose the quantity and the currency_symbol or
%int_curr_symbol.
%1 - The sign string precedes the quantity and the currency_symbol or the
%int_curr_symbol.
%2 - The sign string succeeds the quantity and the currency_symbol or the
%int_curr_symbol.
%3 - The sign string precedes the currency_symbol or the int_curr_symbol.
%4 - The sign string succeeds the currency_symbol or the int_curr_symbol.
n_sign_posn               1
int_n_sign_posn           4

END LC_MONETARY



LC_NUMERIC

% Examples:
%
%         1
%	 10
%       100
%      1000 (EXCEPTION)
%    10 000
%   100 000
% 1 000 000
%
% 1,0
% 0,1
% 0,01
% 0,001
% 0,0001
% 0,00001
% 
%  1
% -1

%the string that will be used as the decimal delimiter when formatting
%numeric quantities
decimal_point             "," % see LC_MONETARY:mon_decimal_pint

%the string that will be used as a group separator when formatting
%numeric quantities
thousands_sep             " " % see LC_MONETARY:mon_thousands_sep

%a string that describes the formatting of numeric quantities
%
% See mon_grouping
%
%FIXME: Must be "123 456 789,01" but "1234,56"
%FIXME: but I can't fix this with current glibc locale system
grouping                  3;3

END LC_NUMERIC



LC_TIME

% Examples of date:
%
% sereda, chotyrnadtcyate travnya dvitysyachi tret`oho roku n.e.
% sereda, chotyrnadtcyate travnya dvitysyachi tret`oho roku
% sereda, 1-e travnya 2003-ho roku n.e.
% sereda, 1-e travnya 2003-ho roku
% sereda, 1 travnya 2003
% sereda, 01-tra-2003
% sr, 01-tra-03
% sr, 01-tra-2003
% 01.05.03 (Recomended by DSTU)
% 01.05.2003 (Allowed but not recomended by DSTU)
% 2003.05.01 (Allowed but not recomended by DSTU)
% 01/tra/03 (Deprecated, but still commonly used format)
% 1-e travnya (not "1 travnya" or "1 traven`" or "1-tra")
%
% Notes:
%  month after day, year after month
%  all month/weekday names and abbreviations in lower case
%  month name in date must be used in another form, than in calendar
%  day name may be used in another form in another context
%  (sereda, v seredu, tciyeyi seredy, etc.)

% Examples of time:
% 23:59:59 +0200
% 00:00:00 +0200
% 00:00

%Week description, fields:
% length of week
% Gregorian date of first day of week (19971130 for Sunday, 19971201 for Monday)
% number of weekday to be contained in first week of year
%BUG: didn't work with glibc-2.2.5
%week 7;19971201;4 % 7 days; Monday; Thuesday. Conforming to ISO 8601.

%a list of abbreviated weekday names, the list starts with Monday, see week. (%a)
%BUG: glibc-2.2.5
%BUG: violation of ISO/IEC TR14652:2002 - list must begins with Monday
%BUG: (see week) but currently it always must begins with Sunday.
%BUG: Please move pn (Mon) to begin of list and nd (Sun) to
%BUG: end of list after fixing it.
abday /
        "<U043D><U0434>"; %nd  /
        "<U043F><U043D>"; %pn  /
        "<U0432><U0442>"; %vt  /
        "<U0441><U0440>"; %sr  /
        "<U0447><U0442>"; %cht /
        "<U043F><U0442>"; %pt  /
        "<U0441><U0431>"  %sb

%a list of weekday names, the list starts with first day of week, see week. (%A)
%BUG: glibc-2.2.5
%BUG: violation of ISO/IEC TR14652:2002 - list must begins with Monday
%BUG: (see week) but currently it always must begins with Sunday.
%BUG: Please move ponedilok (Monday) to begin of list and nedilya (Sunday) to
%BUG: end of list after fixing it.
day /
        "<U043D><U0435><U0434><U0456><U043B><U044F>";    %nedilya   /
	"<U043F><U043E><U043D><U0435><U0434><U0456><U043B><U043E><U043A>"; %ponedilok /
        "<U0432><U0456><U0432><U0442><U043E><U0440><U043E><U043A>";  %vivtorok  /
	"<U0441><U0435><U0440><U0435><U0434><U0430>";    %sereda    /
        "<U0447><U0435><U0442><U0432><U0435><U0440>";    %chetver   /
        "<U043F>'<U044F><U0442><U043D><U0438><U0446><U044F>";  %pjatnycya /
        "<U0441><U0443><U0431><U043E><U0442><U0430>"     %subota

%a list of abbreviated month names. (%b)
abmon /
        "<U0441><U0456><U0447>"; %sich /
        "<U043B><U044E><U0442>"; %lyut /
        "<U0431><U0435><U0440>"; %ber  /
        "<U043A><U0432><U0456>"; %kvi  /
        "<U0442><U0440><U0430>"; %tra  /
        "<U0447><U0435><U0440>"; %cher /
        "<U043B><U0438><U043F>"; %lyp  /
        "<U0441><U0435><U0440>"; %ser  /
        "<U0432><U0435><U0440>"; %ver  /
        "<U0436><U043E><U0432>"; %zhov /
        "<U043B><U0438><U0441>"; %lys  /
        "<U0433><U0440><U0443>"  %hru 

%a list of month names in proper form for calendar, see alt_digits. (%B)
mon /
        "<U0441><U0456><U0447><U0435><U043D><U044C>";   %sichen`  /
        "<U043B><U044E><U0442><U0438><U0439>";    %lyutyj   /
        "<U0431><U0435><U0440><U0435><U0437><U0435><U043D><U044C>"; %berezen` /
        "<U043A><U0432><U0456><U0442><U0435><U043D><U044C>";  %kviten`  /
        "<U0442><U0440><U0430><U0432><U0435><U043D><U044C>";  %traven`  /
        "<U0447><U0435><U0440><U0432><U0435><U043D><U044C>";  %cherven` /
        "<U043B><U0438><U043F><U0435><U043D><U044C>";   %lypen`   /
        "<U0441><U0435><U0440><U043F><U0435><U043D><U044C>";  %serpen`  /
        "<U0432><U0435><U0440><U0435><U0441><U0435><U043D><U044C>"; %veresen` /
        "<U0436><U043E><U0432><U0442><U0435><U043D><U044C>";  %zhovten` /
        "<U043B><U0438><U0441><U0442><U043E><U043F><U0430><U0434>"; %lystopad /
        "<U0433><U0440><U0443><U0434><U0435><U043D><U044C>"   %hruden` 

%A list of month names in proper form for date, see mon. (%Om)
% This is a HACK!
alt_digits "0"; % glibc 2.3.x requires nonempty string for zero (bug?)/
        "<U0441><U0456><U0447><U043D><U044F>";     % sichnya   /
        "<U043B><U044E><U0442><U043E><U0433><U043E>";    % lyutoho   /
        "<U0431><U0435><U0440><U0435><U0437><U043D><U044F>";   % bereznya  /
        "<U043A><U0432><U0456><U0442><U043D><U044F>";    % kvitnya   /
        "<U0442><U0440><U0430><U0432><U043D><U044F>";    % travnya   /
        "<U0447><U0435><U0440><U0432><U043D><U044F>";    % chervnya  /
        "<U043B><U0438><U043F><U043D><U044F>";     % lypnya    /
        "<U0441><U0435><U0440><U043F><U043D><U044F>";    % serpnya   /
        "<U0432><U0435><U0440><U0435><U0441><U043D><U044F>";   % veresnya  /
        "<U0436><U043E><U0432><U0442><U043D><U044F>";    % zhovtnya  /
        "<U043B><U0438><U0441><U0442><U043E><U043F><U0430><U0434><U0430>"; % lystopada /
        "<U0433><U0440><U0443><U0434><U043D><U044F>"     % hrudnya

%Appropriate date representation for date(1).
date_fmt       "%A, %-d %Om %Y %X %z"

%The appropriate date and time format. (%c)
d_t_fmt  "%a, %d-%b-%Y %X %z"

%The appropriate date format. (%x)
d_fmt     "%d.%m.%y"

%The appropriate time format. (%X)
t_fmt     "%T"

%The appropriate time format when using 12h clock format. (%r)
t_fmt_ampm "%l:%M:%S %P"

%The appropriate representation of the am and pm strings. (%p)
am_pm     "<U0434><U043E>";"<U043F><U043E>" % do/po - do obidu/po obidi

%Define the first day to be displayed in a calendar.
%Day number (1 = first) according to the information specified with the "day"
%keyword.
%(Sunday for a week beginning with Sunday, or Monday for a week beginning with
% Monday).
%BUG: first day of week - Monday, but list of days begins with Sunday due
%BUG: bug in glibc-2.2.5, so Monday is second day.
%BUG: Change it to 1 after fixing bugs.
first_weekday 2

%Define the first workday, see week, first_weekday
%BUG: first working day of week - Monday, but list of days begins with Sunday
%BUG: due bug in glibc-2.2.5, so Monday is second day.
%BUG: Change it to 1 after fixing bugs.
first_workday 2

% Zymovyj CHas (winter time) or z.ch. (or nothing)
% Litnij CHas (summer time) or l.ch.
%
% ( or EET/EEST (Easter Europe [Summer] Time) )
% ( or Europe/Kyiv (or Kiev, in Russian) )
%
%Format:
%
% <ZoneName><Offset><ZoneName><Offset>,<rule>,<rule>[,...]
%
%  ZoneName - at least 3 letters, up to 10
%  Offset - (+|-)hh[:mm[:ss]]
%     - - time zone is east of Prime Meridian
%     + - time zone is west of Prime Meridian
%  rule: <date>[/time[/year]]
%   date:
%     J<JulianDay> , 1-365 (without 29.02)
%     <JulianDay> , 0-364 (without 29.02)
%     M<m>.<n>.<d> - m - month(1-12), w - week(1-5), d - day of week(0-7)
%   time - as offset (without +/-)
%
%Rule - EU
% Rule    EU      1981    max     -       Mar     lastSun  1:00u  1:00    S
% Rule    EU      1996    max     -       Oct     lastSun  1:00u  0       -
%
%FIXME: How use it? (Tested via TZ environment variable).
%FIXME: Can I use cyrillic characters or latin only?
%timezone "<U0437>.<U0447>.-02:00<U043B>.<U0447>.-03:00,M3.5.7/01:00,M10.5.7/01:00"

% Example:
%
%           traven`         cherven`
% pn      5 12 19 26       2  9 16 23 30
% vt      6 13 20 27       3 10 17 24
% sr      7 14 21 28       4 11 18 25
% ct  +1+ 8 15 22 29       5 12 19 26
% pt  +2++9+16 23 30       6 13 20 27
%*sb* *3*10*17*24*31*     *7*14*21+28+
%+nd+ +4+11+18+25+    +1+ +8+15+22+29+
% 
% + - means red color
% * - means bold font
%
% Direction of the display of calendar dates:
% 1 - left-right from top
% 2 - top-down from left
% 3 - right-left from top
cal_direction 2

END LC_TIME



LC_PAPER
% Default paper: A4
height   297 % in millimeters
width    210 % in millimeters
END LC_PAPER



LC_TELEPHONE

% Format of a telephone number for international use.
%
%a area code without nationwide prefix (prefix is often <0>). 
%A area code including nationwide prefix (prefix is often <0>). 
%l local number (within area code). 
%e extension (to local number) 
%c country code 
%C alternate carrier service code used for dialling abroad 
%t Insert a <space> if the previous descriptor s value was not an empty
%  string; otherwise ignore.
tel_int_fmt    "+%c %a %l" % +380 44 4908888

% Format of a telephone number for domestic use.
% See tel_int_fmt.
tel_dom_fmt    "(%A) %l" % (044) 4908888

% Prefix to call international phone numbers, see ???.
int_select     "8~10"

%Prefix used from other countries to call the area, see ???. (%c)
int_prefix     "380"

END LC_TELEPHONE



LC_MEASUREMENT
% 1 - ISO 1000
% 2 - U.S.A.
% 3 - other
measurement    1
END LC_MEASUREMENT



LC_NAME
%Examples:
% Full name: pan Volodymyr Mykolayovych Lisivka
% Means:
%     pan - mister
%     Volodymyr - the man name (Lord of the World :) )
%     Mykolayovych - middle name (son of Mykola)
%     Lisivka - family name
%
% For documents: Lisivka V. M.
% Regular name: pan Volodymyr Lisivka
% Bossname: Volodymyr Mykolayovych
% For friends: Volodya
% For family: Vovka (for brothers), Vova(for mother)
%
% Begining of official letters:
%  Shanovnyj(-na) Volodymyre Lisivka, ...
%
% A salutation to not well known person:
%   pane Lisivka
%
% A salutation to boss:
%   Volodymyre Mykolayovychu
%
% A salutation to well known person (but not a friend):
%   pane Volodymyre
%
% FIXME:
%  to make proper salutation, we must change person name and middle name
%  to proper forms (klychna forma), but this is imposible without
%  ispell-like rules. 
%  Now I use regular form, like in Russian (sic!) langauge.

%Field descriptors for the "name_fmt" keyword: 
%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>.
name_fmt    "%d%t%g%t%m%t%f" % pan Volodymyr Mykolayovych Lisivka

%A salutation valid for all persons
name_gen    "<U0448><U0430><U043D><U043E><U0432><U043D><U0438><U0439>(-<U043D><U0430>)" % shanovnyj(-na)

%A salutation valid for males
name_mr     "<U043F><U0430><U043D>" % pane

%A salutation valid for all females
name_ms     "<U043F><U0430><U043D><U0456>" % pani

%A salutation valid for married females
name_mrs    "<U043F><U0430><U043D><U0456>" % pani

%A salutation valid for unmarried females
name_miss   "<U043F><U0430><U043D><U043D><U0430>" % panna

END LC_NAME



LC_ADDRESS

% Example of address in a city:
%
%  Volodymyru Lisivtci
%  vul. Pul`uya 9, kv. 21
%  m. L`viv
%  79005
%
% Means:
%  Volodymyru Lisivtci - to what person
%  vul. Pul`uya 9, kv. 21 - street and building, apartment number (or firm name)
%  m. L`viv - city name (m. - misto)
%  79005 - ZIP code
%
% Example of firm address in a city:
%
%  Volodymyru Lisivtci, firma "Misteriya"
%  vul. Naukova 5a, 2-yj poverh, k. 239
%  m. L`viv
%  79005
%
% Means:
%  firma "Misteriya" - firm name
%  2-yj poverh - floor number (1 - ground floor)
%
% Example of address in a town:
%
%  Volodymyru Lisivtci
%  vul. Myru, kv. 19
%  m. Zdolbuniv
%  Rivnens`koji oblasti
%  00000
%
% Means:
%  Rivnens`koji oblasti - in region of city Rivne (oblast`)
%
% Example of address in a village:
%
%  Volodymyru Lisivtci
%  vul. Hranychna 7
%  s. Bohdashiv
%  Zdolbunivs`koho rajonu Rivnens`koji oblasti
%  00000
%
% Means:
%  vul. Hranychna 7 - street and building
%  s. Bohdashiv - village name (s. - selo)
%  Zdolbunivs`koho rajonu - in region of town Zdolbuniv (rajon) 


%n Person's name, possibly constructed with the LC_NAME "name_fmt" keyword. 
%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 s value was not an empty
%string; otherwise ignore.
%t Insert a <space> if the previous descriptor s 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 
%z Zip number, postal code. 
%T Town, city. 
%S State, province, or prefecture. 
%c Country, as taken from data record.
%
%Each field descriptor may have an <R> after the <%> to specify that the
%information is taken from a Romanized version string of the
%entity.
%
%BUG: %n escape sequence from ISO/IEC 14652:2002 is not supported by glibc-2.2.5.
%BUG: %l escape sequence from ISO/IEC 14652:2002 is not supported by glibc-2.2.5.
%postal_fmt "%a%t%n%t%f%t%d%N%s%t%h%t, %b%t%e%t%r%N%l%t%T%t%S%N%z%N%c"
postal_fmt "%a%t%f%t%d%N%s%t%h%t, %b%t%e%t%r%N%T%t%S%N%z%N%c"

%Giving: 
%
%Care of person Person's name Firm Department 
%Street Number, Building Floor Room 
%Town City State
%Zip
%Country

%Country name in the language of the current document.
country_name  "<U0423><U043A><U0440><U0430><U0457><U043D><U0430>" % Ukrayina

%Language name in the language of the current document.
lang_name     "<U0443><U043A><U0440><U0430><U0457><U043D><U0441><U044C><U043A><U0430>" % ukrayins`ka [mova]

%Abbreviation of the country, see CERT-MAILCODES. (%c)
country_post  "UA"

%Two-letter abbreviation of the country, see ISO 3166.
country_ab2   "UA"

%Three-letter abbreviation of the country, see ISO 3166.
country_ab3   "UKR"

%Numeric country code, see ISO 3166.
country_num   804

%Code for country car number, see ???.
country_car   "UA"

%ISBN code, for books, see ???.
country_isbn  966

%Two-letter abbreviation of the language, see ISO 639.
lang_ab       "uk"
%lang_ab2      "uk" % ISO/IEC 14652:2002

%Three-letter abbreviation of the language, see ISO 639-2.
lang_term     "ukr"
%lang_ab3_term "ukr" % ISO/IEC 14652:2002

%Three-letter abbreviation of the language for library use, see ISO 639-2.
lang_lib      "ukr"
%lang_ab3_lib  "ukr" % ISO/IEC 14652:2002

END LC_ADDRESS


More information about the Libc-alpha mailing list