﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/yo.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/yo.xml
 */
yo{
    AuxExemplarCharacters{"[c q v x z]"}
    ExemplarCharacters{
        "[a á à b d e é è ẹ {ẹ\u0301} {ẹ\u0300} f g {gb} h i í ì j k l m n o ó ò ọ {ọ"
        "\u0301} {ọ\u0300} p r s ṣ t u ú ù w y]"
    }
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
            }
        }
    }
    Version{"2.0.49.29"}
    calendar{
        gregorian{
            AmPmMarkers{
                "Àárọ̀",
                "Ọ̀sán",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM/yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, MMM d, y"}
                yMMMM{"MMMM y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Àìkú",
                        "Ajé",
                        "Ìsẹ́gun",
                        "Ọjọ́rú",
                        "Ọjọ́bọ",
                        "Ẹtì",
                        "Àbámẹ́ta",
                    }
                    wide{
                        "Ọjọ́ Àìkú",
                        "Ọjọ́ Ajé",
                        "Ọjọ́ Ìsẹ́gun",
                        "Ọjọ́rú",
                        "Ọjọ́bọ",
                        "Ọjọ́ Ẹtì",
                        "Ọjọ́ Àbámẹ́ta",
                    }
                }
            }
            eras{
                abbreviated{
                    "SK",
                    "LK",
                }
                wide{
                    "Saju Kristi",
                    "Lehin Kristi",
                }
            }
            fields{
                day{
                    dn{"Ọjọ́"}
                    relative{
                        "-1"{"Àná"}
                        "-2"{"íjẹta"}
                        "-3"{"íjẹrin"}
                        "0"{"Òní"}
                        "1"{"Ọ̀la"}
                        "2"{"òtúùnla"}
                        "3"{"ọjọ́mẹ́rin-òní"}
                    }
                }
                dayperiod{
                    dn{"Àárọ̀/ọ̀sán"}
                }
                era{
                    dn{"Ìgbà"}
                }
                hour{
                    dn{"wákàtí"}
                }
                minute{
                    dn{"Ìsẹ́jú"}
                }
                month{
                    dn{"Osù"}
                }
                second{
                    dn{"Ìsẹ́jú Ààyá"}
                }
                week{
                    dn{"Ọ̀sè"}
                }
                weekday{
                    dn{"Ọjọ́ Ọ̀sẹ̀"}
                }
                year{
                    dn{"Ọdún"}
                }
                zone{
                    dn{"Ibi Àkókò Àgbáyé"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Ṣẹ́rẹ́",
                        "Èrèlè",
                        "Ẹrẹ̀nà",
                        "Ìgbé",
                        "Ẹ̀bibi",
                        "Òkúdu",
                        "Agẹmọ",
                        "Ògún",
                        "Owewe",
                        "Ọ̀wàrà",
                        "Bélú",
                        "Ọ̀pẹ̀",
                    }
                    wide{
                        "Oṣù Ṣẹ́rẹ́",
                        "Oṣù Èrèlè",
                        "Oṣù Ẹrẹ̀nà",
                        "Oṣù Ìgbé",
                        "Oṣù Ẹ̀bibi",
                        "Oṣù Òkúdu",
                        "Oṣù Agẹmọ",
                        "Oṣù Ògún",
                        "Oṣù Owewe",
                        "Oṣù Ọ̀wàrà",
                        "Oṣù Bélú",
                        "Oṣù Ọ̀pẹ̀",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    wide{
                        "Kọ́tà Kínní",
                        "Kọ́tà Kejì",
                        "Kọ́à Keta",
                        "Kọ́tà Kẹrin",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"'"}
        alternateQuotationStart{"'"}
        quotationEnd{"'"}
        quotationStart{"'"}
    }
}
