﻿// ***************************************************************************
// *
// * Copyright (C) 2004 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: ../../../locale/common/main/kok.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: ../../../locale/icu/main/kok.xml
 */
kok{
    Countries{
        IN{"भारत"}
    }
    Currencies{
        INR{
            "रु",
            "INR",
        }
    }
    ExemplarCharacters{"[[:Deva:]‌‍]"}
    Languages{
        aa{"अफार"}
        ab{"अबखेज़ियन"}
        af{"अफ्रिकान्स"}
        am{"अमहारिक्"}
        ar{"अरेबिक्"}
        as{"असामी"}
        ay{"ऐमरा"}
        az{"अज़रबैजानी"}
        ba{"बष्किर"}
        be{"बैलोरुसियन्"}
        bg{"बल्गेरियन"}
        bh{"बीहारी"}
        bi{"बिसलमा"}
        bn{"बंगाली"}
        bo{"तिबेतियन"}
        br{"ब्रेटन"}
        ca{"कटलान"}
        co{"कोर्शियन"}
        cs{"ज़ेक्"}
        cy{"वेळ्ष्"}
        da{"डानिष"}
        de{"जर्मन"}
        dz{"भूटानी"}
        el{"ग्रीक्"}
        en{"आंग्ल"}
        eo{"इस्परान्टो"}
        es{"स्पानिष"}
        et{"इस्टोनियन्"}
        eu{"बास्क"}
        fa{"पर्षियन्"}
        fi{"फिन्निष्"}
        fj{"फिजी"}
        fo{"फेरोस्"}
        fr{"फ्रेन्च"}
        fy{"फ्रिशियन्"}
        ga{"ऐरिष"}
        gd{"स्काटस् गेलिक्"}
        gl{"गेलीशियन"}
        gn{"गौरानी"}
        gu{"गुजराती"}
        ha{"हौसा"}
        he{"हेब्रु"}
        hi{"हिन्दी"}
        hr{"क्रोयेषियन्"}
        hu{"हंगेरियन्"}
        hy{"आर्मीनियन्"}
        ia{"इन्टरलिंग्वा"}
        id{"इन्डोनेषियन"}
        ie{"इन्टरलिंग्"}
        ik{"इनूपेयाक्"}
        is{"आईस्लान्डिक"}
        it{"इटालियन"}
        iu{"इन्युकट्ट"}
        ja{"जापनीस्"}
        jv{"जावनीस्"}
        ka{"जार्जियन्"}
        kk{"कज़ख्"}
        kl{"ग्रीनलान्डिक"}
        km{"कंबोडियन"}
        kn{"कन्नडा"}
        ko{"कोरियन्"}
        kok{"कोंकणी"}
        ks{"कश्मीरी"}
        ku{"कुर्दिष"}
        ky{"किर्गिज़"}
        la{"लाटिन"}
        ln{"लिंगाला"}
        lo{"लाओतियन्"}
        lt{"लिथुआनियन्"}
        lv{"लाट्वियन् (लेट्टिष्)"}
        mg{"मलागसी"}
        mi{"माओरी"}
        mk{"मसीडोनियन्"}
        ml{"मळियाळम"}
        mn{"मंगोलियन्"}
        mo{"मोल्डावियन्"}
        mr{"मराठी"}
        ms{"मलय"}
        mt{"मालतीस्"}
        my{"बर्मीज़्"}
        na{"नौरो"}
        ne{"नेपाळी"}
        nl{"डच्"}
        no{"नोर्वेजियन"}
        oc{"ओसिटान्"}
        om{"ओरोमो (अफान)"}
        or{"ओरिया"}
        pa{"पंजाबी"}
        pl{"पोलिष"}
        ps{"पाष्टो (पुष्टो)"}
        pt{"पोर्चुगीज़्"}
        qu{"क्वेच्वा"}
        rm{"रहटो-रोमान्स्"}
        rn{"किरुन्दी"}
        ro{"रोमानियन्"}
        ru{"रष्यन्"}
        rw{"किन्यार्वान्डा"}
        sa{"संस्कृत"}
        sd{"सिंधी"}
        sg{"सांग्रो"}
        sh{"सेर्बो-क्रोयेषियन्"}
        si{"सिन्हलीस्"}
        sk{"स्लोवाक"}
        sl{"स्लोवेनियन्"}
        sm{"समोन"}
        sn{"शोना"}
        so{"सोमाळी"}
        sq{"आल्बेनियन्"}
        sr{"सेर्बियन्"}
        ss{"सिस्वाती"}
        st{"सेसोथो"}
        su{"सुंदनीस"}
        sv{"स्वीदीष"}
        sw{"स्वाहिली"}
        ta{"तमिळ"}
        te{"तेलुगू"}
        tg{"तजिक"}
        th{"थाई"}
        ti{"तिग्रिन्या"}
        tk{"तुर्कमन"}
        tl{"तगालोग"}
        tn{"सेत्स्वाना"}
        to{"तोंगा"}
        tr{"तुर्किष"}
        ts{"त्सोगा"}
        tt{"तटार"}
        tw{"त्वि"}
        ug{"उधूर"}
        uk{"युक्रेनियन्"}
        ur{"उर्दू"}
        uz{"उज़बेक"}
        vi{"वियत्नामीज़"}
        vo{"ओलापुक"}
        wo{"उलोफ़"}
        xh{"झ़ौसा"}
        yi{"इद्दिष्"}
        yo{"यूरुबा"}
        za{"झ्हुन्ग"}
        zh{"चीनीस्"}
        zu{"जुलू"}
    }
    LocaleScript{
        "Deva",
    }
    Version{"1.2"}
    calendar{
        gregorian{
            AmPmMarkers{
                "म.पू.",
                "म.नं.",
            }
            dayNames{
                format{
                    abbreviated{
                        "रवि",
                        "सोम",
                        "मंगळ",
                        "बुध",
                        "गुरु",
                        "शुक्र",
                        "शनि",
                    }
                    wide{
                        "आदित्यवार",
                        "सोमवार",
                        "मंगळार",
                        "बुधवार",
                        "गुरुवार",
                        "शुक्रवार",
                        "शनिवार",
                    }
                }
            }
            eras{
                abbreviated{
                    "क्रिस्तपूर्व",
                    "क्रिस्तशखा",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "जानेवारी",
                        "फेबृवारी",
                        "मार्च",
                        "एप्रिल",
                        "मे",
                        "जून",
                        "जुलै",
                        "ओगस्ट",
                        "सेप्टेंबर",
                        "ओक्टोबर",
                        "नोव्हेंबर",
                        "डिसेंबर",
                    }
                    wide{
                        "जानेवारी",
                        "फेब्रुवारी",
                        "मार्च",
                        "एप्रिल",
                        "मे",
                        "जून",
                        "जुलै",
                        "ओगस्ट",
                        "सेप्टेंबर",
                        "ओक्टोबर",
                        "नोव्हेंबर",
                        "डिसेंबर",
                    }
                }
            }
        }
    }
    zoneStrings{
        {
            "Asia/Calcutta",
            "भारतीय समय",
            "IST",
            "भारतीय समय",
            "IST",
        }
    }
}
