# 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=ontwikkeling
about=Apache fdb (Flash Player Debugger) [build ${build}]
copyright=Copyright 2016 The Apache Software Foundation. All rights reserved.
noResponseException=Player heeft op onverwachte wijze gereageerd op de opdracht; opdracht afgebroken.
notSuspendedException=Kan opdracht niet uitvoeren terwijl Player wordt uitgevoerd
illegalStateException=Opdracht niet geldig zonder sessie
illegalMonitorStateException=Opdracht niet geldig voor een actieve Player. Druk op Enter om de Player te stoppen
playerDidNotStop=Player niet gestopt zoals verwacht. Druk op Enter om de Player te stoppen
noSuchElementException=Minstens \u00e9\u00e9n argument meer verwacht voor opdracht.
numberFormatException=Opdrachtargument was tekenreeks. Er werd een geheel getal verwacht.
socketException=Er is waarschijnlijk een ander Flash-foutopsporingsprogramma actief. Sluit dit foutopsporingsprogramma. Details: '${message}'.
versionException=Opdracht niet ondersteund in deze context.
unexpectedError=Onverwachte fout tijdens het verwerken van de opdracht.
stackTraceFollows=Stacktracering volgt voor diagnostische doeleinden: 
sessionEndedAbruptly=Sessie onverwacht be\u00ebindigd.
noUriReceived=Geen URI ontvangen van Player
noSourceFilesFound=Geen bronbestanden gevonden
unknownBreakpointLocation=<onbekend>
unknownFilename=<onbekend>
inFunctionAt=in ${functionName}() op 
inSwf=in ${swf}
nonRestorable=; terugzetten vanuit eerdere sessie onmogelijk
sourceDirectoriesSearched=Doorzochte bronmappen:
attemptingToSuspend=Er wordt geprobeerd de Player te onderbreken...
playerStopped=Player gestopt
playerRunning=Player wordt uitgevoerd
suspendReason_Unknown=Unknown
suspendReason_HitBreakpoint=Breakpoint
suspendReason_HitWatchpoint=Watch
suspendReason_ProgramThrewException=Fout
suspendReason_StopRequest=StopRequest
suspendReason_ProgramFinishedStepping=Step
suspendReason_HaltOpcode=HaltOpcode
suspendReason_ScriptHasLoadedIntoFlashPlayer=ScriptLoaded
noStackAvailable=Geen stack beschikbaar
atFilename=op 
noVariables=geen variabelen
noArguments=geen argumenten
notInValidFrame=Niet in een geldig frame. Ga terug naar het huidige frame met de opdracht 'frame'.
noLocals=geen lokale variabelen
noScopeChain=geen bereikketen
noActiveSession=Geen actieve sessie
runWillLaunchUri=Met 'run' start u ${uri}
targetUnknown=Doel onbekend
noSWFs=geen SWF's.
unrecognizedFault=Niet-herkende fout.
noFunctionsFound=Geen functies gevonden
functionListBeingPrepared=Functielijst wordt voorbereid op de achtergrond. Probeer het later opnieuw.
functionsInSourceFile=Functies in ${sourceFile}
breakpointNotYetResolved=(nog niet omgezet)
breakpointAmbiguous=(dubbelzinnig)
breakpointNoCode=(geen uitvoerbare programmacode op de opgegeven regel)
sessionTerminated=Player-sessie be\u00ebindigd
additionalCodeLoaded=Er is extra ActionScript-code geladen vanuit een SWF of frame.\nAls u wilt zien welke bestanden momenteel zijn geladen, typt u 'info files'.
setAdditionalBreakpoints=Stel naar wens extra onderbrekingspunten in en typ 'continue'.
fixBreakpoints=Herstel of verwijder ongeldige onderbrekingspunten en typ vervolgens 'continue'.
executionHalted=Uitvoering gestopt
hitBreakpoint=Onderbrekingspunt ${breakpointNumber}
haltedInFunction=${reasonForHalting}, ${functionName}() op ${fileAndLine}
haltedInFile=${reasonForHalting}, ${fileAndLine}
linePrefixWhenDisplayingConsoleError=[Fout]
linePrefixWhenDisplayingFault=[Fout]
linePrefixWhenSwfLoaded=[SWF]
linePrefixWhenSwfUnloaded=[UnloadSWF]
informationAboutFault=, informatie=
sizeAfterDecompression=${size} bytes na decompressie
breakpointNotPropagated=Waarschuwing: onderbrekingspunt ${breakpointNumber} niet doorgegeven aan alle SWF's.\nU moet het wissen en opnieuw instellen.
playerAlreadyRunning=Player wordt al uitgevoerd. Hervatten is niet nodig.
doYouWantToHalt=Wilt u de uitvoering stoppen?
debugInfoBeingLoaded=foutopsporingsinformatie wordt momenteel geladen
attemptingToHalt=Poging tot stoppen.\nU kunt proberen de Player te verschuiven door bijvoorbeeld op een knop te drukken
couldNotHalt=Kan niet stoppen. Er wordt geen ActionScript uitgevoerd.
escapingFromDebuggerPendingLoop=Foutopsporingslus in uitvoering wordt afgebroken; $nowaiting = 1 wordt ingesteld
continuingDueToError=Doorgaan vanwege fout '${error}'
currentLocationUnknown=huidige locatie onbekend
cannotStep=Doorlopen is momenteel niet mogelijk. Stel onderbrekingspunten in en typ 'continue'.
abortingStep=De Player is niet op tijd teruggekeerd. De resterende ${count} stappen worden afgebroken
finishCommandNotMeaningfulOnOutermostFrame=finish' is zinloos voor buitenste frame
finishCommandNotMeaningfulWithoutStack=finish' is zinloos zonder stack
noBreakpointNumber=Geen onderbrekingspuntnummer ${breakpointNumber}
badBreakpointNumber=waarschuwing: ongeldig onderbrekingspuntnummer op of bij '${token}'
commandFailed=Opdracht mislukt.
createdBreakpoint=Onderbrekingspunt ${breakpointNumber}: bestand ${file}, regel ${line}
createdBreakpointWithOffset=Onderbrekingspunt ${breakpointNumber} op ${offset}: bestand ${file}, regel ${line}
breakpointCreatedButNotYetResolved=Onderbrekingspunt ${breakpointNumber} gemaakt maar nog niet omgezet.\nHet onderbrekingspunt wordt omgezet wanneer het corresponderende bestand of de corresponderende functie wordt geladen.
fileNumber=bestand #${fileNumber}
breakpointNotSetNoCode=Onderbrekingspunt niet ingesteld; geen uitvoerbare programmacode op regel ${line} van ${filename}
breakpointLocationUnknown=Locatie van onderbrekingspunt onbekend.
breakpointNotCleared=Onderbrekingspunt niet gewist.
attemptingToResolve=Poging tot omzetten van onderbrekingspunt ${breakpointNumber}, expressie "${expression}":
noExecutableCode=Er staat geen uitvoerbare programmacode op de opgegeven regel.
resolvedBreakpointToFunction=Onderbrekingspunt ${breakpointNumber} is omgezet in ${functionName}() op ${file}:${line}
resolvedBreakpointToFile=Onderbrekingspunt ${breakpointNumber} omgezet in ${file}:${line}
setCommand=De opdracht set vereist een variabele gevolgd door een expressie
missingOperator=Expressie moet operator '${operator}' bevatten.
noSideEffectsAllowed=Expressie mag geen bijwerkingen zoals toewijzing hebben.
couldNotEvaluate=Expressie kan niet worden ge\u00ebvalueerd.
commandHistoryIsEmpty=De geschiedenis is leeg
historyHasNotReached=Geschiedenis heeft ${number} nog niet bereikt
variableUnknown=Variabele ${variable} onbekend
expressionCouldNotBeParsed=Expressie kan niet correct worden geparseerd:
couldNotConvertToNumber=Kan niet omzetten in een getal: ${value}
commandsLimitedToSpecifiedSwf=Opdrachten beperkt tot bronbestanden van ${swf}
commandsApplyToAllSwfs=Bronbestanden van alle SWF's beschikbaar binnen opdrachten.
notValidSwf=${swf} is geen geldige SWF.
frameDoesNotExist=Frame '${frameNumber}' bestaat niet.
notANumber=${token}' is geen getal.
expectedLineNumber=Verwacht: regelnummer. Ontvangen: ${token}
expectedFileNumber=Verwacht: bestandsnummer. Ontvangen: ${token}
noSourceFileWithSpecifiedName=Geen bronbestand met de naam '${name}' gevonden.
noFunctionWithSpecifiedName=Geen functie met de naam '${name}'.
ambiguousMatchingFilenames=Bestandsnamen die niet eenduidig overeenkomen:
ambiguousMatchingFunctionNames=Functienamen die niet eenduidig overeenkomen:
functionInFile=${functionName} in ${filename}
expectedFile=Verwacht: bestandsnaam of -nummer beginnend met #. Ontvangen: ${token}
noSuchFileOrFunction=Geen bestand of functie met de naam '${token}'.
localVariable=lokale variabele
functionArgumentVariable=argument
mustBeOnlyOneVariable=Expressie mag slechts \u00e9\u00e9n variabele bevatten
lineJunk=Onbegrijpelijke tekens aan einde van regelspecificatie
sourceFileNotFound=Bronbestand niet gevonden. Geef met de opdracht \u2018directory\u2019 op waar het\nbestand zich op deze computer bevindt. Typ \u2018help directory\u2019 voor belangrijke\ninformatie over het opgeven van een map voor de bronbestanden in een pakket.
lineNumberOutOfRange=Regelnummer ${line} valt buiten het bereik. Bestand ${filename} heeft ${total} regels
noFilesFound=Geen bestanden gevonden
sessionInProgress=Sessie is al aan de gang
waitingForPlayerToConnect=Wachten tot Player verbinding heeft gemaakt
waitingToConnectToPlayer=Poging verbinding te maken met Player
launchingWithUrl=Poging tot starten en verbinden met Player via URL
playerConnectedSessionStarting=Player verbonden; sessie begint.
setBreakpointsThenResume=Stel onderbrekingspunten in en typ 'continue' om de sessie te hervatten.
warningNotAllCommandsSupported=Waarschuwing: de door u gebruikte Player ondersteunt niet alle fdb-opdrachten.
fileDoesNotExist=Bestand niet gevonden: ${uri}
failedToConnect=Kan geen verbinding maken. Time-out van sessie opgetreden.\nZorg dat aan de volgende twee voorwaarden is voldaan:\n  1. U hebt uw Flash-film gecompileerd met foutopsporing ingeschakeld.\n  2. U gebruikt de foutopsporingsversie van Flash Player.
manuallyLaunchPlayer=Typ eenvoudig 'run' en start de Player handmatig.
sourceCommandRequiresPath=Voor de opdracht 'source' is de padnaam van het bronbestand nodig.
fileNotFound=${filename}: bestand of map bestaat niet.
argumentRequired=Argument vereist (fout af te handelen).
breakpointNotChanged=Onderbrekingspunt niet gewijzigd.
badWatchpointNumber=Ongeldig controlepuntnummer.
couldNotResolveExpression=Kan expressie niet in variabele omzetten.
notAllBreakpointsEnabled=Niet alle onderbrekingspunten ingeschakeld
programNotBeingRun=Het programma wordt niet uitgevoerd.
commandNotValidUntilPlayerSuspended=De opdracht is pas geldig wanneer de Player is onderbroken. Probeer de opdracht 'halt'.
noHelpFileFound=Geen Help-bestand (fdbhelp*.txt) gevonden.
invalidTargetFault=Ongeldige doelnaam voor instructie ActionSetTarget
recursionLimitFault=Bovengrens voor herhaling bereikt
invalidWithFault=Doel van instructie 'with' is geen object
protoLimitFault=Zoekactie in prototypeketen heeft limiet bereikt
invalidUrlFault=Kan URL niet openen
exceptionFault=Er is een gebruikersuitzondering opgetreden
stackUnderflowFault=Er is negatieve stackoverloop opgetreden
divideByZeroFault=Fout: delen door nul
scriptTimeoutFault=Time-out van ActionScript-code
errorWhileProcessingFile=Er is een fout opgetreden tijdens het verwerken van het bestand (${exceptionMessage})
unrecognizedAction=Niet-herkende actie ${action}
typeCommandsForBreakpoint=Typ opdrachten voor wanneer onderbrekingspunt ${breakpointNumber} wordt bereikt. Plaats elke opdracht op een aparte regel.\nTyp op de laatste regel alleen 'end'.
breakpointNowUnconditional=Onderbrekingspunt ${breakpointNumber} nu onvoorwaardelijk.
watchpointCouldNotBeSet=Kan geen controlepunt voor '${expression}' instellen

