﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/wae.xml
// *
// ***************************************************************************
wae{
    Languages{
        ab{"Abčasiš"}
        af{"Afrikáns"}
        am{"Amhariš"}
        ar{"Arabiš"}
        as{"Assamesiš"}
        ay{"Aymara"}
        az{"Serbaidšaniš"}
        be{"Wísrussiš"}
        bg{"Bulgariš"}
        bn{"Bengališ"}
        bo{"Tibetiš"}
        bs{"Bosniš"}
        ca{"Katalaniš"}
        cs{"Tšečiš"}
        cy{"Walisiš"}
        da{"Däniš"}
        de{"Titš"}
        de_AT{"Öštričišes Titš"}
        de_CH{"Schwizer Hočtitš"}
        dv{"Malediwiš"}
        dz{"Butaniš"}
        efi{"Efik"}
        el{"Gričiš"}
        en{"Engliš"}
        en_AU{"Auštrališes Engliš"}
        en_CA{"Kanadišes Engliš"}
        en_GB{"Britišes Engliš"}
        en_US{"Amerikanišes Engliš"}
        es{"Schpaniš"}
        es_419{"Latiamerikanišes Schpaniš"}
        es_ES{"Iberišes Schpaniš"}
        et{"Estniš"}
        eu{"Baskiš"}
        fa{"Persiš"}
        fi{"Finiš"}
        fil{"Filipiniš"}
        fj{"Fidšianiš"}
        fr{"Wälš"}
        fr_CA{"Kanadišes Wälš"}
        fr_CH{"Schwizer Wälš"}
        ga{"Iriš"}
        gl{"Galiziš"}
        gn{"Guarani"}
        gu{"Gujarati"}
        ha{"Hausa"}
        haw{"Hawaíaniš"}
        he{"Hebräiš"}
        hi{"Hindi"}
        hr{"Kroatiš"}
        ht{"Haitianiš"}
        hu{"Ungariš"}
        hy{"Armeniš"}
        id{"Indonesiš"}
        ig{"Igbo"}
        is{"Iisländiš"}
        it{"Italieniš"}
        ja{"Japaniš"}
        ka{"Georgiš"}
        kk{"Kazačiš"}
        km{"Kambodšaniš"}
        kn{"Kannada"}
        ko{"Koreaniš"}
        ks{"Kašmiriš"}
        ku{"Kurdiš"}
        ky{"Kirgisiš"}
        la{"Latiniš"}
        lb{"Luxemburgiš"}
        ln{"Lingala"}
        lo{"Laotiš"}
        lt{"Litauiš"}
        lv{"Lettiš"}
        mg{"Malagási"}
        mi{"Maori"}
        mk{"Mazedoniš"}
        ml{"Malayalam"}
        mn{"Mongoliš"}
        mr{"Marathi"}
        ms{"Malaíš"}
        mt{"Maltesiš"}
        my{"Burmesiš"}
        nb{"Norwegiš Bokmål"}
        nd{"Nordndebele"}
        ne{"Nepalesiš"}
        nl{"Holändiš"}
        nl_BE{"Flämiš"}
        nn{"Norwegiš Nynorsk"}
        nso{"Nordsotho"}
        ny{"Nyanja"}
        or{"Oriya"}
        os{"Osétiš"}
        pa{"Pandšabiš"}
        pl{"Polniš"}
        ps{"Paštu"}
        pt{"Portugisiš"}
        pt_BR{"Brasilianišes Portugisiš"}
        pt_PT{"Iberišes Portugisiš"}
        qu{"Quečua"}
        rm{"Rätromaniš"}
        rn{"Rundi"}
        ro{"Rumäniš"}
        ru{"Rusiš"}
        rw{"Ruandiš"}
        sa{"Sanskrit"}
        sah{"Jakutiš"}
        sd{"Sindhi"}
        se{"Nordsamiš"}
        sg{"Sango"}
        si{"Singalesiš"}
        sk{"Slowakiš"}
        sl{"Sloweniš"}
        sm{"Samoaniš"}
        sn{"Shona"}
        so{"Somališ"}
        sq{"Albaniš"}
        sr{"Serbiš"}
        ss{"Swazi"}
        st{"Südsotho"}
        su{"Sundanesiš"}
        sv{"Schwediš"}
        sw{"Suaheliš"}
        ta{"Tamiliš"}
        te{"Telugu"}
        tet{"Tetum"}
        tg{"Tadšikiš"}
        th{"Thailändiš"}
        ti{"Tigrinja"}
        tk{"Turkmeniš"}
        tn{"Tswana"}
        to{"Tonga"}
        tpi{"Niwmelanesiš"}
        tr{"Türkiš"}
        ts{"Tsonga"}
        ty{"Taitiš"}
        ug{"Uiguriš"}
        uk{"Ukrainiš"}
        und{"Unbekannti Schprač"}
        ur{"Urdu"}
        uz{"Usbekiš"}
        ve{"Venda"}
        vi{"Vietnamesiš"}
        wae{"Walser"}
        wo{"Wolof"}
        xh{"Xhosa"}
        yo{"Yoruba"}
        zh{"Chinesiš"}
        zh_Hans{"Vereifačts Chinesiš"}
        zh_Hant{"Traditionells Chinesiš"}
        zu{"Zulu"}
    }
    Scripts{
        Arab{"Arabiš"}
        Armn{"Armeniš"}
        Beng{"Bengališ"}
        Cyrl{"Kirilliš"}
        Deva{"Devanagari"}
        Ethi{"Ethiopiš"}
        Geor{"Georgiš"}
        Grek{"Gričiš"}
        Gujr{"Gujarati"}
        Hans{"Vereifačt"}
        Hant{"Traditionell"}
        Hebr{"Hebräiš"}
        Jpan{"Japaniš"}
        Khmr{"Khmer"}
        Knda{"Kannada"}
        Kore{"Korianiš"}
        Laoo{"Laotiš"}
        Latn{"Latiniš"}
        Mlym{"Malaisiš"}
        Mymr{"Burmesiš"}
        Orya{"Oriya"}
        Sinh{"Singalesiš"}
        Taml{"Tamiliš"}
        Telu{"Telugu"}
        Thaa{"Thána"}
        Thai{"Thai"}
        Zxxx{"Schriftlos"}
        Zzzz{"Unkodierti Schrift"}
    }
    Types{
        calendar{
            gregorian{"Gregorianišä Kaländer"}
        }
        collation{
            ducet{"Standard Unicode Sortierreiefolg"}
            search{"Allgmeini Süeč"}
        }
        numbers{
            latn{"Arabiši Zálä"}
        }
    }
    Version{"2.1.19.14"}
    codePatterns{
        language{"Sprač: {0}"}
        script{"Alfabét: {0}"}
        territory{"Regio: {0}"}
    }
}
