﻿// ***************************************************************************
// *
// * 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/shi.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/shi.xml
 */
shi{
    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 {Gʷ} Ɣ H Ḥ I J K {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.57.99"}
    calendar{
        gregorian{
            AmPmMarkers{
                "tifawt",
                "tadggʷat",
            }
            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{
                M{"M"}
                MMM{"MMM"}
                MMMEd{"E d MMM"}
                MMMMEd{"EEE d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMMdd{"dd MMM"}
                MMd{"d/MM"}
                MMdd{"dd/MM"}
                Md{"d/M"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE d MMM y"}
                yMMMM{"MMMM y"}
                yQ{"'ak'Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "asi",
                        "ayn",
                        "asi",
                        "akṛ",
                        "akw",
                        "asim",
                        "Asiḍ",
                    }
                    wide{
                        "asamas",
                        "aynas",
                        "asinas",
                        "akṛas",
                        "akwas",
                        "asimwas",
                        "asiḍyas",
                    }
                }
            }
            eras{
                abbreviated{
                    "daɛ",
                    "dfɛ",
                }
                wide{
                    "dat n ɛisa",
                    "dffir n ɛisa",
                }
            }
            fields{
                day{
                    dn{"ass"}
                    relative{
                        "-1"{"iḍlli"}
                        "0"{"assa"}
                        "1"{"askka"}
                    }
                }
                dayperiod{
                    dn{"tizi g wass: tifawt / tadggʷat"}
                }
                era{
                    dn{"tasut"}
                }
                hour{
                    dn{"tasragt"}
                }
                minute{
                    dn{"tusdidt"}
                }
                month{
                    dn{"ayyur"}
                }
                second{
                    dn{"tasint"}
                }
                week{
                    dn{"imalass"}
                }
                weekday{
                    dn{"ass g imalass"}
                }
                year{
                    dn{"asggʷas"}
                }
                zone{
                    dn{"akud n ugmmaḍ"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "inn",
                        "bṛa",
                        "maṛ",
                        "ibr",
                        "may",
                        "yun",
                        "yul",
                        "ɣuc",
                        "cut",
                        "ktu",
                        "nuw",
                        "duj",
                    }
                    wide{
                        "innayr",
                        "bṛayṛ",
                        "maṛṣ",
                        "ibrir",
                        "mayyu",
                        "yunyu",
                        "yulyuz",
                        "ɣuct",
                        "cutanbir",
                        "ktubr",
                        "nuwanbir",
                        "dujanbir",
                    }
                }
                stand-alone{
                    narrow{
                        "i",
                        "b",
                        "m",
                        "i",
                        "m",
                        "y",
                        "y",
                        "ɣ",
                        "c",
                        "k",
                        "n",
                        "d",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "ak 1",
                        "ak 2",
                        "ak 3",
                        "ak 4",
                    }
                    wide{
                        "akṛaḍyur 1",
                        "akṛaḍyur 2",
                        "akṛaḍyur 3",
                        "akṛaḍyur 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"„"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
}
