﻿// Copyright (c) 1998-2001 IBM, Inc. and others.
//
// Maltese locale.
// Maintained by srl@monkey.sbay.org [See below for full credits]
//
// For information about this country please see: http://www.magnet.mt/
//
// For information about Maltese Computing please see:
//         http://www.quadrantFive.com/SMC/
//         http://www.li18nux.org/~srl/SMC/   [alternate site]
//
// Search for 'Sources' below for source abbreviations

// Hi. This file is now in utf-8. Thank you very much.
// Quick rundown on Maltese Unicode: 
// --------------------------------- 
// ċ = U+010B   Ċ = U+010A  'ch'    
// ġ = U+0121   Ġ = U+0120  soft G
// ħ = U+0127   Ħ = U+0126  voiced H [or 2nd letter of 'silent' għ]
// ż = U+017c   Ż = U+017B  'dz'
//
// COMBINING MARKS:
// There is no combining mark for the slash (h/)
//  but, U+0307 is the DOT ABOVE needed for ż, ċ, and ġ (in collation rules)

mt {
    Version { "0.9.2" } // Mon, Jan 2, 2001 - srl [Msida, MALTA] - see bottom
    ShortLanguage { mlt }
    Languages {

 root    { "Għerq" } // the root locale

// Some of these tags look like they are in other languages, not Maltese.

 ar { "Għarbi" }
 bg { "Bulgaru" }
 ca { "Katalan" } // bu
 cs { "Ċek" }
 cy { "Welx" }  // [rc]
 da { "Daniż" }  // [rc]
 de { "Ġermaniż" } // [CI]
 el { "Grieg" }
 en { "Ingliż" }
 es { "Spanjol" } 
 et { "Estonjan" }
 eu { "Bask" }
 fa { "Persjan" }
 fi { "Finlandiż" } // [rc]
 fr { "Franċiż" } 
 he { "Ebrajk" } // rz  { see: iw }
 hr { "Kroat" }
 hu { "Ungeriż" }
 hy { "Armenjan" }
 id { "Indoneżjan" }
 is { "Islandiż" }
 it { "Taljan" }  // CI dictionary
 iw { "Ebrajk" } // rz { see: he }
 ja { "Ġappuniż" } // srl, after [BM]
 lt { "Litwanjan" }
 lv { "Latvjan" }
 mt { "Malti" }
 nl { "Olandiż" } // bu
 no { "Norvegiż" } // bu
 pl { "Pollakk" }
 pt { "Portugiż" }
 ro { "Rumen" }
 ru { "Russu" }
 sh { "Serbo-Kroat" }
 sk { "Slovakk" }
 sl { "Slav" } // rz [mhux Slovenjan] 
 sq { "Albaniż" }
 sr { "Serb" }
 sv { "Svediż" }
 sw { "Swaħili" }
 th { "Tajlandiż" }
 tr { "Tork" } 
 uk { "Ukranjan" }
 ur { "Urdu" }
 vi { "Vjetnamiż" }
 zh { "Ċiniż" }
 zu { "Żulu" }

// x1 { Magyar } 
// x2 { Makedonski } 
// x4 { Norsk } 
// x9 { Slovencina } 
// xa { Slovenscina } 
    }
    Countries {

        AE { "Emirati Għarab Maqgħuda" } // in/rz
        AF { "Afganistan" } // [Aq]
        AL { Albanija }
        AR { Arġentina }
        AT { Awstrija }
        AU { Awstralja }
        BA { "Bożnija/Ħerzegovina"  }
        BB { "Barbados" } // [Aq] or Barbuda? (where is Antigwa?)
        BD { "Bangladexx" }
        BE { Belġju }
        BG { Bulgarija }
        BH { "Baħrajn" } // [Aq] 
        BN { "Brunej" } // [Aq]
        BO { "Bolivja" } // [rc]
        BR { Brażil }
        BS { "Il-Baħamas" } // [Aq]
        BZ { "Beliże" } // [Aq] 
        CA { Kanada }
        CH { Svizzera } // rz [S not dotted Z]
        CL { "Ċili" } // [Aq]
        CN { Ċina }
        CO { "Kolumbja" } // bu
        CU { "Kuba" }
        CY { Ċipru }
        CZ { Rep. Ċeka  }
        DE { Ġermanja }
        DK { Danimarka  }
        DO { "Republikka Domenikana" } // bu
        DZ { Alġerija } // ** Stopped at D's for Aquilina's
        EC { "Ekwador" } // bu
        EE { Estonja }
        EG { Eġittu }
        ES { Spanja }
        FI { Finlandja }
        FR { Franza }
        GB { "Ingilterra" } // rz, 'Gran Brittanja is more Italian than Maltese'
        GL { "Grinlandja" } // [rc]
        GM { "Gambja" } // in
        GR { "Greċja" } // [rc]/bu
        GT { "Gwatemala" } // bu
        HR { Kroazja }
        HU { Ungerija }
        IE { Irlanda }
        IL { "Iżrael" }
        IN { Indja }
        IQ { "Iraq" }
        IR { "Iran" }
        IS { Islanda }
        IT { Italja }
        JP { Ġappun }
        KW { "Kuwajt" }
        LB { "Libanu" }
        LT { Litwanja }
        LU { Lussemburgu }
        LV { Latvja }
        LY { "Libja" }
        MA { "Marokk" }
        MT { Malta }
        MX { "Messiku" }
        NI { "Nikaragwa" } // in
        NL { Olanda }
        NO { Norveġja }
        OM { "Oman" } // in
        PE { "Peru" }
        PH { "Filippini" } // in
        PK { "Pakistan" }
        PL { Polonja }
        PT { Portugall } // [KA]
        RO { Rumanija }
        RU { "Russja" } // [rc]
        SA { "Għarabja Sawdita" } // in
        SE { Żvezja }
        SI { Slovenja }
        SK { "Slovakkja" } // rz
        SY { "Sirja" }
        TD { "Ċad" } // [Aq] 
        TH { "Tajlandja" }
        TN { "Tuneż" }
        TR { Turkija }
        TW { Tajwan }
        UA { Ukranja }
        US { "Stati Uniti" }
        VA { Stat tal-Vatikan  }
        YU { Jugoslavja }
        ZA { "Afrika t'Isfel" }

    }
    MonthNames {
        Jannar,
        Frar,
        Marzu,
        April,
        Mejju,
        Ġunju,
        Lulju,
        Awissu,
        Settembru,
        Ottubru,
        Novembru,
        Diċembru
        ""
    }
//Jan Fra Mar Apr Mej Gun Lul Aww* Set Ott Nov Dic

   MonthAbbreviations {
        "Jan",
        "Fra",
        "Mar",
        "Apr",
        "Mej",
        "Ġun",
        "Lul",
        "Awi", // jew Aww?
        "Set",
        "Ott",
        "Nov",
        "Diċ"
        ""
    }
    DayNames {
        il-Ħadd,
        it-Tnejn,
        it-Tlieta,
        l-Erbgħa,
        il-Ħamis,
        il-Ġimgħa,
        is-Sibt
    }

    Eras {
         "QK",  // Quddiem Kristu  [from Il-BIBBJA - it-tieni edijoni,
         "WK"   // Wara Kristu      Ghaqda Biblika Maltija]
    }

    DayAbbreviations { 
        "Ħad",
        "Tne",
        "Tli",
        "Erb", 
        "Ħam",
        "Ġim",
        "Sib"
    }


    NumberElements {
        ".",
        ",",
        ";",
        "%",
        "0",
        "#",
        "-",
        E,
        "‰",
        "∞",
        "�"
    }


// illum is-Sibt, 01 ta'' Awissu, 1998 :)
    DateTimePatterns {
        "h:mm:ss a z",
        "h:mm:ss a z",
        "h:mm:ss a",
        "h:mm a",
        "EEEE, d 'ta''' MMMM, yyyy",
        "d 'ta''' MMMM",
        "dd/MM/yy",
        "dd/MM/yy",
        "{1} {0}"
    }
    DateTimeElements {
        "1",
        "1"
    }

//   Note, that 'c' doesn't exist in Maltese. But I put it here following ċ 
//   for compatibility with foreign words.

// Joseph Felici Pace says: 
// 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

   CollationElements
   {
        Version { "1.0" }
        Override { "FALSE" }
        Sequence { "& B < ċ , Ċ" // ċ  Ċ
      "    < c,C"      
      "& F < ġ, Ġ "              // ġ  Ġ
      "    < g,G"
      "    < għ , gĦ , Għ , GĦ "
      "& H < ħ  , Ħ "           
      "& I < ie, iE, Ie, IE   "               // ie is a single letter
      "& Y < ż, Ż"               // ż Ż
      "    < z,Z" }
   }

// Time zone
//CET: 
    zoneStrings {
        {
        "CET", 
        "Ħin ta' L-Ewropa Ċentrali", 
        "ĦEĊ", 
        "Ħin tas-Sajf fl-Ewropa Ċentrali",
        "ĦSEĊ"
        }
    }

    LocaleID {"3A"}
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
}


