################################################################################
##
##  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.
##
################################################################################

# 
# Compc and mxmlc client messages 
#
COMPC.swc_written_open_directory_in_seconds_format=SWC written to open directory at ${path} in ${seconds} seconds
MXMLC.1_error=1 error
MXMLC.1_warning=1 warning
MXMLC.bytes_written_to_file_in_seconds_format=${byteCount} bytes written to ${path} in ${seconds} seconds
MXMLC.ErrorsHeader=Errors:
MXMLC.Found_theme_file_format=Found theme file ${themePath}
MXMLC.Loading_configuration_format=Loading configuration: ${configurationName}
MXMLC.multiple_errors_format=${errorCount} errors
MXMLC.multiple_warnings_format=${warningCount} warnings
MXMLC.required_rsl_url_format=\ \ \ \ ${rslPath}
MXMLC.required_rsl_url_with_1_failover_format=\ \ \ \ ${rslPath} with 1 failover.
MXMLC.required_rsl_url_with_multiple_failovers_format=\ \ \ \ ${rslPath} with ${failoverCount} failovers.
MXMLC.Required_RSLs=Required RSLs:
MXMLC.WarningsHeader=Warnings:

# 
# Error message formats
#

# The ErrorFormat and WarningFormat strings are used to format error and 
# warning messages, respectively.
# The %s parameter is a description of the problem.
ErrorFormat=Error: %s
WarningFormat=Warning: %s
SyntaxErrorFormat=Syntax error: %s
InternalErrorFormat=Internal error: %s

# Format the file name and line number of a problem, file name:line number.
LocationFormat=%s:%d

# Format embed source locations searched.
QuotedPath='${path}'
EmbedOnSourcePath='${path}' on the source path
EmbedOnLibraryPath='${path}' in SWCs on the library path

#
# Command line option help 
#
 
