Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

линукс учебник

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

[Lug-bg] ÐÐÐÐÐÐÐ ÐÐÑÑÑÐÐÐÐ ÐÐÑÑÐÑ 3.0.1


  • Subject: [Lug-bg] езикови настройки версия 3.0.1
  • From: Roumen Petrov <help@xxxxxxxxxxxxxxxxx>
  • Date: Sun, 28 Mar 2010 15:46:49 +0300

Здравейте,
Обнових малко настройките и към писмото е прикачен файла bg_BG с версия 3.0.1.
Копие, но като отделно писмо е изпратено и до dict@xxxxxxxxxx .


А) Подробно описание на промените спрямо текущата версия 2.0.1 от хранилището на ГНУ Си библиотеката:

а) нов автор, авторски права и адреси за връзка

б) LC_IDENTIFICATION
- нови адреси за връзка
- категориите са съвместими с IEC_TR_14652/2002

в) LC_CTYPE
- без промяна

г) LC_COLLATE
- премахнати всички местни указания на подредба и така се получава речникова подредба от общите указания (copy "iso14651_t1").

д) LC_MONETARY
- без разделител на хиляди и съответно без групиране
- знака за валута е с точка : "лв." вместо "лв"

е) LC_NUMERIC
- без групиране защото няма разделите за хиляди

ж) LC_TIME
- пренаписано и за подробности виж по долу.

з) LC_MESSAGES
- без промяна

и) LC_PAPER
- без промяна

й) LC_NAME
- представяне на име със съкращение за професия, т.е. %S вместо %s и
- съкращението "г-дин" е заменено с "г-н"

к) LC_ADDRESS
- country_name и lang_name са зададени на български
- описанието на адреса е както го изискват "Български Пощи", въпреки че те описват само адреси за лична кореспонденция и малко пропускат да покажат как да се надпише писмото при

л) LC_TELEPHONE
- без скоби при телефонни номера за международни и междуградски разговори

м) LC_MEASUREMENT
- без промяна

--------

Б) Описание за дата и час (LC_TIME)
- добавено е описание за ера (разчоплено отвсякъде в списъка dict@xxxxxxxxxx)
     окончателно състояние - пр.н.е./сл.н.е.

- използване на двуеточие, вместо запетайка, за разделител, при извеждане на време

- 24 часово описание за време
Текущото състояние (версия 2.0.1) е двусмислено, защото се извежда в 12 часов формат, но без подсказка за преди/след обяд.
Ще изглежда така (за 1ч. 2м. и 3с. и за 13ч. 2м. и 3с. за флаг %r):
--------------------------------------------------------------------------------
01:02:03 и 13:02:03
--------------------------------------------------------------------------------
а сега е така:
--------------------------------------------------------------------------------
    1,02,03 и  1,02,03
--------------------------------------------------------------------------------

- пренаредени дни месеци и т.н.
Ще изглежда така:
--------------------------------------------------------------------------------
2010-04-01 13:02:03:	четвъртък  1 април 2010 13:02:03 EEST
+%c			чт  1 апр 2010 13:02:03 EEST
+%x (date)		 1.04.2010
+%X (time)		13:02:03
+%y (s-year)		10
+%Y (year)		2010
+%Ec (+era)		чт  1 апр 2010 сл.н.е. 13:02:03 EEST
+%Ex (date+era)		 1.04.2010 сл.н.е.
+%EX (time+era)		13:02:03
+%Ey (s-year+era)	2010
+%EY (year+era)		2010 сл.н.е.
--------------------------------------------------------------------------------
Сега е така:
--------------------------------------------------------------------------------
2010-04-01 13:02:03:	чт апр  1 13:02:03 EEST 2010
+%c			 1.04.2010 (чт) 13,02,03 EEST
+%x (date)		 1.04.2010
+%X (time)		13,02,03
+%y (s-year)		10
+%Y (year)		2010
+%Ec (+era)		 1.04.2010 (чт) 13,02,03 EEST
+%Ex (date+era)		 1.04.2010
+%EX (time+era)		13,02,03
+%Ey (s-year+era)	10
+%EY (year+era)		2010
--------------------------------------------------------------------------------

- нововъведение е описанието на седмица: при нас първия ден от годината се пада в първата седмица. Кои ли го ползва ?

- добавано е описание при извеждане на календар : имената на дните от седмицата в ляво и дните отгоре надолу . Кои ли го ползва ?

- съкращенията за имената на дните и месеците нарочно са оставени дву- и три-буквени за съвместимост със съществуващи команди : ls (от coreutils < 6.x) , cal.


--------
В) Тестове.
За да тествам представяне на дати, числа и пари съм използвал test-new_bg_locale.c.
За тестване на представяне на дата, час и ден от седмицата съм използвал
test-bg-locale.sh.
При мен файловете с езиковите настройки са в директория /usr/share/i18n/locales/ и за да се провери какво ще се получи, като потребител с подходящи права се записва прикачения файл bg_BG под някакво име в директорията, например bg_BG-new. Създават се български езикови настройки за кодова таблица, която не се използва, например KOI8-R, със командата "localedef -i bg_BG-new -f KOI8-R bg_BG.KOI8-R" . Изпълнява се тестовата програма за тези настройки, например "LANG=bg_BG.KOI8-R ./test-bg-locale.sh | iconv -f KOI8-R" (без кавичките).


Румен

П.П. За протокола е прикачен файл bg_BG.diff с разликите между предложението и текущото състояние от хранилището.



comment_char %
escape_char  /
%
% Copyright (C) 2010 Free Software Foundation, Inc.
% Copyright (C) 2010 Roumen Petrov <transl@xxxxxxxxxxxxxxxxx>
%
% Bulgarian locale for Bulgaria
% Contact: Roumen Petrov
% Email: transl@xxxxxxxxxxxxxxxxx
% Contact: Linux Users Group - Bulgaria
% Email: lug-bg@xxxxxxxxxxxxxxxxxx
% Contact: Bulgarian translators' team
% Email: dict@xxxxxxxxxx
% Language: bg
% Territory: BG
% Revision: 3.0.1
% Date: 2010-03-23
% Application: general
% Users: general
% Charsets: UTF-8, ISO-8859-5, KOI8-R, CP1251
%
% Distribution and use is free, also for commercial purposes.
%


