################################################################################
##
##  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=development
about=Apache fdb (Flash Player Debugger) [build ${build}]
copyright=Copyright 2015 The Apache Software Foundation.
noResponseException=Player did not respond to the command as expected; command aborted.
notSuspendedException=Command cannot be issued while Player is running
illegalStateException=Command not valid without a session.
illegalMonitorStateException=Command not valid on a running Player.  Press 'Enter' key to halt it
playerDidNotStop=Player did not stop as expected.  Press 'Enter' key to halt it
noSuchElementException=Command expected at least one more argument.
numberFormatException=Command argument was string, expected integer.
socketException=Another Flash debugger is probably running; please close it.  Details: '${message}'.
versionException=Command not supported in this context.
unexpectedError=Unexpected error while processing command.
stackTraceFollows=For diagnostic purposes stack trace follows:\ 
sessionEndedAbruptly=Session ended abruptly.
noUriReceived=No URI received from Player
noSourceFilesFound=No source files found
unknownBreakpointLocation=<unknown>
unknownFilename=<unknown>
inFunctionAt=in ${functionName}() at\ 
inSwf=\ in ${swf}
nonRestorable=\ ; Non-restorable from prior session
sourceDirectoriesSearched=Source directories searched:
attemptingToSuspend=Attempting to suspend Player execution...
playerStopped=Player stopped
playerRunning=Player running
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=No stack available
atFilename=\ at\ 
noVariables=no variables
noArguments=no arguments
notInValidFrame=Not in a valid frame.  Use 'frame' command to return to current one.
noLocals=no locals
noScopeChain=no scope chain
noActiveSession=No active session
runWillLaunchUri='run' will launch ${uri}
targetUnknown=Target unknown
noSWFs=no SWFs.
unrecognizedFault=Unrecognized fault.
noFunctionsFound=No functions found
functionListBeingPrepared=Function list being prepared in background; try again later.
functionsInSourceFile=Functions in ${sourceFile}
breakpointNotYetResolved=\ (not yet resolved)
breakpointAmbiguous=\ (ambiguous)
breakpointNoCode=\ (no executable code on the specified line)
sessionTerminated=Player session terminated
additionalCodeLoaded=Additional ActionScript code has been loaded from a SWF or a frame.\n\
To see all currently loaded files, type 'info files'.
setAdditionalBreakpoints=Set additional breakpoints as desired, and then type 'continue'.
fixBreakpoints=Fix or remove bad breakpoints, then type 'continue'.
executionHalted=Execution halted
hitBreakpoint=Breakpoint ${breakpointNumber}
haltedInFunction=${reasonForHalting}, ${functionName}() at ${fileAndLine}
haltedInFile=${reasonForHalting}, ${fileAndLine}
linePrefixWhenDisplayingConsoleError=[Error]
linePrefixWhenDisplayingFault=[Fault]
linePrefixWhenSwfLoaded=[SWF]
linePrefixWhenSwfUnloaded=[UnloadSWF]
informationAboutFault=, information=
sizeAfterDecompression=${size} bytes after decompression
breakpointNotPropagated=WARNING:  breakpoint ${breakpointNumber} not propagated to all swfs.\n\
You need to clear it and set it again.
playerAlreadyRunning=Player is already running, no need to resume.
doYouWantToHalt=Do you want to attempt to halt execution?
debugInfoBeingLoaded=debug information currently being loaded
attemptingToHalt=Attempting to halt.\n\
To help out, try nudging the Player (e.g. press a button)
couldNotHalt=Couldn't halt, no ActionScript is running.
escapingFromDebuggerPendingLoop=Escaping from debugger pending loop; setting $nowaiting = 1
continuingDueToError=Continuing due to error '${error}'
currentLocationUnknown=current location unknown
cannotStep=You can't step now.  Set breakpoints and then type 'continue'.
abortingStep=The Player has not returned in time; aborting remaining ${count} steps
finishCommandNotMeaningfulOnOutermostFrame='finish' not meaningful on outermost frame
finishCommandNotMeaningfulWithoutStack='finish' not meaningful without a stack
noBreakpointNumber=No breakpoint number ${breakpointNumber}
badBreakpointNumber=warning bad breakpoint number at or near '${token}'
commandFailed=Command failed.
createdBreakpoint=Breakpoint ${breakpointNumber}: file ${file}, line ${line}
createdBreakpointWithOffset=Breakpoint ${breakpointNumber} at ${offset}: file ${file}, line ${line}
breakpointCreatedButNotYetResolved=Breakpoint ${breakpointNumber} created, but not yet resolved.\n\
The breakpoint will be resolved when the corresponding file or function is loaded.
fileNumber=file #${fileNumber}
breakpointNotSetNoCode=Breakpoint not set; no executable code at line ${line} of ${filename}
breakpointLocationUnknown=Breakpoint location unknown.
breakpointNotCleared=Breakpoint not cleared.
attemptingToResolve=Attempting to resolve breakpoint ${breakpointNumber}, expression "${expression}":
noExecutableCode=There is no executable code on the specified line.
resolvedBreakpointToFunction=Resolved breakpoint ${breakpointNumber} to ${functionName}() at ${file}:${line}
resolvedBreakpointToFile=Resolved breakpoint ${breakpointNumber} to ${file}:${line}
setCommand=Set command requires a variable followed by an expression
missingOperator=Expression must contain '${operator}' operator.
noSideEffectsAllowed=Expression must not have side effects such as assignment.
couldNotEvaluate=Expression could not be evaluated.
commandHistoryIsEmpty=The history is empty
historyHasNotReached=History has not yet reached ${number}
variableUnknown=Variable ${variable} unknown
expressionCouldNotBeParsed=Expression could not be parsed correctly:
couldNotConvertToNumber=Could not convert to a number: ${value}
commandsLimitedToSpecifiedSwf=Commands limited to source files from ${swf}
commandsApplyToAllSwfs=Source files from all swfs available within commands.
notValidSwf=${swf} is not a valid SWF.
frameDoesNotExist=Frame '${frameNumber}' does not exist.
notANumber='${token}' not a number.
expectedLineNumber=Expected line number; got ${token}
expectedFileNumber=Expected file number; got ${token}
noSourceFileWithSpecifiedName=No source file named '${name}'.
noFunctionWithSpecifiedName=No function named '${name}'.
ambiguousMatchingFilenames=Ambiguous matching file names:
ambiguousMatchingFunctionNames=Ambiguous matching function names:
functionInFile=${functionName} in ${filename}
expectedFile=Expected file name or file number starting with #; got ${token}
noSuchFileOrFunction=No file or function named '${token}'.
localVariable=local
functionArgumentVariable=argument
mustBeOnlyOneVariable=Expression must contain only a single variable
lineJunk=Junk at end of line specification
sourceFileNotFound=Source file not found.  Use the "directory" command to specify its\n\
location on this machine.  Type "help directory" for important details\n\
on how to specify a directory for source files that are in a package.
lineNumberOutOfRange=Line number ${line} out of range; file ${filename} has ${total} lines
noFilesFound=No files found
sessionInProgress=Session already in progress
waitingForPlayerToConnect=Waiting for Player to connect
waitingToConnectToPlayer=Trying to connect to Player
launchingWithUrl=Attempting to launch and connect to Player using URL
playerConnectedSessionStarting=Player connected; session starting.
setBreakpointsThenResume=Set breakpoints and then type 'continue' to resume the session.
warningNotAllCommandsSupported=WARNING: The Player that you are using does not support all fdb commands.
fileDoesNotExist=File not found: ${uri}
failedToConnect=Failed to connect; session timed out.\n\
Ensure that:\n\
\ \ 1. you compiled your Flash movie with debugging on, and\n\
\ \ 2. you are running the Debugger version of the Flash Player.
manuallyLaunchPlayer=Just type 'run', and then manually launch the Player.
sourceCommandRequiresPath='source' command requires pathname of file to source.
fileNotFound=${filename}: No such file or directory.
argumentRequired=Argument required (fault to handle).
breakpointNotChanged=Breakpoint not changed.
badWatchpointNumber=Bad watchpoint number.
couldNotResolveExpression=Could not resolve expression into variable.
notAllBreakpointsEnabled=Not all breakpoints enabled
programNotBeingRun=The program is not being run.
commandNotValidUntilPlayerSuspended=Command not valid until Player execution suspended; try 'halt' command.
noHelpFileFound=No help file (fdbhelp*.txt) found.
invalidTargetFault=Bad target name for ActionSetTarget instruction
recursionLimitFault=Upper bound on recusion limit reached
invalidWithFault=Target of 'with' statement not an object
protoLimitFault=Search up prototype chain reached limit
invalidUrlFault=Opening a URL failed
exceptionFault=User exception thrown
stackUnderflowFault=Stack underflow occurred
divideByZeroFault=Divide by zero error
scriptTimeoutFault=ActionScript code is not progressing
errorWhileProcessingFile=An error occurred while processing the file (${exceptionMessage})
unrecognizedAction=Unrecognized action ${action}
typeCommandsForBreakpoint=Type commands for when breakpoint ${breakpointNumber} is hit, one per line.\n\
End with a line saying just 'end'.
breakpointNowUnconditional=Breakpoint ${breakpointNumber} now unconditional.
watchpointCouldNotBeSet=A watchpoint for '${expression}' could not be set

