﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/be.xml
// *
// ***************************************************************************
be{
    Keys{
        calendar{"каляндар"}
        collation{"параўнаньне тэксту"}
        currency{"валюта"}
        numbers{"лічбы"}
    }
    Languages{
        ab{"абхазская"}
        ady{"адыгейская"}
        af{"афрыкаанс"}
        akk{"акадзкая"}
        ale{"алеуцкая"}
        am{"амхарская"}
        an{"арагонская"}
        ang{"стараанглійская"}
        ar{"арабская"}
        arc{"арамейская"}
        as{"асамская"}
        ast{"астурыйская"}
        av{"аварская"}
        ay{"аймара"}
        az{"азербайджанская"}
        ba{"башкірская"}
        be{"беларуская"}
        bg{"балгарская"}
        bn{"бенгальская"}
        br{"брэтонская"}
        bs{"баснійская"}
        bua{"бурацкая"}
        ca{"каталонская"}
        ce{"чачэнская"}
        cop{"копцкая"}
        cs{"чэшская"}
        cv{"чувашская"}
        cy{"валійская"}
        da{"дацкая"}
        de{"нямецкая"}
        de_AT{"нямецкая (аўстр.)"}
        de_CH{"нямецкая (швейц.)"}
        egy{"стараэгіпецкая"}
        el{"грэцкая"}
        en{"англійская"}
        en_AU{"англійская (аўстрал.)"}
        en_CA{"англійская (канад.)"}
        en_US{"англійская (ЗША)"}
        eo{"эсперанта"}
        es{"іспанская"}
        es_419{"іспанская (лацінаамер.)"}
        et{"эстонская"}
        eu{"баскская"}
        fa{"фарсі"}
        fi{"фінская"}
        fil{"тагальская"}
        fo{"фарэрская"}
        fr{"французская"}
        fr_CA{"французская (канад.)"}
        fr_CH{"французская (швейц.)"}
        fro{"старафранцузская"}
        fy{"фрызская"}
        ga{"ірландская"}
        gd{"шатландская гэльская"}
        gl{"галісійская"}
        gn{"гуарані"}
        grc{"старагрэцкая"}
        gu{"гуяраці"}
        he{"іўрыт"}
        hi{"хіндзі"}
        hr{"харвацкая"}
        hu{"венгерская"}
        hy{"армянская"}
        ia{"інтэрлінгва"}
        id{"інданезійская"}
        ie{"інтэрлінгве"}
        is{"ісландская"}
        it{"італьянская"}
        ja{"японская"}
        jv{"яванская"}
        ka{"грузінская"}
        kk{"казахская"}
        kn{"каннада"}
        ko{"карэйская"}
        ku{"курдская"}
        la{"лацінская"}
        ln{"лінгала"}
        lo{"лаоская"}
        lt{"літоўская"}
        lv{"латышская"}
        mk{"македонская"}
        ml{"малаяламская"}
        mn{"мангольская"}
        mr{"маратхі"}
        ms{"малайская"}
        mt{"мальтыйская"}
        nb{"нарвэская букмал"}
        ne{"непальская"}
        nl{"галандская"}
        nl_BE{"фламандская"}
        nn{"нарвежская (нюнорск)"}
        no{"нарвежская"}
        oc{"правансальская"}
        pa{"панджабі"}
        pl{"польская"}
        ps{"пушту"}
        pt{"партугальская"}
        pt_BR{"партугальская (бразіл.)"}
        ro{"румынская"}
        ro_MD{"малдаўская"}
        ru{"руская"}
        sa{"санскрыт"}
        sah{"якуцкая"}
        sd{"сіндхі"}
        sh{"сербска-харвацкая"}
        si{"сінгальская"}
        sk{"славацкая"}
        sl{"славенская"}
        so{"самалійская"}
        sq{"албанская"}
        sr{"сербская"}
        su{"суданская"}
        sv{"шведская"}
        sw{"суахілі"}
        ta{"тамільская"}
        te{"тэлугу"}
        th{"тайская"}
        ti{"тыгрынья"}
        tk{"туркменская"}
        tlh{"клінгон"}
        tr{"турэцкая"}
        tt{"татарская"}
        ug{"уйгурская"}
        uk{"украінская"}
        und{"невядомая мова"}
        ur{"урду"}
        uz{"узбекская"}
        vi{"в’етнамская"}
        xh{"хоса"}
        yi{"ідыш"}
        zh{"кітайская"}
        zh_Hans{"спрошчаная кітайская"}
        zh_Hant{"традыцыйная кітайская"}
        zu{"зулу"}
    }
    Scripts{
        Arab{"арабскае"}
        Armn{"армянскае"}
        Cyrl{"кірылічны"}
        Geor{"грузінскае"}
        Hans{"спрошчанае кітайскае"}
        Hant{"традыцыйнае кітайскае"}
        Hebr{"габрэйскае"}
        Jpan{"японскае"}
        Latn{"лацінскі"}
        Zxxx{"чысты"}
        Zzzz{"невядомы або недапушчальны пераклад"}
    }
    Types{
        calendar{
            buddhist{"будысцкі каляндар"}
            chinese{"кітайскі каляндар"}
            gregorian{"грэгарыянскі каляндар"}
            hebrew{"іудэйскі каляндар"}
            islamic{"мусульманскі каляндар"}
            islamic-civil{"мусульманскі свецкі каляндар"}
            japanese{"японскі каляндар"}
        }
        collation{
            ducet{"стандартнае сартаванне Unicode"}
            search{"пошук"}
            standard{"стандартнае сартаванне"}
        }
    }
    Version{"2.1.15.45"}
    codePatterns{
        language{"Мова: {0}"}
        script{"Пісьмо: {0}"}
        territory{"Рэгіён: {0}"}
    }
    localeDisplayPattern{
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
