﻿// ***************************************************************************
// *
// * Copyright (C) 2012 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>/xml/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.0.77.46"}
    calendar{
        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/yyyy",
                "{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",
                }
            }
            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ú"}
                }
            }
            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{"«"}
    }
}
