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

fi {
    CollationElements { 
	    Version { "1.0" }
		Override { "FALSE" }
		Sequence { "& V ; w , W & Z < a\u030A , A\u030A< a\u0308 , A\u0308 "
        "< o\u0308 , O\u0308< o\u030B , O\u030B ; \u00F8 , \u00D8&  Y ; u\u030B, U\u030B"
        " ; u\u0308 , U\u0308" }
	}
    Countries { 
        FI { "Suomi" }
    }
    DateTimeElements { 
            "2",
            "4",
    }
    DateTimePatterns { 
            "H:mm:ss z",
            "H:mm:ss z",
            "H:mm:ss",
            "H: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",
    }
    Languages { 
        fi { "suomi" }
    }
    LocaleID { "0b" }
    LocaleString { "f" }
    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",
    }
    ShortLanguage { "fin" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
