﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * 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.82.45"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM, y G",
                "d/M/y GGGGG",
                "{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"}
            }
        }
        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/y",
                "{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{
                        "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ò",
                }
            }
            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{"«"}
    }
    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ɛŋ"}
        }
    }
}
