﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
nn{
    %%Parent{"no"}
    Keys{
        collation{"sorteringsrekkjefølgje"}
        lb{"lineskiftstil"}
        numbers{"tal"}
    }
    Languages{
        alt{"sør-altaj"}
        ang{"gammalengelsk"}
        ar_001{"moderne standardarabisk"}
        asa{"asu (Tanzania)"}
        bas{"basa"}
        be{"kviterussisk"}
        bez{"bena (Tanzania)"}
        bss{"bakossi"}
        car{"carib"}
        ceb{"cebuano"}
        chg{"tsjagataisk"}
        chr{"cherokee"}
        ckb{"sorani"}
        crs{"seselwa (fransk-kreolsk)"}
        cu{"kyrkjeslavisk"}
        cv{"tsjuvansk"}
        den{"slavej"}
        dsb{"lågsorbisk"}
        ebu{"embu"}
        egy{"gammalegyptisk"}
        elx{"elamite"}
        fa_AF{"dari"}
        fil{"filippinsk"}
        fro{"gammalfransk"}
        frs{"austfrisisk"}
        fur{"friulisk"}
        gil{"gilbertese"}
        gmh{"mellomhøgtysk"}
        goh{"gammalhøgtysk"}
        grc{"gammalgresk"}
        gv{"manx"}
        hsb{"høgsorbisk"}
        kab{"kabyle"}
        kea{"kabuverdianu"}
        kl{"grønlandsk (kalaallisut)"}
        krc{"karachay-balkar"}
        kum{"kumyk"}
        lad{"ladino"}
        lez{"lezghian"}
        li{"limburgisk"}
        lrc{"nord-lurisk"}
        lus{"lushai"}
        luy{"olulujia"}
        mdf{"moksha"}
        mfe{"morisyen"}
        mg{"madagassisk"}
        mul{"fleire språk"}
        mzn{"mazanderani"}
        nds{"lågtysk"}
        nds_NL{"lågsaksisk"}
        ne{"nepalsk"}
        niu{"niuisk"}
        nl_BE{"flamsk"}
        nog{"nogai"}
        non{"gammalnorsk"}
        nqo{"n’ko"}
        nso{"nordsotho"}
        nwc{"klassisk newarisk"}
        pcm{"nigeriansk pidgin"}
        peo{"gammalpersisk"}
        pro{"gammalprovençalsk"}
        quc{"k’iche"}
        ro_MD{"moldavisk"}
        rup{"arumensk"}
        rw{"kinjarwanda"}
        sc{"sardinsk"}
        sga{"gammalirsk"}
        srn{"sranan tongo"}
        st{"sørsotho"}
        swb{"shimaore"}
        syr{"syrisk"}
        tiv{"tivi"}
        tkl{"tokelau"}
        tn{"tswana"}
        tog{"tonga (Nyasa)"}
        tvl{"tuvalu"}
        tyv{"tuvinisk"}
        tzm{"sentral-tamazight"}
        udm{"udmurt"}
        war{"waray"}
        xal{"kalmykisk"}
        zap{"zapotec"}
        zbl{"blissymbol"}
        zgh{"standard marokkansk tamazight"}
        zh_Hans{"forenkla kinesisk"}
        zh_Hant{"tradisjonell kinesisk"}
        zxx{"utan språkleg innhald"}
        zza{"zaza"}
    }
    Languages%long{
        zh_Hans{"forenkla mandarinkinesisk"}
        zh_Hant{"tradisjonell mandarinkinesisk"}
    }
    Languages%variant{
        ckb{"kurdisk (sorani)"}
    }
    Scripts{
        Armi{"armisk"}
        Cans{"felles kanadiske urspråksstavingar"}
        Cyrs{"kyrillisk (kyrkjeslavisk variant)"}
        Egyp{"egyptiske hieroglyfar"}
        Geok{"khutsuri (asomtavruli og nuskhuri)"}
        Hanb{"hanb"}
        Hans{"forenkla"}
        Hmng{"pahawk hmong"}
        Hrkt{"japansk stavingsskrifter"}
        Hung{"gammalungarsk"}
        Ital{"gammalitalisk"}
        Latf{"latinsk (frakturvariant)"}
        Latg{"latinsk (gælisk variant)"}
        Limb{"lumbu"}
        Maya{"maya-hieroglyfar"}
        Perm{"gammalpermisk"}
        Phlp{"salmepahlavi"}
        Sgnw{"teiknskrift"}
        Syrc{"syriakisk"}
        Syre{"syriakisk (estrangelo-variant)"}
        Syrj{"syriakisk (vestleg variant)"}
        Syrn{"syriakisk (austleg variant)"}
        Thaa{"thaana"}
        Visp{"synleg tale"}
        Xpeo{"gammalpersisk"}
        Xsux{"sumero-akkadisk kileskrift"}
        Zinh{"nedarva"}
        Zsym{"symbol"}
        Zxxx{"språk utan skrift"}
        Zzzz{"ukjend skrift"}
    }
    Scripts%stand-alone{
        Hans{"forenkla han"}
    }
    Types{
        calendar{
            islamic-civil{"islamsk sivil kalender"}
        }
        cf{
            account{"valutaformat for rekneskapsføring"}
        }
        collation{
            big5han{"tradisjonell kinesisk sortering"}
            ducet{"standard Unicode-sorteringsrekkjefølgje"}
            gb2312han{"forenkla kinesisk sortering"}
            pinyin{"pinyin-sortering"}
            standard{"standard sorteringsrekkjefølgje"}
        }
        hc{
            h11{"12-timesystem (0–11)"}
            h12{"12-timesystem (1–12)"}
            h23{"24-timesystem (0–23)"}
            h24{"24-timesystem (1–24)"}
        }
        lb{
            loose{"laus lineskiftstil"}
            normal{"normal lineskiftstil"}
            strict{"streng lineskiftstil"}
        }
        numbers{
            arab{"arabisk-indiske siffer"}
            arabext{"utvida arabisk-indiske siffer"}
            armn{"armenske tal"}
            armnlow{"små armenske tal"}
            beng{"bengalske siffer"}
            deva{"devanagari-siffer"}
            ethi{"etiopiske tal"}
            fullwide{"siffer med full breidd"}
            geor{"georgiske tal"}
            grek{"greske tal"}
            greklow{"små greske tal"}
            gujr{"gujarati-siffer"}
            guru{"gurmukhi-siffer"}
            hanidec{"kinesiske desimaltal"}
            hans{"forenkla kinesiske tal"}
            hansfin{"forenkla kinesiske finanstal"}
            hant{"tradisjonelle kinesiske tal"}
            hantfin{"tradisjonelle kinesiske finanstal"}
            hebr{"hebraiske tal"}
            jpan{"japanske tal"}
            jpanfin{"japanske finanstal"}
            khmr{"khmer-siffer"}
            knda{"kannada-siffer"}
            laoo{"laotiske siffer"}
            latn{"vestlege siffer"}
            mlym{"malayalam-siffer"}
            mymr{"burmesiske siffer"}
            orya{"odia-siffer"}
            roman{"romartal"}
            romanlow{"små romartal"}
            taml{"tamilske tal"}
            tamldec{"tamilske siffer"}
            telu{"telugu-siffer"}
            thai{"thailandske siffer"}
            tibt{"tibetanske siffer"}
        }
    }
    Variants{
        1606NICT{"nyare mellomfransk til 1606"}
        1996{"tysk ortografi frå 1996"}
        AREVELA{"austarmensk"}
        AREVMDA{"vestarmensk"}
        BAKU1926{"samla tyrkisk-latinsk alfabet"}
        FONIPA{"det internasjonale fonetiske alfabetet (IPA)"}
        FONUPA{"det uralske fonetiske alfabetet UPA"}
        LIPAW{"resian, lipovazdialekt"}
        REVISED{"revidert rettskriving"}
        SAAHO{"saaho-dialekt"}
        SCOUSE{"scouse-dialekt"}
        VALENCIA{"valensisk dialekt"}
    }
    characterLabelPattern{
        enclosed{"{0} – omslutta"}
        extended{"{0} – utvida"}
        other{"{0} – anna"}
        scripts{"skriftsystem – {0}"}
        strokes{
            one{"{0} strek"}
            other{"{0} strekar"}
        }
        subscript{"senka {0}"}
        superscript{"heva {0}"}
    }
}
