﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/kab.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/kab.xml
 */
kab{
    AuxExemplarCharacters{"[o v]"}
    ExemplarCharacters{"[a b c č d ḍ e ɛ f g ǧ ɣ h ḥ i j k l m n p q r ṛ s ṣ t ṭ u w x y z ẓ]"}
    ExemplarCharactersIndex{"[A B C Č D Ḍ E Ɛ F G Ǧ Ɣ H Ḥ I J K L M N P Q R Ṛ S Ṣ T Ṭ U W X Y Z Ẓ]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.97.28"}
    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"}
                yMM{"MM/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"MMMM y"}
                yMMMd{"d MMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "n tufat",
                "n tmeddit",
            }
            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"}
                yMM{"MM/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"MMMM y"}
                yMMMd{"d MMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Yan",
                        "San",
                        "Kraḍ",
                        "Kuẓ",
                        "Sam",
                        "Sḍis",
                        "Say",
                    }
                    wide{
                        "Yanass",
                        "Sanass",
                        "Kraḍass",
                        "Kuẓass",
                        "Samass",
                        "Sḍisass",
                        "Sayass",
                    }
                }
                stand-alone{
                    narrow{
                        "Y",
                        "S",
                        "K",
                        "K",
                        "S",
                        "S",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "snd. T.Ɛ",
                    "sld. T.Ɛ",
                }
                wide{
                    "send talalit n Ɛisa",
                    "seld talalit n Ɛisa",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Yen",
                        "Fur",
                        "Meɣ",
                        "Yeb",
                        "May",
                        "Yun",
                        "Yul",
                        "Ɣuc",
                        "Cte",
                        "Tub",
                        "Nun",
                        "Duǧ",
                    }
                    wide{
                        "Yennayer",
                        "Fuṛar",
                        "Meɣres",
                        "Yebrir",
                        "Mayyu",
                        "Yunyu",
                        "Yulyu",
                        "Ɣuct",
                        "Ctembeṛ",
                        "Tubeṛ",
                        "Nunembeṛ",
                        "Duǧembeṛ",
                    }
                }
                stand-alone{
                    narrow{
                        "Y",
                        "F",
                        "M",
                        "Y",
                        "M",
                        "Y",
                        "Y",
                        "Ɣ",
                        "C",
                        "T",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Kḍg1",
                        "Kḍg2",
                        "Kḍg3",
                        "Kḍg4",
                    }
                    wide{
                        "akraḍaggur amenzu",
                        "akraḍaggur wis-sin",
                        "akraḍaggur wis-kraḍ",
                        "akraḍaggur wis-kuẓ",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"Ass"}
            relative{
                "-1"{"Iḍelli"}
                "0"{"Ass-a"}
                "1"{"Azekka"}
            }
        }
        dayperiod{
            dn{"n tufat / n tmeddit"}
        }
        era{
            dn{"Tallit"}
        }
        hour{
            dn{"Tamert"}
        }
        minute{
            dn{"Tamrect"}
        }
        month{
            dn{"Aggur"}
        }
        second{
            dn{"Tasint"}
        }
        week{
            dn{"Ddurt"}
        }
        weekday{
            dn{"Ussan n ddurt"}
        }
        year{
            dn{"Aseggas"}
        }
        zone{
            dn{"Aseglem asergan"}
        }
    }
}