LC_IDENTIFICATION
title      "Bulgarian locale for Bulgaria"
source     ""
address    ""
contact    "GNU libc maintainers"
email      "bug-glibc-locales@xxxxxxx"
tel        ""
fax        ""
language   "Bulgarian"
territory  "Bulgaria"
audience   "general"
application "general"
revision   "3.0.1"
date       "2010-03-23"

category  "bg_BG:2002";LC_IDENTIFICATION
category  "bg_BG:2002";LC_CTYPE
category  "bg_BG:2002";LC_COLLATE
category  "bg_BG:2002";LC_MONETARY
category  "bg_BG:2002";LC_NUMERIC
category  "bg_BG:2002";LC_TIME
category  "bg_BG:2002";LC_MESSAGES
category  "bg_BG:2002";LC_PAPER
category  "bg_BG:2002";LC_NAME
category  "bg_BG:2002";LC_ADDRESS
category  "bg_BG:2002";LC_TELEPHONE
category  "posix:1993";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
int_curr_symbol           "<U0042><U0047><U004E><U0020>"
currency_symbol           "<U043B><U0432><U002E>"
mon_decimal_point         "<U002C>"
mon_thousands_sep         ""
mon_grouping              -1
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             ""
grouping                  -1
END LC_NUMERIC


LC_TIME
% Era entries:
% - direction : must be + or -
% - offset year
% - starting date in ISO format (Y/M/D)
% - stopping date in ISO format
% - era name
% - era format
era             "+:0:0<U002F>1<U002F>1:+*:<U0441><U043B><U002E><U043D><U002E><U0435><U002E>:%Ey<U0020>%EC";/
                "+:0:-1<U002F>12<U002F>31:-*:<U043F><U0440><U002E><U043D><U002E><U0435><U002E>:%Ey<U0020>%EC"
% what define era_year ?
%era_year        ""

% Appropriate date and time representation
%   "%A %e %B %Y %T %Z"
date_fmt   "<U0025><U0041><U0020><U0025><U0065><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"

% Appropriate date and time representation (%c) with abbreviations
%   "%a %e %b %Y %T %Z"
d_t_fmt    "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"

% Appropriate date and time representation (%Ec) with abbreviations in alternate era format
%   "%a %e %b %EY %T %Z"
era_d_t_fmt    "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062><U0020><U0025><U0045><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"

% FIXME: as example for January %m output 01
%  Correct for Bulgarian is 1, i.e. without leading zero
% NOTE: This is limitation of standard
% Appropriate date representation (%x)
%   "%e.%m.%Y"
d_fmt      "<U0025><U0065><U002E><U0025><U006D><U002E><U0025><U0059>"

% Appropriate date representation (%Ex) in alternate era format
%   "%e.%m.%EY"
era_d_fmt      "<U0025><U0065><U002E><U0025><U006D><U002E><U0025><U0045><U0059>"

% Appropriate time representation (%X)
%   %T"
t_fmt      "<U0025><U0054>"

% Appropriate time representation (%EX) in alternate era format
%   not appropriate
%era_t_fmt      ""

% Locale equivalent of AM/PM (%p)
%   no equivalent
am_pm      "";""

% Appropriate 12-hour time representation (%r)
%   not appropriate (24h format if not set)
% t_fmt_ampm ""


% week
% Is used to define the number of days in a week, and which weekday
% is the first weekday (the first weekday has the value 1), and which
% week is to be considered the first in a year. The first operand is an
% integer specifying the number of days in the week. The second
% operand is an integer specifying the Gregorian date in the format
% YYYYMMDD, and it specifies a day that is a first weekday (all
% other first weekdays may then be calculated by adding or subtracting
% a whole multiplum of the number of days in the week as specified
% with the first operand). The third operand is an integer specifying the
% weekday number to be contained in the first week of the year. The
% third operand may also be understood as the number of days required
% in a week for it to be considered the first week of the year. If the
% keyword is not specified the values are taken as 7,  19971130 (a
% Sunday), and 7 (Saturday), respectively. ISO 8601 conforming
% applications should use the values 7, 19971201 (a Monday), and 4
% (Thursday), respectively. This keyword is optional.
week 7;19971201;1

% first_weekday
% Define the first day to be displayed, for example in a calendar
% display utility. The operand is an integer specifying the day number
% (1 = first) according to the information specified with the "day"
% keyword. The keyword may be omitted, and then the value 1 is
% taken, corresponding to Sunday for a week beginning Sunday, or to
% Monday for a week beginning Monday.
% NOTE set to one (cf. week)
first_weekday 1

% first_workday
% Define the first workday as an integer according to the day
% numbering specified with the "week" keyword.
% NOTE set to one (cf. week)
first_workday 1

% cal_direction
% Define the direction of the display of dates, for example in a calendar
% display utility. The operand is an integer, and the following values
% are defined:
% 1  left-right from top
% 2  top-down from left
% 3  right-left from top
% The keyword may be omitted, and then the value 1 is taken.
cal_direction 2

% Abbreviated weekday names (%a)
% NOTE: Keep two-characters for compatibility with old applications - cal
% NOTE: list start with abbreviation for sunday
% (violation of ISO/IEC TR14652:2002 ? - cf. week)
abday "<U043D><U0434>";/
      "<U043F><U043D>";/
      "<U0432><U0442>";/
      "<U0441><U0440>";/
      "<U0447><U0442>";/
      "<U043F><U0442>";/
      "<U0441><U0431>"

% Full weekday names (%A)
% NOTE: list start with abbreviation for sunday
% (violation of ISO/IEC TR14652:2002 ? - cf. week)
day "<U043D><U0435><U0434><U0435><U043B><U044F>";/
    "<U043F><U043E><U043D><U0435><U0434><U0435><U043B><U043D><U0438><U043A>";/
    "<U0432><U0442><U043E><U0440><U043D><U0438><U043A>";/
    "<U0441><U0440><U044F><U0434><U0430>";/
    "<U0447><U0435><U0442><U0432><U044A><U0440><U0442><U044A><U043A>";/
    "<U043F><U0435><U0442><U044A><U043A>";/
    "<U0441><U044A><U0431><U043E><U0442><U0430>"

