﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/fi.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/fi.xml
 */
fi{
    Countries{
        001{"maailma"}
        002{"Afrikka"}
        003{"Pohjois-Amerikka"}
        005{"Etelä-Amerikka"}
        009{"Oseania"}
        011{"Länsi-Afrikka"}
        013{"Väli-Amerikka"}
        014{"Itä-Afrikka"}
        015{"Pohjois-Afrikka"}
        017{"Keski-Afrikka"}
        018{"eteläinen Afrikka"}
        019{"Amerikka"}
        021{"pohjoinen Amerikka"}
        029{"Karibia"}
        030{"Itä-Aasia"}
        034{"Etelä-Aasia"}
        035{"Kaakkois-Aasia"}
        039{"Etelä-Eurooppa"}
        053{"Australia ja Uusi-Seelanti"}
        054{"Melanesia"}
        057{"Mikronesia"}
        061{"Polynesia"}
        062{"Etelä- ja Keski-Aasia"}
        142{"Aasia"}
        143{"Keski-Aasia"}
        145{"Länsi-Aasia"}
        150{"Eurooppa"}
        151{"Itä-Eurooppa"}
        154{"Pohjois-Eurooppa"}
        155{"Länsi-Eurooppa"}
        172{"Itsenäisten valtioiden yhteisö"}
        419{"Latinalainen Amerikka ja Karibia"}
        830{"Kanaalisaaret"}
        AC{"Ascension-saari"}
        AD{"Andorra"}
        AE{"Arabiemiirikunnat"}
        AF{"Afganistan"}
        AG{"Antigua ja Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Alankomaiden Antillit"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentiina"}
        AS{"Amerikan Samoa"}
        AT{"Itävalta"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Ahvenanmaa"}
        AZ{"Azerbaidžan"}
        BA{"Bosnia ja Hertsegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bulgaria"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint-Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BR{"Brasilia"}
        BS{"Bahama"}
        BT{"Bhutan"}
        BV{"Bouvet’nsaari"}
        BW{"Botswana"}
        BY{"Valko-Venäjä"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kookossaaret"}
        CD{"Kongon demokraattinen tasavalta"}
        CF{"Keski-Afrikan tasavalta"}
        CG{"Kongon tasavalta"}
        CH{"Sveitsi"}
        CI{"Norsunluurannikko"}
        CK{"Cookinsaaret"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"Kiina"}
        CO{"Kolumbia"}
        CP{"Clippertoninsaari"}
        CR{"Costa Rica"}
        CS{"Serbia ja Montenegro"}
        CU{"Kuuba"}
        CV{"Kap Verde"}
        CX{"Joulusaari"}
        CY{"Kypros"}
        CZ{"Tšekki"}
        DE{"Saksa"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Tanska"}
        DM{"Dominica"}
        DO{"Dominikaaninen tasavalta"}
        DZ{"Algeria"}
        EA{"Ceuta ja Melilla"}
        EC{"Ecuador"}
        EE{"Viro"}
        EG{"Egypti"}
        EH{"Länsi-Sahara"}
        ER{"Eritrea"}
        ES{"Espanja"}
        ET{"Etiopia"}
        EU{"EU"}
        FI{"Suomi"}
        FJ{"Fidži"}
        FK{"Falklandinsaaret"}
        FM{"Mikronesian liittovaltio"}
        FO{"Färsaaret"}
        FR{"Ranska"}
        GA{"Gabon"}
        GB{"Britannia"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"Ranskan Guayana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grönlanti"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Päiväntasaajan Guinea"}
        GR{"Kreikka"}
        GS{"Etelä-Georgia ja Eteläiset Sandwichsaaret"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong – Kiinan e.h.a."}
        HM{"Heard- ja McDonaldinsaaret"}
        HN{"Honduras"}
        HR{"Kroatia"}
        HT{"Haiti"}
        HU{"Unkari"}
        IC{"Kanariansaaret"}
        ID{"Indonesia"}
        IE{"Irlanti"}
        IL{"Israel"}
        IM{"Mansaari"}
        IN{"Intia"}
        IO{"Brittiläinen Intian valtameren alue"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Islanti"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Jamaika"}
        JO{"Jordania"}
        JP{"Japani"}
        KE{"Kenia"}
        KG{"Kirgisia"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komorit"}
        KN{"Saint Kitts ja Nevis"}
        KP{"Pohjois-Korea"}
        KR{"Etelä-Korea"}
        KW{"Kuwait"}
        KY{"Caymansaaret"}
        KZ{"Kazakstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Liettua"}
        LU{"Luxemburg"}
        LV{"Latvia"}
        LY{"Libya"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"Saint-Martin"}
        MG{"Madagaskar"}
        MH{"Marshallinsaaret"}
        MK{"Makedonia"}
        ML{"Mali"}
        MM{"Myanmar [Burma]"}
        MN{"Mongolia"}
        MO{"Macao – Kiinan e.h.a."}
        MP{"Pohjois-Mariaanit"}
        MQ{"Martinique"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Malediivit"}
        MW{"Malawi"}
        MX{"Meksiko"}
        MY{"Malesia"}
        MZ{"Mosambik"}
        NA{"Namibia"}
        NC{"Uusi-Kaledonia"}
        NE{"Niger"}
        NF{"Norfolkinsaari"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Alankomaat"}
        NO{"Norja"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Uusi-Seelanti"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Ranskan Polynesia"}
        PG{"Papua-Uusi-Guinea"}
        PH{"Filippiinit"}
        PK{"Pakistan"}
        PL{"Puola"}
        PM{"Saint-Pierre ja Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palestiina"}
        PT{"Portugali"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"ulkomeri"}
        RE{"Réunion"}
        RO{"Romania"}
        RS{"Serbia"}
        RU{"Venäjä"}
        RW{"Ruanda"}
        SA{"Saudi-Arabia"}
        SB{"Salomonsaaret"}
        SC{"Seychellit"}
        SD{"Sudan"}
        SE{"Ruotsi"}
        SG{"Singapore"}
        SH{"Saint Helena"}
        SI{"Slovenia"}
        SJ{"Huippuvuoret ja Jan Mayen"}
        SK{"Slovakia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        ST{"São Tomé ja Príncipe"}
        SV{"El Salvador"}
        SY{"Syyria"}
        SZ{"Swazimaa"}
        TA{"Tristan da Cunha"}
        TC{"Turks- ja Caicossaaret"}
        TD{"Tšad"}
        TF{"Ranskan ulkopuoliset eteläiset alueet"}
        TG{"Togo"}
        TH{"Thaimaa"}
        TJ{"Tadžikistan"}
        TK{"Tokelau"}
        TL{"Itä-Timor"}
        TM{"Turkmenistan"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Turkki"}
        TT{"Trinidad ja Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tansania"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"Yhdysvaltain pienet erillissaaret"}
        US{"Yhdysvallat"}
        UY{"Uruguay"}
        UZ{"Uzbekistan"}
        VA{"Vatikaani"}
        VC{"Saint Vincent ja Grenadiinit"}
        VE{"Venezuela"}
        VG{"Brittiläiset Neitsytsaaret"}
        VI{"Yhdysvaltain Neitsytsaaret"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis ja Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Etelä-Afrikka"}
        ZM{"Sambia"}
        ZW{"Zimbabwe"}
        ZZ{"tuntematon tai virheellinen alue"}
    }
    Version{"2.0.58.6"}
}
