# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# Translation:
#
# In this file, a couple of messages are split across multiple lines.  The main
# reason for that is that fdb is a command-line program, so we prefer to keep
# messages at less than 80 characters so that they fit in a typical command
# window.  When translating strings, you can either keep the line breaks in the
# same places, or move them, or even remove them altogether if a message will
# fit on a single line.

defaultBuildName=utvikling
about=Apache fdb (Flash Player Debugger) [build ${build}]
copyright=Copyright 2016 The Apache Software Foundation. All rights reserved.
noResponseException=Spilleren reagerte ikke som forventet p\u00e5 kommandoen. Kommando ble avbrutt.
notSuspendedException=Kommandoen kan ikke gis mens spilleren kj\u00f8rer
illegalStateException=Kommandoen er ikke gyldig uten en \u00f8kt.
illegalMonitorStateException=Kommandoen er ikke gyldig n\u00e5r en spiller kj\u00f8res. Trykk Enter for \u00e5 stoppe den
playerDidNotStop=Spilleren stoppet ikke som forventet. Trykk Enter for \u00e5 stoppe den
noSuchElementException=Kommandoen forventet minst ett argument til.
numberFormatException=Kommandoargumentet var en streng, forventet heltall.
socketException=En annen Flash-feils\u00f8ker kj\u00f8rer antagelig. Du m\u00e5 lukke den. Detaljer: "${message}".
versionException=Kommandoen st\u00f8ttes ikke i denne konteksten.
unexpectedError=Ukjent feil ved behandling av kommando.
stackTraceFollows=Stakkspor f\u00f8lger for diagnostisering: 
sessionEndedAbruptly=\u00d8kten endte br\u00e5tt.
noUriReceived=Ingen URI mottatt fra spiller
noSourceFilesFound=Finner ingen kildefiler
unknownBreakpointLocation=<unknown>
unknownFilename=<unknown>
inFunctionAt=i ${functionName}() i 
inSwf=i ${swf}
nonRestorable=; Kan ikke gjenopprettes fra forrige \u00f8kt
sourceDirectoriesSearched=Kildekataloger gjennoms\u00f8kt:
attemptingToSuspend=Fors\u00f8ker \u00e5 holde tilbake kj\u00f8ring av spiller\u2026
playerStopped=Spilleren har stoppet
playerRunning=Spilleren kj\u00f8rer
suspendReason_Unknown=Unknown
suspendReason_HitBreakpoint=Breakpoint
suspendReason_HitWatchpoint=Watch
suspendReason_ProgramThrewException=Fault
suspendReason_StopRequest=StopRequest
suspendReason_ProgramFinishedStepping=Step
suspendReason_HaltOpcode=HaltOpcode
suspendReason_ScriptHasLoadedIntoFlashPlayer=ScriptLoaded
noStackAvailable=Ingen stakk tilgjengelig
atFilename=p\u00e5 
noVariables=ingen variabler
noArguments=ingen argumenter
notInValidFrame=Ikke i en gyldig ramme. Bruk kommandoen "frame" for \u00e5 g\u00e5 til den gjeldende.
noLocals=ingen lokale
noScopeChain=ingen scope chain
noActiveSession=Ingen aktiv \u00f8kt
runWillLaunchUri="run" starter ${uri}
targetUnknown=Ukjent m\u00e5l
noSWFs=ingen swf-filer
unrecognizedFault=Kjenner ikke igjen feil.
noFunctionsFound=Finner ingen funksjoner
functionListBeingPrepared=Funksjonsliste forberedes i bakgrunnen, pr\u00f8v igjen senere.
functionsInSourceFile=Funksjoner i ${sourceFile}
breakpointNotYetResolved=(ikke l\u00f8st enn\u00e5)
breakpointAmbiguous=(tvetydig)
breakpointNoCode=(ingen kj\u00f8rbar kode p\u00e5 angitt linje)
sessionTerminated=Spiller\u00f8kt avsluttet
additionalCodeLoaded=Ekstra ActionScript-kode er lastet inn fra en swf eller en ramme.\nHvis du vil se alle filer som er lastet inn, skriver du "info files".
setAdditionalBreakpoints=Angi flere stoppunkter etter \u00f8nske, og skriv deretter "continue".
fixBreakpoints=Reparer eller fjern ugyldige stoppunkter, og skriv s\u00e5 "continue".
executionHalted=Kj\u00f8ring stoppet
hitBreakpoint=Stoppunkt ${breakpointNumber}
haltedInFunction=${reasonForHalting}, ${functionName}() i ${fileAndLine}
haltedInFile=${reasonForHalting}, ${fileAndLine}
linePrefixWhenDisplayingConsoleError=[Error]
linePrefixWhenDisplayingFault=[Fault]
linePrefixWhenSwfLoaded=[SWF]
linePrefixWhenSwfUnloaded=[UnloadSWF]
informationAboutFault=, informasjon=
sizeAfterDecompression=${size} byte etter dekomprimering
breakpointNotPropagated=ADVARSEL: stoppunkt ${breakpointNumber} er ikke videref\u00f8rt til alle swf-filer.\nDu m\u00e5 fjerne det og angi det p\u00e5 nytt.
playerAlreadyRunning=Spilleren kj\u00f8rer allerede, ikke n\u00f8dvendig \u00e5 gjenoppta.
doYouWantToHalt=Vil du fors\u00f8ke \u00e5 stoppe kj\u00f8ringen?
debugInfoBeingLoaded=feils\u00f8kingsinformasjon lastes inn
attemptingToHalt=Fors\u00f8ker \u00e5 stoppe.\nHvis du vil hjelpe til, kan du pr\u00f8ve \u00e5 gi spilleren en dytt (dvs. trykke p\u00e5 en knapp)
couldNotHalt=Kan ikke stoppe, ActionScript kj\u00f8rer.
escapingFromDebuggerPendingLoop=Unnslipper sl\u00f8yfen av ventende feils\u00f8king, angir $nowaiting = 1
continuingDueToError=Fortsetter p\u00e5 grunn av feilen "${error}"
currentLocationUnknown=gjeldende plassering ukjent
cannotStep=Du kan ikke bytte trinn n\u00e5. Angi stoppunkt og skriv "continue".
abortingStep=Spilleren har ikke svart i tide. Avbryter ${count} gjenv\u00e6rende trinn
finishCommandNotMeaningfulOnOutermostFrame="finish" betyr ingenting p\u00e5 ytre ramme
finishCommandNotMeaningfulWithoutStack="finish" betyr ingenting uten stakk
noBreakpointNumber=Ingen stoppunktnummer ${breakpointNumber}
badBreakpointNumber=advarsel ugyldig stoppunkt p\u00e5 eller n\u00e6r "${token}"
commandFailed=Kommando mislyktes.
createdBreakpoint=Stoppunkt ${breakpointNumber}: fil ${file}, linje ${line}
createdBreakpointWithOffset=Stoppunkt ${breakpointNumber} ved ${offset}: fil ${file}, linje ${line}
breakpointCreatedButNotYetResolved=Stoppunkt ${breakpointNumber} er opprettet, men er enn\u00e5 ikke l\u00f8st.\nStoppunktet blir l\u00f8st n\u00e5r tilsvarende fil eller funksjon lastes inn.
fileNumber=fil #${fileNumber}
breakpointNotSetNoCode=Stoppunkt er ikke angitt, ingen kj\u00f8rbar kode p\u00e5 linje ${line} i ${filename}
breakpointLocationUnknown=Plassering for stoppunktet er ukjent.
breakpointNotCleared=Stoppunktet er ikke fjernet.
attemptingToResolve=Fors\u00f8ker \u00e5 l\u00f8se stoppunkt ${breakpointNumber}, uttrykk "${expression}":
noExecutableCode=Det er ingen kj\u00f8rbar kode p\u00e5 denne linjen.
resolvedBreakpointToFunction=L\u00f8ste stoppunkt  ${breakpointNumber} til ${functionName}() i ${file}:${line}
resolvedBreakpointToFile=L\u00f8ste stoppunkt ${breakpointNumber} til ${file}:${line}
setCommand=Kommandoen for \u00e5 angi krever en variabel etterfulgt av et uttrykk
missingOperator=Uttrykket m\u00e5 inneholde "${operator}"-operator.
noSideEffectsAllowed=Uttrykket kan ikke ha bivirkninger, som f.eks. tilordning.
couldNotEvaluate=Uttrykket kan ikke evalueres.
commandHistoryIsEmpty=Loggen er tom
historyHasNotReached=Loggen har ikke n\u00e5dd ${number}
variableUnknown=Ukjent variabel ${variable}
expressionCouldNotBeParsed=Uttrykket kan ikke analyseres:
couldNotConvertToNumber=Kan ikke konvertere til et tall: ${value}
commandsLimitedToSpecifiedSwf=Kommandoer begrenset til kildefiler i ${swf}
commandsApplyToAllSwfs=Kildefiler fra alle swf-filer er tilgjengelige i kommandoer.
notValidSwf=${swf} er ikke en gyldig swf-fil.
frameDoesNotExist=Ramme "${frameNumber}" finnes ikke.
notANumber="${token}" ikke et tall
expectedLineNumber=Forventet linjenummer, fikk ${token}
expectedFileNumber=Forventet filnummer, fikk ${token}
noSourceFileWithSpecifiedName=Finner ingen kildefil ved navn "${name}".
noFunctionWithSpecifiedName=Ingen funksjon ved navn "${name}".
ambiguousMatchingFilenames=Tvetydig samsvar mellom filnavn:
ambiguousMatchingFunctionNames=Tvetydig samsvar mellom funksjonsnavn:
functionInFile=${functionName} i ${filename}
expectedFile=Forventet filnavn eller filnummer som begynner med #, fikk ${token}
noSuchFileOrFunction=Ingen fil eller funksjon ved navn "${token}".
localVariable=lokal
functionArgumentVariable=argument
mustBeOnlyOneVariable=Uttrykket kan kun inneholde \u00e9n variabel
lineJunk=S\u00f8ppel ved spesifikasjon p\u00e5 slutten av linjen
sourceFileNotFound=Finner ikke kildefil. Bruk kommandoen "directory" til \u00e5 angi hvor\nden ligger p\u00e5 maskinen. Skriv "help directory" hvis du vil se viktige detaljer\nom hvordan du angir en katalog for kildefiler som ligger i en pakke.
lineNumberOutOfRange=Linjenummer ${line} er utenfor omr\u00e5de, filen ${filename} har ${total} linjer
noFilesFound=Finner ingen filer
sessionInProgress=\u00d8kt p\u00e5g\u00e5r allerede
waitingForPlayerToConnect=Venter p\u00e5 at spilleren kobler seg til
waitingToConnectToPlayer=Pr\u00f8ver \u00e5 kople til Player
launchingWithUrl=Fors\u00f8ker \u00e5 starte og koble til spilleren med URL-adresse
playerConnectedSessionStarting=Spiller tilkoblet, \u00f8kten starter.
setBreakpointsThenResume=Angi stoppunkter, og skriv deretter "continue" for \u00e5 fortsette \u00f8kten.
warningNotAllCommandsSupported=ADVARSEL: Spilleren du bruker, st\u00f8tter ikke alle fdb-kommandoer.
fileDoesNotExist=Finner ikke fil: ${uri}
failedToConnect=Kan ikke koble til, \u00f8kten ble tidsavbrutt.\nKontroller at:\n  1. du kompilerte flashfilmen med feils\u00f8king p\u00e5, og \n  2. du kj\u00f8rer feils\u00f8kingsversjonen av Flash Player.
manuallyLaunchPlayer=Bare skriv "run", og start s\u00e5 spilleren manuelt
sourceCommandRequiresPath=kommandoen "source" krever banenavn for filen til kilden.
fileNotFound=${filename}: Filen eller katalogen finnes ikke.
argumentRequired=Argument p\u00e5krevd (feil ved h\u00e5ndtering).
breakpointNotChanged=Stoppunktet er ikke endret.
badWatchpointNumber=Ugyldig overv\u00e5kningsnummer.
couldNotResolveExpression=Kan ikke l\u00f8se uttrykk til variabel.
notAllBreakpointsEnabled=Ikke alle stoppunkter er aktivert
programNotBeingRun=Programmet kj\u00f8rer ikke.
commandNotValidUntilPlayerSuspended=Kommandoen er ikke gyldig f\u00f8r kj\u00f8ring av spilleren blir utsatt. Pr\u00f8v kommandoen "halt".
noHelpFileFound=Finner ingen hjelpefil (fdbhelp*.txt).
invalidTargetFault=Ugyldig m\u00e5lnavn for ActionSetTarget-instruksjon
recursionLimitFault=\u00d8vre del av rekursjonsgrense n\u00e5dd
invalidWithFault=M\u00e5let for "with"-setningen er ikke et objekt
protoLimitFault=S\u00f8k oppover i prototypelenken har n\u00e5dd grense
invalidUrlFault=Mislyktes med \u00e5 \u00e5pne adresse
exceptionFault=Det oppsto et brukerunntak
stackUnderflowFault=Stakkunderflyt oppsto
divideByZeroFault=Kan ikke dele p\u00e5 null
scriptTimeoutFault=ActionScript-kode g\u00e5r ikke fremover
errorWhileProcessingFile=Det oppsto en feil ved behandling av filen (${exceptionMessage})
unrecognizedAction=Kjenner ikke igjen handlingen ${action}
typeCommandsForBreakpoint=Skriv inn kommandoer for n\u00e5r stoppunkt ${breakpointNumber} n\u00e5s, \u00e9n per linje.\nAvslutt med en linje der det bare st\u00e5r "end".
breakpointNowUnconditional=Stoppunkt ${breakpointNumber} er n\u00e5 betingelsesl\u00f8st.
watchpointCouldNotBeSet=Kan ikke angi et overv\u00e5kningspunkt for "${expression}"

