﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/mt.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/mt.xml
 */
mt{
    AuxExemplarCharacters{"[c y]"}
    ExemplarCharacters{"[a à b ċ d e è f ġ g {għ} h ħ i ì j k l m n o ò p q r s t u ù v w x ż z]"}
    ExemplarCharactersIndex{"[A B Ċ C D E F Ġ G {GĦ} H Ħ I {IE} J K L M N O P Q R S T U V W X Y Ż Z]"}
    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ' ‘ ’ \u0022 “ ” ( ) \\[ \\] \\{ \\}]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00"}
            }
            symbols{
                decimal{"."}
                group{","}
            }
        }
    }
    Version{"2.0.85.93"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d 'ta'’ MMMM y G",
                "d 'ta'’ MMMM y G",
                "dd MMM y G",
                "dd/MM/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        gregorian{
            AmPmMarkers{
                "QN",
                "WN",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d 'ta'’ MMMM y",
                "d 'ta'’ MMMM y",
                "dd MMM y",
                "dd/MM/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "Ħad",
                        "Tne",
                        "Tli",
                        "Erb",
                        "Ħam",
                        "Ġim",
                        "Sib",
                    }
                    wide{
                        "Il-Ħadd",
                        "It-Tnejn",
                        "It-Tlieta",
                        "L-Erbgħa",
                        "Il-Ħamis",
                        "Il-Ġimgħa",
                        "Is-Sibt",
                    }
                }
                stand-alone{
                    narrow{
                        "Ħ",
                        "T",
                        "T",
                        "E",
                        "Ħ",
                        "Ġ",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "QK",
                    "WK",
                }
                wide{
                    "Qabel Kristu",
                    "Wara Kristu",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Fra",
                        "Mar",
                        "Apr",
                        "Mej",
                        "Ġun",
                        "Lul",
                        "Aww",
                        "Set",
                        "Ott",
                        "Nov",
                        "Diċ",
                    }
                    wide{
                        "Jannar",
                        "Frar",
                        "Marzu",
                        "April",
                        "Mejju",
                        "Ġunju",
                        "Lulju",
                        "Awwissu",
                        "Settembru",
                        "Ottubru",
                        "Novembru",
                        "Diċembru",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "Ġ",
                        "L",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    wide{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                }
            }
        }
    }
    fields{
        day{
            dn{"Jum"}
            relative{
                "-1"{"Lbieraħ"}
                "0"{"Illum"}
                "1"{"Għada"}
            }
        }
        era{
            dn{"Epoka"}
        }
        hour{
            dn{"Siegħa"}
        }
        minute{
            dn{"Minuta"}
        }
        month{
            dn{"Xahar"}
        }
        second{
            dn{"Sekonda"}
        }
        week{
            dn{"Ġimgħa"}
        }
        weekday{
            dn{"Jum tal-Ġimgħa"}
        }
        year{
            dn{"Sena"}
        }
        zone{
            dn{"Żona"}
        }
    }
    measurementSystemNames{
        metric{"Metriku"}
    }
    units{
        duration{
            year-past{
                few{"{0} snin ilu"}
                many{"{0} snin ilu"}
                one{"{0} sena ilu"}
                other{"{0} snin ilu"}
            }
        }
    }
}
