﻿// ***************************************************************************
// *
// * 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/tzm.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/tzm.xml
 */
tzm{
    AuxExemplarCharacters{"[o p v]"}
    ExemplarCharacters{"[a b c d ḍ e ɛ f g {gʷ} ɣ h ḥ i j k {kʷ} l m n q r ṛ s ṣ t ṭ u w x y z]"}
    ExemplarCharactersIndex{"[A B C D Ḍ E Ɛ F G Ɣ H Ḥ I J K L M N Q R Ṛ S Ṣ T Ṭ U W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.46.85"}
    calendar{
        gregorian{
            AmPmMarkers{
                "Zdat azal",
                "Ḍeffir aza",
            }
            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{
                        "Asa",
                        "Ayn",
                        "Asn",
                        "Akr",
                        "Akw",
                        "Asm",
                        "Asḍ",
                    }
                    wide{
                        "Asamas",
                        "Aynas",
                        "Asinas",
                        "Akras",
                        "Akwas",
                        "Asimwas",
                        "Asiḍyas",
                    }
                }
                stand-alone{
                    narrow{
                        "A",
                        "A",
                        "A",
                        "A",
                        "A",
                        "A",
                        "A",
                    }
                }
            }
            eras{
                abbreviated{
                    "ZƐ",
                    "ḌƐ",
                }
                wide{
                    "Zdat Ɛisa (TAƔ)",
                    "Ḍeffir Ɛisa (TAƔ)",
                }
            }
            fields{
                day{
                    dn{"Ass"}
                    relative{
                        "-1"{"Assenaṭ"}
                        "0"{"Assa"}
                        "1"{"Asekka"}
                    }
                }
                dayperiod{
                    dn{"Zdat azal/Deffir azal"}
                }
                era{
                    dn{"Tallit"}
                }
                hour{
                    dn{"Tasragt"}
                }
                minute{
                    dn{"Tusdat"}
                }
                month{
                    dn{"Ayur"}
                }
                second{
                    dn{"Tusnat"}
                }
                week{
                    dn{"Imalass"}
                }
                weekday{
                    dn{"Ass n Imalass"}
                }
                year{
                    dn{"Asseggas"}
                }
                zone{
                    dn{"Aseglem asergan"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Yen",
                        "Yeb",
                        "Mar",
                        "Ibr",
                        "May",
                        "Yun",
                        "Yul",
                        "Ɣuc",
                        "Cut",
                        "Kṭu",
                        "Nwa",
                        "Duj",
                    }
                    wide{
                        "Yennayer",
                        "Yebrayer",
                        "Mars",
                        "Ibrir",
                        "Mayyu",
                        "Yunyu",
                        "Yulyuz",
                        "Ɣuct",
                        "Cutanbir",
                        "Kṭuber",
                        "Nwanbir",
                        "Dujanbir",
                    }
                }
                stand-alone{
                    narrow{
                        "Y",
                        "Y",
                        "M",
                        "I",
                        "M",
                        "Y",
                        "Y",
                        "Ɣ",
                        "C",
                        "K",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "IA1",
                        "IA2",
                        "IA3",
                        "IA4",
                    }
                    wide{
                        "Imir adamsan 1",
                        "Imir adamsan 2",
                        "Imir adamsan 3",
                        "Imir adamsan 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"’"}
        quotationStart{"‘"}
    }
}
