﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/zu.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/zu.xml
 */
zu{
    Keys{
        calendar{"Ikhalenda"}
        colAlternate{"Ziba Ukuhlelwa Kwezimpawu"}
        colBackwards{"Ukuhlelwa Kwendlela Yokubiza Okuhlehlisiwe"}
        colCaseFirst{"Ukuhlelwa Ngokwezinhlamvu Ezinkulu/Ezincane"}
        colCaseLevel{"Ukuhlelwa Okuncike Ezinkinobhweni"}
        colHiraganaQuaternary{"Ukuhlela ngokwe-Kana"}
        colNormalization{"Ukuhlelwa Okulinganisiwe"}
        colNumeric{"Ukuhlelwa Ngezinombolo"}
        colStrength{"Amandla Okuhlelwa"}
        collation{"Uhlelo lokuhlunga"}
        currency{"Ikharensi"}
        numbers{"Izinombolo"}
        timezone{"Izoni yesikhathi:"}
        va{"Okokwehlukanisa Kwasendaweni"}
        variableTop{"Hlela Njengezimpawu"}
        x{"i-Private-Use"}
    }
    Languages{
        ab{"isi-Abkhazian"}
        ach{"Isi-Acoli"}
        af{"isi-Afrikaans"}
        ak{"I-Akan"}
        am{"isi-Amharic"}
        ar{"isi-Arabic"}
        as{"isi-Assamese"}
        ay{"isi-Aymara"}
        az{"isi-Azerbaijani"}
        be{"isi-Belarusian"}
        bem{"Isi-Bemba"}
        bg{"isi-Bulgari"}
        bn{"isi-Bengali"}
        bo{"isi-Tibetan"}
        br{"Isi-Breton"}
        bs{"isi-Bosnian"}
        ca{"isi-Catalan"}
        chr{"Isi-Cherokee"}
        ckb{"Isi-Sorani Kurdish"}
        co{"isi-Corsican"}
        cs{"isi-Czech"}
        cy{"isi-Welsh"}
        da{"isi-Danish"}
        de{"isi-German"}
        de_AT{"isi-Austrian German"}
        de_CH{"isi-Swiss High German"}
        dv{"isi-Divehi"}
        dz{"isi-Dzongkha"}
        ee{"Isi-Ewe"}
        efi{"isi-Efik"}
        el{"isi-Greek"}
        en{"isiNgisi"}
        en_AU{"isi-Austrillian English"}
        en_CA{"i-Canadian English"}
        en_GB{"i-British English"}
        en_US{"i-U.S. English"}
        eo{"isi-Esperanto"}
        es{"isi-Spanish"}
        es_419{"isi-Latin American Spanish"}
        es_ES{"Isipenishi saseYurophu"}
        es_MX{"isi-Mexican Spanish"}
        et{"isi-Estonia"}
        eu{"isi-Basque"}
        fa{"isi-Persian"}
        fi{"isi-Finnish"}
        fil{"isi-Filipino"}
        fj{"isi-Fijian"}
        fo{"isi-Faroese"}
        fr{"isiFulentshi"}
        fr_CA{"i-Canadian French"}
        fr_CH{"isi-Swiss French"}
        fy{"isi-Western Frisian"}
        ga{"isi-Irish"}
        gaa{"Isi-Ga"}
        gd{"i-Scottish Gaelic"}
        gl{"isi-Galicia"}
        gn{"isi-Guarani"}
        gsw{"isi-Swiss German"}
        gu{"isi-Gujarati"}
        ha{"isi-Hausa"}
        haw{"isi-Hawaiian"}
        he{"isi-Hebrew"}
        hi{"isi-Hindi"}
        hr{"isi-Croatian"}
        ht{"isi-Haitian"}
        hu{"isi-Hungarian"}
        hy{"isi-Armenia"}
        ia{"Izilimi ezihlangene"}
        id{"isi-Indonesian"}
        ig{"isi-Igbo"}
        is{"isi-Icelandic"}
        it{"isi-Italian"}
        ja{"isi-Japanese"}
        jv{"isi-Javanese"}
        ka{"isi-Georgian"}
        kg{"Isi-Kongo"}
        kk{"isi-Kazakh"}
        km{"isi-Khmer"}
        kn{"isi-Kannada"}
        ko{"isi-Korean"}
        ks{"isi-Kashmiri"}
        ku{"isi-Kurdish"}
        ky{"isi-Kirghiz"}
        la{"isi-Latin"}
        lb{"isi-Luxembourgish"}
        lg{"Isi-Ganda"}
        ln{"isi-Lingala"}
        lo{"i-Lao"}
        loz{"Isi-Lozi"}
        lt{"isi-Lithuanian"}
        lua{"Isi-Luba-Lulua"}
        lv{"isi-Latvia"}
        mfe{"Isi-Morisyen"}
        mg{"isi-Malagasy"}
        mi{"isi-Maori"}
        mk{"isi-Macedonia"}
        ml{"isi-Malayalam"}
        mn{"isi-Mongolian"}
        mr{"isi-Marathi"}
        ms{"isi-Malay"}
        mt{"isi-Malta"}
        my{"isi-Burmese"}
        nb{"i-Norwegian Bokmål"}
        nd{"isi-North Ndebele"}
        ne{"isi-Nepali"}
        nl{"i-Dutch"}
        nl_BE{"isi-Flemish"}
        nn{"i-Norwegian Nynorsk"}
        nso{"isi-Northern Sotho"}
        ny{"isi-Nyanja"}
        nyn{"Isi-Nyankole"}
        oc{"Isi-Osithani"}
        om{"Isi-Oromo"}
        or{"isi-Oriya"}
        os{"isi-Ossetic"}
        pa{"isi-Punjabi"}
        pl{"isi-Polish"}
        ps{"isi-Pashto"}
        pt{"isi-Portuguese"}
        pt_BR{"isi-Brazillian Portuguese"}
        pt_PT{"Isiputukezi saseYurophu"}
        qu{"isi-Quechua"}
        rm{"isi-Romansh"}
        rn{"isi-Rundi"}
        ro{"isi-Romanian"}
        ru{"isi-Russian"}
        rw{"isi-Kinyarwanda"}
        sa{"isi-Sanskrit"}
        sd{"isi-Sindhi"}
        se{"e-Northern Sami"}
        sg{"isi-Sango"}
        si{"i-Sinhala"}
        sk{"isi-Slovak"}
        sl{"isi-Slovenian"}
        sm{"isi-Samoan"}
        sn{"isiShona"}
        so{"isi-Somali"}
        sq{"isi-Albania"}
        sr{"isi-Serbian"}
        ss{"isiSwati"}
        st{"isiSuthu"}
        su{"isi-Sundanese"}
        sv{"isi-Swedish"}
        sw{"isiSwahili"}
        ta{"isi-Tamil"}
        te{"isi-Telugu"}
        tet{"isi-Tetum"}
        tg{"isi-Tajik"}
        th{"isi-Thai"}
        ti{"isi-Tigrinya"}
        tk{"isi-Turkmen"}
        tlh{"Isi-Klingon"}
        tn{"isi-Tswana"}
        to{"Isi-Tongan"}
        tpi{"isi-Tok Pisin"}
        tr{"isi-Turkish"}
        ts{"isi-Tsonga"}
        tt{"isi-Tatar"}
        tum{"Isi-Tumbuka"}
        ty{"isi-Tahitian"}
        ug{"isi-Uighur"}
        uk{"isi-Ukrainian"}
        und{"Ulimi olungaziwa"}
        ur{"isi-Urdu"}
        uz{"isi-Uzbek"}
        ve{"isi-Venda"}
        vi{"isi-Vietnamese"}
        wo{"isi-Wolof"}
        xh{"isiXhosa"}
        yi{"Isi-Yidish"}
        yo{"isi-Yoruba"}
        zh{"isi-Chinese"}
        zh_Hans{"isi-Sipmlified Chinese"}
        zh_Hant{"isi-Traditional Chinese"}
        zu{"isiZulu"}
        zxx{"Akukho okuqukethwe kolimi"}
    }
    LanguagesShort{
        az{"isi-Azeria"}
    }
    Scripts{
        Arab{"isi-Arab"}
        Armn{"isi-Armenian"}
        Beng{"isi-Bengali"}
        Bopo{"i-Bopomofo"}
        Brai{"i-Braille"}
        Cyrl{"i-Cyrillic"}
        Deva{"i-Devanagari"}
        Ethi{"i-Ethiopic"}
        Geor{"isi-Georgian"}
        Grek{"isi-Greek"}
        Gujr{"isi-Gujarati"}
        Guru{"i-Gurmukhi"}
        Hang{"i-Hangul"}
        Hani{"i-Han"}
        Hans{"i-Simplified"}
        Hant{"Okosiko"}
        Hebr{"isi-Hebrew"}
        Hira{"i-Hiragana"}
        Jpan{"isi-Japanese"}
        Kana{"i-Katakana"}
        Khmr{"isi-Khmer"}
        Knda{"isi-Kannada"}
        Kore{"isi-Korean"}
        Laoo{"i-Lao"}
        Latn{"isi-Latin"}
        Mlym{"isi-Malayalam"}
        Mong{"isi-Mongolian"}
        Mymr{"i-Myanmar"}
        Orya{"isi-Oriya"}
        Sinh{"i-Sinhala"}
        Taml{"isi-Tamil"}
        Telu{"isi-Telugu"}
        Thaa{"i-Thaana"}
        Thai{"isi-Thai"}
        Tibt{"isi-Tibetan"}
        Zsym{"Amasimbuli"}
        Zxxx{"Okungabhaliwe"}
        Zyyy{"i-Common"}
        Zzzz{"Iskripthi esingaziwa"}
    }
    Scripts%stand-alone{
        Hans{"i-Simplified Han"}
        Hant{"i-Traditional Han"}
    }
    Types{
        calendar{
            buddhist{"i-Buddhist Calender"}
            chinese{"i-Chinese Calender"}
            coptic{"i-Coptic Calender"}
            ethiopic{"i-Ethipic Calender"}
            ethiopic-amete-alem{"i-Ethiopic Amete Alem Calender"}
            gregorian{"i-Gregorian Calender"}
            hebrew{"i-Hebrew Calender"}
            indian{"i-Indian National Calender"}
            islamic{"i-Islamic Calender"}
            islamic-civil{"i-Islamic-Civil Calendar"}
            japanese{"i-Japanese Calendar"}
            persian{"i-Persian Calendar"}
            roc{"i-Minguo Calender"}
        }
        colAlternate{
            non-ignorable{"Hlela Izimpawu"}
            shifted{"Hlela Ukuziba Izimpawu"}
        }
        colBackwards{
            no{"Hlela Izindlela Zokuphimisela Ngokujwayelekile"}
            yes{"Ukuhlelwa Kokuphimisela Kuhlehlisiwe"}
        }
        colCaseFirst{
            lower{"Hlela Okwezinhlamvu Eziphansi Kuqala"}
            no{"Hlela Ngokwenhlamvu Ezejwayelekile"}
            upper{"Hlela Izinhlamvu Ezinkulu Kuqala"}
        }
        colCaseLevel{
            no{"Hlela Okungancikile Ezinkinobhweni"}
            yes{"Hlela Okuncike Ekumeni Kwezinkinobho"}
        }
        colHiraganaQuaternary{
            no{"Hlela i-Kana Eceleni"}
            yes{"Hlela i-Kana Ngendlela Ehlukile"}
        }
        colNormalization{
            no{"Hlela Ngaphandle Kokulinganisa"}
            yes{"Ukuhlelwa Khekhodi Enye Kulinganisiwe"}
        }
        colNumeric{
            no{"Hlela Izinhlamvu Zenombolo Ngazinye"}
            yes{"Hlela Izinhlamvu Ngokwezinombolo"}
        }
        colStrength{
            identical{"Hlela konke"}
            primary{"Hlela Izinhlamvu Zaphansi Kuphela"}
            quaternary{"Hlola Ukuphimisela/Ukuma kwezinhlamvu/Ububanzi/i-Kana"}
            secondary{"Hlela Ukuphimisela"}
            tertiary{"Hlela Ukuphimisela/Ukuma kwezinhlamvu/Ububanzi"}
        }
        collation{
            big5han{"Ukuhlunga kwe-Traditional Chinese - Big5"}
            dictionary{"Ukuhlunga kwesichazimazwi"}
            ducet{"Ukuhlunga okuzenzakalelayo kwe-Unicode"}
            gb2312han{"Ukuhlunga kwe-Simplified Chinese - GB2312"}
            phonebook{"Ukuhlunga kwebhuku lefoni"}
            phonetic{"Hlela Ngokwefonetiki"}
            pinyin{"Ukuhlunga nge-Pinyin"}
            reformed{"Ukuhlunga okwenziwe kabusha"}
            search{"Usesho olujwayelekile"}
            searchjl{"Sesha nge-Hangul Ongwaqa Basekuqaleni"}
            standard{"I-oda yokuhlunga ejwayelekile"}
            stroke{"Ukuhlunga kwe-Stroke"}
            traditional{"Ukuhlunga ngokisiko"}
            unihan{"Ukuhlunga kwe-Radical-Stroke"}
        }
        numbers{
            arab{"i-Arabic-Indic Digits"}
            arabext{"i-Extended Arabic-Indic Digits"}
            armn{"i-Armenian Numerals"}
            armnlow{"i-Armenian Lowercase Numerals"}
            beng{"i-Bengali Digits"}
            deva{"i-Devanagari Digits"}
            ethi{"i-Ethiopic Numerals"}
            finance{"Izinombolo Zezomnotho"}
            fullwide{"i-Full Width Digits"}
            geor{"i-Georgian Numerals"}
            grek{"i-Greek Numerals"}
            greklow{"i-Greek Lowercase Numerals"}
            gujr{"i-Gujarati Digits"}
            guru{"i-Gurmukhi Digits"}
            hanidec{"i-Chinese Decimal Numerals"}
            hans{"i-Simplified Chinese Numerals"}
            hansfin{"i-Simplified Chinese Financial Numerals"}
            hant{"i-Traditional Chinese Numerals"}
            hantfin{"i-Traditional Chinese Financial Numerals"}
            hebr{"i-Hebrew Numerals"}
            jpan{"i-Japanese Numerals"}
            jpanfin{"i-Japanese Financial Numerals"}
            khmr{"i-Khmer Digits"}
            knda{"i-Kannada Digits"}
            laoo{"i-Lao Digits"}
            latn{"i-Western Digits"}
            mlym{"i-Malayalam Digits"}
            mong{"i-Mongolian Digits"}
            mymr{"i-Myanmar Digits"}
            native{"Izinkinobho Zasendaweni"}
            orya{"i-Oriya Digits"}
            roman{"i-Roman Numerals"}
            romanlow{"i-Roman Lowercase Numerals"}
            taml{"i-Tamil Numerals"}
            telu{"i-Telegu Digits"}
            thai{"i-Thai Digits"}
            tibt{"i-Tibetan Digits"}
            traditional{"Izinombolo Ezijwayelekile"}
            vaii{"Izinhlazu Zezinombolo ze-Vai"}
        }
    }
    Version{"2.0.98.76"}
    codePatterns{
        language{"{0}"}
        script{"{0}"}
        territory{"{0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
