﻿// ***************************************************************************
// *
// * Copyright (C) 2012 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{"latn"}
        latn{
            symbols{
                decimal{"."}
                group{","}
                list{";"}
                minusSign{"-"}
            }
        }
        native{"deva"}
    }
    Version{"2.0.64.72"}
    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} बर्ष"}
        }
    }
}
