comment_char %
escape_char /

% This file is part of the GNU C Library and contains locale data.
% The Free Software Foundation does not claim any copyright interest
% in the locale data contained in this file.  The foregoing does not
% affect the license of the GNU C Library as a whole.  It does not
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Sidama language locale for Ethiopia.
%
% Sidama terms provided by Dessalegn Garsamo Gabbiso <gabbiso2001@yahoo.com>
% of the National University of Ireland, Dublin and A.H. Weno
% <bus1hwa@east-01.novell.leeds.ac.uk>. Prepared and contributed to glibc
% by Daniel Yacob <locales@geez.org>.
%
% This locale data has been developed under the Yeha Project:
%      http://yeha.sourceforge.net/
%
% build with: localedef -f UTF-8 -i sid_ET sid_ET
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


LC_IDENTIFICATION
%
title      "Sidama language locale for Ethiopia."
source     "Ge'ez Frontier Foundation"
address    "7802 Solomon Seal Dr., Springfield, VA 22152, USA"
contact    ""
email      "locales@geez.org"
tel        ""
fax        ""
language   "Sidamo"
territory  "Ethiopia"
revision   "0.20"
date       "2003-07-05"

category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_COLLATE
category "i18n:2012";LC_CTYPE
category "i18n:2012";LC_MEASUREMENT
category "i18n:2012";LC_MONETARY
category "i18n:2012";LC_NUMERIC
category "i18n:2012";LC_PAPER
category "i18n:2012";LC_TELEPHONE
category "i18n:2012";LC_ADDRESS
category "i18n:2012";LC_MESSAGES
category "i18n:2012";LC_NAME
category "i18n:2012";LC_TIME
END LC_IDENTIFICATION


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Ethiopic Specifc Data:
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

LC_COLLATE
copy "am_ET"
END LC_COLLATE

LC_CTYPE
copy "ti_ET"
END LC_CTYPE


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Ethiopia Specific and Shared Data:
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

LC_MEASUREMENT
copy "ti_ET"
END LC_MEASUREMENT

LC_MONETARY
copy "ti_ET"
END LC_MONETARY

LC_NUMERIC
copy "ti_ET"
END LC_NUMERIC

LC_PAPER
copy "ti_ET"
END LC_PAPER

LC_TELEPHONE
copy "ti_ET"
END LC_TELEPHONE


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Sidama Specific Data:
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

LC_ADDRESS
%
% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category.
%
postal_fmt    "%z%c%T%s%b%e%r"
country_name  "Itiyoophiya"
country_post  "ETH"
country_ab2   "ET"
country_ab3   "ETH"
country_num   231   % 210 found in at least one ISO 3166 doc
country_car   "ETH"
% country_isbn  unknown, Need ISO 2108
lang_name     "Sidaamu Afo"
lang_term     "sid"
lang_lib      "sid"
%
END LC_ADDRESS


LC_MESSAGES
copy "ti_ET"
END LC_MESSAGES


LC_NAME
%
% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category.
%
name_fmt    "%d%t%g%t%m%t%f"
name_gen    ""
name_mr     "Kalaa"
name_mrs    "Dukko"
name_miss   "Beeto"
name_ms     ""
%
END LC_NAME


LC_TIME
%
% Abbreviated weekday names (%a)
%
abday    "Sam";/
         "San";/
         "Mak";/
         "Row";/
         "Ham";/
         "Arb";/
         "Qid"
%
% Full weekday names (%A)
%
day      "Sambata";/
         "Sanyo";/
         "Maakisanyo";/
         "Roowe";/
         "Hamuse";/
         "Arbe";/
         "Qidaame"
%
% Abbreviated month names (%b)
%
abmon    "Jan";/
         "Feb";/
         "Mar";/
         "Apr";/
         "May";/
         "Jun";/
         "Jul";/
         "Aug";/
         "Sep";/
         "Oct";/
         "Nov";/
         "Dec"
%
% Full month names (%B)
%
mon      "January";/
         "February";/
         "March";/
         "April";/
         "May";/
         "June";/
         "July";/
         "August";/
         "September";/
         "October";/
         "November";/
         "December"
%
% Equivalent of AM PM
%
am_pm    "soodo";"hawwaro"
%
% Appropriate date representation (%x)
%
d_fmt   "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
t_fmt "%l:%M:%S"
%
% Appropriate AM/PM time representation (%r)
%
t_fmt_ampm "%X %p"
%
% Appropriate date and time representation (%c)
%
d_t_fmt    "%A, %B %e, %Y %r %Z"
%
% Appropriate date representation (date(1))
%
date_fmt    "%A, %B %e, %r %Z %Y"
week 7;19971130;1
END LC_TIME
