﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/yav.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/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]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤;(#,##0.00 ¤)"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.74.65"}
    calendar{
        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/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{
                        "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{
                    "-J.C.",
                    "+J.C.",
                }
                wide{
                    "katikupíen Yésuse",
                    "ékélémkúnupíén n",
                }
            }
            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ɔŋ"}
                }
            }
            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{"«"}
    }
}
