﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/nmg.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/nmg.xml
 */
nmg{
    AuxExemplarCharacters{"[q x z]"}
    ExemplarCharacters{
        "[a á â ǎ ä ā b ɓ c d e é ê ě ē ǝ {ǝ\u0301} {ǝ\u0302} {ǝ\u030C} {ǝ\u0304} ɛ {"
        "ɛ\u0301} {ɛ\u0302} {ɛ\u030C} {ɛ\u0304} f g h i í î ǐ ï ī j k l m n ń ŋ o ó ô"
        " ǒ ö ō ɔ {ɔ\u0301} {ɔ\u0302} {ɔ\u030C} {ɔ\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.1.7.39"}
    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{
                "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/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{
                        "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ī",
                }
            }
            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{"„"}
    }
    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ɔ"}
        }
        year{
            dn{"Mbvu"}
        }
        zone{
            dn{"Nkɛ̌l wulā"}
        }
    }
}
