[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Tools for writing locales files?



I'm currently trying to help completing the set of locales files we
have in Debian. For instance, I currently try to create a sr_CS locale
from the sr_YU locale (Serbian/Serbia and Montenegro from
Serbian/Yugoslavia).

However, editing these files is a bit boring and difficult as it needs
knowing Unicode codes for all characters...which is a bit painful.

Do some of you know about dedicated tools (or Emacs mode) for writing
such locales files or do I have to do it "the hard way"? 

Example of locale file:

comment_char %
escape_char  /
%
% Serbian Language Locale for Yugoslavia
% Source: USM/MZT
% Address:
%
% Contact:
% Email:
% Tel:
% Fax: none
% Language: sr
% Territory: YU
% Revision: 4.4
% Date: 1997-04-17
% Application: general
% Users: general
% Charset: ISO-8859-2
% Distribution and use is free, also
% for commercial purposes.

LC_IDENTIFICATION
title      "Serbian locale for Yugoslavia"
source     "USM/MZT"
address    ""
contact    ""
email      "bug-glibc@gnu.org"
tel        ""
fax        ""
language   "Serbian"
territory  "Yugoslavia"
revision   "1.0"
date       "2000-06-29"
%
category  "sr_YU:2000";LC_IDENTIFICATION
category  "sr_YU:2000";LC_CTYPE
category  "sr_YU:2000";LC_COLLATE
category  "sr_YU:2000";LC_TIME
category  "sr_YU:2000";LC_NUMERIC
category  "sr_YU:2000";LC_MONETARY
category  "sr_YU:2000";LC_MESSAGES
category  "sr_YU:2000";LC_PAPER
category  "sr_YU:2000";LC_NAME
category  "sr_YU:2000";LC_ADDRESS
category  "sr_YU:2000";LC_TELEPHONE

END LC_IDENTIFICATION

LC_COLLATE
copy "iso14651_t1"

% a b c c' c< d dz< d// e f g h i j k l lj m n nj o p
% q r s s< t u v w x y z z<

collating-symbol  <d-z-sh>
collating-element <D-Z<> from "<U0044><U017D>"
collating-element <D-z<> from "<U0044><U017E>"
collating-element <d-Z<> from "<U0064><U017D>"
collating-element <d-z<> from "<U0064><U017E>"
collating-symbol  <l-j-sh>
collating-element <L-J> from "<U004C><U004A>"
collating-element <L-j> from "<U004C><U006A>"
collating-element <l-J> from "<U006C><U004A>"
collating-element <l-j> from "<U006C><U006A>"
collating-symbol  <n-j-sh>
collating-element <N-J> from "<U004E><U004A>"
collating-element <N-j> from "<U004E><U006A>"
collating-element <n-J> from "<U006E><U004A>"
collating-element <n-j> from "<U006E><U006A>"
collating-symbol <cacute>
collating-symbol <ccaron>
collating-symbol <d//>
collating-symbol <scaron>
collating-symbol <zcaron>

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

reorder-after <MIN>
<MIN-CAP>
reorder-after <CAP>
<CAP-MIN>

reorder-after <c>
<cacute>
<ccaron>
<d>
<d-z-sh>
<d//>
reorder-after <l>
<l-j-sh>
reorder-after <n>
<n-j-sh>
reorder-after <s>
<scaron>
reorder-after <z>
<zcaron>

reorder-after <U0063>
<U0107>	<cacute>;<PCT>;<MIN>;IGNORE
<U010D>	<ccaron>;<PCT>;<MIN>;IGNORE
reorder-after <U0043>
<U0106>	<cacute>;<PCT>;<CAP>;IGNORE
<U010C>	<ccaron>;<PCT>;<CAP>;IGNORE

reorder-after <U0064>
<d-z<>	<d-z-sh>;<PCT>;<MIN>;IGNORE
<d-Z<>	<d-z-sh>;<PCT>;<MIN-CAP>;IGNORE
<U0111>	<d//>;<PCT>;<MIN>;IGNORE
reorder-after <U0044>
<D-Z<>	<d-z-sh>;<PCT>;<CAP>;IGNORE
<D-z<>	<d-z-sh>;<PCT>;<CAP-MIN>;IGNORE
<U0110>	<d//>;<PCT>;<CAP>;IGNORE

reorder-after <U006C>
<l-j>	<l-j-sh>;<PCT>;<MIN>;IGNORE
<l-J>	<l-j-sh>;<PCT>;<MIN-CAP>;IGNORE
reorder-after <U004C>
<L-J>	<l-j-sh>;<PCT>;<CAP>;IGNORE
<L-j>	<l-j-sh>;<PCT>;<CAP-MIN>;IGNORE

reorder-after <U006E>
<n-j>	<n-j-sh>;<PCT>;<MIN>;IGNORE
<n-J>	<n-j-sh>;<PCT>;<MIN-CAP>;IGNORE
reorder-after <U004E>
<N-J>	<n-j-sh>;<PCT>;<CAP>;IGNORE
<N-j>	<n-j-sh>;<PCT>;<CAP-MIN>;IGNORE

reorder-after <U0073>
<U0161>	<scaron>;<PCT>;<MIN>;IGNORE
reorder-after <U0053>
<U0160>	<scaron>;<PCT>;<CAP>;IGNORE

reorder-after <U007A>
<U017E>	<zcaron>;<PCT>;<MIN>;IGNORE
reorder-after <U005A>
<U017D>	<zcaron>;<PCT>;<CAP>;IGNORE

reorder-end
END LC_COLLATE

LC_CTYPE
copy "i18n"
translit_start
include "translit_combining";""

% cyrillic -> latin
<U0452> "<U0111>";"<U0064><U006A>" % d-
<U0453> "<U0067><U006A>" % gj
<U0455> "<U0064><U007A>" % dz
<U0458> "<U006A>" % j
<U0459> "<U006C><U006A>" % lj
<U045A> "<U006e><U006A>" % nj
<U045B> "<U0107>";"<U0063>" % c'
<U045C> "<U006B><U006A>" % kj
<U045F> "<U0064><U017E>";"<U0064><U007A>" % dz<

<U0402> "<U0110>";"<U0044><U006A>" % D-
<U0403> "<U0047><U006A>" % Gj
<U0405> "<U0044><U007A>" % Dz
<U0408> "<U004A>" % J
<U0409> "<U004C><U006A>" % Lj
<U040A> "<U004e><U006A>" % Nj
<U040B> "<U0106>";"<U0043>" % C'
<U040C> "<U004B><U006A>" % Kj
<U040F> "<U0044><U017E>";"<U0064><U007A>" % Dz<

<U0430> "<U0061>"
<U0431> "<U0062>"
<U0446> "<U0063>"
<U0434> "<U0064>"
<U0435> "<U0065>"
<U0444> "<U0066>"
<U0433> "<U0067>"
<U0445> "<U0068>"
<U0438> "<U0069>"
<U043A> "<U006B>"
<U043B> "<U006C>"
<U043C> "<U006D>"
<U043D> "<U006E>"
<U043E> "<U006F>"
<U043F> "<U0070>"
<U0440> "<U0072>"
<U0441> "<U0073>"
<U0442> "<U0074>"
<U0443> "<U0075>"
<U0432> "<U0076>"
<U0437> "<U007A>"
<U0436> "<U017E>";"<U007A>" % z<
<U0448> "<U0161>";"<U0073>" % s<
<U0447> "<U010D>";"<U0063>" % c<

<U0410> "<U0041>"
<U0411> "<U0042>"
<U0426> "<U0043>"
<U0414> "<U0044>"
<U0415> "<U0045>"
<U0424> "<U0046>"
<U0413> "<U0047>"
<U0425> "<U0048>"
<U0418> "<U0049>"
<U041A> "<U004B>"
<U041B> "<U004C>"
<U041C> "<U004D>"
<U041D> "<U004E>"
<U041E> "<U004F>"
<U041F> "<U0050>"
<U0420> "<U0052>"
<U0421> "<U0053>"
<U0422> "<U0054>"
<U0423> "<U0055>"
<U0412> "<U0056>"
<U0417> "<U005A>"
<U0416> "<U017D>";"<U005A>" % z<
<U0428> "<U0160>";"<U0053>" % s<
<U0427> "<U010C>";"<U0063>" % c<

translit_end
END LC_CTYPE

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

LC_MONETARY
int_curr_symbol           "<U0059><U0055><U004D><U0020>"
currency_symbol           "<U0064><U0069><U006E>"
mon_decimal_point         "<U002C>"
mon_thousands_sep         "<U0020>"
mon_grouping              3;3
positive_sign             ""
negative_sign             "<U002D>"
int_frac_digits           0
frac_digits               0
p_cs_precedes             1
p_sep_by_space            1
n_cs_precedes             1
n_sep_by_space            1
p_sign_posn               1
n_sign_posn               1
END LC_MONETARY

LC_NUMERIC
decimal_point             "<U002C>"
thousands_sep             ""
grouping                  0;0
END LC_NUMERIC

LC_TIME

abday   "<U006E><U0065><U0064>";"<U0070><U006F><U006E>";/
        "<U0075><U0074><U006F>";"<U0073><U0072><U0065>";/
        "<U010D><U0065><U0074>";"<U0070><U0065><U0074>";/
        "<U0073><U0075><U0062>"
day     "<U006E><U0065><U0064><U0065><U006C><U006A><U0061>";/
        "<U0070><U006F><U006E><U0065><U0064><U0065><U006C><U006A><U0061><U006B>";/
        "<U0075><U0074><U006F><U0072><U0061><U006B>";/
        "<U0073><U0072><U0065><U0064><U0061>";/
        "<U010D><U0065><U0074><U0076><U0072><U0074><U0061><U006B>";/
        "<U0070><U0065><U0074><U0061><U006B>";/
        "<U0073><U0075><U0062><U006F><U0074><U0061>"
abmon   "<U006A><U0061><U006E>";"<U0066><U0065><U0062>";/
        "<U006D><U0061><U0072>";"<U0061><U0070><U0072>";/
        "<U006D><U0061><U006A>";"<U006A><U0075><U006E>";/
        "<U006A><U0075><U006C>";"<U0061><U0076><U0067>";/
        "<U0073><U0065><U0070>";"<U006F><U006B><U0074>";/
        "<U006E><U006F><U0076>";"<U0064><U0065><U0063>"
mon     "<U006A><U0061><U006E><U0075><U0061><U0072>";/
        "<U0066><U0065><U0062><U0072><U0075><U0061><U0072>";/
        "<U006D><U0061><U0072><U0074>";/
        "<U0061><U0070><U0072><U0069><U006C>";/
        "<U006D><U0061><U006A>";/
        "<U006A><U0075><U006E><U0069>";/
        "<U006A><U0075><U006C><U0069>";/
        "<U0061><U0076><U0067><U0075><U0073><U0074>";/
        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0061><U0072>";/
        "<U006F><U006B><U0074><U006F><U0062><U0061><U0072>";/
        "<U006E><U006F><U0076><U0065><U006D><U0062><U0061><U0072>";/
        "<U0064><U0065><U0063><U0065><U006D><U0062><U0061><U0072>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt   "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059><U002E>"
t_fmt   "<U0025><U0054>"
am_pm   "";""
t_fmt_ampm ""
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>"
END LC_TIME

LC_PAPER
% FIXME
height   297
% FIXME
width    210
END LC_PAPER

LC_TELEPHONE
tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
int_prefix     "<U0033><U0038><U0031>"
END LC_TELEPHONE

LC_MEASUREMENT
% FIXME
measurement    1
END LC_MEASUREMENT

LC_NAME
name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
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>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
country_ab2 "<U0059><U0055>"
country_ab3 "<U0059><U0055><U0047>"
country_num 891
END LC_ADDRESS

-- 




Reply to: