﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/khq.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/khq.xml
 */
khq{
    AuxExemplarCharacters{"[v]"}
    ExemplarCharacters{"[a ã b c d e ẽ f g h i j k l m n ɲ ŋ o õ 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 Ɲ Ŋ O Õ P Q R S Š T U W X Y Z Ž]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
            }
            symbols{
                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{
                "Adduha",
                "Aluula",
            }
            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{
                        "Alh",
                        "Ati",
                        "Ata",
                        "Ala",
                        "Alm",
                        "Alj",
                        "Ass",
                    }
                    wide{
                        "Alhadi",
                        "Atini",
                        "Atalata",
                        "Alarba",
                        "Alhamiisa",
                        "Aljuma",
                        "Assabdu",
                    }
                }
                stand-alone{
                    narrow{
                        "H",
                        "T",
                        "T",
                        "L",
                        "L",
                        "L",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "IJ",
                    "IZ",
                }
                wide{
                    "Isaa jine",
                    "Isaa jamanoo",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Žan",
                        "Fee",
                        "Mar",
                        "Awi",
                        "Me",
                        "Žuw",
                        "Žuy",
                        "Ut",
                        "Sek",
                        "Okt",
                        "Noo",
                        "Dee",
                    }
                    wide{
                        "Žanwiye",
                        "Feewiriye",
                        "Marsi",
                        "Awiril",
                        "Me",
                        "Žuweŋ",
                        "Žuyye",
                        "Ut",
                        "Sektanbur",
                        "Oktoobur",
                        "Noowanbur",
                        "Deesanbur",
                    }
                }
                stand-alone{
                    narrow{
                        "Ž",
                        "F",
                        "M",
                        "A",
                        "M",
                        "Ž",
                        "Ž",
                        "U",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "A1",
                        "A2",
                        "A3",
                        "A4",
                    }
                    wide{
                        "Arrubu 1",
                        "Arrubu 2",
                        "Arrubu 3",
                        "Arrubu 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Jaari"}
            relative{
                "-1"{"Bi"}
                "0"{"Hõo"}
                "1"{"Suba"}
            }
        }
        dayperiod{
            dn{"Adduha wala Aluula"}
        }
        era{
            dn{"Zaman"}
        }
        hour{
            dn{"Guuru"}
        }
        minute{
            dn{"Miniti"}
        }
        month{
            dn{"Handu"}
        }
        second{
            dn{"Miti"}
        }
        week{
            dn{"Hebu"}
        }
        year{
            dn{"Jiiri"}
        }
        zone{
            dn{"Leerazuu"}
        }
    }
}