// -- BIBLIOGRAPHY --
//
// Maltese alphabet: grazzi, to Mr. Karmenu Attard
// 
//  'colour image's dictionary order (Malta, 1998) -- [CI]
//   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 ż
//   Only Colour Image's dictionary has 'ie' as a separate letter. 
//    (that i have seen so far)
//
// Kapt Pawlu Bugeja's dizzunarju
//  (Kelmet il-Malti) [Grima: Marsa, Malta, 1990) - the orange one     -- [Kelmet]
//   -- same order, but lists ż before z
//
// Lydia Sciriha seems to use the order 'g ġ għ' but 'z ż' in       -- [BM]
//   Beginning Maltese (Uni ta' Malta, 1996) in the lessons,
// but in the word list (at back) it's 'ġ g għ' and 'ż z' [1st ed.]
//
// J. Aquilina in his 'Teach Yourself:Maltese' book                    -- [Ty]
//     (London: Hodder Headline, 1965 and Chicago, NTC Publishing 1995)
// uses the very different 'ġ g h ħ ... n għ o .. x ż z' ordering, 
// placing għ between n and o. (I have heard this is to be similar to the
//  Arabic ordering)
//
// Casha, Charles: 'Kun Af - aktar dwar ilsienna'                       -- [KA]
//   (Blata l-Bajda, Malta: Merlin Library Ltd., 1987)

// CREDITS: above sources and also..
// - Mirka Mifsud Bonnici for much of the initial translation/inspiration
// - Karmenu Attard
// - MaxMan (Manuel)
// - Ramon Casha
// - Angelo Dalli
// - in - in-nazzjon
// - lo - l-orrizont

// Change Log
//2001-01-02 srl 0.9.2  Converted to UTF-8. Added: AE/GM/NI/OM/PH/SA/KW
//2000-10-09 gr  0.9.1  [shipped in ICU 1.7]
//2000-07-20 srl 0.9.0