﻿// ***************************************************************************
// *
// * Copyright (C) 2010 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{
    Keys{
        calendar{"पात्रो"}
        collation{"कोलेशन"}
        currency{"मुद्रा"}
    }
    Languages{
        et{"इस्टोनियाली"}
        fil{"फिलिपिनी"}
        kn{"कन्नाडा"}
        lo{"लाओ"}
        mk{"म्याकेडोनियन"}
        ne{"नेपाली"}
        pt_BR{"पर्तुगाली (ब्राजिल्याली)"}
        pt_PT{"आइबेरी, पर्तुगाली"}
        tr{"टर्की"}
        zh{"चिनियाँ"}
        zh_Hans{"सरलिकृत चिनियाँ"}
        zh_Hant{"परम्परागत चिनियाँ"}
    }
    Scripts{
        Arab{"अरब"}
        Armi{"आर्मी"}
        Armn{"आर्मेनियन"}
        Avst{"आभेस्टान"}
        Bali{"बाली"}
        Batk{"बाटक"}
        Beng{"बङ्गाली"}
        Blis{"ब्लिजसिम्बोल्स"}
        Bopo{"बोपोमोफो"}
        Brah{"ब्राह्मी"}
        Brai{"ब्रेल"}
        Bugi{"बुगिनिज"}
        Buhd{"बुहिद"}
        Cakm{"काक्म्"}
        Cari{"कारियन"}
        Cham{"चाम"}
        Cher{"चेरोकी"}
        Cirt{"किर्थ"}
        Copt{"कप्टिक"}
        Cprt{"कप्रियट"}
        Cyrl{"सिरिलिक"}
        Deva{"देवानगरी"}
        Dsrt{"डेसेरेट"}
        Egyd{"इजिप्टियन डेमोटिक"}
        Egyh{"इजिप्टियन हाइरटिक"}
        Egyp{"इजिप्टियन हाइरोग्लिफ्स"}
        Ethi{"इथियोपिक"}
        Geok{"ग्रुजियाली खुट्सुरी"}
        Geor{"ग्रुजियाली"}
        Glag{"ग्लागोलिटिक"}
        Goth{"गोथिक"}
        Grek{"ग्रीक"}
        Gujr{"गुजराती"}
        Guru{"गुरूमुखी"}
        Hang{"हान्गुल"}
        Hani{"हान"}
        Hano{"हानुनु"}
        Hans{"सरलिकृत हान"}
        Hant{"परम्परागत हान"}
        Hebr{"हिब्रु"}
        Hira{"हिरागाना"}
        Hmng{"पहावह हमोङ्ग"}
        Hrkt{"काताकाना वा हिरागाना"}
        Hung{"पुरानो हङ्गेरियाली"}
        Inds{"इन्दुस"}
        Ital{"पुरानो इटालिक"}
        Java{"जाभानी"}
        Jpan{"जापानी"}
        Kali{"कायाहली"}
        Kana{"काताकाना"}
        Khar{"खारोस्थिति"}
        Khmr{"खमेर"}
        Knda{"कान्नाडा"}
        Kore{"कोरियन"}
        Kthi{"क्थी"}
        Lana{"लान्ना"}
        Laoo{"लाओ"}
        Latf{"फ्राक्टुर ल्याटिन"}
        Latg{"ग्यालिक ल्याटिन"}
        Latn{"ल्याटिन"}
        Lepc{"लेप्चा"}
        Limb{"लिम्बु"}
        Lyci{"लाइसियन"}
        Lydi{"लाइडियन"}
        Mand{"मान्डाएन"}
        Mani{"मानिकाएन"}
        Maya{"माया हाइरोग्लिफ्स"}
        Mero{"मेरियोटिक"}
        Mlym{"मलायालम"}
        Mong{"मङ्गोल"}
        Moon{"जून"}
        Mtei{"माइटेइ मायेक"}
        Mymr{"म्यान्मार"}
        Nkoo{"एन्को"}
        Ogam{"ओघाम"}
        Olck{"ओलचिकी"}
        Orkh{"ओर्खोन"}
        Orya{"ओरिया"}
        Osma{"ओस्मान्या"}
        Perm{"पुरानो पर्मिक"}
        Phag{"फाग्स-पा"}
        Phli{"फ्लि"}
        Phlp{"फ्ल्प"}
        Phlv{"बुक पहल्भी"}
        Phnx{"फोनिसियन"}
        Plrd{"पोल्लार्ड फोनेटिक"}
        Prti{"पिआरटी"}
        Rjng{"रेजाङ"}
        Roro{"रोङ्गोरोङ्गो"}
        Runr{"रूनिक"}
        Samr{"समारिटन"}
        Sara{"सारती"}
        Saur{"सौराष्ट्र"}
        Sgnw{"साइनराइटिङ"}
        Shaw{"शाभियन"}
        Sinh{"सिन्हाला"}
        Sund{"सुडानी"}
        Sylo{"स्ल्योटी नाग्री"}
        Syrc{"सिरियाक"}
        Syre{"इस्ट्रेनजेलो सिरियाक"}
        Syrj{"पश्चिमी सिरियाक"}
        Syrn{"पूर्वी सिरियाक"}
        Tagb{"टाग्वान्वा"}
        Tale{"टाइले"}
        Talu{"न्यू टाइ लुइ"}
        Taml{"तामिल"}
        Tavt{"टाभ्ट"}
        Telu{"टेलेगु"}
        Teng{"टेङ्वार"}
        Tfng{"टिफिनाघ"}
        Tglg{"टागालोग"}
        Thaa{"थाना"}
        Thai{"थाई"}
        Tibt{"टिबेटन"}
        Ugar{"युगारिटिक"}
        Vaii{"भाइ"}
        Visp{"दृश्यमय वाणी"}
        Xpeo{"पुरानो पर्सियन"}
        Yiii{"यी"}
        Zinh{"इन्हेरिटेड"}
        Zmth{"जमथ"}
        Zsym{"जसम"}
        Zxxx{"अलिखित"}
        Zyyy{"साझा"}
        Zzzz{"अपरिचित वा अवैध लिपी"}
    }
    Types{
        calendar{
            buddhist{"बुद्धिष्ट पात्रो"}
            chinese{"चिनिँया पात्रो"}
            gregorian{"ग्रेगोरियन पात्रो"}
            hebrew{"हिब्रु पात्रो"}
            indian{"भारतीय राष्ट्रिय पात्रो"}
            islamic{"इस्लामी पात्रो"}
            islamic-civil{"इस्लामी नागरिक पात्रो"}
            japanese{"जापानी पात्रो"}
            roc{"चिनिँया गणतन्त्र पात्रो"}
        }
        collation{
            big5han{"परम्परागत चिनिँया क्रमबद्धता पद्दति - बिग फाइभ"}
            direct{"प्रत्यक्ष क्रमबद्धता पद्दति"}
            gb2312han{"सरलिकृत चिनियाँ क्रमबद्धता पद्दति-गीबीटुथ्रीवानटु"}
            phonebook{"टेलिफोन पुस्तिका क्रमबद्धतापद्दति"}
            pinyin{"पिनयिन क्रमबद्धता पद्दति"}
            stroke{"स्ट्रोक क्रमबद्धता पद्दति"}
            traditional{"परम्परागत क्रमबद्धता पद्दति"}
        }
    }
    Variants{
        AREVELA{"पूर्वी आर्मेनियाली"}
        POSIX{"कम्प्युटर"}
    }
    Version{"2.0.50.94"}
}