changedWatchpointMode=Controlepunt ${watchpointNumber} voor expressie '${expression}' nu ${watchpointMode}
# the following three strings are inserted into the above 'changedWatchpointMode' string at the ${watchpontMode} location
watchpointMode_read=lezen
watchpointMode_write=schrijven
watchpointMode_readWrite=lezen-schrijven

createdWatchpoint=Controlepunt ${watchpointNumber} ingesteld voor expressie '${expression}'
couldNotFindWatchpoint=Kan de controle voor '${variable}' niet vinden of verwijderen.
noDisplayNumber=Geen weergavenummer ${displayNumber}
badDisplayNumber=waarschuwing: ongeldig weergavenummer op of bij '${token}'
breakpointLocationNoLongerExists=Er bestaat geen bronbestand of regelnummer meer voor onderbrekingspunt ${breakpointNumber}
unknownCommand=Onbekende opdracht '${command}'; de opdracht wordt genegeerd
unknownSubcommand=Onbekende ${commandCategory}-opdracht '${command}'. Opdracht wordt genegeerd
unknownEvent=Onbekende gebeurtenis ontvangen van type '${type}', info = ${info}
problemWithConnection=Probleem met sessieverbinding; '${socketErrorMessage}'. U kunt de verbinding waarschijnlijk het beste verbreken.
unexpectedErrorWithStackTrace=Onverwachte fout tijdens het verwerken van de opdracht.\nStacktracering volgt voor diagnostische doeleinden: 
ambiguousCommand=Dubbelzinnige '${input}'-opdracht:
faultHasNoTableEntry=Fout ${faultName} heeft geen tabelvermelding
swfInfo=${swfName} - ${size} bytes na decompressie, ${scriptCount} scripts [#${min} - #${max}]${plus} ${moreInfo}, URL is ${url}
remainingSourceBeingLoaded=resterende bron wordt nog geladen

# the following string is appended to the end of any question; tells the user what to type
yesOrNoAppendedToAllQuestions=(j of 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=Alle onderbrekingspunten verwijderen?
askDeleteAllAutoDisplay=Alle automatisch weergegeven expressies verwijderen?
askKillProgram=Het programma waarin fouten worden opgespoord, afsluiten?
askProgramIsRunningExitAnyway=Het programma wordt uitgevoerd. Wilt u het toch afsluiten?
askReinitSourcePath=Bronpad opnieuw instellen op leeg?
askExpressionContainsAssignment=Uw expressie bevat een toewijzing. Doorgaan?
# the following string is output if someone answers "no" to any of the above questions
yesNoQueryNotConfirmed=Niet bevestigd.
stopOnlyIfConditionMet=alleen stoppen als ${breakpointCondition}
breakpointAlreadyHit=onderbrekingspunt reeds ${count} keer bereikt
silentBreakpoint=stil
getterFunction=Getter
setterFunction=Setter
function=Functie
unknownVariableType=<onbekend>
variableAttribute_dontEnumerate=niet inventariseren
variableAttribute_readOnly=alleen-lezen
variableAttribute_localVariable=lokale variabele
variableAttribute_functionArgument=argument
variableAttribute_getterFunction=getter
variableAttribute_setterFunction=setter
variableAttribute_hasNamespace=heeft naamruimte
key16=Ontvangen berichten:
key17=Verzonden berichten:
key18=Geen bronbestanden gevonden
key19=Geen functies gevonden
key20=Functielijst wordt voorbereid op de achtergrond. Probeer het later opnieuw.
key21=--- Sessiebeheer-eigenschappen
key22=--- Sessie-eigenschappen
stopped=Stopped
key24=Player wordt uitgevoerd.
key25=Geen onderbrekingsinformatie gevonden
key26=Variabele onbekend
key27=Broninformatie onbekend, huidige locatie gedeassembleerd
key28=Onbegrijpelijke tekens aan einde van regelspecificatie
key29=Geen SWF gevonden voor bestand ${arg3}
key30=Geen functie gevonden
key31=---- Weergave van niet-toegewezen instructies op 0x${arg4} die zijn overgeslagen ----
key32=Regelnummer ${arg5} valt buiten bereik; bestand ${arg6} heeft ${arg7} regels
key33=Geen bestanden gevonden
key34=Player is momenteel niet onderbroken voor acties.
key35=in '${swfName}'
atAddress=op ${address}
haltedDueToFault=vanwege ${fault}