benchmark=output performance benchmark
compiler.accessible=generate an accessible SWF
compiler.compress=enables or disables SWF file compression
compiler.source-path=list of path elements that form the roots of ActionScript class hierarchies
compiler.actionscript-file-encoding=specifies actionscript file encoding. If there is no BOM in the AS3 source files, the compiler will use this file encoding.
compiler.isolate-styles=enables the compiled application or module to set styles that only affect itself and its children
compiler.context-root=path to replace {context.root} tokens for service channel endpoints
compiler.external-library-path=list of SWC files or directories to compile against but to omit from linking
compiler.fonts.languages.language-range=a range to restrict the number of font glyphs embedded into the SWF
compiler.fonts.managers=Compiler font manager classes, in policy resolution order
compiler.fonts.local-fonts-snapshot=File containing system font data produced by flex2.tools.FontSnapshot.
compiler.headless-server=a flag to set when Flex is running on a server without a display
compiler.include-libraries=a list of libraries (SWCs) to completely include in the SWF
compiler.incremental=enables incremental compilation
compiler.keep-all-type-selectors=disables the pruning of unused CSS type selectors
compiler.keep-generated-actionscript=save temporary source files generated during MXML compilation
compiler.keep-generated-signatures=save signature files generated during AS3 compilation
compiler.keep-as3-metadata=keep the specified metadata in the SWF
compiler.library-path=list of SWC files or directories that contain SWC files
compiler.locale=specifies the locale for internationalization
compiler.mobile=specifies the target runtime is a mobile device
compiler.mxml.compatibility-version=specifies a compatibility version. e.g. -compatibility-version=2.0.1
compiler.namespaces.namespace=Specify a URI to associate with a manifest of components for use as MXML elements
compiler.optimize=Enable post-link SWF optimization
compiler.preloader=Specifies the default value for the Application's preloader attribute. If not specified, the default preloader value is mx.preloaders.SparkDownloadProgressBar when -compatibility-version >= 4.0 and mx.preloaders.DownloadProgressBar when -compatibility-version < 4.0.
compiler.profile=generate a movie that is suitable for performance and memory profiling
compiler.services=path to Flex Data Services configuration file
compiler.omit-trace-statements=toggle whether trace statements are omitted
compiler.report-invalid-styles-as-warnings=enables reporting of invalid styles as warnings
compiler.report-missing-required-skin-parts-as-warnings=Use this option to generate a warning instead of an error when a missing required skin part is detected.
compiler.show-invalid-css-property-warnings=toggle whether invalid css property warnings are reported
compiler.show-binding-warnings=toggle whether warnings generated from data binding code are displayed
compiler.show-actionscript-warnings=runs the AS3 compiler in a mode that detects legal but potentially incorrect code
compiler.show-dependency-warnings=show warnings when dependencies cannot be determined at compile time
compiler.show-deprecation-warnings=toggle whether the use of deprecated APIs generates a warning
compiler.show-shadowed-device-font-warnings=toggles whether warnings are displayed when an embedded font name shadows a device font name
compiler.show-unused-type-selector-warnings=toggle whether warnings generated from unused CSS type selectors are displayed
compiler.signature-directory=[relative/absolute] directory where generated as3 signatures are saved
compiler.strict=runs the AS3 compiler in strict error checking mode.
compiler.as3=use the ActionScript 3 class based object model for greater performance and better error reporting. In the class based object model most built-in functions are implemented as fixed methods of classes.
compiler.es=use the ECMAScript edition 3 prototype based object model to allow dynamic overriding of prototype properties. In the prototype based object model built-in functions are implemented as dynamic properties of prototype objects.
compiler.theme=list of CSS or SWC files to apply as a theme
compiler.verbose-stacktraces=save callstack information to the SWF for debugging
compiler.memory-usage-factor=specifies the compiler's memory usage factor, default is 1000.
compiler.conservative=uses the conservative algorithm to compile. not recommended for large applications. default is false.
compiler.warn-array-tostring-changes=Array.toString() format has changed.
compiler.warn-assignment-within-conditional=Assignment within conditional.
compiler.warn-bad-array-cast=Possibly invalid Array cast operation.
compiler.warn-bad-bool-assignment=Non-Boolean value used where a Boolean value was expected.
compiler.warn-bad-date-cast=Invalid Date cast operation.
compiler.warn-bad-es3-type-method=Unknown method.
compiler.warn-bad-es3-type-prop=Unknown property.
compiler.warn-bad-nan-comparison=Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN.
compiler.warn-bad-null-assignment=Impossible assignment to null.
compiler.warn-bad-null-comparison=Illogical comparison with null.
compiler.warn-bad-undefined-comparison=Illogical comparison with undefined.  Only untyped variables (or variables of type *) can be undefined.
compiler.warn-boolean-constructor-with-no-args=Boolean() with no arguments returns false in ActionScript 3.0.  Boolean() returned undefined in ActionScript 2.0.
compiler.warn-changes-in-resolve=__resolve is no longer supported.
compiler.warn-class-is-sealed=Class is sealed.  It cannot have members added to it dynamically.
compiler.warn-const-not-initialized=Constant not initialized.
compiler.warn-constructor-returns-value=Function used in new expression returns a value.  Result will be what the function returns, rather than a new instance of that function.
compiler.warn-deprecated-event-handler-error=EventHandler was not added as a listener.
compiler.warn-deprecated-function-error=Unsupported ActionScript 2.0 function.
compiler.warn-deprecated-property-error=Unsupported ActionScript 2.0 property.
compiler.warn-duplicate-argument-names=More than one argument by the same name.
compiler.warn-for-var-in-changes=ActionScript 3.0 iterates over an object's properties within a "for x in target" statement in random order.
compiler.warn-import-hides-class=Importing a package by the same name as the current class will hide that class identifier in this scope.
compiler.warn-instance-of-changes=Use of the instanceof operator.
compiler.warn-internal-error=Internal error in compiler.
compiler.warn-level-not-supported=_level is no longer supported. For more information, see the flash.display package.
compiler.warn-missing-namespace-decl=Missing namespace declaration (e.g. variable is not defined to be public, private, etc.).
compiler.warn-negative-uint-literal=Negative value will become a large positive value when assigned to a uint data type.
compiler.warn-no-constructor=Missing constructor.
compiler.warn-no-explicit-super-call-in-constructor=The super() statement was not called within the constructor.
compiler.warn-no-type-decl=Missing type declaration.
compiler.warn-number-from-string-changes=In ActionScript 3.0, white space is ignored and '' returns 0. Number() returns NaN in ActionScript 2.0 when the parameter is '' or contains white space.
compiler.warn-scoping-change-in-this=Change in scoping for the this keyword.  Class methods extracted from an instance of a class will always resolve this back to that instance.  In ActionScript 2.0 this is looked up dynamically based on where the method is invoked from.
compiler.warn-slow-text-field-addition=Inefficient use of += on a TextField.
compiler.warn-unlikely-function-value=Possible missing parentheses.
compiler.warn-xml-class-has-changed=Possible usage of the ActionScript 2.0 XML class.
debug-password=the password to include in debuggable SWFs
default-background-color=default background color (may be overridden by the application code)
default-frame-rate=default frame rate to be used in the SWF.
default-script-limits=default script execution limits (may be overridden by root attributes)
default-size=default application size (may be overridden by root attributes in the application)
dependency-info=output class dependency information
dependency.minimize-dependency-set=removes a SWC from the dependency set if the scripts resolved in the SWC are a subset of the scripts resolved in another dependent SWC.  
dependency.show-dependency-list=for each SWC in the dependency order, list the SWCs it is dependent on (defaults to true).
dependency.show-external-classes=set to true to display the script classes that are causing inter-SWC dependencies (default to false).
dependency.show-dependent-swcs=list of SWC names, a full path is not required. Only the specified SWCs will be shown as dependencies, does not affect the dependency analysis.
dependency.show-swcs=list of SWC names, a full path is not required. Dependency information will only be displayed for the specified SWCs, does not affect the dependency analysis.
dependency.show-types=set to true to view the dependency types of script classes (defaults to false).
dependency.types=a list of dependency types for narrowing the classes used to determine SWC dependencies. The possible values are i,s,n, and e. The default is to use all dependency types.
dependency.dependency-report=output an XML-formatted report describing the dependencies between SWCs.
digest.rsl-file=location of the RSL to compute the digest of
digest.swc-path=path of the swc file or directory where the digest will be updated
directory=output the library as an open directory instead of a SWC file
dump-config=write a file containing all currently set configuration values in a format suitable for use as a flex config file
externs=a list of symbols to omit from linking when building a SWF
includes=a list of symbols to always link in when building a SWF
include-classes=a list of classes to include in the output SWC
include-file=a list of named files to include in the output SWC
include-lookup-only=if true, manifest entries with lookupOnly=true are included in SWC catalog. Default is false.
include-namespaces=all classes in the listed namespaces are included in the output SWC
include-resource-bundles=a list of resource bundles to include in the output SWC
include-sources=a list of directories and source files to include in the output SWC
include-stylesheet=a list of named stylesheet resources to include in the output SWC
file-specs=a list of source files to compile, the last file specified will be used as the target application
frames.frame=A SWF frame label with a sequence of classnames that will be linked onto the frame.
generate-frame-loader=toggle generation of an IFlexModuleFactory-derived loader class
help=For information on command line syntax and descriptions of configuration variables, specify a search string, or one of the following special keywords:\n\
\ \ \ syntax   - describe the general syntax of the command line\n\
\ \ \ list     - show a list of all basic configuration variables\n\
\ \ \ advanced - also match advanced configuration variables\n\
\ \ \ aliases  - sort using the short alias for the variable\n\
\ \ \ details  - always display the full details for each item\n\
Any other help keyword provided is used to match a full or partial configuration variable, alias, or text to search for in the description of the configuration variable.\n\
\n\
For example, '-help advanced aliases foo' would show all configuration options (both basic and advanced) containing the text 'foo', sorted by alias name.\n\
\n\
In the description of individual configuration variables, required values are marked with angle brackets, and optional values are marked with square brackets.  The notation [...] is used to indicate that the values are a list of arbitrary length.
lazy-init=Enable/Disable ABC bytecode lazy initialization
link-report=Output a XML-formatted report of all definitions linked into the application.
load-config=load a file containing configuration options
load-externs=an XML file containing <def>, <pre>, and <ext> symbols to omit from linking when building a SWF
metadata.contributor=A contributor's name to store in the SWF metadata
metadata.creator=A creator's name to store in the SWF metadata
metadata.date=The creation date to store in the SWF metadata
metadata.description=The default description to store in the SWF metadata
metadata.language=The language to store in the SWF metadata (i.e. EN, FR)
metadata.localized-description=A localized RDF/XMP description to store in the SWF metadata
metadata.localized-title=A localized RDF/XMP title to store in the SWF metadata
metadata.publisher=A publisher's name to store in the SWF metadata
metadata.title=The default title to store in the SWF metadata
output=the filename of the SWF movie to create
raw-metadata=XML text to store in the SWF metadata (overrides metadata.* configuration)
runtime-shared-libraries=a list of runtime shared library URLs to be loaded before the application starts
size-report=Output an XML-formatted report detailing the size of all code and data linked into the application.
use-network=toggle whether the SWF is flagged for access to network resources
version=display the build version of the program
warnings=toggle the display of warnings

