﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/nb.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/nb.xml
 */
nb{
    AuxExemplarCharacters{"[á ǎ ã č ç đ è ê í ń ñ ŋ š ŧ ü ž ä ö]"}
    Ellipsis{
        final{"{0}…"}
        initial{"…{0}"}
        medial{"{0}…{1}"}
        word-final{"{0} …"}
        word-initial{"… {0}"}
        word-medial{"{0} … {1}"}
    }
    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 æ ø å]"}
    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 Æ Ø Å]"}
    ExemplarCharactersPunctuation{"[\\- – , ; \\: ! ? . ' \u0022 « » ( ) \\[ \\] \\{ \\} § @ * / \\\\]"}
    LocaleScript{
        "Latn",
    }
    MoreInformation{"?"}
    NumberElements{
        default{"latn"}
        latn{
            miscPatterns{
                atLeast{"⩾{0}"}
                range{"{0}‒{1}"}
            }
            patterns{
                accountingFormat{"¤ #,##0.00"}
                currencyFormat{"¤ #,##0.00"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
                scientificFormat{"#E0"}
            }
            patternsLong{
                decimalFormat{
                    1000{
                        one{"0 tusen"}
                        other{"0 tusen"}
                    }
                    10000{
                        one{"00 tusen"}
                        other{"00 tusen"}
                    }
                    100000{
                        one{"000 tusen"}
                        other{"000 tusen"}
                    }
                    1000000{
                        one{"0 million"}
                        other{"0 millioner"}
                    }
                    10000000{
                        one{"00 million"}
                        other{"00 millioner"}
                    }
                    100000000{
                        one{"000 million"}
                        other{"000 millioner"}
                    }
                    1000000000{
                        one{"0 milliard"}
                        other{"0 milliarder"}
                    }
                    10000000000{
                        one{"00 milliard"}
                        other{"00 milliarder"}
                    }
                    100000000000{
                        one{"000 milliard"}
                        other{"000 milliarder"}
                    }
                    1000000000000{
                        one{"0 billion"}
                        other{"0 billioner"}
                    }
                    10000000000000{
                        one{"00 billioner"}
                        other{"00 billioner"}
                    }
                    100000000000000{
                        one{"000 billioner"}
                        other{"000 billioner"}
                    }
                }
            }
            patternsShort{
                decimalFormat{
                    1000{
                        one{"0 K"}
                        other{"0 K"}
                    }
                    10000{
                        one{"00 K"}
                        other{"00 K"}
                    }
                    100000{
                        one{"000 K"}
                        other{"000 K"}
                    }
                    1000000{
                        one{"0 mill"}
                        other{"0 mill"}
                    }
                    10000000{
                        one{"00 mill"}
                        other{"00 mill"}
                    }
                    100000000{
                        one{"000 mill"}
                        other{"000 mill"}
                    }
                    1000000000{
                        one{"0 mrd"}
                        other{"0 mrd"}
                    }
                    10000000000{
                        one{"00 mrd"}
                        other{"00 mrd"}
                    }
                    100000000000{
                        one{"000 mrd"}
                        other{"000 mrd"}
                    }
                    1000000000000{
                        one{"0 bill"}
                        other{"0 bill"}
                    }
                    10000000000000{
                        one{"00 bill"}
                        other{"00 bill"}
                    }
                    100000000000000{
                        one{"000 bill"}
                        other{"000 bill"}
                    }
                }
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{" "}
                infinity{"∞"}
                list{";"}
                minusSign{"−"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
                superscriptingExponent{"×"}
                timeSeparator{"."}
            }
        }
        minimumGroupingDigits{"1"}
        native{"latn"}
    }
    Version{"2.1.12.94"}
    calendar{
        buddhist{
            eras{
                abbreviated{
                    "BE",
                }
            }
        }
        generic{
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "EEEE d. MMMM y G",
                "d. MMMM y G",
                "d. MMM y G",
                "d.M. y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E d. MMM y G"}
                GyMMMd{"d. MMM y G"}
                H{"HH"}
                Hm{"HH.mm"}
                Hms{"HH.mm.ss"}
                M{"L."}
                MEd{"E d.M"}
                MMM{"LLL"}
                MMMEd{"E d. MMM"}
                MMMd{"d. MMM"}
                MMdd{"d.M."}
                Md{"d.M."}
                d{"d."}
                h{"h a"}
                hm{"h.mm a"}
                hms{"h.mm.ss a"}
                ms{"mm.ss"}
                y{"y G"}
                yyyy{"y G"}
                yyyyM{"M.y G"}
                yyyyMEd{"E d.M.y G"}
                yyyyMM{"MM.y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"E d. MMM y G"}
                yyyyMMMM{"MMMM y G"}
                yyyyMMMd{"d. MMM y G"}
                yyyyMd{"d.M.y G"}
                yyyyQQQ{"QQQ y G"}
                yyyyQQQQ{"QQQQ y G"}
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH.mm–HH.mm"}
                    m{"HH.mm–HH.mm"}
                }
                Hmv{
                    H{"HH.mm–HH.mm v"}
                    m{"HH.mm–HH.mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                M{
                    M{"M.–M."}
                }
                MEd{
                    M{"E d.M.–E d.M."}
                    d{"E d.M.–E d.M."}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E d. MMM–E d. MMM"}
                    d{"E d. MMM–E d. MMM"}
                }
                MMMd{
                    M{"d. MMM–d. MMM"}
                    d{"d.–d. MMM"}
                }
                Md{
                    M{"d.M.–d.M."}
                    d{"d.M.–d.M."}
                }
                d{
                    d{"d.–d."}
                }
                fallback{"{0}–{1}"}
                h{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h.mm a – h.mm a"}
                    h{"h.mm–h.mm a"}
                    m{"h.mm–h.mm a"}
                }
                hmv{
                    a{"h.mm a – h.mm a v"}
                    h{"h.mm–h.mm a v"}
                    m{"h.mm–h.mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
                y{
                    y{"y–y G"}
                }
                yM{
                    M{"M.y–M.y G"}
                    y{"M.y–M.y G"}
                }
                yMEd{
                    M{"E d.M.y–E d.M.y G"}
                    d{"E d.M.y–E d.M.y G"}
                    y{"E d.M.y–E d.M.y G"}
                }
                yMMM{
                    M{"MMM–MMM y G"}
                    y{"MMM y–MMM y G"}
                }
                yMMMEd{
                    M{"E d. MMM–E d. MMM y G"}
                    d{"E d. MMM–E d. MMM y G"}
                    y{"E d. MMM y–E d. MMM y G"}
                }
                yMMMM{
                    M{"MMMM–MMMM y G"}
                    y{"MMMM y–MMMM y G"}
                }
                yMMMd{
                    M{"d. MMM–d. MMM y G"}
                    d{"d.–d. MMM y G"}
                    y{"d. MMM y–d. MMM y G"}
                }
                yMd{
                    M{"d.M.y–d.M.y G"}
                    d{"d.M.y–d.M.y G"}
                    y{"d.M.y–d.M.y G"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "a.m.",
                "p.m.",
            }
            AmPmMarkersAbbr{
                "a.m.",
                "p.m.",
            }
            AmPmMarkersNarrow{
                "a",
                "p",
            }
            DateTimePatterns{
                "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.y",
                "{1}, {0}",
                "{1} {0}",
                "{1} 'kl.' {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            NoonMarker{"kl. 12"}
            NoonMarkerNarrow{"12"}
            appendItems{
                Timezone{"{0} {1}"}
            }
            availableFormats{
                E{"ccc"}
                EHm{"E HH.mm"}
                EHms{"E HH.mm.ss"}
                Ed{"E d."}
                Ehm{"E h.mm a"}
                Ehms{"E h.mm.ss a"}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E d. MMM y G"}
                GyMMMd{"d. MMM y G"}
                H{"HH"}
                Hm{"HH.mm"}
                Hms{"HH.mm.ss"}
                Hmsv{"HH.mm.ss v"}
                Hmv{"HH.mm v"}
                M{"L."}
                MEd{"E d.M"}
                MMM{"LLL"}
                MMMEd{"E d. MMM"}
                MMMd{"d. MMM"}
                MMdd{"d.M."}
                Md{"d.M."}
                d{"d."}
                h{"h a"}
                hm{"h.mm a"}
                hms{"h.mm.ss a"}
                hmsv{"h.mm.ss a v"}
                hmv{"h.mm a v"}
                ms{"mm.ss"}
                y{"y"}
                yM{"M.y"}
                yMEd{"E d.MM.y"}
                yMM{"MM.y"}
                yMMM{"MMM y"}
                yMMMEd{"E d. MMM y"}
                yMMMM{"MMMM y"}
                yMMMd{"d. MMM y"}
                yMd{"d.M.y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "søn.",
                        "man.",
                        "tir.",
                        "ons.",
                        "tor.",
                        "fre.",
                        "lør.",
                    }
                    narrow{
                        "S",
                        "M",
                        "T",
                        "O",
                        "T",
                        "F",
                        "L",
                    }
                    short{
                        "sø.",
                        "ma.",
                        "ti.",
                        "on.",
                        "to.",
                        "fr.",
                        "lø.",
                    }
                    wide{
                        "søndag",
                        "mandag",
                        "tirsdag",
                        "onsdag",
                        "torsdag",
                        "fredag",
                        "lørdag",
                    }
                }
                stand-alone{
                    abbreviated{
                        "sø.",
                        "ma.",
                        "ti.",
                        "on.",
                        "to.",
                        "fr.",
                        "lø.",
                    }
                    narrow{
                        "S",
                        "M",
                        "T",
                        "O",
                        "T",
                        "F",
                        "L",
                    }
                    short{
                        "sø.",
                        "ma.",
                        "ti.",
                        "on.",
                        "to.",
                        "fr.",
                        "lø.",
                    }
                    wide{
                        "søndag",
                        "mandag",
                        "tirsdag",
                        "onsdag",
                        "torsdag",
                        "fredag",
                        "lørdag",
                    }
                }
            }
            eras{
                abbreviated{
                    "f.Kr.",
                    "e.Kr.",
                }
                abbreviated%variant{
                    "fvt.",
                    "vt.",
                }
                narrow{
                    "f.Kr.",
                    "e.Kr.",
                }
                narrow%variant{
                    "fvt.",
                    "vt",
                }
                wide{
                    "f.Kr.",
                    "e.Kr.",
                }
                wide%variant{
                    "før vår tidsregning",
                    "vår tidsregning",
                }
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH.mm–HH.mm"}
                    m{"HH.mm–HH.mm"}
                }
                Hmv{
                    H{"HH.mm–HH.mm v"}
                    m{"HH.mm–HH.mm v"}
                }
                Hv{
                    H{"HH–HH 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{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h.mm a – h.mm a"}
                    h{"h.mm–h.mm a"}
                    m{"h.mm–h.mm a"}
                }
                hmv{
                    a{"h.mm a – h.mm a v"}
                    h{"h.mm–h.mm a v"}
                    m{"h.mm–h.mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"MM.y–MM.y"}
                    y{"MM.y–MM.y"}
                }
                yMEd{
                    M{"E dd.MM.y–E dd.MM.y"}
                    d{"E dd.MM.y–E dd.MM.y"}
                    y{"E dd.MM.y–E dd.MM.y"}
                }
                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 y"}
                }
                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.y–dd.MM.y"}
                    d{"dd.MM.y–dd.MM.y"}
                    y{"dd.MM.y–dd.MM.y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jan.",
                        "feb.",
                        "mar.",
                        "apr.",
                        "mai",
                        "jun.",
                        "jul.",
                        "aug.",
                        "sep.",
                        "okt.",
                        "nov.",
                        "des.",
                    }
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                    wide{
                        "januar",
                        "februar",
                        "mars",
                        "april",
                        "mai",
                        "juni",
                        "juli",
                        "august",
                        "september",
                        "oktober",
                        "november",
                        "desember",
                    }
                }
                stand-alone{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "mai",
                        "jun",
                        "jul",
                        "aug",
                        "sep",
                        "okt",
                        "nov",
                        "des",
                    }
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                    wide{
                        "januar",
                        "februar",
                        "mars",
                        "april",
                        "mai",
                        "juni",
                        "juli",
                        "august",
                        "september",
                        "oktober",
                        "november",
                        "desember",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1. kvartal",
                        "2. kvartal",
                        "3. kvartal",
                        "4. kvartal",
                    }
                }
                stand-alone{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1. kvartal",
                        "2. kvartal",
                        "3. kvartal",
                        "4. kvartal",
                    }
                }
            }
        }
        hebrew{
            eras{
                abbreviated{
                    "AM",
                }
            }
        }
        islamic{
            eras{
                abbreviated{
                    "AH",
                }
            }
        }
        japanese{
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "EEEE d. MMMM y G",
                "d. MMMM y G",
                "d. MMM y G",
                "d.M y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        roc{
            eras{
                abbreviated{
                    "Before R.O.C.",
                    "Minguo",
                }
            }
        }
    }
    contextTransforms{
        relative:intvector{
            0,
            1,
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"Dag"}
            relative{
                "-1"{"i går"}
                "-2"{"i forgårs"}
                "0"{"i dag"}
                "1"{"i morgen"}
                "2"{"i overmorgen"}
            }
            relativeTime{
                future{
                    one{"om {0} døgn"}
                    other{"om {0} døgn"}
                }
                past{
                    one{"for {0} døgn siden"}
                    other{"for {0} døgn siden"}
                }
            }
        }
        day-narrow{
            dn{"dag"}
            relativeTime{
                future{
                    one{"+{0} d."}
                    other{"+{0} d."}
                }
                past{
                    one{"-{0} d."}
                    other{"-{0} d."}
                }
            }
        }
        day-short{
            dn{"dag"}
            relativeTime{
                future{
                    one{"om {0} døgn"}
                    other{"om {0} døgn"}
                }
                past{
                    one{"for {0} døgn siden"}
                    other{"for {0} døgn siden"}
                }
            }
        }
        dayperiod{
            dn{"AM/PM"}
        }
        era{
            dn{"Tidsalder"}
        }
        fri{
            relative{
                "-1"{"fredag sist uke"}
                "0"{"fredag denne uken"}
                "1"{"fredag neste uke"}
            }
        }
        fri-narrow{
            relative{
                "-1"{"forrige fr."}
                "0"{"denne fr."}
                "1"{"kommende fr."}
            }
        }
        fri-short{
            relative{
                "-1"{"forrige fre."}
                "0"{"denne fre."}
                "1"{"kommende fre."}
            }
        }
        hour{
            dn{"Time"}
            relativeTime{
                future{
                    one{"om {0} time"}
                    other{"om {0} timer"}
                }
                past{
                    one{"for {0} time siden"}
                    other{"for {0} timer siden"}
                }
            }
        }
        hour-narrow{
            dn{"t"}
            relativeTime{
                future{
                    one{"+{0} t"}
                    other{"+{0} t"}
                }
                past{
                    one{"-{0} t"}
                    other{"-{0} t"}
                }
            }
        }
        hour-short{
            dn{"t"}
            relativeTime{
                future{
                    one{"om {0} t"}
                    other{"om {0} t"}
                }
                past{
                    one{"for {0} t siden"}
                    other{"for {0} t siden"}
                }
            }
        }
        minute{
            dn{"Minutt"}
            relativeTime{
                future{
                    one{"om {0} minutt"}
                    other{"om {0} minutter"}
                }
                past{
                    one{"for {0} minutt siden"}
                    other{"for {0} minutter siden"}
                }
            }
        }
        minute-narrow{
            dn{"m"}
            relativeTime{
                future{
                    one{"+{0} min"}
                    other{"+{0} min"}
                }
                past{
                    one{"-{0} min"}
                    other{"-{0} min"}
                }
            }
        }
        minute-short{
            dn{"min"}
            relativeTime{
                future{
                    one{"om {0} min"}
                    other{"om {0} min"}
                }
                past{
                    one{"for {0} min siden"}
                    other{"for {0} min siden"}
                }
            }
        }
        mon{
            relative{
                "-1"{"mandag sist uke"}
                "0"{"mandag denne uken"}
                "1"{"mandag neste uke"}
            }
        }
        mon-narrow{
            relative{
                "-1"{"forrige ma."}
                "0"{"denne ma."}
                "1"{"kommende ma."}
            }
        }
        mon-short{
            relative{
                "-1"{"forrige man."}
                "0"{"denne man."}
                "1"{"kommende man."}
            }
        }
        month{
            dn{"Måned"}
            relative{
                "-1"{"forrige måned"}
                "0"{"denne måneden"}
                "1"{"neste måned"}
            }
            relativeTime{
                future{
                    one{"om {0} måned"}
                    other{"om {0} måneder"}
                }
                past{
                    one{"for {0} måned siden"}
                    other{"for {0} måneder siden"}
                }
            }
        }
        month-narrow{
            dn{"md."}
            relativeTime{
                future{
                    one{"+{0} md."}
                    other{"+{0} md."}
                }
                past{
                    one{"-{0} md."}
                    other{"-{0} md."}
                }
            }
        }
        month-short{
            dn{"mnd."}
            relativeTime{
                future{
                    one{"om {0} måneder"}
                    other{"om {0} måneder"}
                }
                past{
                    one{"for {0} måneder siden"}
                    other{"for {0} måneder siden"}
                }
            }
        }
        quarter{
            dn{"Kvartal"}
            relativeTime{
                future{
                    one{"om {0} kvartal"}
                    other{"om {0} kvartaler"}
                }
                past{
                    one{"for {0} kvartal siden"}
                    other{"for {0} kvartaler siden"}
                }
            }
        }
        quarter-narrow{
            dn{"kv."}
            relativeTime{
                future{
                    one{"+{0} kv."}
                    other{"+{0} kv."}
                }
                past{
                    one{"–{0} kv."}
                    other{"–{0} kv."}
                }
            }
        }
        quarter-short{
            dn{"kv."}
            relativeTime{
                future{
                    one{"om {0} kv."}
                    other{"om {0} kv."}
                }
                past{
                    one{"for {0} kv. siden"}
                    other{"for {0} kv. siden"}
                }
            }
        }
        sat{
            relative{
                "-1"{"lørdag sist uke"}
                "0"{"lørdag denne uken"}
                "1"{"lørdag neste uke"}
            }
        }
        sat-narrow{
            relative{
                "-1"{"forrige lø."}
                "0"{"denne lø."}
                "1"{"kommende lø."}
            }
        }
        sat-short{
            relative{
                "-1"{"forrige lør."}
                "0"{"denne lør."}
                "1"{"kommende lør."}
            }
        }
        second{
            dn{"Sekund"}
            relative{
                "0"{"nå"}
            }
            relativeTime{
                future{
                    one{"om {0} sekund"}
                    other{"om {0} sekunder"}
                }
                past{
                    one{"for {0} sekund siden"}
                    other{"for {0} sekunder siden"}
                }
            }
        }
        second-narrow{
            dn{"s"}
            relativeTime{
                future{
                    one{"+{0} s"}
                    other{"+{0} s"}
                }
                past{
                    one{"-{0} s"}
                    other{"-{0} s"}
                }
            }
        }
        second-short{
            dn{"sek"}
            relativeTime{
                future{
                    one{"om {0} sek"}
                    other{"om {0} sek"}
                }
                past{
                    one{"for {0} sek siden"}
                    other{"for {0} sek siden"}
                }
            }
        }
        sun{
            relative{
                "-1"{"søndag sist uke"}
                "0"{"søndag denne uken"}
                "1"{"søndag neste uke"}
            }
        }
        sun-narrow{
            relative{
                "-1"{"forrige sø."}
                "0"{"denne sø."}
                "1"{"kommende sø."}
            }
        }
        sun-short{
            relative{
                "-1"{"forrige søn."}
                "0"{"denne søn."}
                "1"{"kommende søn."}
            }
        }
        thu{
            relative{
                "-1"{"torsdag sist uke"}
                "0"{"torsdag denne uken"}
                "1"{"torsdag neste uke"}
            }
        }
        thu-narrow{
            relative{
                "-1"{"forrige to."}
                "0"{"denne to."}
                "1"{"kommende to."}
            }
        }
        thu-short{
            relative{
                "-1"{"forrige tor."}
                "0"{"denne tor."}
                "1"{"kommende tor."}
            }
        }
        tue{
            relative{
                "-1"{"tirsdag sist uke"}
                "0"{"tirsdag denne uken"}
                "1"{"tirsdag neste uke"}
            }
        }
        tue-narrow{
            relative{
                "-1"{"forrige ti."}
                "0"{"denne ti."}
                "1"{"kommende ti."}
            }
        }
        tue-short{
            relative{
                "-1"{"forrige tir."}
                "0"{"denne tir."}
                "1"{"kommende tir."}
            }
        }
        wed{
            relative{
                "-1"{"onsdag sist uke"}
                "0"{"onsdag denne uken"}
                "1"{"onsdag neste uke"}
            }
        }
        wed-narrow{
            relative{
                "-1"{"forrige on."}
                "0"{"denne on."}
                "1"{"kommende on."}
            }
        }
        wed-short{
            relative{
                "-1"{"forrige ons."}
                "0"{"denne ons."}
                "1"{"kommende ons."}
            }
        }
        week{
            dn{"Uke"}
            relative{
                "-1"{"forrige uke"}
                "0"{"denne uken"}
                "1"{"neste uke"}
            }
            relativeTime{
                future{
                    one{"om {0} uke"}
                    other{"om {0} uker"}
                }
                past{
                    one{"for {0} uke siden"}
                    other{"for {0} uker siden"}
                }
            }
        }
        week-narrow{
            dn{"uke"}
            relativeTime{
                future{
                    one{"+{0} u."}
                    other{"+{0} u."}
                }
                past{
                    one{"-{0} u."}
                    other{"-{0} u."}
                }
            }
        }
        week-short{
            dn{"uke"}
            relativeTime{
                future{
                    one{"om {0} uke"}
                    other{"om {0} uker"}
                }
                past{
                    one{"for {0} uke siden"}
                    other{"for {0} uker siden"}
                }
            }
        }
        weekday{
            dn{"Ukedag"}
        }
        year{
            dn{"År"}
            relative{
                "-1"{"i fjor"}
                "0"{"i år"}
                "1"{"neste år"}
            }
            relativeTime{
                future{
                    one{"om {0} år"}
                    other{"om {0} år"}
                }
                past{
                    one{"for {0} år siden"}
                    other{"for {0} år siden"}
                }
            }
        }
        year-narrow{
            dn{"år"}
            relativeTime{
                future{
                    one{"+{0} år"}
                    other{"+{0} år"}
                }
                past{
                    one{"–{0} år"}
                    other{"–{0} år"}
                }
            }
        }
        year-short{
            dn{"år"}
            relativeTime{
                future{
                    one{"om {0} år"}
                    other{"om {0} år"}
                }
                past{
                    one{"for {0} år siden"}
                    other{"for {0} år siden"}
                }
            }
        }
        zone{
            dn{"Tidssone"}
        }
    }
    listPattern{
        standard{
            2{"{0} og {1}"}
            end{"{0} og {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
        unit{
            2{"{0} og {1}"}
            end{"{0} og {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
        unit-narrow{
            2{"{0}, {1}"}
            end{"{0}, {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
        unit-short{
            2{"{0}, {1}"}
            end{"{0}, {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
    }
    measurementSystemNames{
        UK{"engelsk"}
        US{"amerikansk"}
        metric{"metrisk"}
    }
    transformNames{
        BGN{"BGN"}
        Numeric{"Numerisk"}
        Tone{"Tonespråk"}
        UNGEGN{"UNGEGN"}
        x-Accents{"Aksenter"}
        x-Fullwidth{"Full bredde"}
        x-Halfwidth{"Halv bredde"}
        x-Jamo{"Jamo"}
        x-Pinyin{"Pinyin"}
        x-Publishing{"For publisering"}
    }
}
