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.