Syntax=Usage: ${program} [configuration options] [default arguments]\n\n\
  Configuration options may be set on the command line as '-variable=value,value,value'. \
  (The number of values required depends on the particular variable.) Boolean options may be \
  enabled with '-variable=true' and disabled with '-variable=false', with '-variable' being \
  shorthand for '-variable=true'. Variables \
  may be cleared by setting '-variable=' with no value following the equals sign.\n\n\
  The default argument list is equivalent to setting the '${defaultVar}' variable. \
  The special string '--' may be used to terminate processing of named configuration options \
  and to force any remaining values on the command line to be interpreted as default arguments.\n\n\
  In general, a given variable may only be set once, but a few variables may be set multiple times \
  if noted as 'repeatable' in their description; i.e. '-a=x,y,z' may also be set as '-a=x -a=y -a=z' \
  if 'a' is repeatable. A more useful trait of repeatable variables is that by using the special \
  syntax '-variable+=value,value', the new values set will be appended to the current value, rather \
  than replacing the current value list.\n\n\
  Configuration variables sometimes have shortened aliases that make them easier to type. Hierarchical dotted \
  variable names will automatically have an alias generated for their 'leaf' name, if it is unique.\n\n\
  Filenames specified on the command line must either be an absolute path or relative to the current directory.\n\n\
  Use '${program} -help list' to list available configuration variables.