% Abbreviated  month names (%b)
% NOTE: Keep three-characters for compatibility with old coreutils (ver. < 6.x)
abmon "<U044F><U043D><U0443>";/
      "<U0444><U0435><U0432>";/
      "<U043C><U0430><U0440>";/
      "<U0430><U043F><U0440>";/
      "<U043C><U0430><U0439>";/
      "<U044E><U043D><U0438>";/
      "<U044E><U043B><U0438>";/
      "<U0430><U0432><U0433>";/
      "<U0441><U0435><U043F>";/
      "<U043E><U043A><U0442>";/
      "<U043D><U043E><U0435>";/
      "<U0434><U0435><U043A>"

% Full month names (%B)
mon "<U044F><U043D><U0443><U0430><U0440><U0438>";/
    "<U0444><U0435><U0432><U0440><U0443><U0430><U0440><U0438>";/
    "<U043C><U0430><U0440><U0442>";/
    "<U0430><U043F><U0440><U0438><U043B>";/
    "<U043C><U0430><U0439>";/
    "<U044E><U043D><U0438>";/
    "<U044E><U043B><U0438>";/
    "<U0430><U0432><U0433><U0443><U0441><U0442>";/
    "<U0441><U0435><U043F><U0442><U0435><U043C><U0432><U0440><U0438>";/
    "<U043E><U043A><U0442><U043E><U043C><U0432><U0440><U0438>";/
    "<U043D><U043E><U0435><U043C><U0432><U0440><U0438>";/
    "<U0434><U0435><U043A><U0435><U043C><U0432><U0440><U0438>"

END LC_TIME


LC_MESSAGES
yesexpr "<U005E><U005B><U002B><U0031><U0414><U0434><U0044><U0064><U0059><U0079><U004F><U006F><U005D><U002E><U002A>"
noexpr  "<U005E><U005B><U002D><U0030><U041D><U043D><U004E><U006E><U004B><U006B><U005D><U002E><U002A>"
END LC_MESSAGES


LC_PAPER
height   297
width    210
END LC_PAPER


LC_NAME
%-----
% 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. In some cultures, eg on Taiwan it is coustomary
%   to also have a first name written with Latin letters, although the rest of the name
%   is written in another script.
% o Other shorter name, eg. "Bill".
% 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, with
%     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>.
%
% Each field descriptor may have an <R> after the <%> to specify that the information is
% taken from a Romanized version string of the entity. An initial is any string, normally
% consisting of one letter and a punctuation mark; the Dutch "IJ" is an example of a two
% character initial.
%
% This is the ISO/IEC TR 14652 "i18n" definition for
% the LC_NAME category.
% name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
%  <U0025><U006D><U0025><U0074><U0025><U0066>"
% This corresponds to "%p%t%g%m%t%f" which is
% Profession Primary Additionals Family
%-----
% Appropriate name representation
%   "%S%t%g%t%m%t%f"
name_fmt  "<U0025><U0053><U0025><U0074><U0025><U0067><U0025><U0074><U0025><U006D><U0025><U0074><U0025><U0066>"

name_mr   "<U0433><U002D><U043D>"
name_ms   "<U0433><U002D><U0436><U0430>"
name_mrs  "<U0433><U002D><U0436><U0430>"
name_miss "<U0433><U002D><U0436><U0438><U0446><U0430>"
END LC_NAME


LC_ADDRESS
%-----
% The LC_ADDRESS category defines the interpretation of a number of field descriptors.
% The field descriptors are also available in the definitions with the following
% LC_ADDRESS keywords: "postal_fmt".
% Field descriptors for the "postal_fmt" keyword:
% n Person's name, possibly constructed with LC_NAME.
% 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.
% NOTE: There are a number of variations for specifying a location among the cultures.
% Some of the information, like the middle names, or even the family name, is not used
% in some cultures. The specification here should be regarded as a starting point for this
% problem.
%
% This is the ISO/IEC TR 14652 "i18n" definition for the LC_ADDRESS category:
%   postal_fmt    "<U0025><U006E><U0025><U004E>/
%   <U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
%   <U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
%   <U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072>/
%   <U0025><U004E><U0025><U006C><U0025><U004E><U0025><U0043><U002D>/
%   <U0025><U007A><U0020><U0025><U0054><U0025><U004E>/
%   <U0025><U0053><U0025><U004E><U0025><U0063><U0025><U004E>"
% = "%n%N%a%N%f%N%d%N%b%N%s %h %e %r%N%l%N%C-%z %T%N%S%N%c%N" resulting in
%   Person's_Name
%   C/o_person_or_org
%   Firm
%   Department
%   Building_name
%   Street_or_block number floor room
%   Local_township
%   Country-Zip City
%   State_or_province
%   Country
%-----
% NOTE nobody uses postal format (reserved for future use)
% Expected Bulgarian address format:
%   "%n%N%a%N%f%N%d%N%b%N%s %h, %e, %r%N%z %T%N%c%N" resulting in
%   Person's_Name
%   C/o_person_or_org
%   Firm name
%   Department_name
%   Building_name
%   Street_or_block number, floor, room
%   Postal_code City
%   Country
% BUG: %n escape sequence from ISO/IEC 14652:2002 is not supported by glibc
% =>    "%a%N%f%N%d%N%b%N%s %h, %e, %r%N%z %T%N%c%N"

%postal_fmt    "<U0025><U006E><U0025><U004E><U0025><U0061><U0025><U004E>/
%without leading "%n%N":
postal_fmt    "<U0025><U0061><U0025><U004E>/
<U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E><U0025><U0062>/
<U0025><U004E><U0025><U0073><U0020><U0025><U0068><U002C><U0020><U0025><U0065>/
<U002C><U0020><U0025><U0072><U0025><U004E><U0025><U007A><U0020><U0025><U0054>/
<U0025><U004E><U0025><U0063><U0025><U004E>"

