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

kl{
   Version { "x0.0" }

    DayAbbreviations { 
            "sab",
            "ata",
            "mar",
            "pin",
            "sis",
            "tal",
            "arf",
    }
    DayNames { 
            "sabaat",
            "ataasinngorneq",
            "marlunngorneq",
            "pingasunngorneq",
            "sisamanngorneq",
            "tallimanngorneq",
            "arfininngorneq",
    }
    MonthAbbreviations { 
            "jan",
            "feb",
            "mar",
            "apr",
            "maj",
            "jun",
            "jul",
            "aug",
            "sep",
            "okt",
            "nov",
            "dec",
            "",
    }
    MonthNames { 
            "januari",
            "februari",
            "martsi",
            "aprili",
            "maji",
            "juni",
            "juli",
            "augustusi",
            "septemberi",
            "oktoberi",
            "novemberi",
            "decemberi",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221e",
            "\ufffd",
    }
    LocaleScript{ 
                "Latn",  // ISO 15924 Name 

    }

            // /**************** Info Below is needed ****************/
            // CollationElements{}
            // Countries{}
            // Eras{}
            // Languages{}
            // ShortLanguage { }
            // localPatternChars{}
            //

}