AdvancedSyntax=Usage: ${program} [configuration options] [default arguments]\n\n\
  Configuration options may be set on the command line as '-variable=value,value,value' \
  or '-variable value value'. (The number of values required depends on the particular variable.) \
  Boolean options may be \
  enabled with '-variable=true' and disabled with '-variable=false', with '-variable' being \
  shorthand for '-variable=true'. Variables \
  may be cleared by setting '-variable=' with no value following the equals sign.\n\n\
  The default argument list is equivalent to setting the '${defaultVar}' variable. \
  The special string '--' may be used to terminate processing of named configuration options \
  and to force any remaining values on the command line to be interpreted as default arguments.\n\n\
  In general, a given variable may only be set once, but a few variables may be set multiple times \
  if noted as 'repeatable' in their description; i.e. '-a=x,y,z' may also be set as '-a=x -a=y -a=z' \
  if 'a' is repeatable. A more useful trait of repeatable variables is that by using the special \
  syntax '-variable+=value,value', the new values set will be appended to the current value, rather \
  than replacing the current value list.\n\n\
  Configuration variables sometimes have shortened aliases to be easier to type. Hierarchical dotted \
  variable names will automatically have an alias generated for their 'leaf' name, if it is unique.\n\n\
  If a sequence formatted as $${token} is found in a configuration value, it will be expanded to the value of the token. \
  All Java properties are treated as tokens, but tokens may also be set using '+token=value' on the command line.  Token \
  replacement is limited to simple strings, but may be recursively defined.\n\n\
  Filenames specified on the command line must either be an absolute path or relative to the current directory.\n\n\
  Use '${program} -help list' to list available configuration variables.

