﻿// ***************************************************************************
// *
// * 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/brx.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/brx.xml
 */
brx{
    AuxExemplarCharacters{"[\u200C\u200D]"}
    ExemplarCharacters{
        "[\u093C \u0901 \u0902 अ आ इ ई उ ऊ ऍ ए ऐ ऑ ओ औ क ख ग घ च छ ज झ ञ ट ठ ड {ड"
        "\u093C} ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह ा ि ी \u0941 \u0942 \u0943"
        " \u0945 \u0947 \u0948 ॉ ो ौ \u094D]"
    }
    ExemplarCharactersIndex{
        "[अ आ इ ई उ ऊ ऍ ए ऐ ऑ ओ औ क ख ग घ च छ ज झ ञ ट ठ ड {ड\u093C} ढ ण त थ द ध न प फ"
        " ब भ म य र ल ळ व श ष स ह]"
    }
    LocaleScript{
        "Deva",
    }
    NumberElements{
        default{"latn"}
        latn{
            patterns{
                currencyFormat{"¤ #,##,##0.00"}
                decimalFormat{"#,##,##0.###"}
                percentFormat{"#,##,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{"."}
                exponential{"E"}
                group{","}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.65.46"}
    calendar{
        gregorian{
            AmPmMarkers{
                "फुं",
                "बेलासे",
            }
            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{"yyyy"}
                yM{"M/yyyy"}
                yMEd{"E, M/d/yyyy"}
                yMMM{"MMM yyyy"}
                yMMMEd{"E, MMM d, yyyy"}
                yMMMM{"MMMM yyyy"}
                yQ{"Q yyyy"}
                yQQQ{"QQQ yyyy"}
            }
            dayNames{
                format{
                    abbreviated{
                        "रबि",
                        "सम",
                        "मंगल",
                        "बुद",
                        "बिसथि",
                        "सुखुर",
                        "सुनि",
                    }
                    wide{
                        "रबिबार",
                        "समबार",
                        "मंगलबार",
                        "बुदबार",
                        "बिसथिबार",
                        "सुखुरबार",
                        "सुनिबार",
                    }
                }
                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{
                format{
                    wide{
                        "जानुवारी",
                        "फेब्रुवारी",
                        "मार्स",
                        "एफ्रिल",
                        "मे",
                        "जुन",
                        "जुलाइ",
                        "आगस्थ",
                        "सेबथेज्ब़र",
                        "अखथबर",
                        "नबेज्ब़र",
                        "दिसेज्ब़र",
                    }
                }
                stand-alone{
                    narrow{
                        "ज",
                        "फे",
                        "मा",
                        "ए",
                        "मे",
                        "जु",
                        "जु",
                        "आ",
                        "से",
                        "अ",
                        "न",
                        "दि",
                    }
                }
            }
            quarters{
                format{
                    wide{
                        "सिथासे/खोन्दोसे/बाहागोसे",
                        "खावसे/खोन्दोनै/बाहागोनै",
                        "खावथाम/खोन्दोथाम/बाहागोथाम",
                        "खावब्रै/खोन्दोब्रै/फुरा/आबुं",
                    }
                }
            }
        }
        indian{
            monthNames{
                format{
                    wide{
                        "बैसागो/बैसाग",
                        "जेथो",
                        "आसार",
                        "सावुन",
                        "भाद्र",
                        "आसिन",
                        "खाथि",
                        "आगाह्न",
                        "फुस",
                        "मागो",
                        "फागुन",
                        "सैथो",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    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} साल"}
        }
    }
}
