﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * 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.58.43"}
    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{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"EEE 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{"EEE d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE 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{"«"}
    }
}
