# Norwegian Nynorsk translation of GNU gettext-runtime
# Copyright (C) 1996 Free Software Foundation, Inc.
# This file is distributed under the same license as the gettext package.
#
# Karl Anders Øygard <karlo@ifi.uio.no>, 1996.
# Eirik U. Birkeland <eirbir@gmail.com>, 2008.
# Karl Ove Hufthammer <karl@huftis.org>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: gettext-runtime-0.20.2\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-07-26 21:56+0200\n"
"PO-Revision-Date: 2020-05-04 19:21+0200\n"
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
"Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n"
"Language: nn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Lokalize 20.04.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"

#: gnulib-lib/closeout.c:66
msgid "write error"
msgstr "skrivefeil"

#: gnulib-lib/error.c:195
msgid "Unknown system error"
msgstr "Ukjend systemfeil"

#: gnulib-lib/getopt.c:278
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: Valet «%s%s» er tvitydig\n"

#: gnulib-lib/getopt.c:284
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: Valet «%s%s» er tvitydig. Moglege tydingar:"

#: gnulib-lib/getopt.c:319
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: Ukjent val «%s%s»\n"

#: gnulib-lib/getopt.c:345
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: Valet «%s%s» tek ikkje argument\n"

#: gnulib-lib/getopt.c:360
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: Valet «%s%s» treng eit argument\n"

#: gnulib-lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: Ugyldig val – «%c»\n"

#: gnulib-lib/getopt.c:636 gnulib-lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: Valet treng eit argument – «%c»\n"

#: gnulib-lib/xmalloc.c:38
#, c-format
msgid "memory exhausted"
msgstr "gjekk tom for minne"

#: src/envsubst.c:110 src/gettext.c:135 src/ngettext.c:124
#, c-format, no-wrap
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
"License GPLv3+: GNU GPL version 3 or later <%s>\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
"© %s Free Software Foundation, Inc.\n"
"Lisens: GPLv3+ (GNU GPL versjon 3 eller seinare, <%s>)\n"
"Dette er fri programvare: Du må gjerne endra det eller gje det vidare.\n"
"Det er INGEN GARANTI for programmet utover det som står i lova.\n"

#: src/envsubst.c:116 src/gettext.c:141 src/ngettext.c:130
#, c-format
msgid "Written by %s.\n"
msgstr "Skrive av %s.\n"

#. This is a proper name. See the gettext manual, section Names.
#: src/envsubst.c:116
msgid "Bruno Haible"
msgstr "Bruno Haible"

#: src/envsubst.c:125 src/gettext.c:159 src/ngettext.c:142
#, c-format
msgid "too many arguments"
msgstr "for mange argument"

#: src/envsubst.c:136 src/gettext.c:169 src/ngettext.c:154
#, c-format
msgid "missing arguments"
msgstr "manglar argument"

#: src/envsubst.c:174 src/gettext.c:246 src/ngettext.c:211
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Prøv «%s --help» for meir informasjon.\n"

#: src/envsubst.c:179
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
msgstr "Bruk: %s [VAL] [SKALFORMAT]\n"

#: src/envsubst.c:184
#, c-format, no-wrap
msgid "Substitutes the values of environment variables.\n"
msgstr "Byt ut verdiane til miljøvariablar.\n"

#: src/envsubst.c:188
#, c-format, no-wrap
msgid "Operation mode:\n"
msgstr "Driftsmodus:\n"

#: src/envsubst.c:191
#, c-format, no-wrap
msgid "  -v, --variables             output the variables occurring in SHELL-FORMAT\n"
msgstr "  -v, --variables             Vis variablane i SKALFORMAT.\n"

#: src/envsubst.c:195 src/gettext.c:275 src/ngettext.c:241
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Informativ vising:\n"

#: src/envsubst.c:198
#, c-format, no-wrap
msgid "  -h, --help                  display this help and exit\n"
msgstr "  -h, --help                  Vis denne hjelpa og avslutt.\n"

#: src/envsubst.c:201
#, c-format, no-wrap
msgid "  -V, --version               output version information and exit\n"
msgstr "  -V, --version               Vis versjonsinformasjon og avslutt.\n"

#: src/envsubst.c:205
#, c-format, no-wrap
msgid ""
"In normal operation mode, standard input is copied to standard output,\n"
"with references to environment variables of the form $VARIABLE or ${VARIABLE}\n"
"being replaced with the corresponding values.  If a SHELL-FORMAT is given,\n"
"only those environment variables that are referenced in SHELL-FORMAT are\n"
"substituted; otherwise all environment variables references occurring in\n"
"standard input are substituted.\n"
msgstr ""
"I normal driftsmodus vert standard inndata kopiert til standard utdata\n"
"og referansar til miljøvariablar på forma $VARIABEL eller ${VARIABEL} vert\n"
"bytte ut med tilhøyrande verdiar. Dersom «SKALFORMAT» er oppgjeve,\n"
"vert berre miljøvariablane som er refererte til i «SKALFORMAT» bytte ut.\n"
"Elles vert alle miljøvariablar i standard inndata bytte ut.\n"

#: src/envsubst.c:214
#, c-format, no-wrap
msgid ""
"When --variables is used, standard input is ignored, and the output consists\n"
"of the environment variables that are referenced in SHELL-FORMAT, one per line.\n"
msgstr ""
"Når «--variables» er brukt, vert standard inndata ignorert og utdata\n"
"vert miljøvariablane det er referert til i «SKALFORMAT», éin per linje.\n"

