﻿// Copyright (c) 1998-2003 IBM, Inc. and others.
//
// Maltese locale.
// Maintained by srl@monkey.sbay.org [See below for full credits]
//
// 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 { "1.0" } // 2002-01-15 
//    ShortLanguage { mlt }

    Variants{
                PREEURO { "Qabel il-Euro" }
    } 
    // Duplicate data has been commented out.
    Languages {
        Fallback{ "en"}
        root    { "Għerq" } // the root locale
//------------------------------------------------
        //aa	{ "Afar" }	// Afar
        ab	{ "Abkażjan" }	// Abkhazian
        ace	{ "Aċiniż" }	// Achinese
        ach	{ "Akoli" }	// Acoli
        //ada	{ "Adangme" }	// Adangme
        //ae	{ "Avestan" }	// Avestan
        af	{ "Afrikans" }	// Afrikaans
        afa	{ "Afro-Asjatiku (Oħra)" }	// Afro-Asiatic (Other)
        afh	{ "Afriħili" }	// Afrihili
        //aka	{ "Akan" }	// Akan
        akk	{ "Akkadjen" }	// Akkadien
        //ale	{ "Aleut" }	// Aleut
        alg	{ "Lingwi Algonqwinjani" }	// Algonquian Languages
        am	{ "Amħariku" }	// Amharic
        ang	{ "Ingliż, Antik (ca.450-1100)" }	// English, Old (ca.450-1100)
        apa	{ "Lingwi Apaċi" }	// Apache Languages
        ar	{ "Għarbi" }	// Arabic
        arc	{ "Aramajk" }	// Aramaic
        arn	{ "Arawkanjan" }// Araucanian
        arp	{ "Arapaħo" }	// Arapaho
        art	{ "Artifiċjali (Oħra)" }	// Artificial (Other)
        //arw	{ "Arawak" }	// Arawak
        //as	{ "Assamese" }	// Assamese
        ath	{ "Lingwi Atabaskani" }	// Athapaskan Languages
        aus	{ "Lingwi Awstraljani" }// Australian Languages
        av	{ "Avarik" }	// Avaric
        awa	{ "Awadħi" }	// Awadhi
        ay	{ "Ajmara" }	// Aymara
        az	{ "Ażerbajġani" }	// Azerbaijani
        ba	{ "Baxkir" }	// Bashkir
        //bad	{ "Banda" }	// Banda
        bai	{ "Lingwi Bamileke" }	// Bamileke Languages
        bal	{ "Baluċi" }	// Baluuchi
        //bam	{ "Bambara" }	// Bambara
        ban	{ "Baliniż" }	// Balinese
        //bas	{ "Basa" }	// Basa
        bat	{ "Baltiku (Oħra)" }	// Baltic (Other)
        be	{ "Belarussu" }	// Belarusian
        //bej	{ "Beja" }	// Beja
        //bem	{ "Bemba" }	// Bemba
        //ber	{ "Beber" }	// Beber
        bg	{ "Bulgaru" }	// Bulgarian
        bh	{ "Biħari" }	// Bihari
        bho	{ "Bojpuri" }	// Bhojpuri
        //bi	{ "Bislama" }	// Bislama
        //bik	{ "Bikol" }	// Bikol
        //bin	{ "Bini" }	// Bini
        //bla	{ "Siksika" }	// Siksika
        //bn	{ "Bengali" }	// Bengali
        //bnt	{ "Bantu" }	// Bantu
        bo	{ "Tibetjan" }	// Tibetan
        //br	{ "Brenton" }	// Brenton
        //bra	{ "Braj" }	// Braj
        bs	{ "Bosnijan" }	// Bosnian
        //btk	{ "Batak" }	// Batak
        bua	{ "Burjat" }	// Buriat
        bug	{ "Buginiż" }	// Buginese
        ca	{ "Katalan" }	// Catalan
        cad	{ "Kaddo" }	// Caddo
        cai	{ "Amerika Ċentrali (Oħra)" }	// Central American Indian (Other)
        car	{ "Karib" }	// Carib
        cau	{ "Kawkasu (Oħra)" }	// Caucasian (Other) 
        ce	{ "Ċeċen" }	// Chechen
        ceb	{ "Sibwano" }	// Cebuano
        cel	{ "Keltiku (Oħra)" }	// Celtic (Other)
        ch	{ "Ċamorro" }	// Chamorro
        chb	{ "Ċibċa" }	// Chibcha
        chg	{ "Ċagataj" }	// Chagatai
        chk	{ "Ċukese" }	// Chuukese
        //chm	{ "Mari" }	// Mari
        chn	{ "Ġargon taċ-Ċinuk" }	// Chinook Jargon
        cho	{ "Ċostaw" }	// Choctaw
        chp	{ "Ċipewjan" }	// Chipewyan
        chr	{ "Ċerokij" }	// Cherokee
        chy	{ "Xajenn" }	// Cheyenne
        cmc	{ "Lingwi Ċamiki" }	// Chamic Languages
        co	{ "Korsiku" }	// Corsican
        cop	{ "Koptiku" }	// Coptic
        cpe	{ "Kreoli u Piġini, Bbażat fuq l-Ingliż (Oħra)" }	// Creoles and Pidgins, English-based (Other)
        cpf	{ "Kreoli u Piġini, Bbażat fuq il-Franċiż (Oħra)" }	// Creoles and Pidgins, French-based (Other)
        cr	{ "Krij" }	// Cree
        crp	{ "Kreoli u Piġini (Oħra)" }	// Creoles and Pidgins (Other)
        cs	{ "Ċek" }	// Czech
        cu	{ "Slaviku tal-Knisja" }	// Church Slavic
        cus	{ "Kuxtiku (Oħra)" }	// Cushitic (Other)
        cv	{ "Ċuvax" }	// Chuvash
        cy	{ "Welx" }	// Welsh
        da	{ "Daniż" }	// Danish
        //dak	{ "Dakota" }	// Dakota
        day	{ "Dajak" }	// Dayak
        de	{ "Ġermaniż" }	// German
        del	{ "Delawerjan" }	// Delaware
        den	{ "Slav" }	// Slave
        //dgr	{ "Dogrib" }	// Dogrib
        //din	{ "Dinka" }	// Dinka
        dv	{ "Diveħi" }	// Divehi
        //doi	{ "Dogri" }	// Dogri
        dra	{ "Dravidjan (Oħra)" }	// Dravidian (Other)
        dua	{ "Dwala" }	// Duala
        dum	{ "Olandiż, Medjevali (ca. 1050-1350)" }	// Dutch, Middle (ca. 1050-1350)
        dyu	{ "Djula" }	// Dyula
        //dz	{ "Vutani" }	// Bhutani
        dz	{ "Dżongka" }	// Dzongkha
        //efi	{ "Efik" }	// Efik
        egy	{ "Eġizzjan (Antik)" }	// Egyptian (Ancient)
        //eka	{ "Ekajuk" }	// Ekajuk
        el	{ "Grieg" }	// Greek
        elx	{ "Elamit" }	// Elamite
        en	{ "Ingliż" }	// English
        enm	{ "Ingliż, Medjevali (1100-1500)" }	// English, Middle( 1100 -1500)
        //eo	{ "Esperanto" }	// Esperanto
        es	{ "Spanjol" }	// Spanish
        et	{ "Estonjan" }	// Estonian
        eu	{ "Bask" }	// Basque
        //ewe	{ "Ewe" }	// Ewe
        //ewo	{ "Ewondo" }	// Ewondo
        fa	{ "Persjan" }	// Persian
        //fan	{ "Fang" }	// Fang
        //fat	{ "Fanti" }	// Fanti
        ff	{ "Fulaħ" }	// Fulah
        fi	{ "Finlandiż" }	// Finnish
        fiu	{ "Finno - Ugrijan" }	// Finno - Ugrian
        fj	{ "Fiġi" }	// Fiji
        fo	{ "Fawriż" }	// Faeroese
        //fon	{ "Fon" }	// Fon
        fr	{ "Franċiż" }	// French
        frm	{ "Franċiż, Medjevali (ca. 1400-1600)" }	// French, Middle (ca.1400-1600)
        fro	{ "Franċiż, Antik (842-ca. 1400)" }	// French, Old (842-ca.1400)
        fur	{ "Frijuljan" }	// Friulian
        fy	{ "Friżjan" }	// Frisian
        ga	{ "Irlandiż" }	// Irish
        //gaa	{ "Ga" }	// Ga
        gay	{ "Gajo" }	// Gayo
        gba	{ "Gbaja" }	// Gbaya
        gd	{ "Galliku Skoċċiż" }	// Scots Gaelic
        gem	{ "Ġermaniku (Oħra)" }	// Germanic (Other)
        gil	{ "Gilbertjan" }	// Gilbertese
        gl	{ "Gallegjan" }	// Gallegan
        gla	{ "Galliku (Skoċċiż)" }	// Gaelic (Scots)
        gmh	{ "Ġermaniku, Medjevali Pulit (ca. 1050-1500)" }	// German, Middle High (ca.1050-1500)
        gn	{ "Gwarani" }	// Guarani
        goh	{ "Ġermaniku, Antik Pulit (ca. 750-1050)" }	// German, Old High (ca.750-1050)
        //gon	{ "Gondi" }	// Gondi
        //gor	{ "Gorontalo" }	// Gorontalo
        got	{ "Gotiku" }	// Gothic
        grb	{ "Ġerbo" }	// Gerbo
        grc	{ "Grieg, Antik (to 1453)" }	// Greek, Ancient (to 1453)
        gu	{ "Guġarati" }	// Gujarati
        gv	{ "Manks" }	// Manx
        gwi	{ "Gwiċin" }	// Gwich'in
        hai	{ "Ħajda" }	// Haida
        ha	{ "Ħawsa" }	// Hausa
        haw	{ "Ħawajjan" }	// Hawaiian
        he	{ "Ebrajk" }	// Hebrew
        hi	{ "Ħindi" }	// Hindi
        him	{ "Ħimaċali" }	// Himachali
        hit	{ "Ħittit" }	// Hittite
        hmn	{ "Ħmong" }	// Hmong
        ho	{ "Ħiri Motu" }	// Hiri Motu
        hr	{ "Kroat" }	// Croatian
        hu	{ "Ungeriż" }	// Hungarian
        hup	{ "Ħupa" }	// Hupa
        hy	{ "Armenjan" }	// Armenian
        hz	{ "Ħerero" }	// Herero
        //ia	{ "Interlingua" }	// Interlingua
        //iba	{ "Iban" }	// Iban
        //ibo	{ "Igbo" }	// Igbo
        id	{ "Indoneżjan" }	// Indonesian
        //ie	{ "Interlingue" }	// Interlingue
        ijo	{ "Iġo" }	// Ijo
        ik	{ "Inupjak" }	// Inupiak
        //ilo	{ "Iloko" }	// Iloko
        inc	{ "Indjan (Oħra)" }	// Indic (Other)
        ine	{ "Indo-Ewropew" }	// Indo-European
        ira	{ "Iranjan" }	// Iranian 
        iro	{ "Lingwi Irogwjani" }	// Iroguoian Languages
        is	{ "Iżlandiż" }	// Icelandic
        it	{ "Taljan" }	// Italian
        //iu	{ "Inukitut" }	// Inukitut
        ja	{ "Ġappuniż" }	// Japanese
        jpr	{ "Lhudi-Persjan" }	// Judeo-Persian
        jrb	{ "Lhudi-Għarbi" }	// Judeo-Arabic
        jv	{ "Ġavaniż" }	// Javanese
        ka	{ "Ġorġjan" }	// Georgian
        //kaa	{ "Kara-Kalpak" }	// Kara-Kalpak
        kab	{ "Kabuljan" }	// Kabyle
        kac	{ "Kaċin" }	// Kachin
        //kam	{ "Kamba" }	// Kamba
        //kar	{ "Karen" }	// Karen
        //kau	{ "Kanuri" }	// Kanuri
        //kaw	{ "Kawi" }	// Kawi
        kha	{ "Kasi" }	// Khasi
        khi	{ "Kojsan" }	// Khoisan
        kho	{ "Kotaniż" }	// Khotanese
        ki	{ "Kikuju" }	// Kikuyu
        kk	{ "Każak" }	// Kazakh
        kl	{ "Kalallisut" }	// Kalaallisut
        km	{ "Kmer" }	// Khmer
        //kmb	{ "Kimbundu" }	// Kimbundu
        //kn	{ "Kannada" }	// Kannada
        ko	{ "Korejan" }	// Korean
        //kok	{ "Konkani" }	// Konkani
        //kon	{ "Kongo" }	// Kongo
        kos	{ "Kosrejan" }	// Kosrean
        //kpe	{ "Kpelle" }	// Kpelle
        //kro	{ "Kru" }	// Kru
        kru	{ "Kurusk" }	// Kuruckh
        ks	{ "Kaxmiri" }	// Kashmiri
        ku	{ "Kurdiż" }	// Kurdish
        kum	{ "Kumiku" }	// Kumyk
        kut	{ "Kutenaj" }	// Kutenai
        //kv	{ "Komi" }	// Komi
        kw	{ "Korniku" }	// Cornish
        ky	{ "Kirgiż" }	// Kirghiz
        //la	{ "Latin" }	// Latin
        //lad	{ "Ladino" }	// Ladino
        lah	{ "Landa" }	// Lahnda
        //lam	{ "Lamba" }	// Lamba
        lb	{ "Letżburgiż" }	// Letzeburgesch
        lez	{ "Leżgjan" }	// Lezghian
        lin	{ "Lingaljan" }	// Lingala
        lit	{ "Litwanjan" }	// Lithuanian
        ln	{ "Lingaljan" }	// Lingala
        //lo	{ "Lao" }	// Lao
        //lol	{ "Mongo" }	// Mongo
        loz	{ "Lożi" }	// Lozi
        lt	{ "Litwanjan" }	// Lithuanian
        lua	{ "Luba-Luluwa" }	// Luba-Lulua
        //lub	{ "Luba-Katanga" }	// Luba-Katanga
        //lug	{ "Ganda" }	// Ganda
        lui	{ "Luwisinuż" }	// Luiseeno
        //lun	{ "Lunda" }	// Lunda
        luo	{ "Luwa" }	// Lua
        lus	{ "Luxaj" }	// Lushai
        lv	{ "Latvjan (Lettix)" }	// Latvian (Lettish)
        mad	{ "Maduriż" }	// Madurese
        mag	{ "Magaħi" }	// Magahi
        mai	{ "Majtili" }	// Maithili
        //mak	{ "Makasar" }	// Makasar
        man	{ "Mandingwan" }	// Mandingue
        map	{ "Awstronesjan" }	// Austronesian
        mas	{ "Masaj" }	// Masai
        //mdr	{ "Mandar" }	// Mandar
        //men	{ "Mende" }	// Mende
        mg	{ "Malagażi" }	// Malagasy
        mga	{ "Irlandiż, Medjevali (900-1200)" }	// Irish, Middle (900-1200)
        mh	{ "Marxall" }	// Marshall
        //mi	{ "Maori" }	// Maori
        mic	{ "Mikmek" }	// Mic-Mac
        min	{ "Minangkabaw" }	// Minangkabau
        mis	{ "Lingwi Oħra" }	// Miscellaneous Languages
        mk	{ "Maċedonjan" }	// Macedonian
        mkh	{ "Mon-Kmer (Oħra)" }	// Mon-Khmer (Other)
        ml	{ "Malajalam" }	// Malayalam
        mn	{ "Mongoljan" }	// Mongolian
        mnc	{ "Manċurjan" }	// Manchu
        //mni	{ "Manipuri" }	// Manipuri
        mno	{ "Lingwi Manobo" }	// Manobo Languages
        mo	{ "Moldavjan" }	// Moldavian
        moh	{ "Moħak" }	// Mohawk
        //mos	{ "Mossi" }	// Mossi
        mr	{ "Marati" }	// Marathi
        ms	{ "Malajan" }	// Malay
        mt	{ "Malti" }	// Maltese
        mul	{ "Lingwi Diversi" }	// Multiple Languages
        mun	{ "Lingwi tal-Munda" }	// Munda Languages
        mus	{ "Kriek" }	// Creek
        //mwr	{ "Marwari" }	// Marwari
        my	{ "Burmiż" }	// Burmese
        myn	{ "Majan" }	// Mayan
        na	{ "Nawuru" }	// Nauru
        nah	{ "Naħwatil" }	// Nahuatl
        nai	{ "Indjan tal-Amerika ta' Fuq (Oħra)" }	// North American Indian (Other)
        nb	{ "Bokmahal Norveġiż" }	// Norwegian Bokmål
        nd	{ "Ndebele, ta' Fuq" }	// Ndebele, North
        nds	{ "Ġermaniż Komuni; Sassonu Komuni" }	// Low German; Low Saxon
        ne	{ "Nepaliż" }	// Nepali
        //new	{ "Newari" }	// Newari
        //ng	{ "Ndonga" }	// Ndonga
        nia	{ "Nijas" }	// Nias
        nic	{ "Niġerjan - Kordofanjan" }	// Niger - Kordofanian
        niu	{ "Nijuwejan" }	// Niuean
        nl	{ "Olandiż" }	// Dutch
        nn	{ "Ninorsk Norveġiż" }	// Norwegian Nynorsk
        no	{ "Norveġiż" }	// Norwegian
        non	{ "Skandinav, Antik" }	// Norse, Old
        nr	{ "Ndebele, t'Isfel" }	// Ndebele, South
        nso	{ "Soto, ta' Fuq" }	// Sotho, Northern
        nub	{ "Lingwi Nubjani" }	// Nubian Languages
        nv	{ "Navaħo" }	// Navajo
        ny	{ "Ċiċewa; Njanġa" }	// Chichewa; Nyanja
        nym	{ "Njamweżi" }	// Nyamwezi
        nyo	{ "Njoro" }	// Nyoro
        nzi	{ "Nżima" }	// Nzima
        oc	{ "Provenzal (wara 1500)" }	// Provençal; Occitan (post 1500)
        oj	{ "Oġibwa" }	// Ojibwa
        //om	{ "Oromo (Afan)" }	// Oromo (Afan)
        or	{ "Orija" }	// Oriya
        os	{ "Ossettiku" }	// Ossetic
        osa	{ "Osaġjan" }	// Osage
        ota	{ "Tork (Imperu Ottoman)" }	// Turkish (Ottoman Empire)
        oto	{ "Lingwi Otomjani" }	// Otomian Languages
        pa	{ "Punġabi" }	// Punjabi
        paa	{ "Papwan (Oħra)" }	// Papuan (Ohter)
        pag	{ "Pangasinjan" }	// Pangasinan
        pal	{ "Paħlavi" }	// Pahlavi
        pam	{ "Pampamga" }	// pampamga?
        pap	{ "Papjamento" }	// Papiamento
        pau	{ "Palawjan" }	// Palauan
        peo	{ "Persjan Antik (ca. 600-400 Q.K.)" }	// Persian Old (ca.600-400 B.C.)
        phi	{ "Filippin (Oħra)" }	// Philippine (Other)
        phn	{ "Feniċju" }	// Phoenician
        //pi	{ "Pali" }	// Pali
        pl	{ "Pollakk" }	// Polish
        pon	{ "Ponpejan" }	// Pohnpeian
        pra	{ "Lingwi Prakriti" }	// Prakrit Languages
        pro	{ "Provenzal, Antik (sa l-1500)" }	// Provençal, Old (to 1500)
        ps	{ "Paxtun" }	// Pashto (Pushto)
        pt	{ "Portugiż" }	// Portuguese
        qu	{ "Keċwa" }	// Quechua
        raj	{ "Raġastani" }	// Rajastani
        rap	{ "Rapanwi" }	// Rapanui
        rar	{ "Rarotongani" }	// Rarotongan
        rm	{ "Reto-Romanz" }	// Rhaeto-Romance
        //rn	{ "Rundi" }	// Rundi
        ro	{ "Rumen" }	// Romanian
        roa	{ "Romanz (Oħra)" }	// Romance (Other)
        rom	{ "Żingaru" }	// Romany
        ru	{ "Russu" }	// Russian
        rw	{ "Kinjarwanda" }// Kinyarwanda
        //sa	{ "Sanskrit" }	// Sanskrit
        //sad	{ "Sandawe" }	// Sandawe
        sah	{ "Jakut" }	// Yakut
        sai	{ "Indjan tal-Amerika t'Isfel (Oħra)" }	// South American Indian (Other)
        sal	{ "Salixan" }	// Salishan
        //sam	{ "Samritan" }	// Samritan
        //sas	{ "Saska" }	// Saska
        //sat	{ "Santali" }	// Santali
        sc	{ "Sardinjan" }	// Sardinian
        sco	{ "Skoċċiż" }	// Scots
        sd	{ "Sindi" }	// Sindhi
        se	{ "Sami ta' Fuq" }// Northern Sami
        //sel	{ "Selkup" }	// Selkup
        sem	{ "Semitiku" }	// Semitic
        //sg	{ "Sango" }	// Sango
        sga	{ "Irlandiż, Antik (sa l-900)" }	// Irish, Old (to 900)
        sgn	{ "Lingwa tas-Sinjali" }	// Sign Languages
        sh	{ "Serbo-Kroat" }	// Serbo-Croatian
        shn	{ "Xan" }	// Shan
        si	{ "Sinħaliż" }	// Sinhalese
        //sid	{ "Sidamo" }	// Sidamo
        sio	{ "Lingwi Suwjani" }	// Siouan Languages
        sit	{ "Sino-Tibetjani (Oħra)" }	// Sino-Tibetan (Other)
        sk	{ "Slovakk" }	// Slovak
        sl	{ "Slav" }	// Slovenian
        sm	{ "Samojan" }	// Samoan
        sn	{ "Xona" }	// Shona
        //snk	{ "Soninke" }	// Soninke
        //so	{ "Somali" }	// Somali
        //sog	{ "Sogdien" }	// Sogdien
        son	{ "Songaj" }	// Songhai
        sq	{ "Albaniż" }	// Albanian
        sr	{ "Serb" }	// Serbian
        //srr	{ "Serer" }	// Serer
        //ss	{ "Swati" }	// Swati
        ssa	{ "Nilo-Saħaram" }	// Nilo-Saharam
        st	{ "Soto, t'Isfel" }	// Sotho, Southern
        su	{ "Sundaniż" }	// Sundanese
        //suk	{ "Sukuma" }	// Sukuma
        //sus	{ "Susu" }	// Susu
        sux	{ "Sumerjan" }	// Sumerian
        sv	{ "Svediż" }	// Swedish
        sw	{ "Swaħili" }	// Swahili
        syr	{ "Sirjan" }	// Syriac
        //ta	{ "Tamil" }	// Tamil
        tai	{ "Tai (Oħra)" }	// Tai (Other)
        //te	{ "Telugu" }	// Telugu
        //tem	{ "Timne" }	// Timne
        //ter	{ "Tereno" }	// Tereno
        //tet	{ "Tetum" }	// Tetum
        tg	{ "Taġik" }	// Tajik
        th	{ "Tajlandiż" }	// Thai
        //tig	{ "Tigre" }	// Tigre
        ti	{ "Tigrinja" }	// Tigrinya
        //tiv	{ "Tiv" }	// Tiv
        tk	{ "Turkmeni" }	// Turkmen
        //tl	{ "Tagalog" }	// Tagalog
        //tli	{ "Tlingit" }	// Tlingit
        tmh	{ "Tamaxek" }	// Tamashek
        tn	{ "Zwana" }	// Tswana
        tog	{ "Tonga (Njasa)" }	// Tonga (Nyasa)
        to	{ "Tongan (Gżejjer ta' Tonga)" }	// Tongan (Tonga Islands)
        tr	{ "Tork" }	// Turkish
        //ts	{ "Tsonga" }	// Tsonga
        tsi	{ "Zimxjan" }	// Tsimshian
        //tt	{ "Tatar" }	// Tatar
        //tum	{ "Tumbuka" }	// Tumbuka
        tur	{ "Tork" }	// Turkish
        tut	{ "Altajk (Oħra)" }	// Altaic (Other)
        //tvl	{ "Tuvalu" }	// Tuvalu
        //tw	{ "Twi" }	// Twi
        ty	{ "Taħitjan" }	// Tahitian
        tyv	{ "Tuvinjan" }	// Tuvinian
        ug	{ "Wigur" }	// Uighur
        uga	{ "Ugaritiku" }	// Ugaritic
        uk	{ "Ukranjan" }	// Ukrainian
        //umb	{ "Umbundu" }	// Umbundu
        und	{ "Indeterminat" }	// Undetermined
        //ur	{ "Urdu" }	// Urdu
        uz	{ "Użbek" }	// Uzbek
        //vai	{ "Vai" }	// Vai
        //ven	{ "Venda" }	// Venda
        vi	{ "Vjetnamiż" }	// Vietnamese
        //vo	{ "Volapuk" }	// Volapuk
        vot	{ "Votik" }	// Votic
        wak	{ "Lingwi Wakaxani" }	// Wakashan Languages
        //wal	{ "Walamo" }	// Walamo
        war	{ "Waraj" }	// Waray
        was	{ "Waxo" }	// Washo
        wen	{ "Lingwi Sorbjani" }	// Sorbian Languages
        //wo	{ "Wolof" }	// Wolof
        xh	{ "Ħoża" }	// Xhosa
        yao	{ "Jao" }	// Yao
        yap	{ "Japese" }	// Yapese
        yi	{ "Jiddix" }	// Yiddish
        yo	{ "Joruba" }	// Yoruba
        ypk	{ "Lingwi Jupiċi" }	// Yupik Languages
        za	{ "Żwang" }	// Zhuang
        zap	{ "Żapotek" }	// Zapotec
        zen	{ "Żenaga" }	// Zenaga
        zh	{ "Ċiniż" }	// Chinese
        znd	{ "Żande" }	// Zande
        zu	{ "Żulu" }	// Zulu
        zun	{ "Żuni" }      // Zuni
    }

    // Duplicate data has been commented out.
    Countries {
        Fallback{ "en"}
        //AD { "Andorra" } 	// Andorra
        AE { "Emirati Għarab Maqgħuda" } 	// United Arab Emirates
        AF { "Afganistan" } 	// Afghanistan
        AI { "Angwilla" } 	// Anguilla
        AL { "Albanija" } 	// Albania
        AM { "Armenja" } 	// Armenia
        AN { "Antilles Olandiżi" } 	// Netherlands Antilles
        //AO { "Angola" } 	// Angola
        AR { "Arġentina" } 	// Argentina
        AS { "Samoa Amerikana" } 	// American Samoa
        AT { "Awstrija" } 	// Austria
        AU { "Awstralja" } 	// Australia
        //AW { "Aruba" } 	// Aruba
        AZ { "Ażerbajġan" } 	// Azerbaijan
        BA { "Bożnija Ħerżegovina" } 	// Bosnia and Herzegovina
        //BB { "Barbados" } 	// Barbados
        BD { "Bangladexx" } 	// Bangladesh
        BE { "Belġju" } 	// Belgium
        //BF { "Burkina Faso" } 	// Burkina Faso
        BG { "Bulgarija" } 	// Bulgaria
        BH { "Baħrajn" } 	// Bahrain
        //BI { "Burundi" } 	// Burundi
        //BJ { "Benin" } 	// Benin
        //BM { "Bermuda" } 	// Bermuda
        BN { "Brunej" } 	// Brunei
        BO { "Bolivja" } 	// Bolivia
        BR { "Brażil" } 	// Brazil
        BS { "Baħamas" } 	// Bahamas
        BT { "Butan" } 	// Bhutan
        //BW { "Botswana" } 	// Botswana
        BY { "Bjelorussja" } 	// Belarus
        BZ { "Beliże" } 	// Belize
        CA { "Kanada" } 	// Canada
        CF { "Repubblika Afrikana Ċentrali" } 	// Central African Republic
        CG { "Kongo" } 	// Congo
        CH { "Svizzera" } 	// Switzerland
        CI { "Kosta ta' l-Avorju" } 	// Côte d'Ivoire
        CL { "Ċili" } 	// Chile
        CM { "Kamerun" } 	// Cameroon
        CN { "Ċina" } 	// China
        CO { "Kolumbja" } 	// Colombia
        CR { "Kosta Rika" } 	// Costa Rica
        CU { "Kuba" } 	// Cuba
        CV { "Kape Verde" } 	// Cape Verde
        CY { "Ċipru" } 	// Cyprus
        CZ { "Repubblika Ċeka" } 	// Czech Republic
        DE { "Ġermanja" } 	// Germany
        DJ { "Ġibuti" } 	// Djibouti
        DK { "Danimarka" } 	// Denmark
        DM { "Dominika" } 	// Dominica
        DO { "Republikka Domenikana" } 	// Dominican Republic
        DZ { "Alġerija" } 	// Algeria
        EC { "Ekwador" } 	// Ecuador
        EE { "Estonja" } 	// Estonia
        EG { "Eġittu" } 	// Egypt
        EH { "Sahara tal-Punent" } 	// Western Sahara
        ER { "Eritreja" } 	// Eritrea
        ES { "Spanja" } 	// Spain
        ET { "Etijopja" } 	// Ethiopia
        FI { "Finlandja" } 	// Finland
        FJ { "Fiġi" } 	// Fiji
        FM { "Mikronesja" } 	// Micronesia
        FO { "Gżejjer Faroe" } 	// Faroe Islands
        FR { "Franza" } 	// France
        //GA { "Gabon" } 	// Gabon
        GB { "Ingilterra" } 	// United Kingdom
        GE { "Ġorġja" } 	// Georgia
        GF { "Gujana Franċiża" } 	// French Guiana
        GH { "Gana" } 	// Ghana
        GL { "Grinlandja" } 	// Greenland
        GM { "Gambja" } 	// Gambia
        GN { "Gineja" } 	// Guinea
        GP { "Gwadelupe" } 	// Guadeloupe
        GQ { "Ginea Ekwatorjali" } 	// Equatorial Guinea
        GR { "Greċja" } 	// Greece
        GT { "Gwatemala" } 	// Guatemala
        GU { "Gwam" } 	// Guam
        GW { "Ginea-Bissaw" } 	// Guinea-Bissau
        GY { "Gujana" } 	// Guyana
        HK { "Ħong Kong S.A.R., Ċina" } 	// Hong Kong S.A.R., China
        HN { "Ħonduras" } 	// Honduras
        HR { "Kroazja" } 	// Croatia
        HT { "Ħaiti" } 	// Haiti
        HU { "Ungerija" } 	// Hungary
        ID { "Indoneżja" } 	// Indonesia
        IE { "Irlanda" } 	// Ireland
        IL { "Iżrael" } 	// Israel
        IN { "Indja" } 	// India
        //IQ { "Iraq" } 	// Iraq
        //IR { "Iran" } 	// Iran
        IS { "Islanda" } 	// Iceland
        IT { "Italja" } 	// Italy
        JM { "Ġamajka" } 	// Jamaica
        JO { "Ġordan" } 	// Jordan
        JP { "Ġappun" } 	// Japan
        KE { "Kenja" } 	// Kenya
        KG { "Kirgistan" } 	// Kyrgyzstan
        KH { "Kambodja" } 	// Cambodia
        //KI { "Kiribati" } 	// Kiribati
        KM { "Komoros" } 	// Comoros
        KP { "Koreja ta' Fuq" } 	// North Korea
        KR { "Koreja t'Isfel" } 	// South Korea
        KW { "Kuwajt" } 	// Kuwait
        KZ { "Każakstan" } 	// Kazakhstan
        //LA { "Laos" } 	// Laos
        LB { "Libanu" } 	// Lebanon
        //LI { "Liechtenstein" } 	// Liechtenstein
        //LK { "Sri Lanka" } 	// Sri Lanka
        LR { "Liberja" } 	// Liberia
        LS { "Lesoto" } 	// Lesotho
        LT { "Litwanja" } 	// Lithuania
        LU { "Lussemburgu" } 	// Luxembourg
        LV { "Latvja" } 	// Latvia
        LY { "Libja" } 	// Libya
        MA { "Marokk" } 	// Morocco
        MC { "Monako" } 	// Monaco
        MD { "Maldova" } 	// Moldova
        MG { "Madagaskar" } 	// Madagascar
        MH { "Gżejjer ta' Marshall" } 	// Marshall Islands
        MK { "Maċedonja" } 	// Macedonia
        //ML { "Mali" } 	// Mali
        MM { "Mjanmar" } 	// Myanmar
        MN { "Mongolja" } 	// Mongolia
        MP { "Gżejjer Marjana ta' Fuq" } 	// Northern Mariana Islands
        MQ { "Martinik" } 	// Martinique
        MR { "Mawritanja" } 	// Mauritania
        //MS { "Montserrat" } 	// Montserrat
        //MT { "Malta" } 	// Malta
        MU { "Mawrizju" } 	// Mauritius
        MX { "Messiku" } 	// Mexico
        MY { "Malasja" } 	// Malaysia
        MZ { "Możambik" } 	// Mozambique
        NA { "Namibja" } 	// Namibia
        //NC { "New Caledonia" } 	// New Caledonia
        NE { "Niġer" } 	// Niger
        NG { "Niġerja" } 	// Nigeria
        NI { "Nikaragwa" } 	// Nicaragua
        NL { "Olanda" } 	// Netherlands
        NO { "Norveġja" } 	// Norway
        //NP { "Nepal" } 	// Nepal
        //NU { "Niue" } 	// Niue
        //NZ { "New Zealand" } 	// New Zealand
        //OM { "Oman" } 	// Oman
        //PA { "Panama" } 	// Panama
        //PE { "Peru" } 	// Peru
        PF { "Polinesja Franċiża" } 	// French Polynesia
        PG { "Papwa-Ginea Ġdida" } 	// Papua New Guinea
        PH { "Filippini" } 	// Philippines
        //PK { "Pakistan" } 	// Pakistan
        PL { "Polonja" } 	// Poland
        //PR { "Puerto Rico" } 	// Puerto Rico
        PT { "Portugall" } 	// Portugal
        PY { "Paragwaj" } 	// Paraguay
        //QA { "Qatar" } 	// Qatar
        RO { "Rumanija" } 	// Romania
        RU { "Russja" } 	// Russia
        //RW { "Rwanda" } 	// Rwanda
        SA { "Għarabja Sawdita" } 	// Saudi Arabia
        //SC { "Seychelles" } 	// Seychelles
        //SD { "Sudan" } 	// Sudan
        SE { "Żvezja" } 	// Sweden
        SG { "Singapor" } 	// Singapore
        SI { "Slovenja" } 	// Slovenia
        SK { "Slovakkja" } 	// Slovakia
        //SL { "Sierra Leone" } 	// Sierra Leone
        //SN { "Senegal" } 	// Senegal
        SO { "Somalja" } 	// Somalia
        SP { "Serbja" } 	// Serbia
        SR { "Surinam" } 	// Suriname
        //SV { "El Salvador" } 	// El Salvador
        SY { "Sirja" } 	// Syria
        SZ { "Sważiland" } 	// Swaziland
        TD { "Ċad" } 	// Chad
        TF { "Territorji Franċiżi ta' Nofsinhar" } 	// French Southern Territories
        //TG { "Togo" } 	// Togo
        TH { "Tajlandja" } 	// Thailand
        TJ { "Taġikistan" } 	// Tajikistan
        TK { "Tokelaw" } 	// Tokelau
        //TM { "Turkmenistan" } 	// Turkmenistan
        TN { "Tuneż" } 	// Tunisia
        //TO { "Tonga" } 	// Tonga
        TL { "Timor tal-Lvant" } 	// East Timor
        TR { "Turkija" } 	// Turkey
        TT { "Trinidad u Tobago" } 	// Trinidad and Tobago
        TW { "Tajwan" } 	// Taiwan
        TZ { "Tanżanija" } 	// Tanzania
        UA { "Ukraina" } 	// Ukraine
        //UG { "Uganda" } 	// Uganda
        US { "Stati Uniti" } 	// United States
        UY { "Urugwaj" } 	// Uruguay
        UZ { "Użbekistan" } 	// Uzbekistan
        VA { "Vatikan" } 	// Vatican   
        VE { "Venezwela" } 	// Venezuela
        //VG { "British Virgin Islands" } 	// British Virgin Islands
        //VI { "U.S. Virgin Islands" } 	// U.S. Virgin Islands
        VN { "Vjetnam" } 	// Vietnam
        VU { "Vanwatu" } 	// Vanuatu
        YE { "Jemen" } 	// Yemen
        YT { "Majotte" } 	// Mayotte
        YU { "Jugoslavja" } 	// Yugoslavia
        ZA { "Afrika t'Isfel" } 	// South Africa
        ZM { "Żambja" } 	// Zambia
        //ZR { "Żaire" } 	// Zaire // It's now called CD { "Democratic Republic of the Congo" }
        ZW { "Żimbabwe" } 	// Zimbabwe

    }
    MonthNames {
        Jannar,
        Frar,
        Marzu,
        April,
        Mejju,
        Ġunju,
        Lulju,
        Awissu,
        Settembru,
        Ottubru,
        Novembru,
        Diċembru
    }

   MonthAbbreviations {
        "Jan",
        "Fra",
        "Mar",
        "Apr",
        "Mej",
        "Ġun",
        "Lul",
        "Awi",
        "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 yyyy",
        "dd-MMM-yyyy",
        "dd/MM/yy",
        "{1} {0}"
    }
