﻿// ***************************************************************************
// *
// * 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"}
        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"}
        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.59.68"}
}
