﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/id.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/id.xml
 */
id{
    AuxExemplarCharacters{"[]"}
    ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.0.61.44"}
    calendar{
        buddhist{
            DateTimePatterns{
                "H:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, dd MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E, d"}
                MEd{"E, d-M"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d-M"}
                yM{"M/y G"}
                yMEd{"EEE, d/M/y G"}
                yMMM{"MMM y G"}
                yMMMEd{"EEE, d MMM y G"}
                yMMMd{"d MMM y G"}
            }
        }
        gregorian{
            AmPmMarkers{
                "pagi",
                "malam",
            }
            DateTimePatterns{
                "H:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, dd MMMM yyyy",
                "d MMMM yyyy",
                "d MMM yyyy",
                "dd/MM/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Ed{"E, d"}
                MEd{"E, d/M"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                yM{"M/y"}
                yMEd{"EEE, d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Min",
                        "Sen",
                        "Sel",
                        "Rab",
                        "Kam",
                        "Jum",
                        "Sab",
                    }
                    wide{
                        "Minggu",
                        "Senin",
                        "Selasa",
                        "Rabu",
                        "Kamis",
                        "Jumat",
                        "Sabtu",
                    }
                }
                stand-alone{
                    narrow{
                        "M",
                        "S",
                        "S",
                        "R",
                        "K",
                        "J",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "SM",
                    "M",
                }
            }
            fields{
                day{
                    dn{"Hari"}
                    relative{
                        "-1"{"Kemarin"}
                        "-2"{"Kemarin lusa"}
                        "0"{"Hari Ini"}
                        "1"{"Besok"}
                        "2"{"Lusa"}
                    }
                }
                dayperiod{
                    dn{"Siang/Malam"}
                }
                hour{
                    dn{"Jam"}
                }
                minute{
                    dn{"Menit"}
                }
                month{
                    dn{"Bulan"}
                    relative{
                        "-1"{"Bulan lalu"}
                        "0"{"Bulan ini"}
                        "1"{"Bulan berikutnya"}
                    }
                }
                second{
                    dn{"Detik"}
                }
                week{
                    dn{"Minggu"}
                    relative{
                        "-1"{"Minggu lalu"}
                        "0"{"Minggu ini"}
                        "1"{"Minggu berikutnya"}
                    }
                }
                weekday{
                    dn{"Hari dalam Seminggu"}
                }
                year{
                    dn{"Tahun"}
                    relative{
                        "-1"{"Tahun lalu"}
                        "0"{"Tahun ini"}
                        "1"{"Tahun depan"}
                    }
                }
                zone{
                    dn{"Zona Waktu"}
                }
            }
            intervalFormats{
                MEd{
                    M{"E, d/M – E, d/M"}
                    d{"E, d/M – E, d/M"}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E, d MMM – E, d MMM"}
                    d{"E, d MMM – E, d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d–d MMM"}
                }
                Md{
                    M{"d/M – d/M"}
                    d{"d/M – d/M"}
                }
                y{
                    y{"y-y"}
                }
                yM{
                    M{"M/yy – M/yy"}
                    y{"M/yy – M/yy"}
                }
                yMEd{
                    M{"E, d/M/yy – E, d/M/yy"}
                    d{"E, d/M/yy – E, d/M/yy"}
                    y{"E, d/M/yy – E, d/M/yy"}
                }
                yMMM{
                    M{"MMM–MMM y"}
                    y{"MMM y – MMM y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM y"}
                    d{"E, d MMM – E, d MMM y"}
                    y{"E, d MMM y – E, d MMM y"}
                }
                yMMMM{
                    M{"MMMM–MMMM y"}
                    y{"MMMM y – MMMM y"}
                }
                yMMMd{
                    M{"d MMM – d MMM y"}
                    d{"d-d MMM y"}
                    y{"d MMM y – d MMM y"}
                }
                yMd{
                    M{"d/M/yy – d/M/yy"}
                    d{"d/M/yy – d/M/yy"}
                    y{"d/M/yy – d/M/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Agt",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Januari",
                        "Februari",
                        "Maret",
                        "April",
                        "Mei",
                        "Juni",
                        "Juli",
                        "Agustus",
                        "September",
                        "Oktober",
                        "November",
                        "Desember",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "kuartal pertama",
                        "kuartal kedua",
                        "kuartal ketiga",
                        "kuartal keempat",
                    }
                }
                stand-alone{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    wide{
                        "kuartal pertama",
                        "kuartal kedua",
                        "kuartal ketiga",
                        "kuartal keempat",
                    }
                }
            }
        }
        islamic{
            DateTimePatterns{
                "H:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, dd MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Ed{"E, d"}
                MEd{"E, d-M"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d-M"}
                yM{"M/y"}
                yMEd{"EEE, d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, d MMM y"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE, d/M/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMd{"d MMM y G"}
            }
            monthNames{
                format{
                    abbreviated{
                        "Muh.",
                        "Saf.",
                        "Rab. I",
                        "Rab. II",
                        "Jum. I",
                        "Jum. II",
                        "Raj.",
                        "Sha.",
                        "Ram.",
                        "Syaw.",
                        "Dhuʻl-Q.",
                        "Dhuʻl-H.",
                    }
                    wide{
                        "Muharram",
                        "Safar",
                        "Rabiʻ I",
                        "Rabiʻ II",
                        "Jumada I",
                        "Jumada II",
                        "Rajab",
                        "Sya'ban",
                        "Ramadhan",
                        "Syawal",
                        "Dhuʻl-Qiʻdah",
                        "Dhuʻl-Hijjah",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Muh.",
                        "Saf.",
                        "Rab. I",
                        "Rab. II",
                        "Jum. I",
                        "Jum. II",
                        "Raj.",
                        "Sha.",
                        "Ram.",
                        "Syaw.",
                        "Dhuʻl-Q.",
                        "Dhuʻl-H.",
                    }
                    wide{
                        "Muharram",
                        "Safar",
                        "Rabiʻ I",
                        "Rabiʻ II",
                        "Jumada I",
                        "Jumada II",
                        "Rajab",
                        "Sya'ban",
                        "Ramadhan",
                        "Syawal",
                        "Dhuʻl-Qiʻdah",
                        "Dhuʻl-Hijjah",
                    }
                }
            }
        }
        japanese{
            DateTimePatterns{
                "H:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, dd MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Ed{"E, d"}
                MEd{"E, d-M"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d-M"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE, d/M/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMd{"d MMM y G"}
            }
        }
        roc{
            DateTimePatterns{
                "H:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, dd MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Ed{"E, d"}
                MEd{"E, d-M"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d-M"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE, d/M/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMd{"d MMM y G"}
            }
            eras{
                abbreviated{
                    "Sebelum R.O.C.",
                    "R.O.C.",
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    listPattern{
        standard{
            2{"{0} dan {1}"}
            end{"{0}, dan {1}"}
        }
    }
    measurementSystemNames{
        UK{"BR"}
        US{"AS"}
        metric{"Metrik"}
    }
    units{
        day{
            other{"{0} hari"}
        }
        day-future{
            0{"Dalam 0 hari"}
            1{"Dalam 1 hari"}
            other{"Dalam {0} hari"}
        }
        day-past{
            0{"0 hari yang lalu"}
            1{"1 hari yang lalu"}
            other{"{0} hari yang lalu"}
        }
        hour{
            other{"{0} jam"}
        }
        hour-future{
            0{"Dalam 0 jam"}
            1{"Dalam 1 jam"}
            other{"Dalam {0} jam"}
        }
        hour-past{
            0{"0 jam yang lalu"}
            1{"1 jam yang lalu"}
            other{"{0} jam yang lalu"}
        }
        minute{
            other{"{0} menit"}
        }
        minute-future{
            0{"Dalam 0 menit"}
            1{"Dalam 1 menit"}
            other{"Dalam {0} menit"}
        }
        minute-past{
            0{"0 menit yang lalu"}
            1{"1 menit yang lalu"}
            other{"{0} menit yang lalu"}
        }
        month{
            other{"{0} bulan"}
        }
        month-future{
            0{"Dalam 0 bulan"}
            1{"Dalam 1 bulan"}
            other{"Dalam {0} bulan"}
        }
        month-past{
            0{"0 bulan yang lalu"}
            1{"1 bulan yang lalu"}
            other{"{0} bulan yang lalu"}
        }
        second{
            other{"{0} detik"}
        }
        second-future{
            0{"Dalam 0 detik"}
            1{"Dalam 1 detik"}
            other{"Dalam {0} detik"}
        }
        second-past{
            0{"0 detik yang lalu"}
            1{"1 detik yang lalu"}
            other{"{0} detik yang lalu"}
        }
        week{
            other{"{0} minggu"}
        }
        week-future{
            0{"Dalam 0 minggu"}
            1{"Dalam 1 minggu"}
            other{"Dalam {0} minggu"}
        }
        week-past{
            0{"0 minggu yang lalu"}
            1{"1 minggu yang lalu"}
            other{"{0} minggu yang lalu"}
        }
        year{
            other{"{0} tahun"}
        }
        year-future{
            0{"Dalam 0 tahun"}
            1{"Dalam 1 tahun"}
            other{"Dalam {0} tahun"}
        }
        year-past{
            0{"0 tahun yang lalu"}
            1{"1 tahun yang lalu"}
            other{"{0} tahun yang lalu"}
        }
    }
    unitsShort{
        day{
            other{"{0} hr"}
        }
        hour{
            other{"{0} jam"}
        }
        minute{
            other{"{0} mnt"}
        }
        month{
            other{"{0} bln"}
        }
        second{
            other{"{0} dtk"}
        }
        week{
            other{"{0} mggu"}
        }
        year{
            other{"{0} thn"}
        }
    }
}
