﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/af.xml
// *
// ***************************************************************************
af{
    Keys{
        calendar{"Kalender"}
        colAlternate{"Ignoreer simboolsortering"}
        colBackwards{"Omgekeerde aksentsortering"}
        colCaseFirst{"Hoofletters/kleinletters-sortering"}
        colCaseLevel{"Kassensitiewe sortering"}
        colHiraganaQuaternary{"Kana-sortering"}
        colNormalization{"Genormaliseerde sortering"}
        colNumeric{"Numeriese sortering"}
        colStrength{"Sorteringssterkte"}
        collation{"Sorteervolgorde"}
        currency{"Geldeenheid"}
        numbers{"Syfers"}
        timezone{"Tydsone"}
        va{"Lokaalvariant"}
        variableTop{"Sorteer as simbole"}
        x{"Privaat gebruik"}
    }
    Languages{
        ab{"Abkasies"}
        ach{"Akoli"}
        af{"Afrikaans"}
        agq{"Aghem"}
        ak{"Akan"}
        am{"Amharies"}
        ar{"Arabies"}
        ar_001{"Moderne Standaard Arabies"}
        arc{"Aramees"}
        arn{"Mapuche"}
        as{"Assamees"}
        asa{"Asu"}
        ay{"Aymara"}
        az{"Azerbeidjans"}
        ba{"Baskir"}
        be{"Wit-Russies"}
        bem{"Bemba"}
        bez{"Bena"}
        bg{"Bulgaars"}
        bm{"Bambara"}
        bn{"Bengaals"}
        bo{"Tibettaans"}
        br{"Bretons"}
        brx{"Bodo"}
        bs{"Bosnies"}
        ca{"Katalaans"}
        cgg{"Sjiga"}
        chr{"Cherokees"}
        ckb{"Sorani Koerdies"}
        co{"Korsikaans"}
        cs{"Tsjeggies"}
        cy{"Wallies"}
        da{"Deens"}
        dav{"Taita"}
        de{"Duits"}
        de_CH{"Switserse hoog-Duits"}
        dje{"Zarma"}
        dsb{"Lae Sorbies"}
        dua{"Duala"}
        dv{"Divehi"}
        dyo{"Jola-Fonyi"}
        dz{"Dzongkha"}
        ebu{"Embu"}
        ee{"Ewe"}
        efi{"Efik"}
        egy{"Antieke Egipties"}
        el{"Grieks"}
        en{"Engels"}
        eo{"Esperanto"}
        es{"Spaans"}
        et{"Estnies"}
        eu{"Baskies"}
        fa{"Persies"}
        fi{"Fins"}
        fil{"Filippyns"}
        fj{"Fidjiaans"}
        fo{"Faroees"}
        fr{"Frans"}
        fy{"Wes-Fries"}
        ga{"Iers"}
        gaa{"Gaa"}
        gag{"Gagauz"}
        gd{"Skotse Gallies"}
        gl{"Galisies"}
        gn{"Guarani"}
        got{"Goties"}
        grc{"Antieke Grieks"}
        gsw{"Switserse Duits"}
        gu{"Goedjarati"}
        guz{"Gusii"}
        gv{"Manx"}
        ha{"Hausa"}
        haw{"Hawaiies"}
        he{"Hebreeus"}
        hi{"Hindi"}
        hr{"Kroaties"}
        hsb{"Hoog-Sorbies"}
        ht{"Haïtiaans"}
        hu{"Hongaars"}
        hy{"Armeens"}
        ia{"Interlingua"}
        id{"Indonesies"}
        ig{"Igbo"}
        ii{"Sichuan Yi"}
        is{"Yslands"}
        it{"Italiaans"}
        iu{"Innuïties"}
        ja{"Japannees"}
        jgo{"Ngomba"}
        jmc{"Machame"}
        jv{"Javaans"}
        ka{"Georgies"}
        kab{"Kabyle"}
        kam{"Kamba"}
        kde{"Makonde"}
        kea{"Kabuverdianu"}
        kg{"Kongolees"}
        khq{"Koyra Chiini"}
        ki{"Kikuyu"}
        kk{"Kazaks"}
        kl{"Kalaallisut"}
        kln{"Kalenjin"}
        km{"Khmer"}
        kn{"Kannada"}
        ko{"Koreaans"}
        koi{"Komi-Permyaks"}
        kok{"Konkani"}
        ks{"Kasjmirs"}
        ksb{"Shambala"}
        ksf{"Bafia"}
        ku{"Koerdies"}
        kw{"Kornies"}
        ky{"Kirgisies"}
        la{"Latyn"}
        lag{"Langi"}
        lb{"Luxemburgs"}
        lg{"Ganda"}
        lkt{"Lakota"}
        ln{"Lingaals"}
        lo{"Lao"}
        loz{"Lozi"}
        lt{"Litaus"}
        lu{"Luba-Katanga"}
        lua{"Luba-Lulua"}
        luo{"Luo"}
        luy{"Luyia"}
        lv{"Letties"}
        mas{"Masai"}
        mer{"Meru"}
        mfe{"Morisjen"}
        mg{"Malgassies"}
        mgh{"Makhuwa-Meetto"}
        mgo{"Meta’"}
        mi{"Maori"}
        mk{"Masedonies"}
        ml{"Malabaars"}
        mn{"Mongools"}
        moh{"Mohawk"}
        mr{"Marathi"}
        ms{"Maleis"}
        mt{"Maltees"}
        mua{"Mundang"}
        mul{"Veelvuldige tale"}
        my{"Birmaans"}
        naq{"Nama"}
        nb{"Noorse Bokmål"}
        nd{"Noord-Ndebele"}
        ne{"Nepalees"}
        nl{"Nederlands"}
        nl_BE{"Vlaams"}
        nmg{"Kwasio"}
        nn{"Noorweegse Nynorsk"}
        nqo{"N’Ko"}
        nr{"Suid-Ndebele"}
        nso{"Noord-Sotho"}
        nus{"Nuer"}
        ny{"Nyanja"}
        nyn{"Nyankole"}
        oc{"Oksitaans"}
        om{"Oromo"}
        or{"Oriya"}
        os{"Osseties"}
        pa{"Pandjabi"}
        pl{"Pools"}
        ps{"Pasjto"}
        pt{"Portugees"}
        qu{"Quechua"}
        quc{"K’iche’"}
        rm{"Reto-Romaans"}
        rn{"Rundi"}
        ro{"Roemeens"}
        ro_MD{"Moldawies"}
        rof{"Rombo"}
        ru{"Russies"}
        rw{"Rwandees"}
        rwk{"Rwa"}
        sa{"Sanskrit"}
        saq{"Samburu"}
        sbp{"Sangu"}
        sd{"Sindhi"}
        se{"Noordelike Sami"}
        seh{"Sena"}
        ses{"Koyraboro Senni"}
        sg{"Sango"}
        shi{"Tachelhit"}
        si{"Sinhala"}
        sk{"Slowaaks"}
        sl{"Sloweens"}
        sm{"Samoaans"}
        sma{"Suid-Sami"}
        smj{"Lule Sami"}
        smn{"Inari Sami"}
        sms{"Skolt Sami"}
        sn{"Shona"}
        so{"Somalies"}
        sq{"Albanees"}
        sr{"Serwies"}
        ss{"Swazi"}
        st{"Suid-Sotho"}
        su{"Sundanees"}
        sv{"Sweeds"}
        sw{"Swahili"}
        swc{"Swahili (Kongo)"}
        ta{"Tamil"}
        te{"Telugu"}
        teo{"Teso"}
        tet{"Tetum"}
        tg{"Tadzjieks"}
        th{"Thai"}
        ti{"Tigrinya"}
        tk{"Turkmeens"}
        tlh{"Klingon"}
        tn{"Tswana"}
        to{"Tongaans"}
        tpi{"Tok Pisin"}
        tr{"Turks"}
        ts{"Tsonga"}
        tt{"Tataars"}
        tum{"Toemboeka"}
        twq{"Tasawaq"}
        ty{"Tahities"}
        tzm{"Sentraal Atlas Tamazight"}
        ug{"Uighur"}
        uk{"Oekraïens"}
        und{"Onbekende of ongeldige taal"}
        ur{"Oerdoe"}
        uz{"Oezbeeks"}
        vai{"Vai"}
        ve{"Venda"}
        vi{"Viëtnamees"}
        vun{"Vunjo"}
        wo{"Wolof"}
        xh{"Xhosa"}
        xog{"Soga"}
        yi{"Jiddisj"}
        yo{"Yoruba"}
        zgh{"Standaard Marokkaanse Tamazight"}
        zh{"Sjinees"}
        zu{"Zoeloe"}
        zxx{"Geen linguistiese inhoud"}
    }
    Languages%short{
        az{"Azeri"}
        en_GB{"Engels (VK)"}
        en_US{"Engels (VSA)"}
    }
    Languages%variant{
        ps{"Pushto"}
    }
    Scripts{
        Arab{"Arabies"}
        Armn{"Armeens"}
        Beng{"Bengaals"}
        Bopo{"Bopomofo"}
        Brai{"Braille"}
        Cyrl{"Sirillies"}
        Deva{"Devanagari"}
        Ethi{"Etiopies"}
        Geor{"Georgies"}
        Grek{"Grieks"}
        Gujr{"Gudjarati"}
        Guru{"Gurmukhi"}
        Hang{"Hangul"}
        Hani{"Han"}
        Hans{"Vereenvoudig"}
        Hant{"Tradisioneel"}
        Hebr{"Hebreeus"}
        Hira{"Hiragana"}
        Jpan{"Japannees"}
        Kana{"Katakana"}
        Khmr{"Khmer"}
        Knda{"Kannada"}
        Kore{"Koreaans"}
        Laoo{"Lao"}
        Latn{"Latyn"}
        Mlym{"Malabaars"}
        Mong{"Mongools"}
        Mymr{"Mianmar"}
        Orya{"Oriya"}
        Sinh{"Sinhala"}
        Taml{"Tamil"}
        Telu{"Telugu"}
        Thaa{"Thaana"}
        Thai{"Thai"}
        Tibt{"Tibettaans"}
        Zsym{"Simbole"}
        Zxxx{"Ongeskrewe"}
        Zyyy{"Algemeen"}
        Zzzz{"Onbekende skryfstelsel"}
    }
    Scripts%stand-alone{
        Hans{"Vereenvoudigde Han"}
        Hant{"Tradisionele Han"}
    }
    Scripts%variant{
        Arab{"Perso-Arabies"}
    }
    Types{
        calendar{
            buddhist{"Boeddhistiese kalender"}
            chinese{"Sjinese kalender"}
            coptic{"Koptiese kalender"}
            dangi{"Dangi-kalender"}
            ethiopic{"Ethiopiese kalender"}
            ethiopic-amete-alem{"Etiopiese Amete Alem-kalender"}
            gregorian{"Gregoriese kalender"}
            hebrew{"Hebreeuse kalender"}
            indian{"Indiese nasionale kalender"}
            islamic{"Islamitiese kalender"}
            islamic-civil{"Islamitiese siviele kalender"}
            iso8601{"ISO-8601-kalender"}
            japanese{"Japannese kalender"}
            persian{"Persiese kalender"}
            roc{"Minguo-kalender"}
        }
        colAlternate{
            non-ignorable{"Sorteer simbole"}
            shifted{"Sorteer ignoreersimbole"}
        }
        colBackwards{
            no{"Sorteer aksente gewoonweg"}
            yes{"Sorteer aksente omgekeerd"}
        }
        colCaseFirst{
            lower{"Sorteer kleinletters veerste"}
            no{"Sorteer gewone letterorde"}
            upper{"Sorteer hoofletters eerste"}
        }
        colCaseLevel{
            no{"Sorteer nie kassensitief nie"}
            yes{"Sorteer kassensitief"}
        }
        colHiraganaQuaternary{
            no{"Sorteer Kana afsonderlik"}
            yes{"Sorteer Kana anders"}
        }
        colNormalization{
            no{"Sorteer sonder normalisering"}
            yes{"Sorteer Unicode genormaliseer"}
        }
        colNumeric{
            no{"Sorteer syfers individueel"}
            yes{"Sorteer syfers numeries"}
        }
        colStrength{
            identical{"Sorteer almal"}
            primary{"Sorteer slegs basisletters"}
            quaternary{"Sorteer aksente/kas/breedte/Kana"}
            secondary{"Sorteer aksente"}
            tertiary{"Sorteer aksente/kas/breedte"}
        }
        collation{
            big5han{"Tradisionele Chinese sorteervolgorde - Groot5"}
            dictionary{"Woordeboek-sorteervolgorde"}
            ducet{"Verstek Unicode-sorteervolgorde"}
            gb2312han{"Vereenvoudigde Chinese sorteervolgorde - GB2312"}
            phonebook{"Foonboek-sorteervolgorde"}
            phonetic{"Fonetiese sorteerorde"}
            pinyin{"Pinyin-sorteervolgorde"}
            reformed{"Gereformeerde sorteervolgorde"}
            search{"Algemenedoel-soektog"}
            searchjl{"Soek volgens Hangul-beginkonsonant"}
            standard{"Standaard sorteervolgorde"}
            stroke{"Slag-sorteervolgorde"}
            traditional{"Tradisionele sorteervolgorde"}
            unihan{"Radikale-slag-sorteervolgorde"}
        }
        numbers{
            arab{"Arabies-Indiese syfers"}
            arabext{"Uitgebreide Arabies-Indiese syfers"}
            armn{"Armeense syfers"}
            armnlow{"Armeense kleinletter-syfers"}
            beng{"Bengaalse syfers"}
            deva{"Devanagari-syfers"}
            ethi{"Ethiopiese syfers"}
            finance{"Finansiële syfers"}
            fullwide{"Vollewydte-syfers"}
            geor{"Georgiese syfers"}
            grek{"Griekse syfers"}
            greklow{"Griekse kleinletter-syfers"}
            gujr{"Goedjarati-syfers"}
            guru{"Gurmukhi-syfers"}
            hanidec{"Chinese desimale syfers"}
            hans{"Vereenvoudigde Chinese syfers"}
            hansfin{"Vereenvoudigde Chinese finansiële syfers"}
            hant{"Tradisionele Chinese syfers"}
            hantfin{"Tradisionele Chinese finansiële syfers"}
            hebr{"Hebreeuse syfers"}
            jpan{"Japannese syfers"}
            jpanfin{"Japannese finansiële syfers"}
            khmr{"Khmer-syfers"}
            knda{"Kannada-syfers"}
            laoo{"Lao-syfers"}
            latn{"Westerse syfers"}
            mlym{"Malabaarse syfers"}
            mong{"Mongoliese syfers"}
            mymr{"Mianmar-syfers"}
            native{"Inheemse syfers"}
            orya{"Oriya-syfers"}
            roman{"Romeinse syfers"}
            romanlow{"Romeinse kleinletter-syfers"}
            taml{"Tradisionele Tamil-syfers"}
            tamldec{"Tamil-syfers"}
            telu{"Telugu-syfers"}
            thai{"Thaise syfers"}
            tibt{"Tibettaanse syfers"}
            traditional{"Tradisionele syfers"}
            vaii{"Vai-syfers"}
        }
    }
    Version{"2.1.12.94"}
    codePatterns{
        language{"Taal: {0}"}
        script{"Skrif: {0}"}
        territory{"Streek: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