% Country name in the language of the current document
country_name "<U0411><U044A><U043B><U0433><U0430><U0440><U0438><U044F>"

%   "BG"
country_post "<U0042><U0047>"

% Two letter code of the country (cf. ISO-3166)
%   "BG"
country_ab2  "<U0042><U0047>"

% Three letter code of the country (cf. ISO-3166)
%   "BGR"
country_ab3  "<U0042><U0047><U0052>"

% Three digit code of the country (cf. ISO-3166)
country_num   100

% Code for country car numbers
%   "BG"
country_car  "<U0042><U0047>"

% ISBN code, for books
country_isbn  954

% Language name in the language of the current document
lang_name    "<U0431><U044A><U043B><U0433><U0430><U0440><U0441><U043A><U0438>"

% References to ISO-639 map in format:
%   ("English name", 639-1-code, 639-2/T-code, 639-2/B-code)
% = (lang_name, lang_ab, lang_term, lang_lib=lang_term if not set)
% = ("Bulgarian", bg, bul, bul)
%   "bg"
lang_ab      "<U0062><U0067>"
%   "bul"
lang_term    "<U0062><U0075><U006C>"
END LC_ADDRESS


LC_TELEPHONE
%   "+%c %a %l"
tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
%   "0%a %l"
tel_dom_fmt "<U0030><U0025><U0061><U0020><U0025><U006C>"
%   "359"
int_prefix  "<U0033><U0035><U0039>"
%   "00"
int_select  "<U0030><U0030>"
END LC_TELEPHONE


LC_MEASUREMENT
measurement    1
END LC_MEASUREMENT
#define __STDC_VERSION__ 199901L
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <locale.h>
#include <monetary.h>
#include <math.h>


static void
do_time_test(const char *tm_fmt, const struct tm *tm) {
  char s[1024];
  size_t l;

  l = strftime(s, sizeof(s)-1, tm_fmt, tm); 
  printf("l=%d\ttm_fmt='%s'\ts='%s'\n", l, tm_fmt, s);
}


static void
test_time_formats_tm(struct tm *tm) {
  do_time_test("%c" , tm);
  do_time_test("%Ec", tm);

  do_time_test("%C" , tm);
  do_time_test("%EC", tm);

  do_time_test("%C %EC", tm);

  do_time_test("%x" , tm);
  do_time_test("%Ex", tm);

  do_time_test("%X" , tm);
  do_time_test("%EX", tm);

  do_time_test("%y" , tm);
  do_time_test("%Ey", tm);

  do_time_test("%Y" , tm);
  do_time_test("%EY", tm);
}

static void
test_time_formats(void) {
  time_t t = 0; /* 1.1.1990 */
  struct tm *tm;

  tm = localtime(&t);

  printf("=== time formats ===\n");
  printf("--- 1.1.1990 ---\n");
  test_time_formats_tm(tm);

  /* NOTE: day of week is not correct */
  tm->tm_year = -1900;
  printf("--- 1.1.0 ---\n");
  test_time_formats_tm(tm);

  printf("--- 1.1.-1 ---\n");
  tm->tm_year = -1901;
  test_time_formats_tm(tm);
}


static void
do_test_monetary(double amt) {
  char buf[128];
  strfmon(buf, sizeof(buf)-1, "%i\t%n", amt, amt);
  printf("%s\n", buf);
}

static void
test_monetary_formats(void) {
  printf("=== monetary formats ===\n");
  printf("%%i\t%%n\n");
  do_test_monetary(12.345);
  do_test_monetary(12345.567);
  do_test_monetary(1234567.891);

  do_test_monetary(-12.345);
  do_test_monetary(-12345.567);
  do_test_monetary(-1234567.891);

  do_test_monetary(NAN);
  do_test_monetary(INFINITY);
  do_test_monetary(-INFINITY);
}


static void
do_test_numeric(double amt) {
  printf("%'.2f\t%.2f\n", amt, amt);
}

static void
test_numeric_formats(void) {
  printf("=== numeric formats ===\n");
  printf("%%'.2f\t%%.2f\n");

  do_test_numeric(12.345);
  do_test_numeric(12345.567);
  do_test_numeric(1234567.891);

  do_test_numeric(-12.345);
  do_test_numeric(-12345.567);
  do_test_numeric(-1234567.891);

  do_test_numeric(NAN);
  do_test_numeric(INFINITY);
  do_test_numeric(-INFINITY);
}


int main() {
  setlocale(LC_ALL, "");

  test_time_formats();
  test_monetary_formats();
  test_numeric_formats();

  exit(0);
  return(0);
}



#! /bin/sh

BLOCKSEP='============================================================'

for MON in 01 04; do
  for H in 01 13; do
    DATE="2010-${MON}-01 ${H}:02:03"
    printf '%s\n' "$BLOCKSEP"
    printf '%s:\t' "$DATE"; date -d "$DATE"

    FMT='+%c'		; printf '%s\t\t\t'		"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%x'		; printf '%s (date)\t\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%X'		; printf '%s (time)\t\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%y'		; printf '%s (s-year)\t\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%Y'		; printf '%s (year)\t\t'	"$FMT"; date -d "$DATE" "$FMT"

    #%E modifier - %Ec, %EC, %Ex, %EX, %Ey, %EY
    FMT='+%Ec'		; printf '%s (+era)\t\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%Ex'		; printf '%s (date+era)\t\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%EX'		; printf '%s (time+era)\t\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%Ey'		; printf '%s (s-year+era)\t'	"$FMT"; date -d "$DATE" "$FMT"
    FMT='+%EY'		; printf '%s (year+era)\t\t'	"$FMT"; date -d "$DATE" "$FMT"

    FMT='+%C %EC'	; printf '%s (cent+era)\t'	"$FMT"; date -d "$DATE" "$FMT"

    FMT='+%r'		; printf '%s (12-hour time)\t'	"$FMT"; date -d "$DATE" "$FMT"
    #printf 'rfc-2822\t'		; date -d "$DATE" --rfc-2822
    #printf 'rfc-3339+sec.\t'	; date -d "$DATE" --rfc-3339=seconds
  done

