﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ps.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ps.xml
 */
ps{
    AuxExemplarCharacters{"[\u200C \u200D]"}
    ExemplarCharacters{
        "[\u064E \u0650 \u064F \u064B \u064D \u064C \u0651 \u0652 \u0654 \u0670 آ ا أ"
        " ء ب پ ت ټ ث ج ځ چ څ ح خ د ډ ذ ر ړ ز ژ ږ س ش ښ ص ض ط ظ ع غ ف ق ک ګ ل م ن ڼ ه"
        " ة و ؤ ی ي ې ۍ ئ]"
    }
    LocaleScript{
        "Arab",
    }
    NumberElements{
        arabext{
            symbols{
                decimal{"٫"}
                exponential{"×۱۰^"}
                group{"٬"}
                percentSign{"٪"}
            }
        }
        default{"arabext"}
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{"."}
                minusSign{"−"}
                percentSign{"%"}
            }
        }
    }
    Version{"2.0.50.30"}
    calendar{
        gregorian{
            AmPmMarkers{
                "غ.م.",
                "غ.و.",
            }
            DateTimePatterns{
                "H:mm:ss (zzzz)",
                "H:mm:ss (z)",
                "H:mm:ss",
                "H:mm",
                "EEEE د y د MMMM d",
                "د y د MMMM d",
                "d MMM y",
                "yyyy/M/d",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                H{"H"}
                Hm{"H:mm"}
                Hms{"H:mm:ss"}
            }
            dayNames{
                format{
                    wide{
                        "یکشنبه",
                        "دوشنبه",
                        "سه‌شنبه",
                        "چهارشنبه",
                        "پنجشنبه",
                        "جمعه",
                        "شنبه",
                    }
                }
            }
            eras{
                abbreviated{
                    "ق.م.",
                    "م.",
                }
            }
            monthNames{
                format{
                    wide{
                        "جنوري",
                        "فبروري",
                        "مارچ",
                        "اپریل",
                        "می",
                        "جون",
                        "جولای",
                        "اګست",
                        "سپتمبر",
                        "اکتوبر",
                        "نومبر",
                        "دسمبر",
                    }
                }
            }
        }
        persian{
            monthNames{
                format{
                    wide{
                        "وری",
                        "غویی",
                        "غبرګولی",
                        "چنګاښ",
                        "زمری",
                        "وږی",
                        "تله",
                        "لړم",
                        "لیندۍ",
                        "مرغومی",
                        "سلواغه",
                        "کب",
                    }
                }
            }
        }
    }
    layout{
        characters{"right-to-left"}
        lines{"top-to-bottom"}
    }
}
