﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/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]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.1.19.14"}
    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"}
                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"}
                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ḍ"}
        }
    }
}