#  printf 'long\t\t'		; date -d "1901-09-13"
#  printf 'long\t\t'		; date -d "1901-12-13"
#  printf 'long\t\t'		; date -d "1901-12-14"
done
# number of week are non conformant to Bulgarian
printf '%s\n' "$BLOCKSEP"
printf '%s\n' '%U %W %V   %G ... (week tests)'
date -d '2009-12-31' '+%U %W %V %G'
date -d '2010-01-01' '+%U %W %V %G'
date -d '2010-01-04' '+%U %W %V %G'
--- bg_BG-origin	2009-05-30 19:31:35.000000000 +0300
+++ bg_BG	2010-03-28 14:19:22.895653733 +0300
@@ -1,44 +1,58 @@
 comment_char %
 escape_char  /
+%
+% Copyright (C) 2010 Free Software Foundation, Inc.
+% Copyright (C) 2010 Roumen Petrov <transl@xxxxxxxxxxxxxxxxx>
+%
+% Bulgarian locale for Bulgaria
+% Contact: Roumen Petrov
+% Email: transl@xxxxxxxxxxxxxxxxx
+% Contact: Linux Users Group - Bulgaria
+% Email: lug-bg@xxxxxxxxxxxxxxxxxx
+% Contact: Bulgarian translators' team
+% Email: <dict@xxxxxxxxxx>
+% Language: bg
+% Territory: BG
+% Revision: 3.0.1
+% Date: 2010-03-23
+% Application: general
+% Users: general
+% Charsets: UTF-8, ISO-8859-5, KOI8-R, CP1251
+%
+% Distribution and use is free, also for commercial purposes.
+%
 
-% Distribution and use is free, also
-% for commercial purposes.
-
-%---------------------------------------------------
-% Note: bg_BG is a base locale. Since there are different character
-% sets used with Cyrillic, it's highly recommended to generate system
-% locales in most of the used variants. When compiling system locales
-% from this one, please consider using a common naming scheme, like
-% this: bg_BG.CP1251 (CP1251 is for coresponding charset), bg_BG.KOI8R,
-% bg_BG.ISO88595 and bg_BG.UTF8.
-%---------------------------------------------------
 
 LC_IDENTIFICATION
 title      "Bulgarian locale for Bulgaria"
-source     "Linux Society Bulgaria"
-address    "develop@xxxxxxxxxxxxxxxx"
-contact    "Delyan Toshev"
-email      "delyant@xxxxxxxxx"
+source     ""
+address    ""
+contact    "GNU libc maintainers"
+email      "bug-glibc-locales@xxxxxxx"
 tel        ""
 fax        ""
 language   "Bulgarian"
 territory  "Bulgaria"
-revision   "2.0.1"
-date       "2002-09-10"
-
-category  "bg_BG:2000";LC_IDENTIFICATION
-category  "bg_BG:2000";LC_CTYPE
-category  "bg_BG:2000";LC_COLLATE
-category  "bg_BG:2000";LC_TIME
-category  "bg_BG:2000";LC_NUMERIC
-category  "bg_BG:2000";LC_MONETARY
-category  "bg_BG:2000";LC_MESSAGES
-category  "bg_BG:2000";LC_PAPER
-category  "bg_BG:2000";LC_NAME
-category  "bg_BG:2000";LC_ADDRESS
-category  "bg_BG:2000";LC_TELEPHONE
+audience   "general"
+application "general"
+revision   "3.0.1"
+date       "2010-03-23"
+
+category  "bg_BG:2002";LC_IDENTIFICATION
+category  "bg_BG:2002";LC_CTYPE
+category  "bg_BG:2002";LC_COLLATE
+category  "bg_BG:2002";LC_MONETARY
+category  "bg_BG:2002";LC_NUMERIC
+category  "bg_BG:2002";LC_TIME
+category  "bg_BG:2002";LC_MESSAGES
+category  "bg_BG:2002";LC_PAPER
+category  "bg_BG:2002";LC_NAME
+category  "bg_BG:2002";LC_ADDRESS
+category  "bg_BG:2002";LC_TELEPHONE
+category  "posix:1993";LC_MEASUREMENT
 END LC_IDENTIFICATION
 
+
 LC_CTYPE
 copy "i18n"
 
@@ -47,121 +61,19 @@
 translit_end
 END LC_CTYPE
 
-LC_COLLATE
-
-% We have made the following changes to the basic collation scheme in
-% the file iso14651_t1:
-%   1. The Cyrillic script is first in the order.
-%   2. The non-Bulgarian Cyrillic letters are sorted according to
-%      their transliteration with Bulgarian Cyrillic letters.
 
+LC_COLLATE
+% Copy the template from ISO/IEC 14651
 copy "iso14651_t1"
