﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/se_FI.xml
// *
// ***************************************************************************
se_FI{
    Languages{
        ace{"ačehgiella"}
        ar_001{"standárda arábagiella"}
        be{"vilgesruoššagiella"}
        bn{"bengalagiella"}
        de_AT{"nuortariikkalaš duiskkagiella"}
        de_CH{"šveicalaš duiskkagiella"}
        en_AU{"austrálialaš eaŋgalsgiella"}
        en_CA{"kanádalaš eaŋgalsgiella"}
        en_GB{"brihttalaš eaŋgalsgiella"}
        en_US{"amerihkálaš eaŋgalsgiella"}
        es_419{"latiinna-amerihkalaš spánskkagiella"}
        es_ES{"espánjalaš spánskkagiella"}
        es_MX{"meksikolaš spánskkagiella"}
        fj{"fižigiella"}
        fr_CA{"kanádalaš fránskkagiella"}
        fr_CH{"šveicalaš fránskkagiella"}
        hy{"armenagiella"}
        kk{"kazakhgiella"}
        km{"kambožagiella"}
        ne{"nepalagiella"}
        nl_BE{"belgialaš hollánddagiella"}
        pa{"panjabagiella"}
        pt_BR{"brasilialaš portugálagiella"}
        pt_PT{"portugálalaš portugálagiella"}
        ro_MD{"moldávialaš romániagiella"}
        swb{"komoragiella"}
        th{"thaigiella"}
        vi{"vietnamagiella"}
        zh_Hans{"álkes kiinnágiella"}
    }
    LanguagesShort{
        en_GB{"brihttalaš eaŋgalsgiella"}
        en_US{"amerihkálaš eaŋgalsgiella"}
    }
    Scripts{
        Arab{"arábalaš"}
        Hani{"kiinnálaš"}
        Hans{"álkes kiinnálaš"}
        Hant{"árbevirolaš kiinnálaš"}
        Zxxx{"orrut čállojuvvot"}
        Zzzz{"dovdameahttun čállin"}
    }
    Scripts%stand-alone{
        Hans{"álkes kiinnálaš"}
        Hant{"árbevirolaš kiinnálaš"}
    }
    Types{
        calendar{
            buddhist{"buddhista kaleandar"}
            chinese{"kiinná kaleandar"}
            coptic{"koptalaš kaleandar"}
            dangi{"dangi kaleandar"}
            ethiopic{"etiohpalaš kaleandar"}
            ethiopic-amete-alem{"etiohpalaš-amete-alem kaleandar"}
            gregorian{"gregorialaš kalendar"}
        }
        numbers{
            fullwide{"fullwide"}
        }
    }
    Version{"2.1.8.19"}
    codePatterns{
        script{"čállin: {0}"}
    }
}
