﻿// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

fi {
    Version { "3.0" }
    collations {
      standard { 
        Version { "2.0" }
        Sequence { 
            "&D<<đ<<<Đ<<ð<<<Ð"
            "&t<<<þ/h"
            "&T<<<Þ/H"
            "&Y<<ü<<<Ü<<ű<<<Ű"
            "&[before 1]ʒ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę"
            "<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"
        }
      }
    }
    Countries { 
        Fallback{ "en"}
        AE { "Arabiemiirikunnat" }
        //AE { "Yhdistyneet Arabiemiraatit" } // Old value
        AF { "Afganistan" }
        AG { "Antigua ja Barbuda" }
        AN { "Alankomaiden Antillit" }
        AQ { "Antarktis" }
        AR { "Argentiina" }
        AS { "Amerikan Samoa" }
        AT { "It\u00E4valta" }
        AZ { "Azerbaidzan" }
        BA { "Bosnia ja Hertsegovina" }
        BE { "Belgia" }
        BR { "Brasilia" }
        BS { "Bahama" }
        BV { "Bouvet'nsaari" }
        BY { "Valko-Ven\u00E4j\u00E4" }
        CA { "Kanada" }
        CC { "Kookossaaret" }
        CD { "Kongon demokraattinen tasavalta" }
        CF { "Keski-Afrikan tasavalta" }
        CG { "Kongo" }
        CH { "Sveitsi" }
        CI { "Norsunluurannikko" }
        CK { "Cookinsaaret" }
        CM { "Kamerun" }
        CN { "Kiina" }
        CO { "Kolumbia" }
        CU { "Kuuba" }
        CV { "Kap Verde" }
        CX { "Joulusaari" }
        CY { "Kypros" }
        CZ { "Tsekin tasavalta" }
        DE { "Saksa" }
        DK { "Tanska" }
        DO { "Dominikaaninen tasavalta" }
        EC { "Equador" }
        EE { "Viro" }
        EG { "Egypti" }
        EH { "L\u00E4nsi-Sahara" }
        ES { "Espanja" }
        ET { "Etiopia" }
        FI { "Suomi" }
        FJ { "Fidzi" }
        FK { "Falklandinsaaret" }
        FM { "Mikronesia" }
        FO { "F\u00E4rsaaret" }
        FR { "Ranska" }
        GB { "Iso-Britannia" }
        GF { "Ranskan Guayana" }
        GL { "Gr\u00F6nlanti" }
        GQ { "P\u00E4iv\u00E4ntasaajan Guinea" }
        GR { "Kreikka" }
        GS { "Etel\u00E4-Georgia ja Etel\u00E4iset Sandwichsaaret" }
        HK { "Hongkongin erityishallintoalue" }
        //HK { "Hongknog, erit.hall.alue" } // Old value
        HM { "Heard ja McDonaldinsaaret" }
        HR { "Kroatia" }
        HU { "Unkari" }
        IE { "Irlanti" }
        IN { "Intia" }
        IO { "Brittil\u00E4inen Intian valtameren alue" }
        IQ { "Irak" }
        IS { "Islanti" }
        IT { "Italia" }
        JO { "Jordania" }
        JP { "Japani" }
        KE { "Kenia" }
        KG { "Kirgisia" }
        KH { "Kambodza" }
        KM { "Komorit" }
        KN { "Saint Kitts ja Nevis" }
        KP { "Pohjois-Korea" }    // alternate name { "Korean demokraattinen kansantasavalta" }
        KR { "Etel\u00E4-Korea" }    // alternate name { "Korean tasavalta" }
        KY { "Caymansaaret" }
        KZ { "Kazakstan" }
        LA { "Laos" }
        LB { "Libanon" }
        LT { "Liettua" }
        LU { "Luxemburg" }
        MA { "Marokko" }
        MG { "Madagaskar" }
        MH { "Marshallinsaaret" }
        MK { "Makedonia" }
        //MK { "Makedonia (FYR)" } // Old value
        //MO { "Macao, erit.hall.alue" } // Old value
        MO { "Macaon erityishallintoalue" }
        MP { "Pohjois-Mariaanit" }
        MV { "Malediivit" }
        MX { "Meksiko" }
        MY { "Malesia" }
        MZ { "Mosambik" }
        NC { "Uusi-Kaledonia" }
        NF { "Norfolkinsaari" }
        NL { "Alankomaat" }
        NO { "Norja" }
        NZ { "Uusi Seelanti" }
        //NZ { "Uusi-Seelanti" } // From translation center
        PF { "Ranskan Polynesia" }
        PG { "Papua-Uusi-Guinea" }
        PH { "Filippiinit" }
        PL { "Puola" }
        PM { "Saint-Pierre ja Miquelon" }
        PS { "Palestiina" }
        PT { "Portugali" }
        RU { "Ven\u00e4j\u00e4" }
        RW { "Ruanda" }
        SA { "Saudi-Arabia" }
        SB { "Salomonsaaret" }
        SC { "Seychellit" }
        SE { "Ruotsi" }
        SJ { "Huippuvuoret ja Jan Mayen" }
        ST { "Sao Tome ja Principe" }
        SY { "Syyria" }
        SZ { "Swazimaa" }
        TC { "Turks- ja Caicossaaret" }
        TD { "Tsad" }
        TF { "Ranskan etel\u00E4iset alueet" }
        TH { "Thaimaa" }
        TJ { "Tadzikistan" }
        TL { "It\u00E4-Timor" }
        //TM { "Turkmenistan" }
        TR { "Turkki" }
        TT { "Trinidad ja Tobago" }
        TW { "Kiinan maakunta Taiwan" }
        TZ { "Tansania" }
        UA { "Ukraina" }
        UM { "Yhdysvaltain pienet erillissaaret" }
        US { "Yhdysvallat" }
        VA { "Vatikaani" }
        VC { "Saint Vincent ja Grenadiinit" }
        VG { "Brittil\u00E4iset Neitsytsaaret" }
        VI { "Yhdysvaltain Neitsytsaaret" }
        WF { "Wallis ja Futuna" }
        YE { "Jemen" }
        YU { "Jugoslavia" }
        ZA { "Etel\u00E4-Afrikka" }
        ZM { "Sambia" }
    }
    Languages { 
        af { "afrikanhollanti" }
        am { "amharan kieli" }
        ar { "arabia" }
        az { "azerbaizani" }
        be { "valkoven\u00e4j\u00e4" }
        bg { "bulgaria" }
        bh { "bihari" }
        bn { "bengali" }
        ca { "katalaani" }
        cs { "tsekki" }
        da { "tanska" }
        de { "saksa" }
        el { "kreikka" }
        en { "englanti" }
        eo { "esperanto" }
        es { "espanja" }
        et { "viro" }
        eu { "baski" }
        fa { "farsi" }
        fi { "suomi" }
        fo { "f\u00e4\u00e4ri" }
        fr { "ranska" }
        ga { "iiri" }
        gl { "galicia" }
        gu { "gujarati" }
        gv { "manx" }
        haw { "havaiji" }
        he { "heprea" }
        hi { "hindi" }
        hr { "kroaatti" }
        hu { "unkari" }
        hy { "armenia" }
        id { "indonesia" }
        is { "islanti" }
        it { "italia" }
        iu { "eskimo" }
        ja { "japani" }
        ka { "georgia" }
        kk { "kazakki" }
        kl { "gr\u00f6\u00f6nlandi" }
        km { "khmer" }
        kn { "kannada" }
        ko { "korea" }
        ku { "kurdi" }
        kw { "korni" }
        la { "latina" }
        lt { "liettua" }
        lv { "latvia" }
        mk { "makedonia" }
        mr { "marathi" }
        mt { "malta" }
        my { "burma" }
        nb { "kirjanorja" }
        nl { "hollanti" }
        no { "norja" }
        nn { "uusnorja" }
        om { "oromo" }
        pl { "puola" }
        pt { "portugali" }
        ro { "romania" }
        ru { "ven\u00e4j\u00e4" }
        sh { "serbokroatia" }
        sk { "slovakki" }
        sl { "sloveeni" }
        so { "somali" }
        sq { "albania" }
        sr { "serbia" }
        sv { "ruotsi" }
        sw { "suahili" }
        ta { "tamili" }
        te { "telugu" }
        th { "thai" }
        ti { "tigrinja" }
        tk { "tagalog" }
        tr { "turkki" }
        uk { "ukraina" }
        ur { "urdu" }
        uz { "uzbekki" }
        vi { "vietnam" }
        zh { "kiina" }
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "d. MMMM'ta 'yyyy",
        "d. MMMM'ta 'yyyy",
        "d.M.yyyy",
        "d.M.yyyy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "su",
        "ma",
        "ti",
        "ke",
        "to",
        "pe",
        "la",
    }
    DayNames { 
        "sunnuntai",
        "maanantai",
        "tiistai",
        "keskiviikko",
        "torstai",
        "perjantai",
        "lauantai",
    }
    MonthAbbreviations { 
        "tammi",
        "helmi",
        "maalis",
        "huhti",
        "touko",
        "kes\u00E4",
        "hein\u00E4",
        "elo",
        "syys",
        "loka",
        "marras",
        "joulu",
    }
    MonthNames { 
        "tammikuu",
        "helmikuu",
        "maaliskuu",
        "huhtikuu",
        "toukokuu",
        "kes\u00E4kuu",
        "hein\u00E4kuu",
        "elokuu",
        "syyskuu",
        "lokakuu",
        "marraskuu",
        "joulukuu",
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }

    ExemplarCharacters { "[a-z \u00e4 \u00f6]" }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }

    // Currency display names
    Currencies {
        FIM { "mk", "FIM" }
    }
    // International Calendars Data.
    // NOTE (ICU 2.6) - the format of this data WILL CHANGE in future releases.
    MonthNames_islamic {
            "Muh\u00E1rram",                // Muharram
            "S\u00E1far",                   // Safar
            "Rab\u00ED' al-\u00E1wwal",     // Rabi' al-awwal
            "Rab\u00ED' al-\u00E1khir",     // Rabi' al-thani
            "D\u017Eumada-l-\u00FAla",      // Jumada al-awwal
            "D\u017Eumada-l-\u00E1khira",   // Jumada al-thani
            "Rad\u017Eab",                  // Rajab
            "\u0160a'b\u00E1n",             // Sha'ban
            "Ramad\u00E1n",                 // Ramadan
            "\u0160awwal",                  // Shawwal
            "Dhu-l-qada",                   // Dhu al-Qi'dah
            "Dhu-l-hidd\u017Ea"            // Dhu al-Hijjah
    }
    //Eras_islamic {
    //    "AH"   // Anno Hid\u017Era (in root)
    //}
    MonthAbbreviations_islamic:alias {  // same as MonthNames (no data)
        "fi/MonthNames_islamic"
    }   
    // Civil is identical other than in calculations
    MonthNames_islamic-civil:alias {
        "fi/MonthNames_islamic"
    }
    MonthAbbreviations_islamic-civil:alias {
        "fi/MonthAbbreviations_islamic"
    }

    MonthNames_hebrew {
                "Ti\u0161r\u00ECkuu",       // Tishri
                "He\u0161v\u00E1nkuu",      // Heshvan
                "Kisl\u00E9vkuu",           // Kislev
                "Tev\u00E9tkuu",            // Tevet
                "\u0160evatkuu",            // Shevat
                "Ad\u00E1rkuu",             // Adar I
                "Ad\u00E1rkuu II",          // Adar
                "Nis\u00E1nkuu",            // Nisan
                "Ijj\u00E1rkuu",            // Iyar
                "Siv\u00E1nkuu",            // Sivan
                "Tamm\u00FAzkuu",           // Tamuz
                "Abkuu",                    // Av
                "El\u00FAlkuu",             // Elul
    }
    MonthAbbreviations_hebrew:alias {
       "fi/MonthNames_hebrew" // no data
    }

}