-reorder-after <9>
-<CYR-A>
-<CYR-BE>
-<CYR-VE>
-<CYR-GHE>
-<CYR-DE>
-<CYR-GZHE>
-<CYR-DJE>
-<CYR-IE>
-<UKR-IE>
-<CYR-IO>
-<CYR-ZHE>
-<CYR-ZE>
-<CYR-DZE>
-<CYR-I>
-<UKR-I>
-<UKR-YI>
-<CYR-IBRE>
-<CYR-JE>
-<CYR-KA>
-<CYR-EL>
-<CYR-LJE>
-<CYR-EM>
-<CYR-EN>
-<CYR-NJE>
-<CYR-O>
-<CYR-PE>
-<CYR-ER>
-<CYR-ES>
-<CYR-TE>
-<CYR-KJE>
-<CYR-TSHE>
-<CYR-OU>
-<CYR-OUBRE>
-<CYR-EF>
-<CYR-HA>
-<CYR-TSE>
-<CYR-CHE>
-<CYR-DCHE>
-<CYR-SHA>
-<CYR-SHTSHA>
-<CYR-SIGDUR>
-<CYR-YEROU>
-<CYR-SIGMOUIL>
-<CYR-E>
-<CYR-YOU>
-<CYR-YA>
-reorder-after <U0433>
-<U0453> <CYR-GHE>;<CYR-GZHE>;<MIN>;IGNORE % Mac. gje
-reorder-after <U0434>
-<U0452> "<CYR-DE><CYR-ZHE>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-DJE
-<U045F> "<CYR-DE><CYR-ZHE>";"<CYR-DCHE><LIG>";"<MIN><MIN>";IGNORE % CYR-DCHE
-<U0455> "<CYR-DE><CYR-ZE>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-DZE
-reorder-after <U0435>
-<U0454> <CYR-IE>;<UKR-IE>;<MIN>;IGNORE
-<U0451> <CYR-IE>;<CYR-IO>;<MIN>;IGNORE
-<U044D> <CYR-IE>;<CYR-E>;<MIN>;IGNORE
-reorder-after <U0438>
-<U0406> <CYR-I>;<UKR-I>;<MIN>;IGNORE
-<U0457> <CYR-I>;<UKR-YI>;<MIN>;IGNORE
-<U044B> <CYR-I>;<CYR-YEROU>;<MIN>;IGNORE
-reorder-after <U043A>
-<U045C> <CYR-KA>;<CYR-KJE>;<MIN>;IGNORE
-reorder-after <U043B>
-<U0459> "<CYR-EL><CYR-SIGMOUIL>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-LJE
-reorder-after <U043D>
-<U045A> "<CYR-EN><CYR-SIGMOUIL>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-NJE
-reorder-after <U0443>
-<U045E> <CYR-OU>;<CYR-OUBRE>;<MIN>;IGNORE
-reorder-after <U0447>
-<U045B> <CYR-CHE>;<CYR-TSHE>;<MIN>;IGNORE
-reorder-after <U0413>
-<U0403> <CYR-GHE>;<CYR-GZHE>;<CAP>;IGNORE % Mac. gje
-reorder-after <U0414>
-<U0402> "<CYR-DE><CYR-ZHE>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-DJE
-<U040F> "<CYR-DE><CYR-ZHE>";"<CYR-DCHE><LIG>";"<CAP><CAP>";IGNORE % CYR-DCHE
-<U0405> "<CYR-DE><CYR-ZE>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-DZE
-reorder-after <U0415>
-<U0404> <CYR-IE>;<UKR-IE>;<CAP>;IGNORE
-<U0401> <CYR-IE>;<CYR-IO>;<CAP>;IGNORE
-<U042D> <CYR-IE>;<CYR-E>;<CAP>;IGNORE
-reorder-after <U0418>
-<U0456> <CYR-I>;<UKR-I>;<CAP>;IGNORE
-<U0407> <CYR-I>;<UKR-YI>;<CAP>;IGNORE
-<U042B> <CYR-I>;<CYR-YEROU>;<CAP>;IGNORE
-reorder-after <U0419>
-<U0408> <CYR-IBRE>;<CYR-JE>;<CAP>;IGNORE
-reorder-after <U041A>
-<U040C> <CYR-KA>;<CYR-KJE>;<CAP>;IGNORE
-reorder-after <U041B>
-<U0409> "<CYR-EL><CYR-SIGMOUIL>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-LJE
-reorder-after <U041D>
-<U040A> "<CYR-EN><CYR-SIGMOUIL>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-NJE
-reorder-after <U0423>
-<U040E> <CYR-OU>;<CYR-OUBRE>;<CAP>;IGNORE
-reorder-after <U0427>
-<U040B> <CYR-CHE>;<CYR-TSHE>;<CAP>;IGNORE
-reorder-end
 END LC_COLLATE
 
+
 LC_MONETARY
 int_curr_symbol           "<U0042><U0047><U004E><U0020>"
-currency_symbol           "<U043B><U0432>"
+currency_symbol           "<U043B><U0432><U002E>"
 mon_decimal_point         "<U002C>"
-mon_thousands_sep         "<U00A0>"
-mon_grouping              3;3
+mon_thousands_sep         ""
+mon_grouping              -1
 positive_sign             ""
 negative_sign             "<U002D>"
 int_frac_digits           2
@@ -174,25 +86,116 @@
 n_sign_posn               1
 END LC_MONETARY
 
+
 LC_NUMERIC
 decimal_point             "<U002C>"
 thousands_sep             ""
-grouping                  3;3
+grouping                  -1
 END LC_NUMERIC
 
+
 LC_TIME
-d_t_fmt    "<U0025><U0078><U0020><U0028><U0025><U0061><U0029><U0020>/
-<U0025><U0058><U0020><U0025><U005A>"
+% Era entries:
+% - direction : must be + or -
+% - offset year
+% - starting date in ISO format (Y/M/D)
+% - stopping date in ISO format
+% - era name
+% - era format
+era             "+:0:0<U002F>1<U002F>1:+*:<U0441><U043B><U002E><U043D><U002E><U0435><U002E>:%Ey<U0020>%EC";/
+                "+:0:-1<U002F>12<U002F>31:-*:<U043F><U0440><U002E><U043D><U002E><U0435><U002E>:%Ey<U0020>%EC"
+% what define era_year ?
+%era_year        ""
+
+% Appropriate date and time representation
+%   "%A %e %B %Y %T %Z"
+date_fmt   "<U0025><U0041><U0020><U0025><U0065><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+
+% Appropriate date and time representation (%c) with abbreviations
+%   "%a %e %b %Y %T %Z"
+d_t_fmt    "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+
+% Appropriate date and time representation (%Ec) with abbreviations in alternate era format
+%   "%a %e %b %EY %T %Z"
+era_d_t_fmt    "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062><U0020><U0025><U0045><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+
+% FIXME: as example for January %m output 01
+%  Correct for Bulgarian is 1, i.e. without leading zero
+% NOTE: This is limitation of standard
+% Appropriate date representation (%x)
+%   "%e.%m.%Y"
 d_fmt      "<U0025><U0065><U002E><U0025><U006D><U002E><U0025><U0059>"
