﻿// ***************************************************************************
// *
// * Copyright (C) 2013 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.82.45"}
    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ú"}
        }
    }
}
