ДСТУ 4358:2004 сторінка 7 з 9
Незалежна від мов локальність наборів кодованих символів подібна до прикладу данської локальності у POSIX-стандарті “Оболонка й утиліти” (додаток G ISO/IEC 9945-2:1993) , і європейської мультилінгвістичної POSIX-специфікації впорядкування, тому вона виявилася придатною, якщо незначне число відмінностей можна визначити просто як зміни у наявній локальності. Використання конструкта «reorder-after» також допомагає вирішити питання, які зміни дійсні для розробників та інших користувачів
.
Наведемо приклад використання конструктів «reorder-afters». За промовчанням європейське впорядкування латиниці може бути адекватним данській, за винятком правил порівняння літер і/, й, /Е, ае, А, а, 0, о, А і а. Застосовуючи конструкт «reorder-after», данську специфікацію легше можна зробити копіюванням і перевпорядкуванням наявної європейської специфікації, ніж визначенням параметрів порівняння для всіх латинських літер (з діакритичними знаками чи без них). Для Данії такий підхід не обов’язковий, але обов’язковий додаток Е забезпечує для цього такий механізм, як придатний.
Е.5 awk-письмо для конструкта «reorder-after»
(підрозділ довідковий)
Для реалізації конструкта «reorder-after» задамо опис «амк»-мовою, визначеною у POSIX- стандарті ISO/IEC 9945-2:
BEGIN { comment = «%»; back[0]= followfO] =0; } /LC_COLLATE/ { coll=l }
/END LC_COLLATE/ { coll=0; for (lnr= 1; Inr; lnr = follow[Inr])print c-ont[lnr]} { if (coll == 0) print $0; else { if ($1 == «сору») { file = $2 while (getline < file ) if ( $1 == «LC_COLLATE» ) copy_lc = 1 else if ( $1 == «END» && $2 == «LC_COLLATE» ) copy_lc =0 else if (copy_lc) { lnr + + follow[lnr-1] = Inr; back [Inr ] = lnr-1 contflnr] = $0; symb[ $1 ] = Inr ) close (file )
else if ($1 == «reorder-after») { ra=l ; after = symb [ $2 J } else if ($1 == «reorder-end») ra = 0 else {
Inr + + if (ra) follow [ Inr ] = follow [ after ] if (ra) back [ follow [ after ] ] = Inr follow[after] = Inr; back [Inr ] = after contflnr] = $0 if ( ra && $1 != comment &&$!!=»») { old = s ymb [ $ 1 ] ; follow [ back [ old ] ] = follow [ old ]; back [ follow [ old ] ] = back [ old ]; s ymb f $ 1 ] = Inr; } after = Inr } } }
E.6 Приклади специфікації POSIX-локальностей для данської та ірландської гаельсь- кої мов
(довідковий)
Е
НАЦІОНАЛЬНЕ ПОЯСНЕННЯ
% Локальність данської мови для Данії
% Джерело: Асоціація данських стандартів
% Адреса: Baunegaardsvej 73,
% DK-2900 Hellerup, Danmark
% Контакт; Keld Simonsen
% Email: [email protected]
.6.1 Приклад данської мови escape_char / comment_char % % Danish language locale for Denmark % Source: Danish Standards Association % Address: Baunegaardsvej 73, % DK-2900 Hellerup, Danmark % Contact: Keld Simonsen % Email: Keld. Simonsen@dkuug■dk
%
% Tel: +45 — 39770101
% Fax: +45 — 39770202
% Мова: da
% Територія: DK
% Версія: 4.0
% Дата: 1995-04-12
% Додаток: загальний
% Користувачі: загальні
% Репертуарна карта: mnemonic, DS
% Символьний набір: ISO_8859-1:1987
% Розповсюдження та вживання вільне, а також з комерційною метою.
% Алгоритм упорядкування згідно з данським % стандартом DS 377 (1980) і Данським %орфографічним словником(1986).
% Також відповідає гренландській орфографії
Tel: +45 - 39770101 % Fax: +45 - 39770202 % Language: da % Territory: DK % Revision: 4.0 % Date: 1995-04-12 % Application: general % Users: general % Repertoiremap: mnemonic,DS % Charset: ISO_8859-1:1987 % Distribution and use is free, also % for commercial purposes. % The ordering algorithm is in accordance % with Danish Standard DS 377 (1980) and % the Danish Orthography Dictionary (1986) . % It is also in accordance with % Greenlandic orthography.
LC_COLLATE collating-element <A-A> from « <AXA>» collating-element <A-a> from «<А><а>» collating-element <a-A> from «<а><А>» collating-element <a-a> from « » copy en_DK reorder-after <CAPITAL> <CAPITAL> <CAPITAL-SMALL> <SMALL-CAPITAL> reorder-after <q8> <kk> <Q>;<SPECIAL>;;IGNORE reorder-after <t8> <TH> «<ТХН>» ; «<ТНХТН>» ; «<CAPITALXCAPITAL>» ; IGNORE <tth.> <«TXH»> ; «<ТНХТН>» ; «<SMALLXSMALL>» ; IGNORE reorder-after <y8> % <U: > and <U»> are treated as <Y> in Danish (<U:> та <U»> обробляють ЯК <Y>) <U:> <Y> <U:>;<CAPITAL>;IGNORE <u:> <Y> <U:>;;IGNORE <U»> <Y> <U»>;<CAPITAL>;IGNORE <U»> <Y> <U»>;;IGNORE reorder-after <z8> % <AE> is a separate letter in Danish (окрема данська буква) <AE> <AE> <NONE>;<CAPITAL>;IGNORE <ae> <AE> <NONE>;;IGNORE <AE " > <AE> <ACUTE>;<CAPITAL>;IGNORE <ae'><AE> <ACUTE>;;IGNORE <A3> <AE> <MACRON>;<CAPITAL>;IGNORE <a3> <AE> <MACRON>;;IGNORE <A:> <AE> <SPECIAL>;<CAPITAL>;IGNORE <a:> <AE> <SPECIAL>;;IGNORE
%<О//> is a separate letter in Danish (окрема данська буква)
<О//ХО//> <NONE>; <CAPITAL>; IGNORE
<o//xO//> <NONE>;;IGNORE
<O//'> <0//> <ACUTE>;<CAPITAL>;IGNORE
<o//'> <O//> <ACUTE>;;IGNORE
<О:> <О//> <DIAERESIS>;<CAPITAL>;IGNORE
<с:> <О//> <DIAERESIS>;;IGNORE
<O»> <O//> <DOUBLE-ACUTE>;<CAPITAL>;IGNORE
<o»> <O//> <DOUBLE-ACUTE>;;IGNORE
% <AA> is a separate letter in Danish (окрема данська буква)
<AA> <AA>;<NONE>;<CAPITAL>;IGNORE
<aa> <AA>;<NONE>;;IGNORE
<A-AXAA>; <A-A>; <CAPITAL>; IGNORE
<A-aXAA>;<A-A> ; <CAPITAL-SMALL>;IGNORE
<a-AXAA>; <A-A>; <SMALL-CAPITAL>; IGNORE
<a-a><AA> ; <A-A> ; ; IGNORE
<AA ” > <AA>;<AA">;<CAPITAL>;
<aa' XAA>; <AA' >; ; IGNORE
' IGNORE
reorder-end
END LC-COLLATE
LC_CTYPE
copy «en_DK»
END LC CTYPE
LC_MONETARY
int_curr symbol
<<<DXKXKXS P>»
currency_symbol
«<kxr>»
mon_decimal_point
«<, >»
mon_thousands_sep
«< . >»
mon_grouping
3; 3
positive_sign
« «
negative_sign
«<->»
int_frac_digits
2
frac_digits
2
P_cs_precedes
1
p s ep_by_space
2
n cs_precedes
1
n_sep_by_space
2
p_sign_posn
4
n_sign_posn
4
END LC_MONETARY
LC_NUMERIC
decimal_poxnt
«<, >»
thousands_sep
« < . > »
grouping
3 ; 3
END LC NUMERIC
"<mXa><n>» ; /
«<tXi><r>" ; » <oXnXs>»; /
<<<txo><r>"; » <fxrxe>» ; /
« <1> < о// > < r > "
«<sXo//XnXdXaXg>>> ; /
LC_TIME
abday
day
abmon
mon
«<m>
><n>
<d>-
<g>»
; /
«<t>
<lz
>< r>
<S>'
^d>
g>» ; /
«<o>
<ru
>< s >
<d>-
<g>»
; /
«<t>
<Oz
><r>
<3 >’
<d>
g>» ; /
«<f>
<r^
><e>
<d>-
<g>»
; /
«<1>
<o//><
r ><c
ix,
axg
>»
«<j>
<a:
><n>
" ; »
<f
><e>
»; /
«<m>
<a:
><r>
";»
<a
>
<r>»; /
«<m>
<a:
xj>
"; »
<j
>
<n>>>; /
«< j >
<u:
><1>
" ; »
<a
>
<g>»; /
«<s>
<e:
xp>
" ; »
<o
><k>
<t»>; /
«<n>
<o;
Xr>
";»
<dxe>
<c>»
«<j>
<a5
><nxu><
'a>
<r>"
; /
«<f>
<e:
>
<r >‘
u>
r > » ; /
« <m>
<a:
><r >
<t><
c s >
/
«<%XaxSPX%xdxSPX%xbXSPX%XYXSPX%XTXSPx%xZ>»
d_fmt «<%xdx-x%xmX-x%><Y>»
t_fmt «<% ><T>»
эш pin « « ; « «
t_fmt_ampm « «
END LC_TIME
LC_MESSAGES
yesexpr ''<<(>< 1 XJXj XYXyX )/>><• X * >"
noexp r "<< ( ><0XNxnX ) / >><.><*>"
END LCAMESSAGES
E.6.2 Приклад ірландської мови
% Irish Gaelic language locale for Ireland % Source: NSAI
% Address: Everson Gunn Teoranta, 15 Port Chaeimhghein <1'>ochtarach, % Baile <A'>tha Cliath 2, <E'>ire % Contact: Michael Everson % Email: [email protected] % Tel: + 353 1 478-2597 % Fax: +353 1 478-2597 % Language: ga % Territory: IE % Revision: 0.5
% Date: 1996-01-28
% Users: general
% Repertoiremap: mnemonic, ds
% Charset: ISO_8859-1:1987
% Distribution and use is free, also for commercial purposes.
% Clause 1, Alphanumeric deterministic ordering
% Cuid 1, Rang<u'> docht a1fa-uimhrі<u'>і1 LC_COLLATE
% Based on European multilingual ordering (to replace «en_DK») % Accented characters are ordered as their unaccented counterparts. % In the case of equality after this comparison has been made, % unaccented characters are ordered before accented characters, % and capital letters are ordered before small letters.
% Bunaithe ar an ord iltheangach Eorpach (in <a'>it «en_DK»)
% D<e'>antar litreacha ar a bhfurl comharthaci'> idirdhealaitheacha a
% rang<u'> d<i'>reach ar n<o'>s na coda eile. Tugtar t<u'>s <a'>ite don
% litir lorn laistigh den rang<u'> sin, agus tugtar t<u'>s <a'>ite % laistigh den rang<u'> sin do litreacha m<o'>ra thar litreacha beaga. copy «enJDK» END LC_COLLATE
% Clause 2, Classification of characters
% Cuid 2, Aicm<i'> carachtar
LC_CTYPE
% Based on European multilingual classification (to replace «en_DK») % Bunaithe ar na haicm<i'> carachtar iltheangacha Eorpacha , % (in <a'>it «en_DK») copy «en_DK» END LC CTYPE
% Clause 3, Numeric formatting
% Cuid 3, Form.O'>id<i ' > uimhri<u'>la LC_NUMERIC
decimal_point «<.>» thousands_sep «<,>» grouping 3;3
END LC_NUMERIC
% Clause 4, Monetary formatting % Cuid 4, Form<a'>id<i' > airgid LC_MONETARY
% Currency symbols (int_curr_symbol < ISO 4217)
% Comhartha<i'> airgeadais (int_curr_symbol < ISO 4217) int_curr_symbol <«IXEXPXSP>»
currency_synbol «<Pd>»
% Normal numeric writing % Gn<a' >thscr<i'>bhinn uimhri<u'>il mon_thousands_sep «<,>» mon_grouping 3; 3
mon_decimal point «<•>»
% Plus and minus symbols % Comhartha<i'> m<o'>ide agus l<u'>ide positive sign « «
negative_sign «<->»
% Decimal accuracy % Cruinneas deach<u'>il int_frac_digits 2
frac_digits 2
% Position of currency symbols % Su<i'>omh an comhartha airgeadais p_cs_precedes 1
p_sep by_space 0
n cs_precedes 1
n_sep_by_space 0
% Position of plus and minus
% Su<i'>omh na gcomhartha<i' > m<o'>ide agus l<u'>ide p_sign_posn 1
n_sign_posn 1
END LC_MONETARY
% Clause 5, Date and time conventions
% Cuid 5, Form<a'>idci'> ama agus d<a'>ta LC_TIME
% Abbreviated and long weekday names (%a and %A)
% Giorr<u'>ch<a' >n ar ainmneacha na laethanta, agus ainmneacha fada % (%a agus %A)
abday «<Dxo><m> <h>» ; "<LXuXa><n>/
«<M><a' Xi><r >" ; » <CXe ' xaxd>» ; /
«<DXe><r>" ; » <Axoxixn>» ; /
<<<SXaXtxh>"
«
day
<D><e ' XS P><DXoXmxh><n><axixgxh>» ; / «<D><e' xSP><L><uXaxixn>» ; /
«<D><e' xSPXMXa' xixrxsxdxaxg>» ; /
«<D><e' xs Pxcxe' xaxdxaxoxixn»> ; /
«<D><e' xaxrxdxaxoxixn>» ; /
<<<DXe' xsPxhxAXoxixnxe>» /
«<Dxe' xspxsxaxtxhxaxixrxn»>
% Abbreviated and long month names (%b and %B)
% Giorr<u'>ch<a'>n ar ainmneacha na m<i'>onna, agus ainmneacha fada % (%b agus
«
Abmon
<Exa><n><S PXSP>" ; » <FXeXa><bXh>»; / «<MXaXrxSPXSP>" ; » <AxixbxSP><SP>»; / «<В><еxaxlxsР>";» <М>< е х і > <tхh>»; / «<IXU><1X1XSP>";» <LXuXnXSPXSP>»; / «<MXFXoXm><h>" ; » <DXFxoxmxh>»; / «<Sxa><mxhxSP>";» <NxoxlxlxSP>» mon «<EXaXnXa><iXr>" ; /
END LC TIME
% Clause 6, Affirmative and negative answers
% Cuid 6, Freagra<i'> dearfacha agus freagra<i'> di<u'>ltacha LC_MESSAGES
yesexpr "<< ( XTXtXSXsXYXyXlX + X )/>>".*»
% T<a'>, Sea, Yes, 1, +
% The affirmative form in Irish Gaelic is to repeat the verb.
% Tugtar foirm dhearfach an bhriathair mar fhreagra dearfach.
noexpr «<< ( XNXnXCXCXO x-X )/>>.*»
% N<1'>1, N<1'> hea, No, Chan fhuil, Chan ea, 0,
% The negative form in Irish Gaelic is to repeat the verb
% combined and mutated with a negative particle (n<i'> or chan).
% Tugtar foirm dhi<u'>ltach an bhriathair mar fhreagra di<u'>ltach. END LC MESSAGES
ДОДАТОК F (довідковий)
ОПИС РОЗПОВІДНИХ КУЛЬТУРНИХ ЕЛЕМЕНТІВ
У цьому додатку описано деталі категорій культурних елементів для розповідної культурної специфікації. Додаток ґрунтується на інформації з POSIX-стандарту ISO/IEC 9945-2 та Підсумкового звіту скандинавських культурних вимог з інформаційних технологій. Пункти 1—6 стосуються POSIXy, а розповідний опис супроводжено відповідною специфікацією POSIX-локальнос- тей. Пункти 7-32 потрібні для забезпечення інформацією, що тепер не можна виразити у POSIX- нотаціях. Приклади розповідної культурної специфікації наведено у додатку D.
Пункт 1: Абетково-цифрове детерміноване впорядкування
Тут має бути специфікація національного стандарту для впорядкування. За наявності кількох стандартів чи опцій стандарту для кожного з впорядкувань має бути одна POSIX-специфікація Можна посилатися на Європейський стандарт мультилінгвістичного сортування чи на інші міжна- родні стандарти, вже включені до реєстру, і якщо є певні відхилення, їх потрібно описати. Опису стосується, чи є якісь літери, які сортують інакше від інших мов, чи сортують великі літери перед малими, чи є специфічне впорядкування для наголошених літер. Це є POSIX-категорія.
Побачили розбіжність з офіційним текстом?
Дивіться також
Сборник ГОСТ ЕСКД
Збірник із 154 стандартів