-t_fmt      "<U0025><U006B><U002C><U0025><U004D><U002C><U0025><U0053>"
+
+% Appropriate date representation (%Ex) in alternate era format
+%   "%e.%m.%EY"
+era_d_fmt      "<U0025><U0065><U002E><U0025><U006D><U002E><U0025><U0045><U0059>"
+
+% Appropriate time representation (%X)
+%   %T"
+t_fmt      "<U0025><U0054>"
+
+% Appropriate time representation (%EX) in alternate era format
+%   not appropriate
+%era_t_fmt      ""
+
+% Locale equivalent of AM/PM (%p)
+%   no equivalent
 am_pm      "";""
-t_fmt_ampm "<U0025><U006C><U002C><U0025><U004D><U002C><U0025><U0053>"
-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>"
-%
-first_weekday 2
-first_workday 2
+
+% Appropriate 12-hour time representation (%r)
+%   not appropriate (24h format if not set)
+% t_fmt_ampm ""
+
+
+% week
+% Is used to define the number of days in a week, and which weekday
+% is the first weekday (the first weekday has the value 1), and which
+% week is to be considered the first in a year. The first operand is an
+% integer specifying the number of days in the week. The second
+% operand is an integer specifying the Gregorian date in the format
+% YYYYMMDD, and it specifies a day that is a first weekday (all
+% other first weekdays may then be calculated by adding or subtracting
+% a whole multiplum of the number of days in the week as specified
+% with the first operand). The third operand is an integer specifying the
+% weekday number to be contained in the first week of the year. The
+% third operand may also be understood as the number of days required
+% in a week for it to be considered the first week of the year. If the
+% keyword is not specified the values are taken as 7,  19971130 (a
+% Sunday), and 7 (Saturday), respectively. ISO 8601 conforming
+% applications should use the values 7, 19971201 (a Monday), and 4
+% (Thursday), respectively. This keyword is optional.
+week 7;19971201;1
+
+% first_weekday
+% Define the first day to be displayed, for example in a calendar
+% display utility. The operand is an integer specifying the day number
+% (1 = first) according to the information specified with the "day"
+% keyword. The keyword may be omitted, and then the value 1 is
+% taken, corresponding to Sunday for a week beginning Sunday, or to
+% Monday for a week beginning Monday.
+% NOTE set to one (cf. week)
+first_weekday 1
+
+% first_workday
+% Define the first workday as an integer according to the day
+% numbering specified with the "week" keyword.
+% NOTE set to one (cf. week)
+first_workday 1
+
+% cal_direction
+% Define the direction of the display of dates, for example in a calendar
+% display utility. The operand is an integer, and the following values
+% are defined:
+% 1  left-right from top
+% 2  top-down from left
+% 3  right-left from top
+% The keyword may be omitted, and then the value 1 is taken.
+cal_direction 2
+
+% Abbreviated weekday names (%a)
+% NOTE: Keep two-characters for compatibility with old applications - cal
+% NOTE: list start with abbreviation for sunday
+% (violation of ISO/IEC TR14652:2002 ? - cf. week)
 abday "<U043D><U0434>";/
       "<U043F><U043D>";/
       "<U0432><U0442>";/
@@ -200,6 +203,10 @@
       "<U0447><U0442>";/
       "<U043F><U0442>";/
       "<U0441><U0431>"
+
+% Full weekday names (%A)
+% NOTE: list start with abbreviation for sunday
+% (violation of ISO/IEC TR14652:2002 ? - cf. week)
 day "<U043D><U0435><U0434><U0435><U043B><U044F>";/
     "<U043F><U043E><U043D><U0435><U0434><U0435><U043B><U043D><U0438><U043A>";/
     "<U0432><U0442><U043E><U0440><U043D><U0438><U043A>";/
@@ -207,6 +214,9 @@
     "<U0447><U0435><U0442><U0432><U044A><U0440><U0442><U044A><U043A>";/
     "<U043F><U0435><U0442><U044A><U043A>";/
     "<U0441><U044A><U0431><U043E><U0442><U0430>"
+
+% Abbreviated  month names (%b)
+% NOTE: Keep three-characters for compatibility with old coreutils (ver. < 6.x)
 abmon "<U044F><U043D><U0443>";/
       "<U0444><U0435><U0432>";/
       "<U043C><U0430><U0440>";/
@@ -219,6 +229,8 @@
       "<U043E><U043A><U0442>";/
       "<U043D><U043E><U0435>";/
       "<U0434><U0435><U043A>"
+
+% Full month names (%B)
 mon "<U044F><U043D><U0443><U0430><U0440><U0438>";/
     "<U0444><U0435><U0432><U0440><U0443><U0430><U0440><U0438>";/
     "<U043C><U0430><U0440><U0442>";/
@@ -234,50 +246,192 @@
 
 END LC_TIME
 
+
 LC_MESSAGES
 yesexpr "<U005E><U005B><U002B><U0031><U0414><U0434><U0044><U0064><U0059><U0079><U004F><U006F><U005D><U002E><U002A>"
 noexpr  "<U005E><U005B><U002D><U0030><U041D><U043D><U004E><U006E><U004B><U006B><U005D><U002E><U002A>"
 END LC_MESSAGES
 
+
 LC_PAPER
 height   297
 width    210
 END LC_PAPER
 
+
 LC_NAME
