﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ksf.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ksf.xml
 */
ksf{
    AuxExemplarCharacters{"[q x]"}
    ExemplarCharacters{
        "[a á b c d e é ǝ {ǝ\u0301} ɛ {ɛ\u0301} f g h i í j k l m n ŋ o ó ɔ {ɔ\u0301}"
        " p r s t u ú v w y z]"
    }
    ExemplarCharactersIndex{"[A B C D E Ǝ Ɛ F G H I J K L M N Ŋ O Ɔ P R S T U V W Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.77.46"}
    calendar{
        gregorian{
            AmPmMarkers{
                "sárúwá",
                "cɛɛ́nko",
            }
            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{
                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",
                        "lǝn",
                        "maa",
                        "mɛk",
                        "jǝǝ",
                        "júm",
                        "sam",
                    }
                    wide{
                        "sɔ́ndǝ",
                        "lǝndí",
                        "maadí",
                        "mɛkrɛdí",
                        "jǝǝdí",
                        "júmbá",
                        "samdí",
                    }
                }
                stand-alone{
                    narrow{
                        "s",
                        "l",
                        "m",
                        "m",
                        "j",
                        "j",
                        "s",
                    }
                }
            }
            eras{
                abbreviated{
                    "d.Y.",
                    "k.Y.",
                }
                wide{
                    "di Yɛ́sus aká yálɛ",
                    "cámɛɛn kǝ kǝbɔpka Y",
                }
            }
            fields{
                day{
                    dn{"Ŋwós"}
                    relative{
                        "-1"{"Rinkɔɔ́"}
                        "0"{"Gɛ́ɛnǝ"}
                        "1"{"Ridúrǝ́"}
                    }
                }
                dayperiod{
                    dn{"Sárúwá / Cɛɛ́nko"}
                }
                era{
                    dn{"Byámɛɛn"}
                }
                hour{
                    dn{"Cámɛɛn"}
                }
                minute{
                    dn{"Mǝnít"}
                }
                month{
                    dn{"Ŋwíí"}
                }
                second{
                    dn{"Háu"}
                }
                week{
                    dn{"Sɔ́ndǝ"}
                }
                weekday{
                    dn{"Mǝrú mǝ sɔ́ndǝ"}
                }
                year{
                    dn{"Bǝk"}
                }
                zone{
                    dn{"Wáas"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ŋ1",
                        "ŋ2",
                        "ŋ3",
                        "ŋ4",
                        "ŋ5",
                        "ŋ6",
                        "ŋ7",
                        "ŋ8",
                        "ŋ9",
                        "ŋ10",
                        "ŋ11",
                        "ŋ12",
                    }
                    wide{
                        "ŋwíí a ntɔ́ntɔ",
                        "ŋwíí akǝ bɛ́ɛ",
                        "ŋwíí akǝ ráá",
                        "ŋwíí akǝ nin",
                        "ŋwíí akǝ táan",
                        "ŋwíí akǝ táafɔk",
                        "ŋwíí akǝ táabɛɛ",
                        "ŋwíí akǝ táaraa",
                        "ŋwíí akǝ táanin",
                        "ŋwíí akǝ ntɛk",
                        "ŋwíí akǝ ntɛk di bɔ́k",
                        "ŋwíí akǝ ntɛk di bɛ́ɛ",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "i1",
                        "i2",
                        "i3",
                        "i4",
                    }
                    wide{
                        "id́ɛ́n kǝbǝk kǝ ntɔ́ntɔ́",
                        "idɛ́n kǝbǝk kǝ kǝbɛ́ɛ",
                        "idɛ́n kǝbǝk kǝ kǝráá",
                        "idɛ́n kǝbǝk kǝ kǝnin",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
}
