﻿// © 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 æ ø å]"
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.1.27.40"}
    calendar{
        gregorian{
            dayNames{
                format{
                    abbreviated{
                        "sab",
                        "ata",
                        "mar",
                        "pin",
                        "sis",
                        "tal",
                        "arf",
                    }
                    short{
                        "sab",
                        "ata",
                        "mar",
                        "pin",
                        "sis",
                        "tal",
                        "arf",
                    }
                    wide{
                        "sabaat",
                        "ataasinngorneq",
                        "marlunngorneq",
                        "pingasunngorneq",
                        "sisamanngorneq",
                        "tallimanngorneq",
                        "arfininngorneq",
                    }
                }
                stand-alone{
                    short{
                        "sab",
                        "ata",
                        "mar",
                        "pin",
                        "sis",
                        "tal",
                        "arf",
                    }
                    wide{
                        "sabaat",
                        "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"}
                }
            }
        }
    }
}
