﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/nnh.xml
// *
// ***************************************************************************
nnh{
    AuxExemplarCharacters{"[q r x]"}
    ExemplarCharacters{
        "[a á à â ǎ b c d e é è ê ě ɛ {ɛ\u0301} {ɛ\u0300} {ɛ\u0302} {ɛ\u030C} f g h i"
        " í ì j k l m ḿ n ń ŋ o ó ò ô ǒ ɔ {ɔ\u0301} {ɔ\u0300} {ɔ\u0302} {ɔ\u030C} p {"
        "pf} s {sh} t {ts} u ú ù û ǔ ʉ {ʉ\u0301} {ʉ\u0300} {ʉ\u0302} {ʉ\u030C} v w ẅ "
        "y ÿ z ʼ]"
    }
    ExemplarCharactersIndex{
        "[A B C D E Ɛ F G H I J K L M N Ŋ O Ɔ P {Pf} R S {Sh} T {Ts} U Ʉ V W Ẅ Y Ÿ Z "
        "ʼ]"
    }
    ExemplarCharactersPunctuation{"[, ; \\: ! ? . ' ‘ ’ « »]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤ #,##0.00"}
                decimalFormat{"#,##0.###"}
            }
            symbols{
                decimal{","}
                group{"."}
                list{";"}
                percentSign{"%"}
            }
        }
    }
    Version{"2.1.15.45"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE , 'lyɛ'̌ʼ d 'na' MMMM, y G",
                "'lyɛ'̌ʼ d 'na' MMMM, y G",
                "d MMM, y G",
                "dd/MM/yy GGGGG",
                "{1} {0}",
                "{1},{0}",
                "{1}, {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                yMEd{"E , 'lyɛ'̌ʼ d 'na' M, y"}
                yMMM{"MMM y"}
                yMMMEd{"E , 'lyɛ'̌ʼ d 'na' MMM, y"}
                yMMMd{"'lyɛ'̌ʼ d 'na' MMMM, y"}
                yMd{"d/M/y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "mbaʼámbaʼ",
                "ncwònzém",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE , 'lyɛ'̌ʼ d 'na' MMMM, y",
                "'lyɛ'̌ʼ d 'na' MMMM, y",
                "d MMM, y",
                "dd/MM/yy",
                "{1} {0}",
                "{1},{0}",
                "{1}, {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                yMEd{"E , 'lyɛ'̌ʼ d 'na' M, y"}
                yMMM{"MMM y"}
                yMMMEd{"E , 'lyɛ'̌ʼ d 'na' MMM, y"}
                yMMMd{"'lyɛ'̌ʼ d 'na' MMMM, y"}
                yMd{"d/M/y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "lyɛʼɛ́ sẅíŋtè",
                        "mvfò lyɛ̌ʼ",
                        "mbɔ́ɔntè mvfò lyɛ̌ʼ",
                        "tsètsɛ̀ɛ lyɛ̌ʼ",
                        "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ",
                        "mvfò màga lyɛ̌ʼ",
                        "màga lyɛ̌ʼ",
                    }
                    short{
                        "lyɛʼɛ́ sẅíŋtè",
                        "mvfò lyɛ̌ʼ",
                        "mbɔ́ɔntè mvfò lyɛ̌ʼ",
                        "tsètsɛ̀ɛ lyɛ̌ʼ",
                        "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ",
                        "mvfò màga lyɛ̌ʼ",
                        "màga lyɛ̌ʼ",
                    }
                    wide{
                        "lyɛʼɛ́ sẅíŋtè",
                        "mvfò lyɛ̌ʼ",
                        "mbɔ́ɔntè mvfò lyɛ̌ʼ",
                        "tsètsɛ̀ɛ lyɛ̌ʼ",
                        "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ",
                        "mvfò màga lyɛ̌ʼ",
                        "màga lyɛ̌ʼ",
                    }
                }
                stand-alone{
                    abbreviated{
                        "lyɛʼɛ́ sẅíŋtè",
                        "mvfò lyɛ̌ʼ",
                        "mbɔ́ɔntè mvfò lyɛ̌ʼ",
                        "tsètsɛ̀ɛ lyɛ̌ʼ",
                        "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ",
                        "mvfò màga lyɛ̌ʼ",
                        "màga lyɛ̌ʼ",
                    }
                    short{
                        "lyɛʼɛ́ sẅíŋtè",
                        "mvfò lyɛ̌ʼ",
                        "mbɔ́ɔntè mvfò lyɛ̌ʼ",
                        "tsètsɛ̀ɛ lyɛ̌ʼ",
                        "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ",
                        "mvfò màga lyɛ̌ʼ",
                        "màga lyɛ̌ʼ",
                    }
                    wide{
                        "lyɛʼɛ́ sẅíŋtè",
                        "mvfò lyɛ̌ʼ",
                        "mbɔ́ɔntè mvfò lyɛ̌ʼ",
                        "tsètsɛ̀ɛ lyɛ̌ʼ",
                        "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ",
                        "mvfò màga lyɛ̌ʼ",
                        "màga lyɛ̌ʼ",
                    }
                }
            }
            eras{
                abbreviated{
                    "m.z.Y.",
                    "m.g.n.Y.",
                }
                wide{
                    "mé zyé Yěsô",
                    "mé gÿo ńzyé Yěsô",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "saŋ tsetsɛ̀ɛ lùm",
                        "saŋ kàg ngwóŋ",
                        "saŋ lepyè shúm",
                        "saŋ cÿó",
                        "saŋ tsɛ̀ɛ cÿó",
                        "saŋ njÿoláʼ",
                        "saŋ tyɛ̀b tyɛ̀b mbʉ̀",
                        "saŋ mbʉ̀ŋ",
                        "saŋ ngwɔ̀ʼ mbÿɛ",
                        "saŋ tàŋa tsetsáʼ",
                        "saŋ mejwoŋó",
                        "saŋ lùm",
                    }
                    wide{
                        "saŋ tsetsɛ̀ɛ lùm",
                        "saŋ kàg ngwóŋ",
                        "saŋ lepyè shúm",
                        "saŋ cÿó",
                        "saŋ tsɛ̀ɛ cÿó",
                        "saŋ njÿoláʼ",
                        "saŋ tyɛ̀b tyɛ̀b mbʉ̀",
                        "saŋ mbʉ̀ŋ",
                        "saŋ ngwɔ̀ʼ mbÿɛ",
                        "saŋ tàŋa tsetsáʼ",
                        "saŋ mejwoŋó",
                        "saŋ lùm",
                    }
                }
                stand-alone{
                    abbreviated{
                        "saŋ tsetsɛ̀ɛ lùm",
                        "saŋ kàg ngwóŋ",
                        "saŋ lepyè shúm",
                        "saŋ cÿó",
                        "saŋ tsɛ̀ɛ cÿó",
                        "saŋ njÿoláʼ",
                        "saŋ tyɛ̀b tyɛ̀b mbʉ̀",
                        "saŋ mbʉ̀ŋ",
                        "saŋ ngwɔ̀ʼ mbÿɛ",
                        "saŋ tàŋa tsetsáʼ",
                        "saŋ mejwoŋó",
                        "saŋ lùm",
                    }
                    wide{
                        "saŋ tsetsɛ̀ɛ lùm",
                        "saŋ kàg ngwóŋ",
                        "saŋ lepyè shúm",
                        "saŋ cÿó",
                        "saŋ tsɛ̀ɛ cÿó",
                        "saŋ njÿoláʼ",
                        "saŋ tyɛ̀b tyɛ̀b mbʉ̀",
                        "saŋ mbʉ̀ŋ",
                        "saŋ ngwɔ̀ʼ mbÿɛ",
                        "saŋ tàŋa tsetsáʼ",
                        "saŋ mejwoŋó",
                        "saŋ lùm",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"lyɛ̌ʼ"}
            relative{
                "-1"{"jǔɔ gẅie à ka tɔ̌g"}
                "0"{"lyɛ̌ʼɔɔn"}
                "1"{"jǔɔ gẅie à ne ntóo"}
            }
        }
        era{
            dn{"tsɔ́ fʉ̀ʼ"}
        }
        hour{
            dn{"fʉ̀ʼ nèm"}
        }
        weekday{
            dn{"ngàba láʼ"}
        }
        year{
            dn{"ngùʼ"}
        }
    }
    measurementSystemNames{
        metric{"fʉ̀ʼʉ mmó"}
    }
}
