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

hu {
    Version{ "1.1" }
    AmPmMarkers { 
        "DE",
        "DU",
    }
    CollationElements { 
        Version { "1.0" }
        Sequence { "& C < cs <<< cS <<< Cs <<< CS & D < \u0111<<< \u0110 "
        "& G < gy<<< gY<<< Gy<<< GY & L < ly<<< lY<<< Ly<<< LY"
        "& O < o\u0308 <<< O\u0308 < o\u030B <<< O\u030B"
        "& S < sz <<< sZ <<< Sz <<< SZ & U < u\u0308 <<< U\u0308 < u\u030B <<< U\u030B"
        "& Z < zs <<< zS <<< Zs <<< ZS" }
    }
    Countries { 
        HU { "Magyarorsz\u00E1g" }
    }
    DateTimePatterns { 
        "H:mm:ss z",
        "H:mm:ss z",
        "H:mm:ss",
        "H:mm",
        "yyyy. MMMM d.",
        "yyyy. MMMM d.",
        "yyyy.MM.dd.",
        "yyyy.MM.dd.",
        "{1} {0}",
    }
    DateTimeElements:intvector {
        2,
        1, // "Minimal Days in First Week" is unknown. Root value used instead
    }
    DayAbbreviations { 
        "V",
        "H",
        "K",
        "Sze",
        "Cs",
        "P",
        "Szo",
    }
    DayNames { 
        "vas\u00E1rnap",
        "h\u00E9tf\u0151",
        "kedd",
        "szerda",
        "cs\u00FCt\u00F6rt\u00F6k",
        "p\u00E9ntek",
        "szombat",
    }
    Eras { 
        "i.e.",
        "i.u.",
    }
    Languages { 
        hu { "magyar" }
    }
    LocaleID:int { 0x0e }
//    LocaleString { "hu" }
    MonthAbbreviations { 
        "jan.",
        "febr.",
        "m\u00E1rc.",
        "\u00E1pr.",
        "m\u00E1j.",
        "j\u00FAn.",
        "j\u00FAl.",
        "aug.",
        "szept.",
        "okt.",
        "nov.",
        "dec.",
    }
    MonthNames { 
        "janu\u00E1r",
        "febru\u00E1r",
        "m\u00E1rcius",
        "\u00E1prilis",
        "m\u00E1jus",
        "j\u00FAnius",
        "j\u00FAlius",
        "augusztus",
        "szeptember",
        "okt\u00F3ber",
        "november",
        "december",
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
    }
//    ShortLanguage { "hun" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
//    LocaleScript{
//        "Latn",  // ISO 15924 Name 
//    }
    ExemplarCharacters { "[a-z \u00e1 \u00e9 \u00ed \u00f3 \u00fa \u00f6 \u00fc \u0151 \u0171]" }

    // Currency display names
    Currencies {
        HUF { "Ft", "HUF" }
    }
}
