﻿// ***************************************************************************
// *
// * 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/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.58.49"}
    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{
                EEEd{"EEE d"}
                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{
                        "é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ú"}
                }
                zone{
                    dn{""}
                }
            }
            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{"«"}
    }
}
