﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
kl{
    AuxExemplarCharacters{"[ĸ]"}
    ExemplarCharacters{
        "[a á â ã b c d e é ê f g h i í î ĩ j k l m n o ô p q r s t u ú û ũ v w x y z"
        " æ ø å]"
    }
    ExemplarCharactersNumbers{"[, . % ‰ + − 0 1 2 3 4 5 6 7 8 9]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
        minimalPairs{
            plural{
                one{"{0} Ulloq"}
                other{"{0} Ullut"}
            }
        }
    }
    Version{"2.1.47.82"}
    calendar{
        gregorian{
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "y MMMM d, EEEE",
                "y MMMM d",
                "y MMM d",
                "y-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "sap",
                        "ata",
                        "mar",
                        "pin",
                        "sis",
                        "tal",
                        "arf",
                    }
                    short{
                        "sap",
                        "ata",
                        "mar",
                        "pin",
                        "sis",
                        "tal",
                        "arf",
                    }
                    wide{
                        "sapaat",
                        "ataasinngorneq",
                        "marlunngorneq",
                        "pingasunngorneq",
                        "sisamanngorneq",
                        "tallimanngorneq",
                        "arfininngorneq",
                    }
                }
                stand-alone{
                    short{
                        "sap",
                        "ata",
                        "mar",
                        "pin",
                        "sis",
                        "tal",
                        "arf",
                    }
                    wide{
                        "sapaat",
                        "ataasinngorneq",
                        "marlunngorneq",
                        "pingasunngorneq",
                        "sisamanngorneq",
                        "tallimanngorneq",
                        "arfininngorneq",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "maj",
                        "jun",
                        "jul",
                        "aug",
                        "sep",
                        "okt",
                        "nov",
                        "dec",
                    }
                    wide{
                        "januari",
                        "februari",
                        "martsi",
                        "aprili",
                        "maji",
                        "juni",
                        "juli",
                        "augustusi",
                        "septemberi",
                        "oktoberi",
                        "novemberi",
                        "decemberi",
                    }
                }
                stand-alone{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "maj",
                        "jun",
                        "jul",
                        "aug",
                        "sep",
                        "okt",
                        "nov",
                        "dec",
                    }
                    wide{
                        "januari",
                        "februari",
                        "martsi",
                        "aprili",
                        "maji",
                        "juni",
                        "juli",
                        "augustusi",
                        "septemberi",
                        "oktoberi",
                        "novemberi",
                        "decemberi",
                    }
                }
            }
        }
    }
    fields{
        day{
            relativeTime{
                future{
                    one{"om {0} ulloq unnuarlu"}
                    other{"om {0} ulloq unnuarlu"}
                }
                past{
                    one{"for {0} ulloq unnuarlu siden"}
                    other{"for {0} ulloq unnuarlu siden"}
                }
            }
        }
        hour{
            relativeTime{
                future{
                    one{"om {0} nalunaaquttap-akunnera"}
                    other{"om {0} nalunaaquttap-akunnera"}
                }
                past{
                    one{"for {0} nalunaaquttap-akunnera siden"}
                    other{"for {0} nalunaaquttap-akunnera siden"}
                }
            }
        }
        minute{
            relativeTime{
                future{
                    one{"om {0} minutsi"}
                    other{"om {0} minutsi"}
                }
                past{
                    one{"for {0} minutsi siden"}
                    other{"for {0} minutsi siden"}
                }
            }
        }
        month{
            relativeTime{
                future{
                    one{"om {0} qaammat"}
                    other{"om {0} qaammat"}
                }
                past{
                    one{"for {0} qaammat siden"}
                    other{"for {0} qaammat siden"}
                }
            }
        }
        second{
            relativeTime{
                future{
                    one{"om {0} sekundi"}
                    other{"om {0} sekundi"}
                }
                past{
                    one{"for {0} sekundi siden"}
                    other{"for {0} sekundi siden"}
                }
            }
        }
        week{
            relativeTime{
                future{
                    one{"om {0} sapaatip-akunnera"}
                    other{"om {0} sapaatip-akunnera"}
                }
                past{
                    one{"for {0} sapaatip-akunnera siden"}
                    other{"for {0} sapaatip-akunnera siden"}
                }
            }
        }
        year{
            relativeTime{
                future{
                    one{"om {0} ukioq"}
                    other{"om {0} ukioq"}
                }
                past{
                    one{"for {0} ukioq siden"}
                    other{"for {0} ukioq siden"}
                }
            }
        }
    }
}
