﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/mua.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/mua.xml
 */
mua{
    AuxExemplarCharacters{"[q x]"}
    ExemplarCharacters{"[a ã b ɓ c d ɗ e ë ǝ f g h i ĩ j k l m n ŋ o õ p r s t u v ṽ w y z]"}
    ExemplarCharactersIndex{"[A B Ɓ C D Ɗ E Ǝ F G H I J K L M N Ŋ O P R S T U V W Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.0.82.45"}
    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{
                "comme",
                "lilli",
            }
            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{
                        "Cya",
                        "Cla",
                        "Czi",
                        "Cko",
                        "Cka",
                        "Cga",
                        "Cze",
                    }
                    wide{
                        "Com'yakke",
                        "Comlaaɗii",
                        "Comzyiiɗii",
                        "Comkolle",
                        "Comkaldǝɓlii",
                        "Comgaisuu",
                        "Comzyeɓsuu",
                    }
                }
                stand-alone{
                    narrow{
                        "Y",
                        "L",
                        "Z",
                        "O",
                        "A",
                        "G",
                        "E",
                    }
                }
            }
            eras{
                abbreviated{
                    "KK",
                    "PK",
                }
                wide{
                    "KǝPel Kristu",
                    "Pel Kristu",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "FLO",
                        "CLA",
                        "CKI",
                        "FMF",
                        "MAD",
                        "MBI",
                        "MLI",
                        "MAM",
                        "FDE",
                        "FMU",
                        "FGW",
                        "FYU",
                    }
                    wide{
                        "Fĩi Loo",
                        "Cokcwaklaŋne",
                        "Cokcwaklii",
                        "Fĩi Marfoo",
                        "Madǝǝuutǝbijaŋ",
                        "Mamǝŋgwãafahbii",
                        "Mamǝŋgwãalii",
                        "Madǝmbii",
                        "Fĩi Dǝɓlii",
                        "Fĩi Mundaŋ",
                        "Fĩi Gwahlle",
                        "Fĩi Yuru",
                    }
                }
                stand-alone{
                    narrow{
                        "O",
                        "A",
                        "I",
                        "F",
                        "D",
                        "B",
                        "L",
                        "M",
                        "E",
                        "U",
                        "W",
                        "Y",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "F1",
                        "F2",
                        "F3",
                        "F4",
                    }
                    wide{
                        "Tai fĩi sai ma tǝn kee zah",
                        "Tai fĩi sai zah lǝn gwa ma kee",
                        "Tai fĩi sai zah lǝn sai ma kee",
                        "Tai fĩi sai ma coo kee zah 'na",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"Zah'nane/ Comme"}
            relative{
                "-1"{"Tǝsoo"}
                "0"{"Tǝ'nahko"}
                "1"{"Tǝ'nane"}
            }
        }
        era{
            dn{"Syii ma tãa"}
        }
        hour{
            dn{"Cok comme"}
        }
        minute{
            dn{"Cok comme ma laŋne"}
        }
        month{
            dn{"Fĩi"}
        }
        second{
            dn{"Cok comme ma laŋ tǝ biŋ"}
        }
        week{
            dn{"Luma"}
        }
        weekday{
            dn{"Kǝsyil luma"}
        }
        year{
            dn{"Syii"}
        }
        zone{
            dn{"Waŋ cok comme"}
        }
    }
}