HelpKeywords=keywords are 'syntax', 'list', 'advanced', 'aliases', 'details', or a search term
Advanced=advanced
Repeatable=repeatable
Default=default variable
Alias=alias
FullName=full name
NoKeywordsMatched=no keywords matched.
# note: do not localize the string -help, it has syntactic significance
Brief=${program} [options] [defaultVar]\nUse '${program} -help' for more information.\n\n

compiler.allow-source-path-overlap=checks if a source-path entry is a subdirectory of another source-path entry. It helps make the package names of MXML components unambiguous.
compiler.debug=generates a movie that is suitable for debugging
compiler.define=define a global AS3 conditional compilation definition, e.g. -define=CONFIG::debugging,true or -define+=CONFIG::debugging,true (to append to existing definitions in flex-config.xml) 
compiler.defaults-css-url=defines the location of the default style sheet. Setting this option overrides the implicit use of the defaults.css style sheet in the framework.swc file.
compiler.fonts.max-cached-fonts=sets the maximum number of fonts to keep in the server cache.  The default value is 20.
compiler.fonts.max-glyphs-per-face=sets the maximum number of character glyph-outlines to keep in the server cache for each font face. The default value is 1000.
compiler.fonts.flash-type=enables FlashType for embedded fonts, which provides greater clarity for small fonts.
compiler.fonts.advanced-anti-aliasing=enables advanced anti-aliasing for embedded fonts, which provides greater clarity for small fonts.
compiler.use-resource-bundle-metadata=determines whether resources bundles are included in the application.
compiler.warn-duplicate-variable-def=Duplicate variable definition 
include-inheritance-dependencies-only=only include inheritance dependencies of classes specified with include-classes 
resource-bundle-list=prints a list of resource bundles to a file for input to the compc compiler to create a resource bundle SWC file. 
licenses.license=specifies a product and a serial number. 
remove-unused-rsls=remove RSLs that are not being used by the application
runtime-shared-library-path=specifies a SWC to link against, an RSL URL to load, with an optional policy file URL and optional failover URLs 
runtime-shared-library-settings.application-domain=override the application domain an RSL is loaded into. The supported values are 'current', 'default', 'parent', or 'top-level'.
runtime-shared-library-settings.force-rsls=force an RSL to be loaded, overriding the removal caused by using the remove-unused-rsls option
compute-digest=writes a digest to the catalog.xml of a library. This is required when the library will be used in the -runtime-shared-libraries-path option.
static-link-runtime-shared-libraries=statically link the libraries specified by the -runtime-shared-libraries-path option.
verify-digests=verifies the libraries loaded at runtime are the correct ones.
target-player=specifies the version of the player the application is targeting. Features requiring a later version will not be compiled into the application. The minimum value supported is "9.0.0".
swf-version=specifies the version of the compiled SWF file.
use-direct-blit=Use hardware acceleration to blit graphics to the screen, where such acceleration is available.
use-gpu=Use GPU compositing features when drawing graphics, where such acceleration is available.
tools-locale=specifies the locale used by the compiler when reporting errors and warnings.
error-problems=specifies the fully qualified class names of compiler problems that should be reported as errors.
warning-problems=specifies the fully qualified class names of compiler problems that should be reported as warnings.
ignore-problems=specifies the fully qualified class names of compiler problems that should not be reported.
FlexOnly=Flex only

#
# ConfigurationException error messages
#