changedWatchpointMode=Overv\u00e5kningspunkt ${watchpointNumber} p\u00e5 uttrykket ${expression} n\u00e5 ${watchpointMode}
# the following three strings are inserted into the above 'changedWatchpointMode' string at the ${watchpontMode} location
watchpointMode_read=lesetilgang
watchpointMode_write=skrivetilgang
watchpointMode_readWrite=lese-/skrivetilgang

createdWatchpoint=Overv\u00e5kningspunkt ${watchpointNumber} satt p\u00e5 uttrykket "${expression}"
couldNotFindWatchpoint=Overv\u00e5kningen for "${variable}" ble ikke funnet eller fjernet.
noDisplayNumber=Ingen visningsnummer ${displayNumber}
badDisplayNumber=advarsel ugyldig visningsnummer p\u00e5 eller n\u00e6r "${token}"
breakpointLocationNoLongerExists=Kildefil og linjenummer finnes ikke lenger for stoppunkt ${breakpointNumber}
unknownCommand=Ukjent kommando "${command}", ignoreres
unknownSubcommand=Ukjent ${commandCategory} kommando ${command}, ignoreres
unknownEvent=Mottok ukjent hendelse av typen ${type}, info = ${info}
problemWithConnection=Problem med tilkobling til \u00f8kt, "${socketErrorMessage}", sikkert best \u00e5 avbryte.
unexpectedErrorWithStackTrace=Ukjent feil ved behandling av kommando.\nStakkspor f\u00f8lger for diagnostisering: 
ambiguousCommand=Tvetydig kommando "${input}":
faultHasNoTableEntry=Feilen ${faultName} har ingen tabelloppf\u00f8ring
swfInfo=${swfName} \u2013 ${size} byte etter dekomprimering, ${scriptCount} skript [#${min} - #${max}]${plus} ${moreInfo}, adressen er ${url}
remainingSourceBeingLoaded=gjenv\u00e6rende kilde lastes fremdeles

# the following string is appended to the end of any question; tells the user what to type
yesOrNoAppendedToAllQuestions=(j eller n) 
# the following string is what character the user should to answer "yes" to a yes/no question
singleCharacterUserTypesForYes=y
# a bunch of questions:
askDeleteAllBreakpoints=Vil du slette alle stoppunkt?
askDeleteAllAutoDisplay=Vil du slette alle automatvisningsuttrykk?
askKillProgram=Vil du avslutte programmet som feils\u00f8kes?
askProgramIsRunningExitAnyway=Programmet kj\u00f8rer. Vil du avslutte allikevel?
askReinitSourcePath=Vil du ominitialisere kildebanen for \u00e5 t\u00f8mme den?
askExpressionContainsAssignment=Uttrykket inneholder tilordning. Vil du fortsette?
# the following string is output if someone answers "no" to any of the above questions
yesNoQueryNotConfirmed=Ikke bekreftet.
stopOnlyIfConditionMet=stopp bare hvis ${breakpointCondition}
breakpointAlreadyHit=stoppunktet er n\u00e5dd ${count} gang(er)
silentBreakpoint=stille
getterFunction=Getter
setterFunction=Setter
function=Funksjon
unknownVariableType=<unknown>
variableAttribute_dontEnumerate=ikke nummerer
variableAttribute_readOnly=skrivebeskyttet
variableAttribute_localVariable=lokal
variableAttribute_functionArgument=argument
variableAttribute_getterFunction=getter
variableAttribute_setterFunction=setter
variableAttribute_hasNamespace=har navneomr\u00e5de
key16=Mottatte meldinger:
key17=Sendte meldinger:
key18=Finner ingen kildefiler
key19=Finner ingen funksjoner
key20=Funksjonsliste forberedes i bakgrunnen, pr\u00f8v igjen senere.
key21=--- Egenskaper for SessionManager
key22=--- Egenskaper for \u00f8kt
stopped=Stopped
key24=Spiller kj\u00f8rer.
key25=Finner ingen bruddinformasjon
key26=Ukjent variabel
key27=Kildeinformasjon er ukjent, delte opp gjeldende plassering
key28=S\u00f8ppel ved spesifikasjon p\u00e5 slutten av linjen
key29=Finner ingen swf for filen ${arg3}
key30=Finner ingen funksjon
key31=---- Viser instruksjoner som ikke er tilordnet i 0x${arg4}, og som ble hoppet over ----
key32=Linjenummer ${arg5} er utenfor omr\u00e5de, filen ${arg6} har ${arg7} linjer
key33=Finner ingen filer
key34=Spilleren holdes for \u00f8yeblikket ikke tilbake for noen handlinger.
key35=i "${swfName}"
atAddress=p\u00e5 ${address}
haltedDueToFault=p\u00e5 grunn av ${fault}
