﻿// ***************************************************************************
// *
// * 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/mas.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/mas.xml
 */
mas{
    AuxExemplarCharacters{"[f q v x z]"}
    ExemplarCharacters{
        "[\u0301 \u0300 \u0302 a á à â ā b c d e é è ê ē ɛ g h i í ì î ī ɨ j k l m n "
        "{ny} ŋ o ó ò ô ō ɔ p r {rr} s {sh} t u ú ù û ū ʉ w {wu} y {yi}]"
    }
    ExemplarCharactersIndex{"[A B C D E Ɛ G H I Ɨ J K L M N Ŋ O Ɔ P R S T U Ʉ W Y]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
            }
        }
    }
    Version{"2.0.46.85"}
    calendar{
        gregorian{
            AmPmMarkers{
                "Ɛnkakɛnyá",
                "Ɛndámâ",
            }
            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{
                        "Jpi",
                        "Jtt",
                        "Jnn",
                        "Jtn",
                        "Alh",
                        "Iju",
                        "Jmo",
                    }
                    wide{
                        "Jumapílí",
                        "Jumatátu",
                        "Jumane",
                        "Jumatánɔ",
                        "Alaámisi",
                        "Jumáa",
                        "Jumamósi",
                    }
                }
                stand-alone{
                    narrow{
                        "2",
                        "3",
                        "4",
                        "5",
                        "6",
                        "7",
                        "1",
                    }
                }
            }
            eras{
                abbreviated{
                    "MY",
                    "EY",
                }
                wide{
                    "Meínō Yɛ́sʉ",
                    "Eínō Yɛ́sʉ",
                }
            }
            fields{
                day{
                    dn{"Ɛnkɔlɔ́ŋ"}
                    relative{
                        "-1"{"Ŋolé"}
                        "0"{"Táatá"}
                        "1"{"Tááisérè"}
                    }
                }
                dayperiod{
                    dn{"Ɛnkakɛnyá/Ɛndámâ"}
                }
                era{
                    dn{"Ɛnkátá"}
                }
                hour{
                    dn{"Ɛ́sáâ"}
                }
                minute{
                    dn{"Oldákikaè"}
                }
                month{
                    dn{"Ɔlápà"}
                }
                second{
                    dn{"Sekunde"}
                }
                week{
                    dn{"Ewíkî"}
                }
                weekday{
                    dn{"Ɛnkɔ́lɔŋ ewíkî"}
                }
                year{
                    dn{"Ɔlárì"}
                }
                zone{
                    dn{"Ɛ́sáâ o inkuapí"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Dal",
                        "Ará",
                        "Ɔɛn",
                        "Doy",
                        "Lép",
                        "Rok",
                        "Sás",
                        "Bɔ́r",
                        "Kús",
                        "Gís",
                        "Shʉ́",
                        "Ntʉ́",
                    }
                    wide{
                        "Oladalʉ́",
                        "Arát",
                        "Ɔɛnɨ́ɔɨŋɔk",
                        "Olodoyíóríê inkókúâ",
                        "Oloilépūnyīē inkókúâ",
                        "Kújúɔrɔk",
                        "Mórusásin",
                        "Ɔlɔ́ɨ́bɔ́rárɛ",
                        "Kúshîn",
                        "Olgísan",
                        "Pʉshʉ́ka",
                        "Ntʉ́ŋʉ́s",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "E1",
                        "E2",
                        "E3",
                        "E4",
                    }
                    wide{
                        "Erobo 1",
                        "Erobo 2",
                        "Erobo 3",
                        "Erobo 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"“"}
        alternateQuotationStart{"”"}
        quotationEnd{"'"}
        quotationStart{"'"}
    }
    measurementSystemNames{
        metric{"Metric"}
    }
}
