﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/dua.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/dua.xml
 */
dua{
    AuxExemplarCharacters{"[h q v x z]"}
    ExemplarCharacters{
        "[a á b ɓ c d ɗ e é ɛ {ɛ\u0301} f g i í j k l m n {ny} ŋ o ó ɔ {ɔ\u0301} p r "
        "s t u ú ū w y]"
    }
    ExemplarCharactersIndex{"[A B Ɓ C D Ɗ E Ɛ F G I J K L M N Ŋ O Ɔ P S T U W Y]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.1.6.69"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "d/M/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E 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{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "idiɓa",
                "ebyámu",
            }
            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/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E 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{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "ét",
                        "mɔ́s",
                        "kwa",
                        "muk",
                        "ŋgi",
                        "ɗón",
                        "esa",
                    }
                    wide{
                        "éti",
                        "mɔ́sú",
                        "kwasú",
                        "mukɔ́sú",
                        "ŋgisú",
                        "ɗónɛsú",
                        "esaɓasú",
                    }
                }
                stand-alone{
                    narrow{
                        "e",
                        "m",
                        "k",
                        "m",
                        "ŋ",
                        "ɗ",
                        "e",
                    }
                }
            }
            eras{
                abbreviated{
                    "ɓ.Ys",
                    "mb.Ys",
                }
                wide{
                    "ɓoso ɓwá yáɓe lá",
                    "mbúsa kwédi a Yés",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "di",
                        "ŋgɔn",
                        "sɔŋ",
                        "diɓ",
                        "emi",
                        "esɔ",
                        "mad",
                        "diŋ",
                        "nyɛt",
                        "may",
                        "tin",
                        "elá",
                    }
                    wide{
                        "dimɔ́di",
                        "ŋgɔndɛ",
                        "sɔŋɛ",
                        "diɓáɓá",
                        "emiasele",
                        "esɔpɛsɔpɛ",
                        "madiɓɛ́díɓɛ́",
                        "diŋgindi",
                        "nyɛtɛki",
                        "mayésɛ́",
                        "tiníní",
                        "eláŋgɛ́",
                    }
                }
                stand-alone{
                    narrow{
                        "d",
                        "ŋ",
                        "s",
                        "d",
                        "e",
                        "e",
                        "m",
                        "d",
                        "n",
                        "m",
                        "t",
                        "e",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "ndu1",
                        "ndu2",
                        "ndu3",
                        "ndu4",
                    }
                    wide{
                        "ndúmbū nyá ɓosó",
                        "ndúmbū ní lóndɛ́ íɓaá",
                        "ndúmbū ní lóndɛ́ ílálo",
                        "ndúmbū ní lóndɛ́ ínɛ́y",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"búnyá"}
            relative{
                "-1"{"kíɛlɛ nítómb́í"}
                "0"{"wɛ́ŋgɛ̄"}
                "1"{"kíɛlɛ"}
            }
        }
        dayperiod{
            dn{"epasi a búnyá"}
        }
        era{
            dn{"póndá"}
        }
        hour{
            dn{"ŋgandɛ"}
        }
        minute{
            dn{"ndɔkɔ"}
        }
        month{
            dn{"mɔ́di"}
        }
        second{
            dn{"píndí"}
        }
        week{
            dn{"disama"}
        }
        weekday{
            dn{"mínyá má disama"}
        }
        year{
            dn{"mbú"}
        }
    }
}