//    Duplicated in parent
//    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 and "Regolament" 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

// Note that IE is **NOT** sorted as ittra waħda. 
// So says the Akkademja tal-Malta

   CollationElements
   {
        Version { "1.0" }
        Sequence { "& B < ċ <<< Ċ" // ċ  Ċ
                   "    < c<<<C"      
                   "& F < ġ<<< Ġ "              // ġ  Ġ
                   "    < g<<<G"
                   "    < għ <<< gĦ <<< Għ <<< GĦ "
                   "& H < ħ  <<< Ħ "           
                   "& Y < ż<<< Ż"               // ż Ż
                   "    < z<<<Z" }
   }

// Time zone
//CET: 
    zoneStrings {
        {
            "CET", 
            "Ħin ta' L-Ewropa Ċentrali", 
            "CET", 
            "Ħin tas-Sajf fl-Ewropa Ċentrali",
            "CEST"
        }
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }

    ExemplarCharacters { "[[a-z \u00e0 \u00ec \u00f9 \u00e8 \u00f2 ċ ġ ħ {għ} ż]-[cy]]" }

// Spellout rules.  Experimental.

    SpelloutRules {
        // This rule set shows the normal simple formatting rules for English
        "%simplified:\n"
                // negative number rule.  This rule is used to format negative
                // numbers.  The result of formatting the number's absolute
                // value is placed where the >> is.
        "    -x: minus >>;\n"
                // faction rule.  This rule is used for formatting numbers
                // with fractional parts.  The result of formatting the
                // number's integral part is substituted for the <<, and
                // the result of formatting the number's fractional part
                // (one digit at a time, e.g., 0.123 is "zero punt one two
                // three") replaces the >>.
        "    x.x: << punt >>;\n"
                // the rules for the values from 0 to 19 are simply the
                // words for those numbers
        "    żero; wieħed; tnejn; tlieta; erbgħa; ħamsa; sitta; sebgħa; tmienja; disgħa;\n"
        "    għaxra; ħdax; tnax; tlettax; erbatax; ħmistax; sittax;\n"
        "        sbatax; tmintax; dsatax;\n"
                // beginning at 20, we use the >> to mark the position where
                // the result of formatting the number's ones digit.  Thus,
                // we only need a new rule at every multiple of 10.  Text in
                // backets is omitted if the value being formatted is an
                // even multiple of 10.
        "    20: [>> u ]għoxrin;\n"
        "    30: [>> u ]tletin;\n"
        "    40: [>> u ]erbgħin;\n"
        "    50: [>> u ]ħamsin;\n"
        "    60: [>> u ]sittin;\n"
        "    70: [>> u ]sebgħin;\n"
        "    80: [>> u ]tmenin;\n"
        "    90: [>> u ]disgħin;\n"
                // beginning at 100, we can use << to mark the position where
                // the result of formatting the multiple of 100 is to be
                // inserted.  Notice also that the meaning of >> has shifted:
                // here, it refers to both the ones place and the tens place.
                // The meanings of the << and >> tokens depend on the base value
                // of the rule.  A rule's divisor is (usually) the highest
                // power of 10 that is less than or equal to the rule's base
                // value.  The value being formatted is divided by the rule's
                // divisor, and the integral quotient is used to get the text
                // for <<, while the remainder is used to produce the text
                // for >>.  Again, text in brackets is omitted if the value
                // being formatted is an even multiple of the rule's divisor
                // (in this case, an even multiple of 100)
        "    100: mija[ u >>];\n"
        "    200: mitejn[ u >>];\n"
                // The rules for the higher numbers work the same way as the
                // rule for 100: Again, the << and >> tokens depend on the
                // rule's divisor, which for all these rules is also the rule's
                // base value.  To group by thousand, we simply don't have any
                // rules between 1,000 and 1,000,000.
        "    1000: << elf[ u >>];\n"
        "    2000: << elfejn[ u >>];\n"
        "    3000: tliet elef [ u >>];\n"
        "    1,000,000: << miljun[ u >>];\n"
        "    1,000,000,000: << biljun[ >>];\n"
        "    1,000,000,000,000: << triljun[ >>];\n"
                // overflow rule.  This rule specifies that values of a
                // quadrillion or more are shown in numerals rather than words.
                // The == token means to format (with new rules) the value
                // being formatted by this rule and place the result where
                // the == is.  The #,##0 inside the == signs is a
                // DecimalFormat pattern.  It specifies that the value should
                // be formatted with a DecimalFormat object, and that it
                // should be formatted with no decimal places, at least one
                // digit, and a thousands separator.
        "    1,000,000,000,000,000: =#,##0=;\n"

        // %default is a more elaborate form of %simplified;  It is basically
        // the same, except that it introduces "and" before the ones digit
        // when appropriate (basically, between the tens and ones digits) and
        // separates the thousands groups with commas in values over 100,000.
        "%default:\n"
                // negative-number and fraction rules.  These are the same
                // as those for %simplified, but have to be stated here too
                // because this is an entry point
        "    -x: minus >>;\n"
        "    x.x: << punt >>;\n"
                // just use %simplified for values below 100
        "    =%simplified=;\n"
                // for values from 100 to 9,999 use %%and to decide whether or
                // not to interpose the "and"
        "    100: mija[ >%%and>];\n"
        "    200: mitejn[ >%%and>];\n"
        "    300: tlett mija[ >%%and>];\n"
        "    400: erbgħa mija[ >%%and>];\n"
        "    500: ħames mija[ >%%and>];\n"
        "    600: sitt mija[ >%%and>];\n"
        "    700: sebgħa mija[ >%%and>];\n"
        "    800: tmin mija[ >%%and>];\n"
        "    900: disgħa mija[ >%%and>];\n"
        "    1000: << elf[ >%%and>];\n"
                // for values of 100,000 and up, use %%commas to interpose the
                // commas in the right places (and also to interpose the "and")
        "    100,000>>: << thousand[>%%commas>];\n"
        "    1,000,000: << million[>%%commas>];\n"
        "    1,000,000,000: << billion[>%%commas>];\n"
        "    1,000,000,000,000: << trillion[>%%commas>];\n"
        "    1,000,000,000,000,000: =#,##0=;\n"
        // if the value passed to this rule set is greater than 100, don't
        // add the "and"; if it's less than 100, add "and" before the last
        // digits
        "%%and:\n"
        "    u =%default=;\n"
        "    100: =%default=;\n"
        // this rule set is used to place the commas
        "%%commas:\n"
                // for values below 100, add "and" (the apostrophe at the
                // beginning is ignored, but causes the space that follows it
                // to be significant: this is necessary because the rules
                // calling %%commas don't put a space before it)
        "    ' and =%default=;\n"
                // put a comma after the thousands (or whatever preceded the
                // hundreds)
        "    100: , =%default=;\n"
                // put a comma after the millions (or whatever precedes the
                // thousands)
        "    1000: , <%default< thousand, >%default>;\n"
                // and so on...
        "    1,000,000: , =%default=;"
        // %%lenient-parse isn't really a set of number formatting rules;
        // it's a set of collation rules.  Lenient-parse mode uses a Collator
        // object to compare fragments of the text being parsed to the text
        // in the rules, allowing more leeway in the matching text.  This set
        // of rules tells the formatter to ignore commas when parsing (it
        // already ignores spaces, which is why we refer to the space; it also
        // ignores hyphens, making "twenty one" and "twenty-one" parse
        // identically)
        "%%lenient-parse:\n"
        //            "    & ' ' , ',' ;\n"
        "   &\u0000 << ' ' << ',' << '-'; \n"
    }


    DurationRules {
        // main rule set for formatting with words
        "%with-words:\n"
                // take care of singular and plural forms of "second"
        "    0 sekondi; 1 sekonda; =0= sekondi;\n"
                // use %%min to format values greater than 60 seconds
        "    60/60: <%%min<[, >>];\n"
                // use %%hr to format values greater than 3,600 seconds
                // (the ">>>" below causes us to see the number of minutes
                // when when there are zero minutes)
        "    3600/60: <%%hr<[, >>>];\n"
        // this rule set takes care of the singular and plural forms
        // of "minute"
        "%%min:\n"
        "    0 minuti; 1 minuta; =0= minuti;\n"
        // this rule set takes care of the singular and plural forms
        // of "hour"
        "%%hr:\n"
        "    0 siegħat; 1 siegħa; =0= siegħat;\n"

        // main rule set for formatting in numerals
        "%in-numerals:\n"
                // values below 60 seconds are shown with "sec."
        "    =0= sek.;\n"
                // higher values are shown with colons: %%min-sec is used for
                // values below 3,600 seconds...
        "    60: =%%min-sec=;\n"
                // ...and %%hr-min-sec is used for values of 3,600 seconds
                // and above
        "    3600: =%%hr-min-sec=;\n"
        // this rule causes values of less than 10 minutes to show without
        // a leading zero
        "%%min-sec:\n"
        "    0: :=00=;\n"
        "    60/60: <0<>>;\n"
        // this rule set is used for values of 3,600 or more.  Minutes are always
        // shown, and always shown with two digits
        "%%hr-min-sec:\n"
        "    0: :=00=;\n"
        "    60/60: <00<>>;\n"
        "    3600/60: <#,##0<:>>>;\n"
        // the lenient-parse rules allow several different characters to be used
        // as delimiters between hours, minutes, and seconds
        "%%lenient-parse:\n"
        "    & ':' = '.' = ' ' = '-';\n" 
    }



    // Currency display names
    Currencies {
        MTL { "Lm", "MTL" }
    }
}


// -- 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      ( Major updates to ISO lang/country codes)
// - in - in-nazzjon
// - lo - l-orrizont

// Change Log
//2001-11-15 srl 0.9.4  MAJOR updates to ISO lang/cty codes from Angelo,
//                         Number spellout, etc..
//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
