﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/shi_Latn.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/shi_Latn.xml
 */
shi_Latn{
    %%Parent{"root"}
    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.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{
                M{"M"}
                MMM{"MMM"}
                MMMEd{"E d MMM"}
                MMMMEd{"E 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{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        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/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                M{"M"}
                MMM{"MMM"}
                MMMEd{"E d MMM"}
                MMMMEd{"E 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{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "asa",
                        "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",
                }
            }
            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{"«"}
    }
    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ḍ"}
        }
    }
}
