﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/kde.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/kde.xml
 */
kde{
    Languages{
        ak{"Chakan"}
        am{"Chamhali"}
        ar{"Chalabu"}
        be{"Chibelalusi"}
        bg{"Chibulgalia"}
        bn{"Chibangla"}
        cs{"Chichechi"}
        de{"Chidyelumani"}
        el{"Chigilichi"}
        en{"Chiingeleza"}
        es{"Chihispania"}
        fa{"Chiajemi"}
        fr{"Chifalansa"}
        ha{"Chihausa"}
        hi{"Chihindi"}
        hu{"Chihungali"}
        id{"Chiiongonesia"}
        ig{"Chiigbo"}
        it{"Chiitaliano"}
        ja{"Chidyapani"}
        jv{"Chidyava"}
        kde{"Chimakonde"}
        km{"Chikambodia"}
        ko{"Chikolea"}
        ms{"Chimalesia"}
        my{"Chibulma"}
        ne{"Chinepali"}
        nl{"Chiholanzi"}
        pa{"Chipunjabi"}
        pl{"Chipolandi"}
        pt{"Chileno"}
        ro{"Chilomania"}
        ru{"Chilusi"}
        rw{"Chinyalwanda"}
        so{"Chisomali"}
        sv{"Chiswidi"}
        ta{"Chitamil"}
        th{"Chitailandi"}
        tr{"Chituluchi"}
        uk{"Chiuklania"}
        ur{"Chiuldu"}
        vi{"Chivietinamu"}
        yo{"Chiyoluba"}
        zh{"Chichina"}
        zu{"Chizulu"}
    }
    Version{"2.0.45.90"}
}
