﻿// ***************************************************************************
// *
// * 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/nmg.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/nmg.xml
 */
nmg{
    AuxExemplarCharacters{"[q x z]"}
    ExemplarCharacters{
        "[a á ă â ä ā b ɓ c d e é ĕ ê ē ǝ {ǝ\u0301} {ǝ\u0306} {ǝ\u0302} {ǝ\u0304} ɛ {"
        "ɛ\u0301} {ɛ\u0306} {ɛ\u0302} {ɛ\u0304} f g h i í ĭ î ï ī j k l m n ń ŋ o ó ŏ"
        " ô ö ō ɔ {ɔ\u0301} {ɔ\u0306} {ɔ\u0302} {ɔ\u0304} p r ŕ s t u ú ŭ û ū v w y]"
    }
    ExemplarCharactersIndex{"[A B Ɓ C D E Ǝ Ɛ F G H I J K L M N Ŋ O Ɔ P R S T U V W Y]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.57.99"}
    calendar{
        gregorian{
            AmPmMarkers{
                "maná",
                "kugú",
            }
            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{
                        "sɔ́n",
                        "mɔ́n",
                        "smb",
                        "sml",
                        "smn",
                        "mbs",
                        "sas",
                    }
                    wide{
                        "sɔ́ndɔ",
                        "mɔ́ndɔ",
                        "sɔ́ndɔ mafú mába",
                        "sɔ́ndɔ mafú málal",
                        "sɔ́ndɔ mafú mána",
                        "mabágá má sukul",
                        "sásadi",
                    }
                }
                stand-alone{
                    narrow{
                        "s",
                        "m",
                        "s",
                        "s",
                        "s",
                        "m",
                        "s",
                    }
                }
            }
            eras{
                abbreviated{
                    "BL",
                    "PB",
                }
                wide{
                    "Bó Lahlɛ̄",
                    "Pfiɛ Burī",
                }
            }
            fields{
                day{
                    dn{"Duö"}
                    relative{
                        "-1"{"Nakugú"}
                        "0"{"Dɔl"}
                        "1"{"Namáná"}
                    }
                }
                dayperiod{
                    dn{"Máná, Muó, Kugú, Bvul"}
                }
                era{
                    dn{"Pīl/Lahlɛ̄"}
                }
                hour{
                    dn{"Wulā"}
                }
                minute{
                    dn{"Mpálâ"}
                }
                month{
                    dn{"Ngwɛn"}
                }
                second{
                    dn{"Nyiɛl"}
                }
                week{
                    dn{"Sɔ́ndɔ"}
                }
                weekday{
                    dn{"Duö"}
                }
                year{
                    dn{"Mbvu"}
                }
                zone{
                    dn{"Nkɛ̌l wulā"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ng1",
                        "ng2",
                        "ng3",
                        "ng4",
                        "ng5",
                        "ng6",
                        "ng7",
                        "ng8",
                        "ng9",
                        "ng10",
                        "ng11",
                        "kris",
                    }
                    wide{
                        "ngwɛn matáhra",
                        "ngwɛn ńmba",
                        "ngwɛn ńlal",
                        "ngwɛn ńna",
                        "ngwɛn ńtan",
                        "ngwɛn ńtuó",
                        "ngwɛn hɛmbuɛrí",
                        "ngwɛn lɔmbi",
                        "ngwɛn rɛbvuâ",
                        "ngwɛn wum",
                        "ngwɛn wum navŭr",
                        "krísimin",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "T1",
                        "T2",
                        "T3",
                        "T4",
                    }
                    wide{
                        "Tindɛ nvúr",
                        "Tindɛ ńmba",
                        "Tindɛ ńlal",
                        "Tindɛ ńna",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"»"}
        alternateQuotationStart{"«"}
        quotationEnd{"„"}
        quotationStart{"“"}
    }
}
