﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/kkj.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/kkj.xml
 */
kkj{
    AuxExemplarCharacters{"[q x z]"}
    ExemplarCharacters{
        "[a á à â {a\u0327} b ɓ c d ɗ {ɗy} e é è ê ɛ {ɛ\u0301} {ɛ\u0300} {ɛ\u0302} {ɛ"
        "\u0327} f g {gb} {gw} h i í ì î {i\u0327} j k {kp} {kw} l m {mb} n {nd} ǌ {n"
        "y} ŋ {ŋg} {ŋgb} {ŋgw} o ó ò ô ɔ {ɔ\u0301} {ɔ\u0300} {ɔ\u0302} {ɔ\u0327} p r "
        "s t u ú ù û {u\u0327} v w y]"
    }
    ExemplarCharactersIndex{
        "[A B Ɓ C D Ɗ {Ɗy} E Ɛ F G {Gb} {Gw} H I {I\u0327} J K {Kp} {Kw} L M {Mb} N {"
        "Nd} ǋ {Ny} Ŋ {Ŋg} {Ŋgb} {Ŋgw} O Ɔ {Ɔ\u0327} P R S T U {U\u0327} V W Y]"
    }
    ExemplarCharactersPunctuation{"[, \\: ! ? . … ‘ ‹ › “ ” « » ( ) *]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        default{"latn"}
        latn{
            symbols{
                decimal{","}
                group{"."}
            }
        }
        native{"latn"}
    }
    Version{"2.0.90.61"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE dd MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        gregorian{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE dd MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "sɔndi",
                        "lundi",
                        "mardi",
                        "mɛrkɛrɛdi",
                        "yedi",
                        "vaŋdɛrɛdi",
                        "mɔnɔ sɔndi",
                    }
                    narrow{
                        "so",
                        "lu",
                        "ma",
                        "mɛ",
                        "ye",
                        "va",
                        "ms",
                    }
                    short{
                        "sɔndi",
                        "lundi",
                        "mardi",
                        "mɛrkɛrɛdi",
                        "yedi",
                        "vaŋdɛrɛdi",
                        "mɔnɔ sɔndi",
                    }
                    wide{
                        "sɔndi",
                        "lundi",
                        "mardi",
                        "mɛrkɛrɛdi",
                        "yedi",
                        "vaŋdɛrɛdi",
                        "mɔnɔ sɔndi",
                    }
                }
                stand-alone{
                    abbreviated{
                        "sɔndi",
                        "lundi",
                        "mardi",
                        "mɛrkɛrɛdi",
                        "yedi",
                        "vaŋdɛrɛdi",
                        "mɔnɔ sɔndi",
                    }
                    narrow{
                        "so",
                        "lu",
                        "ma",
                        "mɛ",
                        "ye",
                        "va",
                        "ms",
                    }
                    short{
                        "so",
                        "lu",
                        "ma",
                        "mɛ",
                        "ye",
                        "va",
                        "ms",
                    }
                    wide{
                        "sɔndi",
                        "lundi",
                        "mardi",
                        "mɛrkɛrɛdi",
                        "yedi",
                        "vaŋdɛrɛdi",
                        "mɔnɔ sɔndi",
                    }
                }
            }
            monthNames{
                format{
                    wide{
                        "pamba",
                        "wanja",
                        "mbiyɔ mɛndoŋgɔ",
                        "Nyɔlɔmbɔŋgɔ",
                        "Mɔnɔ ŋgbanja",
                        "Nyaŋgwɛ ŋgbanja",
                        "kuŋgwɛ",
                        "fɛ",
                        "njapi",
                        "nyukul",
                        "11",
                        "ɓulɓusɛ",
                    }
                }
                stand-alone{
                    wide{
                        "pamba",
                        "wanja",
                        "mbiyɔ mɛndoŋgɔ",
                        "Nyɔlɔmbɔŋgɔ",
                        "Mɔnɔ ŋgbanja",
                        "Nyaŋgwɛ ŋgbanja",
                        "kuŋgwɛ",
                        "fɛ",
                        "njapi",
                        "nyukul",
                        "11",
                        "ɓulɓusɛ",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"›"}
        alternateQuotationStart{"‹"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            relative{
                "-1"{"kwey"}
                "0"{"muka"}
                "1"{"nɛmɛnɔ"}
            }
        }
    }
    listPattern{
        standard{
            end{"{0}, {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
    }
}
