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.

% English language locale for Philippines.
% Contributed by Kentaroh Noji <knoji@jp.ibm.com> and
% Tetsuji Orita <orita@jp.ibm.com>.

LC_IDENTIFICATION
% This is the ISO_IEC TR14652 Locale definition for the LC_IDENTIFICATION
% category generated by IBM Basic CountryPack Transformer.
%
title       "English language locale for Philippines"
source     "IBM Globalization Center of Competency, Yamato Software Laboratory"
address    "1623-14, Shimotsuruma, Yamato-shi, Kanagawa-ken, 242-8502, Japan"
contact    ""
email      "bug-glibc-locales@gnu.org"
tel         ""
fax         ""
language    "English"
territory   "Philippines"
revision    "1.0"
date        "2000,October,27 (XML source:2000,July,20)"

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


LC_CTYPE
copy "en_GB"
END LC_CTYPE

LC_COLLATE

% Copy the template from ISO/IEC 14651
copy "iso14651_t1"

END LC_COLLATE

LC_MONETARY
% This is the POSIX Locale definition the LC_MONETARY category
% generated by IBM Basic CountryPack Transformer.
% These are generated based on XML base Locale defintion file
% for IBM Class for Unicode.
%
int_curr_symbol       "PHP "
currency_symbol       "<U20B1>"
mon_decimal_point     "."
mon_thousands_sep     ","
mon_grouping          3
positive_sign         ""
negative_sign         "-"
int_frac_digits       2
frac_digits           2
p_cs_precedes         1
p_sep_by_space        0
n_cs_precedes         1
n_sep_by_space        0
p_sign_posn           1
n_sign_posn           0
%
END LC_MONETARY


LC_NUMERIC
% This is the POSIX Locale definition for the LC_NUMERIC  category.
%
decimal_point          "."
thousands_sep          ","
grouping               3
%
END LC_NUMERIC


LC_TIME
% This is the POSIX Locale definition for the LC_TIME category
% generated by IBM Basic CountryPack Transformer.
% These are generated based on XML base Locale definition file
% for IBM Class for Unicode.
%
% Abbreviated weekday names (%a)
abday       "Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat"
%
% Full weekday names (%A)
day         "Sunday";"Monday";/
            "Tuesday";"Wednesday";/
            "Thursday";"Friday";/
            "Saturday"
%
% 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       "AM";"PM"
%
% Appropriate date and time representation
d_t_fmt     "%A, %d %B, %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
d_fmt       "%A, %d %B, %Y"
%
% Appropriate time representation
t_fmt       "%I:%M:%S  %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm  "%I:%M:%S %p %Z"
%
week 7;19971130;1
END LC_TIME


LC_MESSAGES
copy "en_US"
END LC_MESSAGES


LC_PAPER
copy "tl_PH"
END LC_PAPER


LC_NAME
% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
% generated by IBM Basic CountryPack Transformer.
%
%
name_fmt    "%p%t%f%t%g"
name_gen    ""
name_mr     "Mr."
name_mrs    "Mrs."
name_miss   "Miss."
name_ms     "Ms."

END LC_NAME


LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
% generated by IBM Basic CountryPack Transformer.
postal_fmt  "%z%c%T%s%b%e%r"
country_name "Philippines"
country_ab2 "PH"
country_ab3 "PHL"
country_num 608
country_car   "RP"
lang_name     "English"
lang_ab      "en"
lang_term    "eng"
lang_lib    "eng"
END LC_ADDRESS


LC_TELEPHONE
% This is the ISO_IEC TR14652 Locale definition for the LC_TELEPHONE
% generated by IBM Basic CountryPack Transformer.
tel_int_fmt "+%c ;%a ;%l"
int_prefix "63"
int_select "00"
END LC_TELEPHONE


LC_MEASUREMENT
copy "tl_PH"
END LC_MEASUREMENT
