﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ne.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ne.xml
 */
ne{
    AuxExemplarCharacters{"[\u200C\u200D]"}
    ExemplarCharacters{
        "[\u093C \u0901 \u0902 ः ॐ अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट "
        "ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह ऽ ा ि ी \u0941 \u0942 \u0943 "
        "\u0944 \u0945 \u0947 \u0948 ॉ ो ौ \u094D]"
    }
    LocaleScript{
        "Deva",
    }
    NumberElements{
        default{"deva"}
        latn{
            symbols{
                decimal{"."}
                group{","}
                list{";"}
                minusSign{"-"}
            }
        }
    }
    Version{"2.0.59.53"}
    calendar{
        gregorian{
            AmPmMarkers{
                "पूर्व मध्यान्ह",
                "उत्तर मध्यान्ह",
            }
            dayNames{
                stand-alone{
                    narrow{
                        "१",
                        "२",
                        "३",
                        "४",
                        "५",
                        "६",
                        "७",
                    }
                }
            }
            eras{
                abbreviated{
                    "ईसा पूर्व",
                    "सन्",
                }
            }
            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{"क्षेत्र"}
                }
            }
            monthNames{
                stand-alone{
                    narrow{
                        "१",
                        "२",
                        "३",
                        "४",
                        "५",
                        "६",
                        "७",
                        "८",
                        "९",
                        "१०",
                        "११",
                        "१२",
                    }
                }
            }
            quarters{
                stand-alone{
                    narrow{
                        "१",
                        "२",
                        "३",
                        "४",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"\""}
        alternateQuotationStart{"\""}
        quotationEnd{"'"}
        quotationStart{"'"}
    }
    units{
        day{
            one{"{0} दिन"}
        }
        hour{
            one{"{0} घण्टा"}
        }
        minute{
            one{"{0} मिनेट"}
        }
        month{
            one{"{0} महिना"}
        }
        second{
            one{"{0} सेकेण्ड"}
        }
        week{
            one{"{0} हप्ता"}
        }
        year{
            one{"{0} बर्ष"}
            other{"{0} बर्ष"}
        }
    }
}