#. TRANSLATORS: The first placeholder is the web address of the Savannah
#. project of this package.  The second placeholder is the bug-reporting
#. email address for this package.  Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the address for translation
#. bugs (typically your translation team's web or email address).
#: src/envsubst.c:223 src/gettext.c:299 src/ngettext.c:262
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""
"Meld frå om feil feilrapporteringssystemet vårt\n"
"på <%s>, eller via e-post til <%s>.\n"
"Meld frå om feil i omsetjinga til <l10n-no@lister.huftis.org>.\n"

#: src/envsubst.c:451
#, c-format
msgid "error while reading \"%s\""
msgstr "feil ved lesing av «%s»"

#: src/envsubst.c:451
msgid "standard input"
msgstr "standard inndata"

#. This is a proper name. See the gettext manual, section Names.
#: src/gettext.c:141 src/ngettext.c:130
msgid "Ulrich Drepper"
msgstr "Ulrich Drepper"

# Ekstra mellomrom i linje 1 for å få rett justering på begge linjene.
#: src/gettext.c:251
#, c-format, no-wrap
msgid ""
"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
"or:    %s [OPTION] -s [MSGID]...\n"
msgstr ""
"Bruk:  %s [VAL] [[TEKSTDOMENE] MSGID]\n"
"eller: %s [VAL] -s [MSGID] …\n"

#: src/gettext.c:257
#, c-format, no-wrap
msgid "Display native language translation of a textual message.\n"
msgstr "Vis omsetjinga av ein tekststreng.\n"

#: src/gettext.c:261
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
msgstr "  -d, --domain=TEKSTDOMENE  Hent omsetjingar frå TEKSTDOMENE.\n"

#: src/gettext.c:263 src/ngettext.c:228
#, c-format
msgid "  -c, --context=CONTEXT     specify context for MSGID\n"
msgstr "  -c, --context=KONTEKST    Vel kontekst for MSGID\n"

#: src/gettext.c:265 src/ngettext.c:230
#, c-format
msgid "  -e                        enable expansion of some escape sequences\n"
msgstr "  -e                        Utvid nokre verneteikn-sekvensar.\n"

#: src/gettext.c:267
#, c-format
msgid "  -n                        suppress trailing newline\n"
msgstr ""
"  -n                        Hindra ekstra linjeskift heilt til slutt.\n"

#: src/gettext.c:269 src/ngettext.c:232
#, c-format
msgid "  -E                        (ignored for compatibility)\n"
msgstr "  -E                        (for kompatibilitet – vert ignorert)\n"

#: src/gettext.c:271
#, c-format
msgid ""
"  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
"                            to MSGID from TEXTDOMAIN\n"
msgstr ""
"  [TEKSTDOMENE] MSGID       Hent omsetjinga som svarar til\n"
"                            MSGID frå TEKSTDOMENE.\n"

#: src/gettext.c:277 src/ngettext.c:243
#, c-format
msgid "  -h, --help                display this help and exit\n"
msgstr "  -h, --help                Vis denne hjelpeteksten og avslutt.\n"

#: src/gettext.c:279 src/ngettext.c:245
#, c-format
msgid "  -V, --version             display version information and exit\n"
msgstr "  -V, --version             Vis versjonsinformasjon og avslutt.\n"

#: src/gettext.c:283
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"When used with the -s option the program behaves like the 'echo' command.\n"
"But it does not simply copy its arguments to stdout.  Instead those messages\n"
"found in the selected catalog are translated.\n"
"Standard search directory: %s\n"
msgstr ""
"Dersom TEKSTDOMENE-parameteren ikkje er oppgjeven, vert domenet\n"
"valt frå miljøvariabelen TEXTDOMAIN. Dersom meldingskatalogen ikkje\n"
"finst i den vanlege filmappa, kan du velja ei anna filmappe med\n"
"miljøvariabelen TEXTDOMAINDIR.\n"
"Når du brukar valet «-s», fungerer programmet som kommandoen «echo».\n"
"Men det kopierer ikkje berre argumenta direkte til standard ut: Viss eit\n"
"argument finst som ei melding i den valde katalogen, vert det omsett.\n"
"Standard søkjemappe: %s\n"

#: src/ngettext.c:216
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
msgstr "Bruk: %s [VAL] [TEKSTDOMENE] MSGID MSGID-FLEIRTAL NUMMER\n"

#: src/ngettext.c:221
#, c-format, no-wrap
msgid ""
"Display native language translation of a textual message whose grammatical\n"
"form depends on a number.\n"
msgstr "Vis omsetjinga av ein tekststreng med ei grammatisk form som er avhengig av eit nummer.\n"

#: src/ngettext.c:226
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
msgstr "  -d, --domain=TEKSTDOMENE  Hent omsetjinga frå TEKSTDOMENE.\n"

#: src/ngettext.c:234
#, c-format
msgid ""
"  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
msgstr "  [TEKSTDOMENE]             Hent omsetjinga frå TEKSTDOMENE\n"

#: src/ngettext.c:236
#, c-format
msgid ""
"  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
"(plural)\n"
msgstr ""
"  MSGID MSGID-FLEIRTAL      Set om MSGID (eintal) / MSGID-FLEIRTAL "
"(fleirtal)\n"

#: src/ngettext.c:238
#, c-format
msgid ""
"  COUNT                     choose singular/plural form based on this value\n"
msgstr ""
"  NUMMER                    Vel mellom eintal og fleirtal basert på denne "
"verdien.\n"

#: src/ngettext.c:249
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"Standard search directory: %s\n"
msgstr ""
"Dersom TEKSTDOMENE-parameteren ikkje er oppgjeven, vert domenet\n"
"valt frå miljøvariabelen TEXTDOMAIN. Dersom meldingskatalogen ikkje\n"
"finst i den vanlege filmappa, kan du velja ei anna filmappe med\n"
"miljøvariabelen TEXTDOMAINDIR.\n"
"Standard søkjemappe: %s\n"
