﻿// ***************************************************************************
// *
// * Copyright (C) 2013 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.92.87"}
    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"}
                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"}
                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"}
                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"}
        }
    }
}
