﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ewo.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ewo.xml
 */
ewo{
    AuxExemplarCharacters{"[c j q x]"}
    ExemplarCharacters{
        "[a á à â ǎ b d {dz} e é è ê ě ǝ {ǝ\u0301} {ǝ\u0300} {ǝ\u0302} {ǝ\u030C} ɛ {ɛ"
        "\u0301} {ɛ\u0300} {ɛ\u0302} {ɛ\u030C} f g h i í ì î ǐ k {kp} l m n ń ǹ {ng} "
        "{nk} ŋ o ó ò ô ǒ ɔ {ɔ\u0301} {ɔ\u0300} {ɔ\u0302} {ɔ\u030C} p r s t {ts} u ú "
        "ù û ǔ v w y z]"
    }
    ExemplarCharactersIndex{"[A B D E Ǝ Ɛ F G H I K L M N Ŋ O Ɔ P R S T U V W Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.57.99"}
    calendar{
        gregorian{
            AmPmMarkers{
                "kíkíríg",
                "ngǝgógǝle",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y",
                "d MMMM y",
                "d MMM y",
                "d/M/yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"d EEE"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"EEE d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "sɔ́n",
                        "mɔ́n",
                        "smb",
                        "sml",
                        "smn",
                        "fúl",
                        "sér",
                    }
                    wide{
                        "sɔ́ndɔ",
                        "mɔ́ndi",
                        "sɔ́ndɔ mǝlú mǝ́bɛ̌",
                        "sɔ́ndɔ mǝlú mǝ́lɛ́",
                        "sɔ́ndɔ mǝlú mǝ́nyi",
                        "fúladé",
                        "séradé",
                    }
                }
                stand-alone{
                    narrow{
                        "s",
                        "m",
                        "s",
                        "s",
                        "s",
                        "f",
                        "s",
                    }
                }
            }
            eras{
                abbreviated{
                    "oyk",
                    "ayk",
                }
                wide{
                    "osúsúa Yésus kiri",
                    "ámvus Yésus Kirís",
                }
            }
            fields{
                day{
                    dn{"Amǒs"}
                    relative{
                        "-1"{"Angogé"}
                        "0"{"Aná"}
                        "1"{"Okírí"}
                    }
                }
                dayperiod{
                    dn{"Kírí / Ngǝgógǝle"}
                }
                era{
                    dn{"Abǒg"}
                }
                hour{
                    dn{"Awola"}
                }
                minute{
                    dn{"Enútɛn"}
                }
                month{
                    dn{"Ngɔn"}
                }
                second{
                    dn{"Akábǝga"}
                }
                week{
                    dn{"Sɔ́ndɔ"}
                }
                weekday{
                    dn{"Amǒs yá sɔ́ndɔ"}
                }
                year{
                    dn{"M̀bú"}
                }
                zone{
                    dn{"Nkɔŋ Awola"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ngo",
                        "ngb",
                        "ngl",
                        "ngn",
                        "ngt",
                        "ngs",
                        "ngz",
                        "ngm",
                        "nge",
                        "nga",
                        "ngd",
                        "ngb",
                    }
                    wide{
                        "ngɔn osú",
                        "ngɔn bɛ̌",
                        "ngɔn lála",
                        "ngɔn nyina",
                        "ngɔn tána",
                        "ngɔn samǝna",
                        "ngɔn zamgbála",
                        "ngɔn mwom",
                        "ngɔn ebulú",
                        "ngɔn awóm",
                        "ngɔn awóm ai dziá",
                        "ngɔn awóm ai bɛ̌",
                    }
                }
                stand-alone{
                    narrow{
                        "o",
                        "b",
                        "l",
                        "n",
                        "t",
                        "s",
                        "z",
                        "m",
                        "e",
                        "a",
                        "d",
                        "b",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "nno",
                        "nnb",
                        "nnl",
                        "nnny",
                    }
                    wide{
                        "nsámbá ngɔn asú",
                        "nsámbá ngɔn bɛ̌",
                        "nsámbá ngɔn lála",
                        "nsámbá ngɔn nyina",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
}
