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

ko_KR {
    Version { "2.0" }
    NumberPatterns { 
        "#,##0.###;-#,##0.###",
        "\u00A4#,##0.00;-\u00A4#,##0.00",
        "#,##0%",
        "#E0",
    }
//    Countries {
        //KR { "\uB300\uD55C\uBBFC\uAD6D" }
        //KP { "\uC870\uC120 \uBBFC\uC8FC\uC8FC\uC758 \uC778\uBBFC \uACF5\uD654\uAD6D" }
        //US { "\uBBF8\uAD6D" }
        //JP { "\uC77C\uBCF8" }
        //GB { "\uC601\uAD6D" }
        //DE { "\uB3C5\uC77C" }
        //FR { "\uD504\uB791\uC2A4" }
        //CA { "\uCE90\uB098\uB2E4" }
//    }
    DateTimePatterns {
        "a hh'\uC2DC' mm'\uBD84' ss'\uCD08' z",
        "a hh'\uC2DC' mm'\uBD84' ss'\uCD08'",
        "a h:mm:ss",
        "a h:mm",
        "yyyy'\uB144' M'\uC6D4' d'\uC77C' EEEE",
        "yyyy'\uB144' M'\uC6D4' d'\uC77C'",
        "yyyy. MM. dd",
        "yy. MM. dd",
        "{1} {0}",
    }

//    Languages {
//         ko { "\uD55C\uAD6D\uC5B4" }
//    }

}
