﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ee.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/ee.xml
 */
ee{
    AuxExemplarCharacters{"[ă â å ä ā æ c ç ĕ ê ë ĭ î ï j ñ ŏ ô ö ø œ q ŭ û ü ÿ]"}
    ExemplarCharacters{
        "[a á à ã b d ɖ e é è ẽ ɛ {ɛ\u0301} {ɛ\u0300} {ɛ\u0303} f ƒ g ɣ h x i í ì ĩ k"
        " l m n ŋ o ó ò õ ɔ {ɔ\u0301} {ɔ\u0300} {ɔ\u0303} p r s t u ú ù ũ v ʋ w y z]"
    }
    ExemplarCharactersIndex{"[A B D Ɖ E Ɛ F Ƒ G Ɣ H X I K L M N Ŋ O Ɔ P R S T U V Ʋ W Y Z]"}
    ExemplarCharactersPunctuation{
        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] \\{ \\} § @ * / \\& "
        "# † ‡ ′ ″]"
    }
    LocaleScript{
        "Latn",
    }
    MoreInformation{"..."}
    NumberElements{
        latn{
            patterns{
                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}
                currencyFormat{"¤#,##0.00"}
            }
            patternsShort{
                decimalFormat{
                    100000{
                        one{"000K"}
                        other{"000K"}
                    }
                    1000000{
                        one{"0M"}
                        other{"0M"}
                    }
                    10000000{
                        one{"00M"}
                        other{"00M"}
                    }
                    100000000{
                        one{"000M"}
                        other{"000M"}
                    }
                    1000000000{
                        one{"0000M"}
                        other{"0000M"}
                    }
                    10000000000{
                        one{"00000M"}
                        other{"00000M"}
                    }
                    100000000000{
                        one{"000000M"}
                        other{"000000M"}
                    }
                    1000000000000{
                        one{"0B"}
                        other{"0B"}
                    }
                    10000000000000{
                        one{"00B"}
                        other{"00B"}
                    }
                    100000000000000{
                        one{"000B"}
                        other{"000B"}
                    }
                }
            }
            symbols{
                nan{"mnn"}
            }
        }
    }
    Version{"2.0.98.52"}
    calendar{
        generic{
            DateTimePatterns{
                "a h:mm:ss zzzz",
                "a 'ga' h:mm:ss z",
                "a 'ga' h:mm:ss",
                "a 'ga' h:mm",
                "EEEE, MMMM d 'lia' y G",
                "MMMM d 'lia' y G",
                "MMM d 'lia', y G",
                "M/d/y GGGGG",
                "{0} {1}",
                "{0} {1}",
                "{0} {1}",
                "{0} {1}",
                "{0} {1}",
            }
            availableFormats{
                Ed{"E d"}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E, MMM d 'lia' y G"}
                GyMMMd{"MMM d 'lia', y G"}
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d 'lia'"}
                MMMMEd{"E, MMMM d 'lia'"}
                MMMMd{"MMMM d 'lia'"}
                MMMd{"MMM d 'lia'"}
                Md{"M/d"}
                d{"d"}
                h{"a 'ga' h"}
                hm{"a 'ga' h:mm"}
                hms{"a 'ga' h:mm:ss"}
                ms{"'aɖabaƒoƒo' mm:ss"}
                y{"y G"}
                yyyy{"y G"}
                yyyyM{"M/y G"}
                yyyyMEd{"E, M/d/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"E, MMM d 'lia' y G"}
                yyyyMMMM{"MMMM y G"}
                yyyyMMMd{"MMM d 'lia', y G"}
                yyyyMd{"M/d/y G"}
                yyyyQQQ{"QQQ y G"}
                yyyyQQQQ{"QQQQ y G"}
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                M{
                    M{"'ɣleti' M 'lia' – 'ɣleti' M 'lia'"}
                }
                MEd{
                    M{"E, M/d – E, M/d"}
                    d{"E, M/d – E, M/d"}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E, MMM d 'lia' – E, MMM d 'lia'"}
                    d{"E, MMM d 'lia' – E, MMM d 'lia'"}
                }
                MMMd{
                    M{"MMM d 'lia' – MMM d 'lia'"}
                    d{"MMM d 'lia' – d 'lia'"}
                }
                Md{
                    M{"M/d – M/d"}
                    d{"M/d – M/d"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} - {1}"}
                h{
                    a{"a h – a h"}
                    h{"a h–h"}
                }
                hm{
                    a{"a 'ga' h:mm - a 'ga' h:mm"}
                    h{"a 'ga' h:mm - 'ga' h:mm"}
                    m{"a 'ga' h:mm – 'ga' h:mm"}
                }
                hmv{
                    a{"a 'ga' h:mm – a 'ga' h:mm v"}
                    h{"a 'ga' h:mm–h:mm v"}
                    m{"a h:mm–h:mm v"}
                }
                hv{
                    a{"a h – a h v"}
                    h{"a 'ga' h–h v"}
                }
                yM{
                    M{"M/y – M/y G"}
                    y{"M/y – M/y G"}
                }
                yMEd{
                    M{"E, M/d/y – E, M/d/y G"}
                    d{"E, M/d/y – E, M/d/y G"}
                    y{"E, M/d/y – E, M/d/y G"}
                }
                yMMM{
                    M{"MMM–MMM y G"}
                    y{"MMM y – MMM y G"}
                }
                yMMMEd{
                    M{"E, MMM d 'lia' – E, MMM d 'lia', y G"}
                    d{"E, MMM d 'lia' – E, MMM d 'lia', y G"}
                    y{"E, MMM d 'lia', y – E, MMM d 'lia', y G"}
                }
                yMMMM{
                    M{"MMMM–MMMM y G"}
                    y{"MMMM y – MMMM y G"}
                }
                yMMMd{
                    M{"MMM d 'lia' – MMM d 'lia', y G"}
                    d{"MMM d 'lia' – d 'lia' , y G"}
                    y{"MMM d 'lia' , y – MMM d 'lia', y G"}
                }
                yMd{
                    M{"M/d/y – M/d/y G"}
                    d{"M/d/y – M/d/y G"}
                    y{"M/d/y – M/d/y G"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "ŋdi",
                "ɣetrɔ",
            }
            DateTimePatterns{
                "a h:mm:ss zzzz",
                "a 'ga' h:mm:ss z",
                "a 'ga' h:mm:ss",
                "a 'ga' h:mm",
                "EEEE, MMMM d 'lia' y",
                "MMMM d 'lia' y",
                "MMM d 'lia', y",
                "M/d/yy",
                "{0} {1}",
                "{0} {1}",
                "{0} {1}",
                "{0} {1}",
                "{0} {1}",
            }
            availableFormats{
                Ed{"E d"}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E, MMM d 'lia' y G"}
                GyMMMd{"MMM d 'lia', y G"}
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d 'lia'"}
                MMMMEd{"E, MMMM d 'lia'"}
                MMMMd{"MMMM d 'lia'"}
                MMMd{"MMM d 'lia'"}
                Md{"M/d"}
                d{"d"}
                h{"a 'ga' h"}
                hm{"a 'ga' h:mm"}
                hms{"a 'ga' h:mm:ss"}
                ms{"'aɖabaƒoƒo' mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yMMMd{"MMM d 'lia', y"}
                yMd{"M/d/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "kɔs",
                        "dzo",
                        "bla",
                        "kuɖ",
                        "yaw",
                        "fiɖ",
                        "mem",
                    }
                    narrow{
                        "k",
                        "d",
                        "b",
                        "k",
                        "y",
                        "f",
                        "m",
                    }
                    short{
                        "kɔs",
                        "dzo",
                        "bla",
                        "kuɖ",
                        "yaw",
                        "fiɖ",
                        "mem",
                    }
                    wide{
                        "kɔsiɖa",
                        "dzoɖa",
                        "blaɖa",
                        "kuɖa",
                        "yawoɖa",
                        "fiɖa",
                        "memleɖa",
                    }
                }
                stand-alone{
                    abbreviated{
                        "kɔs",
                        "dzo",
                        "bla",
                        "kuɖ",
                        "yaw",
                        "fiɖ",
                        "mem",
                    }
                    narrow{
                        "k",
                        "d",
                        "b",
                        "k",
                        "y",
                        "f",
                        "m",
                    }
                    short{
                        "kɔs",
                        "dzo",
                        "bla",
                        "kuɖ",
                        "yaw",
                        "fiɖ",
                        "mem",
                    }
                    wide{
                        "kɔsiɖa",
                        "dzoɖa",
                        "blaɖa",
                        "kuɖa",
                        "yawoɖa",
                        "fiɖa",
                        "memleɖa",
                    }
                }
            }
            eras{
                abbreviated{
                    "hY",
                    "Yŋ",
                }
                wide{
                    "Hafi Yesu Va Do ŋgɔ",
                    "Yesu Ŋɔli",
                }
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                M{
                    M{"'ɣleti' M 'lia' – 'ɣleti' M 'lia'"}
                }
                MEd{
                    M{"E, M/d – E, M/d"}
                    d{"E, M/d – E, M/d"}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E, MMM d 'lia' – E, MMM d 'lia'"}
                    d{"E, MMM d 'lia' – E, MMM d 'lia'"}
                }
                MMMd{
                    M{"MMM d 'lia' – MMM d 'lia'"}
                    d{"MMM d 'lia' – d 'lia'"}
                }
                Md{
                    M{"M/d – M/d"}
                    d{"M/d – M/d"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} - {1}"}
                h{
                    a{"a h – a h"}
                    h{"a h–h"}
                }
                hm{
                    a{"a 'ga' h:mm - a 'ga' h:mm"}
                    h{"a 'ga' h:mm - 'ga' h:mm"}
                    m{"a 'ga' h:mm – 'ga' h:mm"}
                }
                hmv{
                    a{"a 'ga' h:mm – a 'ga' h:mm v"}
                    h{"a 'ga' h:mm–h:mm v"}
                    m{"a h:mm–h:mm v"}
                }
                hv{
                    a{"a h – a h v"}
                    h{"a 'ga' h–h v"}
                }
                yM{
                    M{"M/y – M/y"}
                    y{"M/y – M/y"}
                }
                yMEd{
                    M{"E, M/d/y – E, M/d/y"}
                    d{"E, M/d/y – E, M/d/y"}
                    y{"E, M/d/y – E, M/d/y"}
                }
                yMMM{
                    M{"MMM–MMM y"}
                    y{"MMM y – MMM y"}
                }
                yMMMEd{
                    M{"E, MMM d 'lia' – E, MMM d 'lia', y"}
                    d{"E, MMM d 'lia' – E, MMM d 'lia', y"}
                    y{"E, MMM d 'lia', y – E, MMM d 'lia', y"}
                }
                yMMMM{
                    M{"MMMM–MMMM y"}
                    y{"MMMM y – MMMM y"}
                }
                yMMMd{
                    M{"MMM d 'lia' – MMM d 'lia', y"}
                    d{"MMM d 'lia' – d 'lia' , y"}
                    y{"MMM d 'lia' , y – MMM d 'lia', y"}
                }
                yMd{
                    M{"M/d/y – M/d/y"}
                    d{"M/d/y – M/d/y"}
                    y{"M/d/y – M/d/y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "dzv",
                        "dzd",
                        "ted",
                        "afɔ",
                        "dam",
                        "mas",
                        "sia",
                        "dea",
                        "any",
                        "kel",
                        "ade",
                        "dzm",
                    }
                    narrow{
                        "d",
                        "d",
                        "t",
                        "a",
                        "d",
                        "m",
                        "s",
                        "d",
                        "a",
                        "k",
                        "a",
                        "d",
                    }
                    wide{
                        "dzove",
                        "dzodze",
                        "tedoxe",
                        "afɔfĩe",
                        "dama",
                        "masa",
                        "siamlɔm",
                        "deasiamime",
                        "anyɔnyɔ",
                        "kele",
                        "adeɛmekpɔxe",
                        "dzome",
                    }
                }
                stand-alone{
                    abbreviated{
                        "dzv",
                        "dzd",
                        "ted",
                        "afɔ",
                        "dam",
                        "mas",
                        "sia",
                        "dea",
                        "any",
                        "kel",
                        "ade",
                        "dzm",
                    }
                    narrow{
                        "d",
                        "d",
                        "t",
                        "a",
                        "d",
                        "m",
                        "s",
                        "d",
                        "a",
                        "k",
                        "a",
                        "d",
                    }
                    wide{
                        "dzove",
                        "dzodze",
                        "tedoxe",
                        "afɔfĩe",
                        "dama",
                        "masa",
                        "siamlɔm",
                        "deasiamime",
                        "anyɔnyɔ",
                        "kele",
                        "adeɛmekpɔxe",
                        "dzome",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "k1",
                        "k2",
                        "k3",
                        "k4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "kɔta gbãtɔ",
                        "kɔta evelia",
                        "kɔta etɔ̃lia",
                        "kɔta enelia",
                    }
                }
                stand-alone{
                    abbreviated{
                        "k1",
                        "k2",
                        "k3",
                        "k4",
                    }
                    wide{
                        "kɔta gbãtɔ",
                        "kɔta evelia",
                        "kɔta etɔ̃lia",
                        "kɔta enelia",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"ŋkeke"}
            relative{
                "-1"{"etsɔ si va yi"}
                "-2"{"nyitsɔ si va yi"}
                "0"{"egbe"}
                "1"{"etsɔ si gbɔna"}
                "2"{"nyitsɔ si gbɔna"}
            }
            relativeTime{
                future{
                    one{"le ŋkeke {0} me"}
                    other{"le ŋkeke {0} wo me"}
                }
                past{
                    one{"ŋkeke {0} si va yi"}
                    other{"ŋkeke {0} si wo va yi"}
                }
            }
        }
        dayperiod{
            dn{"ŋkekea me"}
        }
        era{
            dn{"ŋɔli"}
        }
        fri{
            relative{
                "-1"{"fiɖa si va yi"}
                "0"{"fiɖa sia"}
                "1"{"fiɖa si gbɔ na"}
            }
        }
        hour{
            dn{"gaƒoƒo"}
            relativeTime{
                future{
                    one{"le gaƒoƒo {0} me"}
                    other{"le gaƒoƒo {0} wo me"}
                }
                past{
                    one{"gaƒoƒo {0} si va yi"}
                    other{"gaƒoƒo {0} si wo va yi"}
                }
            }
        }
        minute{
            dn{"aɖabaƒoƒo"}
            relativeTime{
                future{
                    one{"le aɖabaƒoƒo {0} me"}
                    other{"le aɖabaƒoƒo {0} wo me"}
                }
                past{
                    one{"aɖabaƒoƒo {0} si va yi"}
                    other{"aɖabaƒoƒo {0} si wo va yi"}
                }
            }
        }
        mon{
            relative{
                "-1"{"dzoɖa si va yi"}
                "0"{"dzoɖa sia"}
                "1"{"dzoɖa si gbɔ na"}
            }
        }
        month{
            dn{"ɣleti"}
            relative{
                "-1"{"ɣleti si va yi"}
                "0"{"ɣleti sia"}
                "1"{"ɣleti si gbɔ na"}
            }
            relativeTime{
                future{
                    one{"le ɣleti {0} me"}
                    other{"le ɣleti {0} wo me"}
                }
                past{
                    one{"ɣleti {0} si va yi"}
                    other{"ɣleti {0} si wo va yi"}
                }
            }
        }
        sat{
            relative{
                "-1"{"memleɖa si va yi"}
                "0"{"memleɖa sia"}
                "1"{"memleɖa si gbɔ na"}
            }
        }
        second{
            dn{"sekend"}
            relative{
                "0"{"fifi"}
            }
            relativeTime{
                future{
                    one{"le sekend {0} me"}
                    other{"le sekend {0} wo me"}
                }
                past{
                    one{"sekend {0} si va yi"}
                    other{"sekend {0} si wo va yi"}
                }
            }
        }
        sun{
            relative{
                "-1"{"kɔsiɖa si va yi"}
                "0"{"kɔsiɖa sia"}
                "1"{"kɔsiɖa si gbɔ na"}
            }
        }
        thu{
            relative{
                "-1"{"yawoɖa si va yi"}
                "0"{"yawoɖa sia"}
                "1"{"yawoɖa si gbɔ na"}
            }
        }
        tue{
            relative{
                "-1"{"blaɖa si va yi"}
                "0"{"blaɖa sia"}
                "1"{"blaɖa si gbɔ na"}
            }
        }
        wed{
            relative{
                "-1"{"kuɖa si va yi"}
                "0"{"kuɖa sia"}
                "1"{"kuɖa si gbɔ na"}
            }
        }
        week{
            dn{"kɔsiɖa ɖeka"}
            relative{
                "-1"{"kɔsiɖa si va yi"}
                "0"{"kɔsiɖa sia"}
                "1"{"kɔsiɖa si gbɔ na"}
            }
            relativeTime{
                future{
                    one{"le kɔsiɖa {0} me"}
                    other{"le kɔsiɖa {0} wo me"}
                }
                past{
                    one{"kɔsiɖa {0} si va yi"}
                    other{"kɔsiɖa {0} si wo va yi"}
                }
            }
        }
        weekday{
            dn{"kɔsiɖa me ŋkeke"}
        }
        year{
            dn{"ƒe"}
            relative{
                "-1"{"ƒe si va yi"}
                "0"{"ƒe sia"}
                "1"{"ƒe si gbɔ na"}
            }
            relativeTime{
                future{
                    one{"le ƒe {0} me"}
                    other{"le ƒe {0} wo me"}
                }
                past{
                    one{"ƒe {0} si va yi"}
                    other{"ƒe {0} si wo va yi"}
                }
            }
        }
        zone{
            dn{"nutomegaƒoƒo"}
        }
    }
    listPattern{
        standard{
            2{"{0} kple {1}"}
            end{"{0}, kple {1}"}
        }
    }
    measurementSystemNames{
        UK{"uk"}
        US{"us"}
        metric{"metric"}
    }
    units{
        duration{
            day{
                one{"ŋkeke {0} wo"}
                other{"ŋkeke {0} wo"}
            }
            hour{
                one{"gaƒoƒo {0} wo"}
                other{"gaƒoƒo {0} wo"}
            }
            minute{
                one{"aɖabaƒoƒo {0} wo"}
                other{"aɖabaƒoƒo {0} wo"}
            }
            month{
                one{"ɣleti {0} wo"}
                other{"ɣleti {0} wo"}
            }
            second{
                one{"sekend {0} wo"}
                other{"sekend {0} wo"}
            }
            week{
                one{"kɔsiɖa {0} wo"}
                other{"kɔsiɖa {0} wo"}
            }
            year{
                one{"ƒe {0} wo"}
                other{"ƒe {0} wo"}
            }
        }
    }
    unitsNarrow{
        duration{
            hour{
                one{"g {0}"}
                other{"g {0}"}
            }
            minute{
                one{"a {0}"}
                other{"a {0}"}
            }
            second{
                one{"s {0}"}
                other{"s {0}"}
            }
        }
    }
    unitsShort{
        duration{
            day{
                one{"ŋkeke {0}"}
                other{"ŋkeke {0}"}
            }
            hour{
                one{"gaƒoƒo {0}"}
                other{"gaƒoƒo {0}"}
            }
            minute{
                one{"aɖabaƒoƒo {0}"}
                other{"aɖabaƒoƒo {0}"}
            }
            month{
                one{"ɣleti {0}"}
                other{"ɣleti {0}"}
            }
            second{
                one{"sekend {0}"}
                other{"sekend {0}"}
            }
            week{
                one{"kɔsiɖa {0}"}
                other{"kɔsiɖa {0}"}
            }
            year{
                one{"ƒe {0}"}
                other{"ƒe {0}"}
            }
        }
    }
}