-name_fmt  "<U0025><U0073><U0025><U0074><U0025><U0067><U0025><U0074>/
-<U0025><U006D><U0025><U0074><U0025><U0066>"
-name_mr   "<U0433><U002D><U0434><U0438><U043D>"
+%-----
+% 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. In some cultures, eg on Taiwan it is coustomary
+%   to also have a first name written with Latin letters, although the rest of the name
+%   is written in another script.
+% o Other shorter name, eg. "Bill".
+% 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, with
+%     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>.
+%
+% Each field descriptor may have an <R> after the <%> to specify that the information is
+% taken from a Romanized version string of the entity. An initial is any string, normally
+% consisting of one letter and a punctuation mark; the Dutch "IJ" is an example of a two
+% character initial.
+%
+% This is the ISO/IEC TR 14652 "i18n" definition for
+% the LC_NAME category.
+% name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
+%  <U0025><U006D><U0025><U0074><U0025><U0066>"
+% This corresponds to "%p%t%g%m%t%f" which is
+% Profession Primary Additionals Family
+%-----
+% Appropriate name representation
+%   "%S%t%g%t%m%t%f"
+name_fmt  "<U0025><U0053><U0025><U0074><U0025><U0067><U0025><U0074><U0025><U006D><U0025><U0074><U0025><U0066>"
+
+name_mr   "<U0433><U002D><U043D>"
 name_ms   "<U0433><U002D><U0436><U0430>"
 name_mrs  "<U0433><U002D><U0436><U0430>"
 name_miss "<U0433><U002D><U0436><U0438><U0446><U0430>"
 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>/
-<U004E><U0025><U0068><U002C><U0020><U0025><U0065><U002C><U0020><U0025><U0072><U0025>/
-<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
-<U004E><U0025><U0063><U0025><U004E>"
-country_name "<U0042><U0075><U006C><U0067><U0061><U0072><U0069><U0061>"
+%-----
+% The LC_ADDRESS category defines the interpretation of a number of field descriptors.
+% The field descriptors are also available in the definitions with the following
+% LC_ADDRESS keywords: "postal_fmt".
+% Field descriptors for the "postal_fmt" keyword:
+% n Person's name, possibly constructed with LC_NAME.
+% 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.
+% NOTE: There are a number of variations for specifying a location among the cultures.
+% Some of the information, like the middle names, or even the family name, is not used
+% in some cultures. The specification here should be regarded as a starting point for this
+% problem.
+%
+% This is the ISO/IEC TR 14652 "i18n" definition for the LC_ADDRESS category:
+%   postal_fmt    "<U0025><U006E><U0025><U004E>/
+%   <U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
+%   <U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+%   <U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072>/
+%   <U0025><U004E><U0025><U006C><U0025><U004E><U0025><U0043><U002D>/
+%   <U0025><U007A><U0020><U0025><U0054><U0025><U004E>/
+%   <U0025><U0053><U0025><U004E><U0025><U0063><U0025><U004E>"
+% = "%n%N%a%N%f%N%d%N%b%N%s %h %e %r%N%l%N%C-%z %T%N%S%N%c%N" resulting in
+%   Person's_Name
+%   C/o_person_or_org
+%   Firm
+%   Department
+%   Building_name
+%   Street_or_block number floor room
+%   Local_township
+%   Country-Zip City
+%   State_or_province
+%   Country
+%-----
+% NOTE nobody uses postal format (reserved for future use)
+% Expected Bulgarian address format:
+%   "%n%N%a%N%f%N%d%N%b%N%s %h, %e, %r%N%z %T%N%c%N" resulting in
+%   Person's_Name
+%   C/o_person_or_org
+%   Firm name
+%   Department_name
+%   Building_name
+%   Street_or_block number, floor, room
+%   Postal_code City
+%   Country
+% BUG: %n escape sequence from ISO/IEC 14652:2002 is not supported by glibc
+% =>    "%a%N%f%N%d%N%b%N%s %h, %e, %r%N%z %T%N%c%N"
+
+%postal_fmt    "<U0025><U006E><U0025><U004E><U0025><U0061><U0025><U004E>/
+%without leading "%n%N":
+postal_fmt    "<U0025><U0061><U0025><U004E>/
+<U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E><U0025><U0062>/
+<U0025><U004E><U0025><U0073><U0020><U0025><U0068><U002C><U0020><U0025><U0065>/
+<U002C><U0020><U0025><U0072><U0025><U004E><U0025><U007A><U0020><U0025><U0054>/
+<U0025><U004E><U0025><U0063><U0025><U004E>"
+
+% Country name in the language of the current document
+country_name "<U0411><U044A><U043B><U0433><U0430><U0440><U0438><U044F>"
+
+%   "BG"
 country_post "<U0042><U0047>"
+
+% Two letter code of the country (cf. ISO-3166)
+%   "BG"
 country_ab2  "<U0042><U0047>"
+
+% Three letter code of the country (cf. ISO-3166)
+%   "BGR"
 country_ab3  "<U0042><U0047><U0052>"
+
+% Three digit code of the country (cf. ISO-3166)
 country_num   100
+
+% Code for country car numbers
+%   "BG"
 country_car  "<U0042><U0047>"
+
+% ISBN code, for books
 country_isbn  954
-lang_name    "<U0042><U0075><U006C><U0067><U0061><U0072><U0069><U0061><U006E>"
+
+% Language name in the language of the current document
+lang_name    "<U0431><U044A><U043B><U0433><U0430><U0440><U0441><U043A><U0438>"
+
+% References to ISO-639 map in format:
+%   ("English name", 639-1-code, 639-2/T-code, 639-2/B-code)
+% = (lang_name, lang_ab, lang_term, lang_lib=lang_term if not set)
+% = ("Bulgarian", bg, bul, bul)
+%   "bg"
 lang_ab      "<U0062><U0067>"
+%   "bul"
 lang_term    "<U0062><U0075><U006C>"
 END LC_ADDRESS
 
+
 LC_TELEPHONE
-tel_int_fmt "<U0028><U002B><U0025><U0063><U0020><U0025><U0061><U0029><U0020><U0025><U006C>"
-tel_dom_fmt "<U0028><U0030><U0025><U0061><U0029><U0020><U0025><U006C>"
+%   "+%c %a %l"
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+%   "0%a %l"
+tel_dom_fmt "<U0030><U0025><U0061><U0020><U0025><U006C>"
+%   "359"
 int_prefix  "<U0033><U0035><U0039>"
+%   "00"
 int_select  "<U0030><U0030>"
 END LC_TELEPHONE
 
+
 LC_MEASUREMENT
 measurement    1
 END LC_MEASUREMENT
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.

Hosted by "Internet Group" Ltd. - Stara Zagora