﻿// ***************************************************************************
// *
// * Copyright (C) 2016 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.23.7"}
    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",
            }
            AmPmMarkersAbbr{
                "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ḍ"}
        }
    }
}
