// *******************************************************************************
// *
// *   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",
    }

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

}
