﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ar_EG.xml
// *
// ***************************************************************************
ar_EG{
    NumberElements{
        arab{
            symbols{
                nan{"NaN"}
            }
        }
    }
    Version{"2.1.8.19"}
    calendar{
        islamic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "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{
                Ed{"d‏ E"}
                Gy{"y ‏G"}
                GyMMM{"MMM‏ y‏ G"}
                GyMMMEd{"E‏، d‏ MMM‏، y ‏G"}
                GyMMMd{"d ‏MMM‏، y‏ G"}
                MEd{"E‏، d‏/M"}
                MMMEd{"E‏، d ‏MMM"}
                MMMd{"d ‏MMM"}
                Md{"d‏/M"}
                y{"y ‏G"}
                yyyy{"y ‏G"}
                yyyyM{"M‏/y ‏GGGGG"}
                yyyyMEd{"E‏، d‏/M‏/y ‏GGGGG"}
                yyyyMMM{"MMM‏ y ‏G"}
                yyyyMMMEd{"E‏، d‏ MMM‏، y‏ G"}
                yyyyMMMM{"MMM‏ y‏ G"}
                yyyyMMMd{"d‏ MMM‏، y‏ G"}
                yyyyMd{"d‏/M‏/y ‏GGGGG"}
                yyyyQQQ{"QQQ‏ y‏ G"}
                yyyyQQQQ{"QQQQ‏ y‏ G"}
            }
        }
    }
    listPattern{
        standard{
            2{"{0} و{1}"}
        }
    }
}