changedWatchpointMode=Watchpoint ${watchpointNumber} on expression '${expression}' now ${watchpointMode}
# the following three strings are inserted into the above 'changedWatchpointMode' string at the ${watchpontMode} location
watchpointMode_read=read
watchpointMode_write=write
watchpointMode_readWrite=read-write

createdWatchpoint=Watchpoint ${watchpointNumber} set on expression '${expression}'
couldNotFindWatchpoint=The watch for '${variable}' could not be found or removed.
noDisplayNumber=No display number ${displayNumber}
badDisplayNumber=warning bad display number at or near '${token}'
breakpointLocationNoLongerExists=Source file and line number no longer exist for breakpoint ${breakpointNumber}
unknownCommand=Unknown command '${command}', ignoring it
unknownSubcommand=Unknown ${commandCategory} command '${command}', ignoring it
unknownEvent=Received unknown event of type '${type}', info = ${info}
problemWithConnection=Problem with session connection, '${socketErrorMessage}', probably best to 'kill' it.
unexpectedErrorWithStackTrace=Unexpected error while processing command.\n\
For diagnostic purposes stack trace follows: 
ambiguousCommand=Ambiguous command '${input}':
faultHasNoTableEntry=Fault ${faultName} has no table entry
swfInfo=${swfName} - ${size} bytes after decompression, ${scriptCount} scripts [#${min} - #${max}]${plus} ${moreInfo}, url is ${url}
remainingSourceBeingLoaded=remaining source is still being loaded

# the following string is appended to the end of any question; tells the user what to type
yesOrNoAppendedToAllQuestions=\ (y or 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=Delete all breakpoints?
askDeleteAllAutoDisplay=Delete all auto-display expressions?
askKillProgram=Kill the program being debugged?
askProgramIsRunningExitAnyway=The program is running.  Exit anyway?
askReinitSourcePath=Reinitialize source path to empty?
askExpressionContainsAssignment=Your expression contains assignment! Continue?
# the following string is output if someone answers "no" to any of the above questions
yesNoQueryNotConfirmed=Not confirmed.
stopOnlyIfConditionMet=stop only if ${breakpointCondition}
breakpointAlreadyHit=breakpoint already hit ${count} time(s)
silentBreakpoint=silent
getterFunction=Getter
setterFunction=Setter
function=Function
unknownVariableType=<unknown>
variableAttribute_dontEnumerate=don't enumerate
variableAttribute_readOnly=read-only
variableAttribute_localVariable=local
variableAttribute_functionArgument=argument
variableAttribute_getterFunction=getter
variableAttribute_setterFunction=setter
variableAttribute_hasNamespace=has namespace
key16=Messages received:
key17=Messages sent:
key18=No source files found
key19=No functions found
key20=Function list being prepared in background;  Try again later.
key21=--- SessionManager properties
key22=--- Session properties
stopped=Stopped
key24=Player running.
key25=No break information found
key26=Variable unknown
key27=Source information unknown, disassembled current location
key28=Junk at end of line specification
key29=No swf found for file ${arg3}
key30=No function found
key31=---- Displaying unmapped instructions at 0x${arg4} that were skipped ----
key32=Line number ${arg5} out of range; file ${arg6} has ${arg7} lines
key33=No files found
key34=Player is not currently suspended on any actions.
key35=in '${swfName}'
atAddress=at ${address}
haltedDueToFault=due to ${fault}
inWorker=Worker ${worker}
workerRunning=Running
workerSuspended=Suspended
workerSelected=(Active)
mainThread=Main Thread
workerChanged=Active worker has changed to worker
workerNotFound=No worker found with that ID
linePrefixWhenWorkerCreated=[WorkerCreate]
linePrefixWhenWorkerExit=[WorkerDestroy]
noWorkersRunning=There are no workers running.
