﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/yav.xml
// *
// ***************************************************************************
yav{
    AuxExemplarCharacters{"[g j q r x z]"}
    ExemplarCharacters{
        "[a á à â ǎ ā b c d e é è ɛ {ɛ\u0301} {ɛ\u0300} f h i í ì î ī k l m {mb} n {n"
        "y} ŋ {ŋg} o ó ò ô ǒ ō ɔ {ɔ\u0301} {ɔ\u0300} p s t u ú ù û ǔ ū v w y]"
    }
    ExemplarCharactersIndex{"[A B C D E Ɛ F H I K L M N Ŋ O Ɔ P S T U V W Y]"}
    NumberElements{
        latn{
            patterns{
                accountingFormat{"#,##0.00 ¤;(#,##0.00 ¤)"}
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.1.19.14"}
    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{
                "kiɛmɛ́ɛm",
                "kisɛ́ndɛ",
            }
            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{
                        "sd",
                        "md",
                        "mw",
                        "et",
                        "kl",
                        "fl",
                        "ss",
                    }
                    wide{
                        "sɔ́ndiɛ",
                        "móndie",
                        "muányáŋmóndie",
                        "metúkpíápɛ",
                        "kúpélimetúkpiapɛ",
                        "feléte",
                        "séselé",
                    }
                }
                stand-alone{
                    narrow{
                        "s",
                        "m",
                        "m",
                        "e",
                        "k",
                        "f",
                        "s",
                    }
                }
            }
            eras{
                abbreviated{
                    "k.Y.",
                    "+J.C.",
                }
                wide{
                    "katikupíen Yésuse",
                    "ékélémkúnupíén n",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "o.1",
                        "o.2",
                        "o.3",
                        "o.4",
                        "o.5",
                        "o.6",
                        "o.7",
                        "o.8",
                        "o.9",
                        "o.10",
                        "o.11",
                        "o.12",
                    }
                    wide{
                        "pikítíkítie, oólí ú kutúan",
                        "siɛyɛ́, oóli ú kándíɛ",
                        "ɔnsúmbɔl, oóli ú kátátúɛ",
                        "mesiŋ, oóli ú kénie",
                        "ensil, oóli ú kátánuɛ",
                        "ɔsɔn",
                        "efute",
                        "pisuyú",
                        "imɛŋ i puɔs",
                        "imɛŋ i putúk,oóli ú kátíɛ",
                        "makandikɛ",
                        "pilɔndɔ́",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                    wide{
                        "ndátúɛ 1",
                        "ndátúɛ 2",
                        "ndátúɛ 3",
                        "ndátúɛ 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"»"}
        alternateQuotationStart{"«"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"puɔ́sɛ́"}
            relative{
                "-1"{"púyoó"}
                "0"{"ínaan"}
                "1"{"nakinyám"}
            }
        }
        dayperiod{
            dn{"kiɛmɛ́ɛm,kisɛ́ndɛ"}
        }
        era{
            dn{"kipéŋén"}
        }
        hour{
            dn{"kisikɛl,"}
        }
        minute{
            dn{"minít"}
        }
        month{
            dn{"oóli"}
        }
        second{
            dn{"síkɛn"}
        }
        week{
            dn{"sɔ́ndiɛ"}
        }
        weekday{
            dn{"metúk mɔ́sɔ́ndiɛ"}
        }
        year{
            dn{"yɔɔŋ"}
        }
        zone{
            dn{"kinúki kisikɛl ɔ́ pitɔŋ"}
        }
    }
}
