﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/mn.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/mn.xml
 */
mn{
    Keys{
        calendar{"хуанли"}
        collation{"Захиалга ялгах"}
        currency{"мөнгөн тэмдэгт"}
        numbers{"Тоонууд"}
    }
    Languages{
        ab{"абхаз"}
        af{"африк"}
        am{"амхар"}
        ar{"араб"}
        as{"ассам"}
        az{"азербайжан"}
        be{"беларусь"}
        bg{"болгар"}
        bn{"бенгал"}
        bo{"төвд"}
        bs{"босни"}
        ca{"каталан"}
        cs{"чех"}
        cy{"уэлс"}
        da{"дани"}
        de{"герман"}
        de_AT{"австри герман"}
        de_CH{"швейцари герман"}
        el{"грек"}
        en{"англи"}
        en_AU{"австрали англи"}
        en_CA{"канад англи"}
        en_GB{"британийн англи"}
        en_US{"америк англи"}
        eo{"эсперанто"}
        es{"испани"}
        es_419{"латин америкийн испани"}
        es_ES{"европын испани"}
        et{"эстони"}
        eu{"баск"}
        fa{"перс"}
        fi{"финлянд"}
        fil{"филипин"}
        fj{"фижи"}
        fo{"фарер"}
        fr{"франц"}
        fr_CA{"канад франц"}
        fr_CH{"швейцари франц"}
        fy{"баруун фризын"}
        ga{"ирланд"}
        gl{"галик"}
        gn{"гуарани"}
        gsw{"швейцар герман"}
        gu{"гужарати"}
        ha{"хауса"}
        haw{"хавай"}
        he{"еврей"}
        hi{"хинди"}
        hr{"хорват"}
        ht{"гаити"}
        hu{"унгар"}
        hy{"армен"}
        id{"индонези"}
        ig{"игбо"}
        is{"исланд"}
        it{"итали"}
        ja{"япон"}
        jv{"ява"}
        ka{"гүрж"}
        kk{"хасаг"}
        km{"камбож"}
        kn{"каннада"}
        ko{"солонгос"}
        ks{"кашмир"}
        ku{"күрд"}
        ky{"киргиз"}
        la{"латин"}
        lb{"люксембург"}
        lo{"лаос"}
        lt{"литва"}
        lv{"латви"}
        mg{"малагаси"}
        mi{"маори"}
        mk{"македон"}
        ml{"малайлам"}
        mn{"монгол"}
        mr{"марати"}
        ms{"малай"}
        mt{"малти"}
        my{"бирм"}
        nb{"норвегийн букмол"}
        ne{"балба"}
        nl{"голланд"}
        nl_BE{"фламанд"}
        nn{"нюнорск"}
        or{"ория"}
        pa{"панжаб"}
        pl{"польш"}
        ps{"афган"}
        pt{"португал"}
        pt_BR{"португал (бразил)"}
        pt_PT{"европын португал"}
        qu{"кечуа"}
        rm{"романш"}
        ro{"румын"}
        ru{"орос"}
        sa{"санскрит"}
        sd{"синди"}
        si{"синхала"}
        sk{"словак"}
        sl{"словен"}
        so{"сомали"}
        sq{"албани"}
        sr{"серб"}
        su{"сундан"}
        sv{"швед"}
        sw{"свахили"}
        ta{"тамил"}
        te{"тэлүгү"}
        tg{"тажик"}
        th{"тай"}
        ti{"тигрина"}
        tk{"туркмен"}
        to{"тонга"}
        tr{"турк"}
        tt{"татар"}
        ug{"уйгар"}
        uk{"украйн"}
        und{"тодорхойгүй хэл"}
        ur{"урду"}
        uz{"узбек"}
        vi{"вьетнам"}
        wo{"волоф"}
        xh{"хоса"}
        yo{"ёруба"}
        zh{"хятад"}
        zh_Hans{"хялбаршуулсан хятад"}
        zh_Hant{"уламжлалт хятад"}
        zu{"зулу"}
        zxx{"хэл зүйн агуулга байхгүй"}
    }
    Scripts{
        Arab{"Араб"}
        Armn{"Армен"}
        Beng{"Бенгал"}
        Bopo{"Бопомофо"}
        Brai{"брайл"}
        Cyrl{"Кирил"}
        Deva{"деванагари"}
        Ethi{"этиоп"}
        Geor{"гүрж"}
        Grek{"грек"}
        Gujr{"гүжарати"}
        Guru{"гурмукхи"}
        Hang{"хангул"}
        Hani{"хан"}
        Hans{"хялбаршуулсан"}
        Hant{"уламжлалт"}
        Hebr{"еврей"}
        Hira{"хирагана"}
        Jpan{"Япон"}
        Kana{"катакана"}
        Khmr{"кхмер"}
        Knda{"каннада"}
        Kore{"солонгос"}
        Laoo{"лаос"}
        Latn{"Латин"}
        Mlym{"малаялам"}
        Mong{"Монгол бичиг"}
        Mymr{"мьянмар"}
        Orya{"ория"}
        Sinh{"синхала"}
        Taml{"тамил"}
        Telu{"тэлүгү"}
        Thaa{"тана"}
        Thai{"Тай"}
        Tibt{"Төвд"}
        Zsym{"тэмдэг"}
        Zxxx{"бичигдээгүй"}
        Zyyy{"нийтлэг"}
        Zzzz{"тодорхойгүй бичиг"}
    }
    Types{
        calendar{
            gregorian{"Грегорийн хуанли"}
        }
        collation{
            ducet{"Өгөгдмөл Юникод захиалгыг ялгах"}
            search{"ерөнхий зорилготой хайлт"}
        }
        numbers{
            arab{"араб-энэтхэг тоо"}
            arabext{"өргөтгөсөн араб-энэтхэг тоо"}
            armn{"армен тоо"}
            armnlow{"жижиг армен тоо"}
            beng{"бенгал тоо"}
            deva{"деванагари тоо"}
            ethi{"этиоп тоо"}
            fullwide{"бүрэн хэмжээтэй тоо"}
            geor{"гүрж тоо"}
            grek{"грек тоо"}
            greklow{"жижиг грек тоо"}
            gujr{"гүжарати тоо"}
            guru{"гүрмүкхи тоо"}
            hanidec{"хятад аравтын тоо"}
            hans{"хялбаршуулсан хятад тоо"}
            hansfin{"хялбаршуулсан хятад санхүүгийн тоо"}
            hant{"уламжлалт хятад тоо"}
            hantfin{"уламжлалт хятад санхүүгийн тоо"}
            hebr{"еврей тоо"}
            jpan{"япон тоо"}
            jpanfin{"япон санхүүгийн тоо"}
            khmr{"кхмер тоо"}
            knda{"каннада тоо"}
            laoo{"лаос тоо"}
            latn{"араб тоо"}
            mlym{"малаялам тоо"}
            mong{"монгол тоо"}
            mymr{"мьянмар тоо"}
            orya{"ория тоо"}
            roman{"ром тоо"}
            romanlow{"жижиг ром тоо"}
            taml{"уламжлалт тамил тоо"}
            tamldec{"тамил тоо"}
            telu{"телүгү тоо"}
            thai{"тай тоо"}
            tibt{"тибет тоо"}
        }
    }
    Version{"2.0.82.51"}
    codePatterns{
        language{"{0}"}
        script{"{0}"}
        territory{"{0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{", "}
    }
}
