﻿// ***************************************************************************
// *
// * 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"}
        hc{"Uursiklus (12 vs 24)"}
        lb{"Reëlbreek-styl"}
        ms{"Meetstelsel"}
        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{"Belo-Russies"}
        bem{"Bemba"}
        bez{"Bena"}
        bg{"Bulgaars"}
        bgn{"Wes-Balochi"}
        bm{"Bambara"}
        bn{"Bengaals"}
        bo{"Tibettaans"}
        br{"Bretons"}
        brx{"Bodo"}
        bs{"Bosnies"}
        ca{"Katalaans"}
        ce{"Tsjetsjen"}
        cgg{"Sjiga"}
        chr{"Cherokees"}
        ckb{"Sorani Koerdies"}
        co{"Korsikaans"}
        cs{"Tsjeggies"}
        cv{"Chuvash"}
        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"}
        lrc{"Noord-Luri"}
        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"}
        mzn{"Masanderani"}
        naq{"Nama"}
        nb{"Noorse Bokmål"}
        nd{"Noord-Ndebele"}
        nds{"Lae Duits"}
        nds_NL{"Nedersaksies"}
        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"}
        sdh{"Suid-Koerdies"}
        se{"Noord-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{"Teloegoe"}
        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"}
        wbp{"Warlpiri"}
        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{"Teloegoe"}
        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"}
        }
        hc{
            h11{"12-uur-stelsel (0-11)"}
            h12{"112-uur-stelsel (1-12)"}
            h23{"24-uur-stelsel"}
            h24{"24-uur-stelsel (1-24)"}
        }
        lb{
            loose{"Los reëlbreek-styl"}
            normal{"Normale reëlbreek-styl"}
            strict{"Streng reëlbreek-styl"}
        }
        ms{
            metric{"Metriese stelsel"}
            uksystem{"Imperiale meetstelsel"}
            ussystem{"VS-meetstelsel"}
        }
        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 Sjinese syfers"}
            hansfin{"Vereenvoudigde Sjinese finansiële syfers"}
            hant{"Tradisionele Sjinese syfers"}
            hantfin{"Tradisionele Sjinese 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{"Teloegoe-syfers"}
            thai{"Thaise syfers"}
            tibt{"Tibettaanse syfers"}
            traditional{"Tradisionele syfers"}
            vaii{"Vai-syfers"}
        }
    }
    Version{"2.1.19.94"}
    codePatterns{
        language{"Taal: {0}"}
        script{"Skrif: {0}"}
        territory{"Streek: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
