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

benchmark=output performance benchmark
compiler.accessible=generate an accessible SWF
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-external-classes=set to true to display the script classes that are causing inter-SWC dependencies (default to false).
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.
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.

# asdoc options
doc-classes=list of classes to include in the documentation.
doc-namespaces=list of namespaces to include in the documentation.
doc-sources=list of source file to include in the documentation.
exclude-classes=list of classes to exclude from the documentation.
exclude-dependencies=boolean specifying whether to exclude dependencies.
footer=footer string to be displayed in the documentation.
left-frameset-width=width of the left frame.
main-title=title to be displayed in the title bar.
templates-path=path for custom templates.
window-title=title to be displayed in the browser window.
lenient=Report well-formed HTML errors as warnings.
packages.package=specifies a description for a package name.
exclude-sources=list of source file to be excluded from the documentation.
examples-path=path to look for the example files.
date-in-footer=specifies whether to include date with footer.
package-description-file=file containing description for packages.