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

id {
    Version { "1.0" }
    DayAbbreviations {
        "Minggu",
        "Sen",
        "Sel",
        "Rabu",
        "Kamis",
        "Jumat",
        "Sabtu",
    }
    DayNames {
        "Minggu",
        "Senin",
        "Selasa",
        "Rabu",
        "Kamis",
        "Jumat",
        "Sabtu",
    }
    MonthAbbreviations {
        "Jan",
        "Feb",
        "Mar",
        "Apr",
        "Mei",
        "Jun",
        "Jul",
        "August",
        "Sep",
        "Okt",
        "Nov",
        "Des",
    }
    MonthNames {
        "Januari",
        "Februari",
        "Maret",
        "April",
        "Mei",
        "Juni",
        "Juli",
        "Agustus",
        "September",
        "Oktober",
        "November",
        "Desember",
    }
    NumberElements {
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
    }
    NumberPatterns {
        "#,##0.###;-#,##0.###",
        "\u00a4#,##0.00;-\u00a4#,##0.00",
        "#,##0%",
        "#E0",
    }
    LocaleID:int { 0x21 }
//    LocaleScript{ 
//        "Latn",  // ISO 15924 Name 
//    }
    // /**************** Info Below is needed ****************/
    // CollationElements{}
    // Countries{}
    // Eras{}
    // Languages{}
    // ShortLanguage { }
    // localPatternChars{}
    //

    // Currency display names
    Currencies {
        IDR { "Rp", "IDR" }
    }
}
