﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/nn.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/nn.xml
 */
nn{
    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 æ ø å]"}
    ExemplarCharactersCurrency{"[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]"}
    ExemplarCharactersIndex{"[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 Æ Ø Å]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{" "}
                infinity{"∞"}
                list{";"}
                minusSign{"−"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.64.72"}
    calendar{
        gregorian{
            AmPmMarkers{
                "formiddag",
                "ettermiddag",
            }
            DateTimePatterns{
                "'kl'. HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d. MMMM y",
                "d. MMMM y",
                "d. MMM y",
                "dd.MM.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                MEd{"E d.M"}
                MMMEd{"E d. MMM"}
                MMMMd{"d. MMMM"}
                MMMd{"d. MMM"}
                MMdd{"dd.MM"}
                Md{"d.M."}
                d{"d."}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"mm:ss"}
                yM{"M y"}
                yMEd{"E d.M.yyyy"}
                yMMM{"MMM y"}
                yMMMEd{"E d. MMM y"}
                yMMMd{"d. MMM y"}
                yMd{"d.M.yyyy"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
                yyMM{"MM.yy"}
                yyQ{"Q yy"}
                yyyyMMMM{"MMMM y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "sø.",
                        "må.",
                        "ty.",
                        "on.",
                        "to.",
                        "fr.",
                        "la.",
                    }
                    wide{
                        "søndag",
                        "måndag",
                        "tysdag",
                        "onsdag",
                        "torsdag",
                        "fredag",
                        "laurdag",
                    }
                }
                stand-alone{
                    narrow{
                        "S",
                        "M",
                        "T",
                        "O",
                        "T",
                        "F",
                        "L",
                    }
                }
            }
            eras{
                abbreviated{
                    "f.Kr.",
                    "e.Kr.",
                }
                wide{
                    "f.Kr.",
                    "e.Kr.",
                }
            }
            fields{
                day{
                    dn{"dag"}
                    relative{
                        "-1"{"i går"}
                        "-2"{"i forgårs"}
                        "0"{"i dag"}
                        "1"{"i morgon"}
                        "2"{"i overmorgon"}
                    }
                }
                dayperiod{
                    dn{"f.m./e.m.-val"}
                }
                era{
                    dn{"æra"}
                }
                hour{
                    dn{"time"}
                }
                minute{
                    dn{"minutt"}
                }
                month{
                    dn{"månad"}
                }
                second{
                    dn{"sekund"}
                }
                week{
                    dn{"veke"}
                }
                weekday{
                    dn{"vekedag"}
                }
                year{
                    dn{"år"}
                }
                zone{
                    dn{"sone"}
                }
            }
            intervalFormats{
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                M{
                    M{"M.–M."}
                }
                MEd{
                    M{"E dd.MM.–E dd.MM."}
                    d{"E dd.MM.–E dd.MM."}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E d. MMM–E d. MMM"}
                    d{"E d.–E d. MMM"}
                }
                MMMd{
                    M{"d. MMM–d. MMM"}
                    d{"d.–d. MMM"}
                }
                Md{
                    M{"dd.MM–dd.MM"}
                    d{"dd.MM–dd.MM"}
                }
                d{
                    d{"d.–d."}
                }
                fallback{"{0} – {1}"}
                h{
                    h{"h–h a"}
                }
                hm{
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    h{"h–h a v"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"MM.yy–MM.yy"}
                    y{"MM.yy–MM.yy"}
                }
                yMEd{
                    M{"E dd.MM.yy–E dd.MM.yy"}
                    d{"E dd.MM.yy–E dd.MM.yy"}
                    y{"E dd.MM.yy–E dd.MM.yy"}
                }
                yMMM{
                    M{"MMM–MMM y"}
                    y{"MMM y–MMM y"}
                }
                yMMMEd{
                    M{"E d. MMM–E d. MMM y"}
                    d{"E d.–E d. MMM y"}
                    y{"E d. MMM y–E d. MMM"}
                }
                yMMMM{
                    M{"MMMM–MMMM y"}
                    y{"MMMM y–MMMM y"}
                }
                yMMMd{
                    M{"d. MMM–d. MMM y"}
                    d{"d.–d. MMM y"}
                    y{"d. MMM y–d. MMM y"}
                }
                yMd{
                    M{"dd.MM.yy–dd.MM.yy"}
                    d{"dd.MM.yy–dd.MM.yy"}
                    y{"dd.MM.yy–dd.MM.yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jan.",
                        "feb.",
                        "mars",
                        "apr.",
                        "mai",
                        "juni",
                        "juli",
                        "aug.",
                        "sep.",
                        "okt.",
                        "nov.",
                        "des.",
                    }
                    wide{
                        "januar",
                        "februar",
                        "mars",
                        "april",
                        "mai",
                        "juni",
                        "juli",
                        "august",
                        "september",
                        "oktober",
                        "november",
                        "desember",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    wide{
                        "1. kvartal",
                        "2. kvartal",
                        "3. kvartal",
                        "4. kvartal",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    listPattern{
        standard{
            2{"{0} og {1}"}
            end{"{0} og {1}"}
        }
    }
    measurementSystemNames{
        UK{"engelsk"}
        US{"amerikansk"}
        metric{"metrisk"}
    }
    units{
        day{
            one{"{0} døgn"}
            other{"{0} døgn"}
        }
        day-future{
            one{"om {0} dag"}
            other{"om {0} dagar"}
        }
        day-past{
            one{"for {0} dag sidan"}
            other{"for {0} dagar sidan"}
        }
        hour{
            one{"{0} time"}
            other{"{0} timar"}
        }
        hour-future{
            one{"om {0} time"}
            other{"om {0} timar"}
        }
        hour-past{
            one{"for {0} time sidan"}
            other{"for {0} timar sidan"}
        }
        minute{
            one{"{0} minutt"}
            other{"{0} minutt"}
        }
        minute-future{
            one{"om {0} minutt"}
            other{"om {0} minutt"}
        }
        minute-past{
            one{"for {0} minutt sidan"}
            other{"for {0} minutt sidan"}
        }
        month{
            one{"{0} månad"}
            other{"{0} månader"}
        }
        month-future{
            one{"om {0} månad"}
            other{"om {0} månader"}
        }
        month-past{
            one{"for {0} månad sidan"}
            other{"for {0} månader sidan"}
        }
        second{
            one{"{0} sekund"}
            other{"{0} sekund"}
        }
        second-future{
            one{"om {0} sekund"}
            other{"om {0} sekund"}
        }
        second-past{
            one{"for {0} sekund sidan"}
            other{"for {0} sekund sidan"}
        }
        week{
            one{"{0} veke"}
            other{"{0} veker"}
        }
        week-future{
            one{"om {0} veke"}
            other{"om {0} veker"}
        }
        week-past{
            one{"for {0} veke sidan"}
            other{"for {0} veker sidan"}
        }
        year{
            one{"{0} år"}
            other{"{0} år"}
        }
        year-future{
            one{"om {0} år"}
            other{"om {0} år"}
        }
        year-past{
            one{"for {0} år sidan"}
            other{"for {0} år sidan"}
        }
    }
}
