﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ks.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ks.xml
 */
ks{
    ExemplarCharacters{
        "[\u06EA\u06ED \u064E \u064F \u0650 \u0654 \u0655 \u0656 \u0657 \u065A \u065B"
        " ء آ أ ٲ ؤ ا ٮ ب پ ت ث ٹ ج چ ح خ د ذ ڈ ر ز ڑ ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن"
        " ں ھ ہ و ۄ ی ۍ ے]"
    }
    LocaleScript{
        "Arab",
    }
    NumberElements{
        default{"arabext"}
        latn{
            patterns{
                currencyFormat{"¤ #,##,##0.00"}
                decimalFormat{"#,##,##0.###"}
                percentFormat{"#,##,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{"."}
                exponential{"E"}
                group{","}
                infinity{"?"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
        native{"arabext"}
    }
    Version{"2.0.82.45"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, MMMM d, y G",
                "MMMM d, y G",
                "MMM d, y G",
                "M/d/yy GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                GGGGyMMMMEEEEdd{"EEEE,dd MMMM GGGGy"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"d-MMM"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, MMMM d, y",
                "MMMM d, y",
                "MMM d, y",
                "M/d/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                GGGGyMMMMEEEEdd{"EEEE,dd MMMM GGGGy"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"d-MMM"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "آتھوار",
                        "ژٔنٛدٕروار",
                        "بوٚموار",
                        "بودوار",
                        "برٛٮ۪سوار",
                        "جُمہ",
                        "بٹوار",
                    }
                    wide{
                        "اَتھوار",
                        "ژٔنٛدرٕروار",
                        "بوٚموار",
                        "بودوار",
                        "برٛٮ۪سوار",
                        "جُمہ",
                        "بٹوار",
                    }
                }
                stand-alone{
                    narrow{
                        "ا",
                        "ژ",
                        "ب",
                        "ب",
                        "ب",
                        "ج",
                        "ب",
                    }
                }
            }
            eras{
                abbreviated{
                    "بی سی",
                    "اے ڈی",
                }
                wide{
                    "قبٕل مسیٖح",
                    "عیٖسوی سنہٕ",
                }
            }
            monthNames{
                format{
                    wide{
                        "جنؤری",
                        "فرؤری",
                        "مارٕچ",
                        "اپریل",
                        "میٔ",
                        "جوٗن",
                        "جوٗلایی",
                        "اگست",
                        "ستمبر",
                        "اکتوٗبر",
                        "نومبر",
                        "دسمبر",
                    }
                }
                stand-alone{
                    narrow{
                        "ج",
                        "ف",
                        "م",
                        "ا",
                        "م",
                        "ج",
                        "ج",
                        "ا",
                        "س",
                        "س",
                        "ا",
                        "ن",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "ژۄباگ",
                        "دوٚیِم ژۄباگ",
                        "ترٛیِم ژۄباگ",
                        "ژوٗرِم ژۄباگ",
                    }
                    wide{
                        "گۄڑنیُک ژۄباگ",
                        "دوٚیِم ژۄباگ",
                        "ترٛیِم ژۄباگ",
                        "ژوٗرِم ژۄباگ",
                    }
                }
            }
        }
        indian{
            monthNames{
                format{
                    wide{
                        "محرم",
                        "صفر",
                        "ربیٖع الاول",
                        "ربیٖع الثانی",
                        "جمادی الاول",
                        "جمادی الثانی",
                        "رجب",
                        "شعبان",
                        "رمضان",
                        "شوال",
                        "ذِی القد",
                        "ذِی الحج",
                    }
                }
            }
        }
    }
    fields{
        day{
            dn{"دۄہ"}
            relative{
                "-1"{"راتھ"}
                "0"{"اَز"}
                "1"{"پگاہ"}
            }
        }
        dayperiod{
            dn{"صبح/رات"}
        }
        era{
            dn{"دور"}
        }
        hour{
            dn{"گٲنٛٹہٕ"}
        }
        minute{
            dn{"مِنَٹ"}
        }
        month{
            dn{"رٮ۪تھ"}
        }
        second{
            dn{"سٮ۪کَنڑ"}
        }
        week{
            dn{"ہفتہٕ"}
        }
        weekday{
            dn{"ہفتُک دۄہ"}
        }
        year{
            dn{"ؤری"}
        }
        zone{
            dn{"زون"}
        }
    }
    layout{
        characters{"right-to-left"}
    }
    measurementSystemNames{
        US{"یوٗ ایس"}
        metric{"میٖٹرِک"}
    }
    units{
        day{
            one{"{0} دۄہ"}
            other{"{0} دۄہ"}
        }
        hour{
            one{"{0} گَنٹہٕ"}
            other{"{0} گٲنٛٹہٕ"}
        }
        minute{
            one{"{0} مِنَٹ"}
            other{"{0} مِنَٹ"}
        }
        month{
            one{"{0} ریٚتھ"}
            other{"{0} ریٚتھ"}
        }
        second{
            one{"{0} سیٚکَنٛڈ"}
            other{"{0} سیٚکَنٛڈ"}
        }
        week{
            one{"{0} ہَفتہٕ"}
            other{"{0} ہَفتہٕ"}
        }
        year{
            one{"{0} ؤری"}
            other{"{0} ؤری"}
        }
    }
}
