﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fur.xml
// *
// ***************************************************************************
fur{
    Keys{
        calendar{"calendari"}
        collation{"ordenament"}
        currency{"monede"}
    }
    Languages{
        aa{"afar"}
        ab{"abcazian"}
        ae{"avestan"}
        af{"afrikaans"}
        am{"amaric"}
        an{"aragonês"}
        ang{"vieri inglês"}
        ar{"arap"}
        arc{"aramaic"}
        as{"assamês"}
        ast{"asturian"}
        av{"avar"}
        ay{"aymarà"}
        az{"azerbaijani"}
        be{"bielorùs"}
        bg{"bulgar"}
        bn{"bengalês"}
        bo{"tibetan"}
        br{"breton"}
        bs{"bosniac"}
        ca{"catalan"}
        ce{"cecen"}
        ch{"chamorro"}
        co{"cors"}
        cop{"coptic"}
        cr{"cree"}
        cs{"cec"}
        cu{"sclâf de glesie"}
        cy{"galês"}
        da{"danês"}
        de{"todesc"}
        de_AT{"todesc de Austrie"}
        de_CH{"alt todesc de Svuizare"}
        den{"sclâf"}
        egy{"vieri egjizian"}
        el{"grêc"}
        en{"inglês"}
        en_AU{"inglês australian"}
        en_CA{"inglês canadês"}
        en_GB{"inglês britanic"}
        en_US{"ingles merecan"}
        eo{"esperanto"}
        es{"spagnûl"}
        es_419{"spagnûl de Americhe Latine"}
        es_ES{"spagnûl iberic"}
        et{"eston"}
        eu{"basc"}
        fa{"persian"}
        ff{"fulah"}
        fi{"finlandês"}
        fil{"filipin"}
        fj{"fizian"}
        fo{"faroês"}
        fr{"francês"}
        fr_CA{"francês dal Canade"}
        fr_CH{"francês de Svuizare"}
        fro{"vieri francês"}
        fur{"furlan"}
        fy{"frisian"}
        ga{"gaelic irlandês"}
        gd{"gaelic scozês"}
        gl{"galizian"}
        gn{"guaranì"}
        got{"gotic"}
        grc{"vieri grêc"}
        gu{"gujarati"}
        gv{"manx"}
        he{"ebraic"}
        hi{"hindi"}
        hr{"cravuat"}
        ht{"haitian"}
        hu{"ongjarês"}
        hy{"armen"}
        id{"indonesian"}
        ig{"igbo"}
        ik{"inupiaq"}
        io{"ido"}
        is{"islandês"}
        it{"talian"}
        iu{"inuktitut"}
        ja{"gjaponês"}
        ka{"gjeorgjian"}
        kk{"kazac"}
        kl{"kalaallisut"}
        km{"khmer"}
        kn{"kannada"}
        ko{"corean"}
        ku{"curd"}
        kw{"cornualiês"}
        la{"latin"}
        lad{"ladin"}
        lb{"lussemburghês"}
        li{"limburghês"}
        ln{"lingala"}
        lo{"lao"}
        lt{"lituan"}
        lv{"leton"}
        mg{"malagasy"}
        mi{"maori"}
        mk{"macedon"}
        ml{"malayalam"}
        mn{"mongul"}
        mr{"marathi"}
        ms{"malês"}
        mt{"maltês"}
        mul{"lenghis multiplis"}
        mwl{"mirandês"}
        nap{"napoletan"}
        nb{"norvegjês bokmål"}
        nd{"ndebele setentrionâl"}
        nds{"bas todesc"}
        ne{"nepalês"}
        nl{"olandês"}
        nl_BE{"flamant"}
        nn{"norvegjês nynorsk"}
        no{"norvegjês"}
        non{"vieri norvegjês"}
        nso{"sotho setentrionâl"}
        nv{"navajo"}
        oc{"ocitan"}
        or{"oriya"}
        os{"osetic"}
        ota{"turc otoman"}
        pa{"punjabi"}
        pap{"papiamento"}
        peo{"vieri persian"}
        pl{"polac"}
        pro{"vieri provenzâl"}
        ps{"pashto"}
        pt{"portughês"}
        pt_BR{"portughês brasilian"}
        pt_PT{"portughês iberic"}
        qu{"quechua"}
        rm{"rumanç"}
        ro{"romen"}
        ro_MD{"moldâf"}
        ru{"rus"}
        sa{"sanscrit"}
        sc{"sardegnûl"}
        scn{"sicilian"}
        sco{"scozês"}
        sd{"sindhi"}
        se{"sami setentrionâl"}
        sg{"sango"}
        sga{"vieri irlandês"}
        si{"sinalês"}
        sk{"slovac"}
        sl{"sloven"}
        sm{"samoan"}
        so{"somal"}
        sq{"albanês"}
        sr{"serp"}
        ss{"swati"}
        st{"sotho meridionâl"}
        su{"sundanês"}
        sux{"sumeric"}
        sv{"svedês"}
        sw{"swahili"}
        ta{"tamil"}
        te{"telegu"}
        tet{"tetum"}
        tg{"tagic"}
        th{"thai"}
        tk{"turcmen"}
        tl{"tagalog"}
        tr{"turc"}
        tt{"tartar"}
        ty{"tahitian"}
        ug{"uigur"}
        uk{"ucrain"}
        und{"indeterminade"}
        ur{"urdu"}
        uz{"uzbec"}
        ve{"venda"}
        vi{"vietnamite"}
        wa{"valon"}
        wo{"wolof"}
        xh{"xhosa"}
        yi{"yiddish"}
        yo{"yoruba"}
        zh{"cinês"}
        zh_Hans{"cinês semplificât"}
        zh_Hant{"cinês tradizionâl"}
        zu{"zulu"}
    }
    Scripts{
        Arab{"arap"}
        Armn{"armen"}
        Bali{"balinês"}
        Beng{"bengalês"}
        Brai{"Braille"}
        Bugi{"buginês"}
        Cans{"Silabari unificât aborigjens canadês"}
        Copt{"copt"}
        Cprt{"cipriot"}
        Cyrl{"cirilic"}
        Cyrs{"cirilic dal vieri slavonic de glesie"}
        Deva{"devanagari"}
        Egyd{"demotic egjizian"}
        Egyh{"jeratic egjizian"}
        Egyp{"jeroglifics egjizians"}
        Ethi{"etiopic"}
        Geor{"georgjian"}
        Glag{"glagolitic"}
        Goth{"gotic"}
        Grek{"grêc"}
        Gujr{"gujarati"}
        Hani{"han"}
        Hans{"Han semplificât"}
        Hant{"Han tradizionâl"}
        Hebr{"ebreu"}
        Hrkt{"katakana o hiragana"}
        Hung{"vieri ongjarês"}
        Ital{"vieri italic"}
        Java{"gjavanês"}
        Jpan{"gjaponês"}
        Khmr{"khmer"}
        Knda{"kannada"}
        Kore{"corean"}
        Laoo{"lao"}
        Latf{"latin Fraktur"}
        Latg{"latin gaelic"}
        Latn{"latin"}
        Lina{"lineâr A"}
        Linb{"lineâr B"}
        Maya{"jeroglifics Maya"}
        Mlym{"malayalam"}
        Mong{"mongul"}
        Mymr{"myanmar"}
        Orya{"oriya"}
        Runr{"runic"}
        Sinh{"sinhala"}
        Syrc{"siriac"}
        Syre{"siriac Estrangelo"}
        Syrj{"siriac ocidentâl"}
        Syrn{"siriac orientâl"}
        Taml{"tamil"}
        Telu{"telegu"}
        Tglg{"tagalog"}
        Thaa{"thaana"}
        Thai{"thai"}
        Tibt{"tibetan"}
        Ugar{"ugaritic"}
        Xpeo{"vieri persian"}
        Xsux{"cuneiform sumeric-acadic"}
        Zxxx{"codiç pes lenghis no scritis"}
        Zyyy{"comun"}
        Zzzz{"codiç par scrituris no codificadis"}
    }
    Types{
        calendar{
            buddhist{"calendari budist"}
            chinese{"calendari cinês"}
            gregorian{"calendari gregorian"}
            hebrew{"calendari ebreu"}
            indian{"calendari nazionâl indian"}
            islamic{"calendari islamic"}
            islamic-civil{"calendari islamic civîl"}
            japanese{"calendari gjaponês"}
            roc{"calendari de Republiche di Cine"}
        }
        collation{
            big5han{"ordin cinês tradizionâl - Big5"}
            ducet{"ordenament predeterminât Unicode"}
            gb2312han{"ordin cinês semplificât - GB2312"}
            phonebook{"ordin elenc telefonic"}
            pinyin{"ordin pinyin"}
            search{"ricercje par fins gjenerâi"}
            stroke{"ordin segns"}
            traditional{"ordin tradizionâl"}
        }
        numbers{
            latn{"numars ocidentâi"}
        }
    }
    Variants{
        1901{"Ortografie todescje tradizionâl"}
        1994{"Ortografie resiane standard"}
        1996{"Ortografie todescje dal 1996"}
        AREVELA{"armen orientâl"}
        AREVMDA{"armen ocidentâl"}
        BISKE{"dialet di San Zorç di Resie"}
        LIPAW{"dialet di Lipovaz dal resian"}
        NEDIS{"Dialet des valadis dal Nadison"}
        NJIVA{"dialet di Gnive"}
        OSOJS{"dialet di Oseac"}
        POLYTON{"Politoniche"}
        REVISED{"Ortografie revisade"}
        ROZAJ{"Resian"}
        SOLBA{"dialet di Stolvize"}
        VALENCIA{"valenzian"}
    }
    Version{"2.1.10.93"}
    codePatterns{
        language{"Lenghe: {0}"}
        script{"Scriture: {0}"}
        territory{"Regjon: {0}"}
    }
    localeDisplayPattern{
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
