﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fi.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/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{"Australaasia"}
        054{"Melanesia"}
        057{"Mikronesia"}
        061{"Polynesia"}
        142{"Aasia"}
        143{"Keski-Aasia"}
        145{"Länsi-Aasia"}
        150{"Eurooppa"}
        151{"Itä-Eurooppa"}
        154{"Pohjois-Eurooppa"}
        155{"Länsi-Eurooppa"}
        419{"Latinalainen Amerikka"}
        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"}
        BQ{"Karibian Alankomaat"}
        BR{"Brasilia"}
        BS{"Bahama"}
        BT{"Bhutan"}
        BV{"Bouvet’nsaari"}
        BW{"Botswana"}
        BY{"Valko-Venäjä"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kookossaaret (Keelingsaaret)"}
        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"}
        CU{"Kuuba"}
        CV{"Kap Verde"}
        CW{"Curaçao"}
        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{"Euroopan unioni"}
        FI{"Suomi"}
        FJ{"Fidži"}
        FK{"Falklandinsaaret"}
        FM{"Mikronesian liittovaltio"}
        FO{"Färsaaret"}
        FR{"Ranska"}
        GA{"Gabon"}
        GB{"Yhdistynyt kuningaskunta"}
        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"}
        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"}
        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"}
        SS{"Etelä-Sudan"}
        ST{"São Tomé ja Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        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 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"}
        XK{"Kosovo"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Etelä-Afrikka"}
        ZM{"Sambia"}
        ZW{"Zimbabwe"}
        ZZ{"tuntematon alue"}
    }
    CountriesShort{
        GB{"Britannia"}
        US{"USA"}
    }
    Version{"2.0.98.52"}
}
