﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/bas.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/bas.xml
 */
bas{
    AuxExemplarCharacters{"[q x]"}
    ExemplarCharacters{
        "[a á à â ǎ ā {a\u1DC6}{a\u1DC7} b ɓ c d e é è ê ě ē {e\u1DC6}{e\u1DC7} ɛ {ɛ"
        "\u0301} {ɛ\u0300} {ɛ\u0302} {ɛ\u030C} {ɛ\u0304} {ɛ\u1DC6}{ɛ\u1DC7} f g h i í"
        " ì î ǐ ī {i\u1DC6}{i\u1DC7} j k l m n ń ǹ ŋ o ó ò ô ǒ ō {o\u1DC6}{o\u1DC7} ɔ"
        " {ɔ\u0301} {ɔ\u0300} {ɔ\u0302} {ɔ\u030C} {ɔ\u0304} {ɔ\u1DC6}{ɔ\u1DC7} p r s "
        "t u ú ù û ǔ ū {u\u1DC6}{u\u1DC7} 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.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.65.46"}
    calendar{
        gregorian{
            AmPmMarkers{
                "I bikɛ̂glà",
                "I ɓugajɔp",
            }
            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"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "nɔy",
                        "nja",
                        "uum",
                        "ŋge",
                        "mbɔ",
                        "kɔɔ",
                        "jon",
                    }
                    wide{
                        "ŋgwà nɔ̂y",
                        "ŋgwà njaŋgumba",
                        "ŋgwà ûm",
                        "ŋgwà ŋgê",
                        "ŋgwà mbɔk",
                        "ŋgwà kɔɔ",
                        "ŋgwà jôn",
                    }
                }
                stand-alone{
                    narrow{
                        "n",
                        "n",
                        "u",
                        "ŋ",
                        "m",
                        "k",
                        "j",
                    }
                }
            }
            eras{
                abbreviated{
                    "b.Y.K",
                    "m.Y.K",
                }
                wide{
                    "bisū bi Yesù Krǐstò",
                    "i mbūs Yesù Krǐstò",
                }
            }
            fields{
                day{
                    dn{"kɛl"}
                    relative{
                        "-1"{"yààni"}
                        "0"{"lɛ̀n"}
                        "1"{"yàni"}
                    }
                }
                dayperiod{
                    dn{"njǎmùha"}
                }
                era{
                    dn{"kèk"}
                }
                hour{
                    dn{"ŋgɛŋ"}
                }
                minute{
                    dn{"ŋget"}
                }
                month{
                    dn{"soŋ"}
                }
                second{
                    dn{"hìŋgeŋget"}
                }
                week{
                    dn{"sɔndɛ̂"}
                }
                weekday{
                    dn{"hìlɔ hi sɔndɛ̂"}
                }
                year{
                    dn{"ŋwìi"}
                }
                zone{
                    dn{"komboo i ŋgɛŋ"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "kɔn",
                        "mac",
                        "mat",
                        "mto",
                        "mpu",
                        "hil",
                        "nje",
                        "hik",
                        "dip",
                        "bio",
                        "may",
                        "liɓ",
                    }
                    wide{
                        "Kɔndɔŋ",
                        "Màcɛ̂l",
                        "Màtùmb",
                        "Màtop",
                        "M̀puyɛ",
                        "Hìlòndɛ̀",
                        "Njèbà",
                        "Hìkaŋ",
                        "Dìpɔ̀s",
                        "Bìòôm",
                        "Màyɛsèp",
                        "Lìbuy li ńyèe",
                    }
                }
                stand-alone{
                    narrow{
                        "k",
                        "m",
                        "m",
                        "m",
                        "m",
                        "h",
                        "n",
                        "h",
                        "d",
                        "b",
                        "m",
                        "l",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1s3",
                        "K2s3",
                        "K3s3",
                        "K4s3",
                    }
                    wide{
                        "Kèk bisu i soŋ iaâ",
                        "Kèk i ńyonos biɓaà i soŋ iaâ",
                        "Kèk i ńyonos biaâ i soŋ iaâ",
                        "Kèk i ńyonos binâ i soŋ iaâ",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"“"}
        alternateQuotationStart{"„"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
}