AmbiguousParse=ambiguous argument list; unable to determine where '${var}' parameters end, and default '${defaultvar}' parameters begin.  Use '--' to terminate the parameter list, or perhaps use the '-${var}=val[,val]+' syntax instead.
IOError=unable to open '${path}'
ConfigurationIOError=could not open '${path}' while processing configuration variable '${var}' 
VariableMissingRequirement=configuration variable '${required}' was not set, required by '${var}'
MissingRequirement=configuration variable '${required}' was not set
IncorrectArgumentCount=configuration variable '${var}' expected ${expected} argument(s), got ${passed}
OtherThrowable=exception '${throwable}' while setting variable '${var}'
Token.MissingDelimiter="configuration variable '${var}' contains token sequence without closing '}'
Token.MultipleValues=configuration variable '${var}' cannot use token '${token}' because it resolves to multiple values
Token.UnknownToken=configuration variable '${var}' value contains unknown token '${token}'
Token.RecursionLimit=configuration variable '${var}' value contains too many levels of recursive token indirection
Token.InsufficientArgs=no value provided for token '${token}'
TypeMismatch.Integer=configuration variable '${var}' requires an integer, got '${value}'
TypeMismatch.Boolean=configuration variable '${var}' requires 'true' or 'false', got '${value}'
TypeMismatch.Long=configuration variable '${var}' requires a long, got '${value}'
UnexpectedElement=unexpected element '${found}'
IncorrectElement=unexpected element '${found}', expected '${expected}'
UnexpectedCDATA=unexpected CDATA
MissingArgument=configuration variable '${var}' requires a value for '${argument}'
UnexpectedArgument=configuration variable '${var}' expected '${expected}', got '${argument}'
BadAppendValue='append' value must be 'true' or 'false'
NotDirectory='${path}' is not a directory
UnknownVariable=unknown configuration variable '${var}'
IllegalMultipleSet=configuration variable '${var}' must only be set once
UnexpectedDefaults=no default arguments are expected
InterspersedDefaults=default arguments may not be interspersed with other options
BadVersion=Invalid version specified, '${version}'
NotAFile='${path}' is not a file
FileTooBig='${path}' is too big to be processed. The maximum file size is 2 GB. 
BadDefinition=configuration variable '${var}' must be of the form 'NAMESPACE::name,value', got '${argument}'
CannotOpen=unable to open '${path}'
BadMetadataCombo=please specify only 'metadata' or 'raw-metadata', but not both
IllegalDimensions=variable ${var} specifies illegal dimensions '${width},${height}'
UnknownNamespace=unknown namespace '${namespace}'
NotADirectory='${path}' exists but is not a directory
DirectoryNotEmpty=directory '${path}' is not empty"
ObsoleteVariable='${var}' has been removed; please use '${replacement}'
RedundantFile=a file with the name '${path}' was specified more than once
BadFrameParameters='${var}' must have a label and at least one classname specified
GreaterThanZero='${var}' must be greater than zero"
MustSpecifyTarget=a target file must be specified
NoSwcInputs=nothing was specified to be included in the library
OnlyOneSource=only one source is allowed in the filespec
CouldNotCreateConfig=could not instantiate configuration
NoASDocInputs=must specify doc-sources, doc-classes, or doc-namespaces.
BadExcludeDependencies=exclude-dependencies can not be used with doc-sources.
CouldNotCreate=could not instantiate configuration
NamespaceMissingManifest=the 'namespace' configuration variable requires at least one manifest file to be specified
ToolsLocaleNotAvailable=the tools locale, '${var}', is not available.
MissingIncludeClasses=when using -include-inheritance-dependencies-only classes must be specified using -include-classes.
SwcDoesNotHaveRslData=${swcPath} was used in the ${var} option without being configured in the runtime-shared-library-path option
CouldNotInstantiate=could not instantiate ${configurationClassName}
BadApplicationDomainValue=configuration variable ${var} must be one of the following: 'current', 'default', 'parent', or 'top-level', got '${argument}'. The value was specified for library ${swcPath}
RemovedConfigurationOption=configuration variable '${var}' is no longer supported and will have no effect
DeprecatedConfigurationOption=configuration variable '${var}' has been deprecated since ${since}. Please use '${replacement}'. ${message}
CompilerProblemClassNotFound=could not find the compiler problem class '${className}' in configuration variable '${var}'

#
# Messages for Compiler problems are written below by ProblemLocalizer.
#

