﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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.1.6.69"}
    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}",
            }
            availableFormats{
                Ed{"E d"}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E d MMM y G"}
                GyMMMd{"d MMM y G"}
                MEd{"E dd/MM"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"dd/MM"}
                yyyyM{"MM y GGGGG"}
                yyyyMEd{"E dd/MM y GGGGG"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"E d MMM y G"}
                yyyyMMMd{"d MMM y G"}
                yyyyMd{"dd/MM y GGGGG"}
            }
        }
        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}",
            }
            availableFormats{
                Ed{"E d"}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E d MMM y G"}
                GyMMMd{"d MMM y G"}
                MEd{"E dd/MM"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"dd/MM"}
                yM{"MM y"}
                yMEd{"E dd/MM y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"dd/MM y"}
            }
            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}"}
        }
    }
}
