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

config.FileConfigurator.LoadingConfiguration=Loading configuration file ${file}

CommandLineHelp=Use '${program} -help' for information about using the command line.

# flex2.compiler.css
css.CssCompiler.InvalidComponentName=Invalid component name '${name}': component name must be legal ActionScript class name.
css.CssCompiler.StyleSheetParseError=Error parsing stylesheet: ${stylePath}
css.ConditionTypeNotSupported=CSS selector condition type is not supported: '${condition}'
css.SelectorTypeNotSupported=CSS selector type is not supported: '${selector}'
css.UnresolvedQualifiedTypeSelector=Cannot resolve namespace qualified type '${type}' in CSS selector '${selector}'
css.UnqualifiedTypeSelector=Type '${type}' in CSS selector '${selector}' must be qualified with a namespace.
css.StyleDef.InvalidReference=Invalid ${type}Reference directive in stylesheet.  It must contain a single String parameter.
css.StyleDef.PropertyReferenceRequiresDocument=PropertyReference() can only be used in the context of a document.
css.StylesContainer.ParseError=Problem parsing default CSS: ${message}.
css.StylesContainer.DefaultCSSFileNotFound=Default CSS file not found.
css.StylesContainer.ExcludedStyleProperty=The style '${stylePropertyName}' is excluded by type '${typeName}'.
css.StylesContainer.InvalidPropertyReference=${value} is not a document property reference.
css.StylesContainer.InvalidStyleProperty=The style '${stylePropertyName}' was not declared by type '${typeName}'.
css.StylesContainer.InvalidStyleTheme=The style '${stylePropertyName}' is only supported by type '${typeName}' with the theme(s) '${styleThemes}'.
css.StylesContainer.UnusedTypeSelector=The CSS type selector '${styleName}' was not processed, because the type was not used in the application.
css.StylesContainer.ComponentTypeSelectorsNotSupported=CSS type selectors are not supported in components: '${selector}'
css.StyleConflictException=Declaration of style '${style}' conflicts with previous declaration in ${source}.
css.ParseError=${message}

# transcoding

TranscoderException.UnrecognizedExtension='${source}' does not have a recognized extension, and a mimeType was not provided
TranscoderException.NoMatchingTranscoder=no transcoder registered for mimeType '${mimeType}'
TranscoderException.NoAssociatedClass=no class associated with '${tag}' when using ${transcoder}
media.AbstractTranscoder.UnsupportedAttribute=transcoding parameter '${attribute}' is not supported by '${className}'
media.AbstractTranscoder.UnableToResolve=unable to resolve '${source}' for transcoding
media.AbstractTranscoder.NetworkTranscodingSource=network resource ${url} cannot be embedded at compile time; please use a local file or load the resource at runtime
media.AbstractTranscoder.MissingSource=no source provided to transcode
media.AbstractTranscoder.TemplateException=unable to load template '${template}'
media.AbstractTranscoder.UnableToGenerateSource=unable to generate source for class '${className}'
media.AbstractTranscoder.UnableToReadSource=unable to read transcoding source '${source}'
media.AbstractTranscoder.ExceptionWhileTranscoding=exception during transcoding: ${exception}
media.AbstractTranscoder.EmbedRequiresCodegen='${source}' results in generated code, cannot use existing class '${className}'
media.AbstractTranscoder.IncompatibleTranscoderParameters=transcoding parameters '${param1}' and '${param2}' are incompatible

media.FontTranscoder.BadParameters=font transcoding requires you to specify 'fontName' and one of 'source', 'systemFont', or 'sourceList'
media.FontTranscoder.BadFlashType=flashType must be true or false.
media.FontTranscoder.BadAdvancedAntiAliasing=advancedAntiAliasing must be true or false.
media.FontTranscoder.InvalidUnicodeRangeException=invalid Unicode range '${range}'
media.FontTranscoder.UnableToBuildFont=unable to build font '${fontName}'
media.FontTranscoder.UnableToExtrace=unable to extract font '${fileName}'
media.FontTranscoder.EmbeddedFontShadowsDeviceFont=the embedded font '${alias}' may shadow a device font of the same name.  Use fontName to alias the font to a different name
media.LosslessImageTranscoder.InvalidQuality=Quality must be a double between 0 and 100.
media.LosslessImageTranscoder.QualityRequiresCompression=Quality requires compress="true".
media.ImageTranscoder.ScalingGridException=the scaling grid must have all four corners defined
media.MovieTranscoder.MissingSymbolDefinition=definition for symbol '${symbol}' not found
media.MovieTranscoder.MissingFontFace=font '${fontName}' with ${weight} weight and ${style} style not found
media.MovieTranscoder.UnableToBuildRootSprite=unable to build root Sprite definition
media.MovieTranscoder.BadScalingGridTarget=cannot apply scaling grid to resource type '${resourceType}'
media.MovieTranscoder.ScalingGridRange=scaling grid values must be greater than zero, the left value must be less than the right value, and the top value must be less than the bottom value
media.MovieTranscoder.ScalingGridAlreadyDefined=SWF asset already has a scaling grid
media.MovieTranscoder.IgnoringAS2=ignoring AS2 code within '${symbol}'; Flex 2 applications only support AS3
media.SkinTranscoder.SkinClassNotFound=class for skin '${className}' not found
media.SoundTranscoder.UnsupportedSamplingRate=unsupported sampling rate (${frequency}Hz)
media.SoundTranscoder.CouldNotDetermineSampleFrameCount=could not determine the sample frame count
media.SoundTranscoder.NotInMP3Format=the sound file was not recognized as a MP3.
media.SVGTranscoder.Deprecated=The use of SVG has been deprecated since Flex 4. Please use FXG.

# flex2.compiler.abc
abc.AbcCompiler.NoBytecodeIsAvailable=No bytecode is available.
abc.AbcCompiler.BytecodeDecodingFailed=abc bytecode decoding failed.

# flex2.compiler.as3
as3.EmbedEvaluator.UnableToTranscode=Unable to transcode ${what}.
as3.EmbedEvaluator.UnableToCreateSource=Unable to create source ${name}.
as3.EmbedEvaluator.UnsupportedTypeForEmbed=Embed only supported with variables of type Class or String.
as3.EmbedEvaluator.InvalidEmbedVariable=An Embed variable must not have an existing value.
as3.EmbedEvaluator.EmbedOnlyOnClassesAndVars=Embed is only supported on classes and member variables.
as3.EmbedEvaluator.DeprecatedAttribute=${deprecated} has been deprecated since ${since}. Please use ${replacement}.
as3.EmbedExtension.IncompatibleAssetClass=Class '${assetClass}' does not extend the '${assetType}' asset base class '${requiredBase}'.
as3.EmbedExtension.NonPublicAssetClass=Class '${assetClass}' must be public in order to use its associated asset.
as3.HostComponentExtension.HostComponentClassNotFound=[HostComponent] class '${className}' not found.
as3.HostComponentExtension.MissingSkinPart=The required skin part '${skinPartName}' is missing.
as3.HostComponentExtension.MissingSkinPartWarning=The required skin part '${skinPartName}' is missing.
as3.HostComponentExtension.MissingSkinState=The required skin state '${skinStateName}' is missing.
as3.HostComponentExtension.WrongSkinPartType=The skin part type '${skinPartTypeName}' must be assignable to '${hostSkinPartTypeName}'.
as3.MetaDataEvaluator.MetaDataRequiresDefinition=Metadata requires an associated definition.
as3.MetaDataParser.InvalidMetadataFormatError=Invalid metadata format.
as3.MetaDataParser.InvalidMetadataFormatWarning=Invalid metadata format.
as3.reflect.NodeMagic.OnlyMetadataIsAllowed=Only metadata is allowed.
as3.SyntaxTreeEvaluator.DuplicateIconFileMetadata=IconFile metadata should not be set more than once in a file. Set to both '${icon}' and '${val}' within ${sourceName}.
as3.SyntaxTreeEvaluator.AccessibilityClassMustHaveType=[AccessibilityClass] must define an 'implementation' property specifying a type name.
as3.SyntaxTreeEvaluator.ArrayElementTypeMustHaveType=[ArrayElementType] must specify a type name.
as3.SyntaxTreeEvaluator.DuplicateSkinState=Duplicate declaration of SkinState '${name}'.
as3.SyntaxTreeEvaluator.OnlyOneHostComponentAllowed=Only one [HostComponent] allowed.
as3.SyntaxTreeEvaluator.HostComponentMustHaveType=[HostComponent] must specify a type name.
as3.SyntaxTreeEvaluator.InstanceTypeMustHaveType=[InstanceType] must specify a type name.
as3.SyntaxTreeEvaluator.PercentProxyMustHaveProperty=[PercentProxy] must specify a property name.
as3.SyntaxTreeEvaluator.MultipleConstructorDefs=Multiple constructor definitions found. Constructor may not be defined in <Script/> code.
as3.SyntaxTreeEvaluator.RBOnlyOnVars=ResourceBundle metadata is only supported on variables.
as3.SyntaxTreeEvaluator.RBEmptyMetadata=ResourceBundle metadata must provide a bundle name.
as3.SyntaxTreeEvaluator.DuplicateMetaData=Duplicate '${metaData}' metadata on ${declaringClass}'s '${setter}' getter and setter.
as3.SyntaxTreeEvaluator.NotResourceBundleType=A ResourceBundle variable must be typed to mx.resources.ResourceBundle.
as3.SyntaxTreeEvaluator.SkinPartsMustBePublic=Skin parts must be public.
as3.SyntaxTreeEvaluator.VariableLevelResourceBundleMetaDataDeprecated=Variable level ResourceBundle metadata is deprecated.  Please use class level ResourceBundle metadata.
as3.StyleEvaluator.StyleMustAnnotateAClass=[Style] must annotate a class.
as3.StyleEvaluator.StyleHasMissingName=[Style] metadata has missing 'name'.

#flex2.compiler.as3.bindable
as3.binding.BindableFirstPassEvaluator.ClassBindableUnnecessaryOnManagedClass=[Managed] classes are automatically [Bindable] - metadata will be ignored.
as3.binding.BindableFirstPassEvaluator.PropertyBindableUnnecessaryOnManagedClass=Properties of a [Managed] class are automatically [Bindable] - metadata will be ignored.
as3.binding.BindableFirstPassEvaluator.PropertyBindableUnnecessaryOnBindableClass=Class already marked [Bindable]; property-level [Bindable] is redundant and will be ignored.
as3.binding.BindableFirstPassEvaluator.BindableFunctionRequiresEventName=[Bindable] requires an event name parameter when applied to a function that is not a getter or setter.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedInsideFunctionDefinition=[Bindable] is not allowed inside function definition.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedHere=[Bindable] not allowed here.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedOnGlobalOrPackageVariables=[Bindable] not allowed on global or package variables.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedOnConstMemberVariables=[Bindable] not allowed on const member variables.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedOnStaticMemberVariables=[Bindable] not allowed on static member variables.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedHereOnNonPublicMemberVariables=[Bindable] not allowed on non-public member variables in this context.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedOnGlobalOrPackageFunctions=[Bindable] not allowed on global or package-level functions.
as3.binding.BindableFirstPassEvaluator.BindableNotAllowedHereOnNonPublicFunctions=[Bindable] not allowed on non-public functions in this context.
as3.binding.BindableFirstPassEvaluator.EventNameNotValid=The event name is not a valid ActionScript identifier.
as3.binding.BindableSecondPassEvaluator.MissingNonInheritedSetter=[Bindable] on '${getter}' getter requires a locally defined setter.
as3.binding.DataBindingFirstPassEvaluator.UnableToDetectChanges=Data binding will not be able to detect assignments to "${name}".
as3.binding.DataBindingFirstPassEvaluator.UnableToDetectSquareBracketChanges=Data binding will not be able to detect changes when using square bracket operator.  For Array, please use ArrayCollection.getItemAt() instead.


#flex2.compiler.as3.genext
as3.genext.GenerativeSecondPassEvaluator.BindableOnReadOnlyGetter=[Bindable] on read-only getter is unnecessary and will be ignored.
as3.genext.GenerativeSecondPassEvaluator.BindableOnWriteOnlySetter=[Bindable] on write-only setter is unreachable and will be ignored.
as3.genext.GenerativeSecondPassEvaluator.ExistingMethodError=Implementation of interface '${interfaceName}' cannot be added to class '${className}', due to collision with existing method or property '${methodName}'.
as3.genext.GenerativeSecondPassEvaluator.TemplateLoadError=Unable to load template '${templateName}'
as3.genext.GenerativeSecondPassEvaluator.TemplateRunException=Internal error: exception while generating from template '${templateName}' for class '${className]': ${exceptionText}

#flex2.compiler.as3.managed
as3.managed.ManagedFirstPassEvaluator.InvalidManagedModeError=Invalid mode '${mode}' was specified in [Managed].
as3.managed.ManagedFirstPassEvaluator.InvalidUIDType=[Managed] requires 'uid' to be of type 'String'.
as3.managed.ManagedFirstPassEvaluator.ManagedModeConflictError=[Managed] mode conflict.
as3.managed.ManagedFirstPassEvaluator.ManagedOnNonClassError=[Managed] may only be used on class definitions, or on properties within [Managed] classes.
as3.managed.ManagedFirstPassEvaluator.LazyAssociationsRequireServicesConfiguration=[Managed] was specifed on class '${className}' with a destination property but a services file was not configured. Lazy associations will not be honored.
as3.managed.ManagedExtensionError.ManagedOnMXMLComponentError=[Managed] may not be used on mxml components.

#flex2.compiler.fxg
fxg.FXGCompiler.InvalidComponentName=Invalid component name '${name}': component name must be legal ActionScript class name.
fxg.FXGCompiler.FXGParseException=FXG parse exception
fxg.FXGCompiler.SourceGenerationException=FXG source generation exception

# flex2.compiler.mxml.analyzer
mxml.analyzer.HTTPServiceAnalyzer.RequestNoAttributes=Request may not have attributes.
mxml.analyzer.RemoteObjectAnalyzer.MethodRequiresName=Method requires a name attribute.
mxml.analyzer.RemoteObjectAnalyzer.ArgumentsNoAttributes=Arguments may not have attributes.
mxml.analyzer.WebServiceAnalyzer.OperationRequiresName=Operation requires a name attribute.
mxml.analyzer.WebServiceAnalyzer.RequestRequiresFormat=Request may only have 'format' attribute.
mxml.analyzer.SyntaxAnalyzer.IgnoreEmbeddedStylesheet=Ignoring embedded stylesheet because a source file was defined.
mxml.analyzer.SyntaxAnalyzer.CompileTimeAttributeBindingExpressionUnsupported=Data binding expressions not supported with attributes processed at compile time.
mxml.analyzer.SyntaxAnalyzer.StylesheetNotFound=Problem finding external stylesheet: ${source}
mxml.analyzer.SyntaxAnalyzer.EmptyTagIfSourceSpecified=Tag must be empty if source attribute is specified.
mxml.analyzer.SyntaxAnalyzer.ModelNotFound=Problem finding external Model: ${source}
mxml.analyzer.SyntaxAnalyzer.ScalarContentOnlyUnsupportedInExternalModel=External model contains only scalar content - this is currently unsupported.
mxml.analyzer.SyntaxAnalyzer.IgnoreInlineScript=Ignoring inline script because a source was specified.
mxml.analyzer.SyntaxAnalyzer.IgnoreInlineXML=Ignoring inline XML because a source was specified.
mxml.analyzer.SyntaxAnalyzer.XMLNotFound=Problem finding external XML: ${source}
mxml.analyzer.SyntaxAnalyzer.BindingMustHaveSource=Binding must have a valid source.
mxml.analyzer.SyntaxAnalyzer.BindingMustHaveDestination=Binding must have a valid destination.
mxml.analyzer.SyntaxAnalyzer.BindingMustHaveUniqueSourceDestination=Binding source and destination can not be the same.
mxml.analyzer.SyntaxAnalyzer.UnknownAttribute=Unknown attribute: ${qname} on ${tag}
mxml.analyzer.SyntaxAnalyzer.ScriptNotFound=Problem finding external file: ${source}
mxml.analyzer.SyntaxAnalyzer.IgnoreEmbeddedString=Ignoring embedded string because a source file was defined.
mxml.analyzer.SyntaxAnalyzer.PrimitiveFileNotFound=Problem finding external file: ${source}
mxml.analyzer.SyntaxAnalyzer.XMLParseProblem1=Problem parsing external XML: ${name} - (line ${line}) ${reason}
mxml.analyzer.SyntaxAnalyzer.XMLParseProblem2=Problem parsing external XML: ${name}
mxml.analyzer.SyntaxAnalyzer.XMLParseProblem3=Problem parsing external XML: ${name} - ${message}
mxml.analyzer.SyntaxAnalyzer.ExternalFileNotFound=File not found: ${name}
mxml.analyzer.SyntaxAnalyzer.ParseFileProblem=Problem parsing external plain text: ${name} - ${message}
mxml.analyzer.SyntaxAnalyzer.StyleSheetParseError=Error parsing stylesheet: ${stylePath}
mxml.analyzer.SyntaxAnalyzer.InlineComponentMustHaveOneChild=Must define an inline component.
mxml.analyzer.SyntaxAnalyzer.DefinitionMustHaveNameError=A Definition must have a name attribute.
mxml.analyzer.SyntaxAnalyzer.DefinitionMustHaveOneChildError=Definition '${name}' must have exactly one child element.
mxml.analyzer.SyntaxAnalyzer.LibraryMustBeFirstChildOfDocumentError=Library tag must be the first child of a document's root tag.
mxml.analyzer.SyntaxAnalyzer.PrivateMustBeLastChildOfDocumentError=Private tag must be the last child of a document's root tag.
mxml.analyzer.SyntaxAnalyzer.ReparentMustHaveTarget=Reparent must have a target attribute defined.
mxml.analyzer.SyntaxAnalyzer.ReparentMustHaveStates=Reparent must have either includeIn or excludeFrom defined.

# flex2.compiler.mxml.builder
mxml.builder.AnonymousObjectGraphBuilder.HasAttributeInitializers=Element may not contain both a binding expression and attribute initializers.
mxml.builder.AnonymousObjectGraphBuilder.IgnoringCDATA=Ignoring ${image} CDATA because other XML elements exist...
mxml.builder.AnonymousObjectGraphBuilder.ObjectTag=Cannot have a tag named "Object" inside Models or services.
mxml.builder.DocumentBuilder.MissingAttribute=Missing ${attribute} attribute.
mxml.builder.DocumentBuilder.LanguageNodeInDeclarationError='${image}' must be a child of the root tag.
mxml.builder.DocumentBuilder.NestedDeclaration='${declaration}' declaration must be contained within the <Declarations> tag since it does not implement '${targetType}'.
mxml.builder.DocumentBuilder.SingleRValueNestedDeclaration='${declaration}' declaration must be contained within the <Declarations> tag, since it is not assignable to the default property's type '${targetType}' or element type '${targetElementType}'.
mxml.builder.DocumentBuilder.MultiRValueNestedDeclaration='${declaration}' declaration must be contained within the <Declarations> tag, since it is not assignable to the default property's element type '${targetElementType}'.
mxml.builder.DocumentBuilder.DefaultPropertyError=Default property is not supported on the root tag.
mxml.builder.DocumentBuilder.ThemeAttributeError=Please set your theme in the compiler configuration options; the 'theme' attribute is no longer supported in MXML documents.
mxml.builder.DocumentBuilder.RslAttributeError=Please specify runtime shared libraries in the compiler configuration options; the 'rsl' attribute is no longer supported in MXML documents.
mxml.builder.DocumentBuilder.LibAttributeError=Please specify libraries through the compiler configuration options; the 'lib' attribute is no longer supported in MXML documents.
mxml.builder.DocumentBuilder.EmbedNotAllowed=@Embed not allowed here.
mxml.builder.DocumentBuilder.ClearNotAllowed=@Clear not allowed here.
mxml.builder.DocumentBuilder.InvalidPreLoaderClassName=Invalid class name '${className}' specified for 'preloader' attribute.
mxml.builder.DocumentBuilder.InvalidSplashScreenImageClassName=Invalid class name '${className}' specified for 'splashScreenImage' attribute.
mxml.builder.DocumentBuilder.InvalidRuntimeDPIProviderClassName=Invalid class name '${className}' specified for 'runtimeDPIProvider' attribute.
mxml.builder.DocumentBuilder.IdNotAllowedOnRoot=id attribute is not allowed on the root tag of a component.
mxml.builder.DocumentBuilder.StateAttrsNotAllowedOnRoot=The includeIn and excludeFrom attributes are not allowed on the root tag of a component.
mxml.builder.DocumentBuilder.StateAttrsNotAllowedOnDecls=The includeIn and excludeFrom attributes are not allowed on immediate children of the <Declarations> tag.
mxml.builder.DocumentBuilder.ItemPolicyNotAllowedOnRoot=The itemCreationPolicy and itemDestructionPolicy attributes are not allowed on the root tag of a component.
mxml.builder.DocumentBuilder.ItemPolicyNotAllowedOnDecls=The itemCreationPolicy and itemDestructionPolicy attributes are not allowed on immediate children of the <Declarations> tag.
mxml.builder.ArrayBuilder.ElementNotSupported=${image} not currently supported as Array element.
mxml.builder.ArrayBuilder.UnknownNode=${image} not allowed here.
mxml.builder.AbstractBuilder.AtClearNotAllowed=@Clear directive may only be used for state-specific style properties.
mxml.builder.AbstractBuilder.BindingNotAllowed=Data binding expression not allowed here.
mxml.builder.AbstractBuilder.BindingNotAllowedInitializer=Initializer for '${desc}': data binding expression not allowed here.
mxml.builder.AbstractBuilder.TwoWayBindingNotAllowed=Inline two-way data binding expression not allowed here.
mxml.builder.AbstractBuilder.TwoWayBindingNotAllowedInitializer=Initializer for '${desc}': two-way data binding expression not allowed here.
mxml.builder.AbstractBuilder.ClearNotAllowed=@Clear may only be used with state-specific properties.
mxml.builder.AbstractBuilder.TypeNotContextRootable=Initializer for '${desc}': @ContextRoot may not be used with type ${type}.
mxml.builder.AbstractBuilder.UndefinedContextRoot=Undefined context root.
mxml.builder.AbstractBuilder.TypeNotEmbeddable=Initializer for '${desc}': @Embed may not be used with type ${type}.
mxml.builder.AbstractBuilder.InvalidTextForType=Initializer for '${desc}': cannot parse value of type ${type}${array} from text '${text}'.
mxml.builder.AbstractBuilder.InvalidPercentage=Initializer for '${desc}': invalid percentage expression: ${text}.
mxml.builder.AbstractBuilder.InvalidTwoWayBindingInitializer=Initializer for '${desc}': invalid two-way binding expression: ${text}.
mxml.builder.AbstractBuilder.InvalidTwoWayBinding=Invalid two-way binding expression: ${text}.
mxml.builder.AbstractBuilder.TypeNotSerializable=Initializer for '${desc}': values of type ${type} cannot be represented in text.
mxml.builder.AbstractBuilder.PercentagesNotAllowed=Initializer for '${desc}': percentages are not allowed here.
mxml.builder.AbstractBuilder.UnrecognizedAtFunction=Initializer for '${desc}': unrecognized compile-time directive.
mxml.builder.AbstractBuilder.PercentProxyWarning=[PercentProxy("${percentProxyName}")] on property '${property}' does not name a reachable property of class '${type}'.
mxml.builder.AbstractBuilder.MultiplePropertyInitializerError=Multiple initializers for property '${name}'.
mxml.builder.AbstractBuilder.MultiplePropertyInitializerWithDefaultError=Multiple initializers for property '${name}'. (note: '${name}' is the default property of '${type}').
mxml.builder.AbstractBuilder.EventTypeUnavailable=Event type '${type}' is unavailable.
mxml.builder.AbstractBuilder.EventHandlerEmpty=Event handler is empty.
mxml.builder.AbstractBuilder.MultipleStyleInitializerError=Multiple initializers for style '${name}'.
mxml.builder.AbstractBuilder.MultipleEffectInitializerError=Multiple initializers for effect '${name}'.
mxml.builder.AbstractBuilder.ClassNotAvailable=Class '${className}' not available.
mxml.builder.AbstractBuilder.TypeNotAvailable=Standard MXML type '${type}' not available.
mxml.builder.AbstractBuilder.TypeNotAssignableToDefaultProperty='${type}' is not assignable to the default property, '${defaultProperty}', of type '${targetType}'.
mxml.builder.AbstractBuilder.TypeNotAssignableToLType=In initializer for '${lvalue}', type ${type} is not assignable to target type '${targetType}'.
mxml.builder.AbstractBuilder.DefaultPropertyNotMultiple=Multiple initializer values for default property, '${defaultProperty}', of type '${targetType}'.
mxml.builder.AbstractBuilder.TypeNotMultiple=In initializer for '${lvalue}', multiple initializer values for target type ${targetType}.
mxml.builder.AbstractBuilder.SingleRValueNotTargetTypeOrTargetElementType=In initializer for '${lvalue}', type ${type} is not assignable to target type ${targetType} or target element type ${targetElementType}.
mxml.builder.AbstractBuilder.MultiRValueNotElementType=In initializer for '${lvalue}', type ${type} is not assignable to target ${targetType} element type ${targetElementType}.
mxml.builder.AbstractBuilder.InitializerNotAllowed=Initializer for property '${name}' is not allowed here.
mxml.builder.AbstractBuilder.InvalidItemCreationPolicyUsage=itemCreationPolicy and itemDestructionPolicy attributes must accompany either the includeIn or excludeFrom attribute.
mxml.builder.AbstractBuilder.InvalidItemCreationPolicy=Invalid value for itemCreationPolicy attribute. 
mxml.builder.AbstractBuilder.InvalidItemDestructionPolicyUsage=itemDestructionPolicy must accompany either the includeIn or excludeFrom attribute.
mxml.builder.AbstractBuilder.InvalidItemDestructionPolicy=Invalid value for itemDestructionPolicy attribute. 
mxml.builder.AbstractBuilder.PropertyReadOnly=Property '${name}' is read-only.
mxml.builder.AbstractBuilder.PropertyUnreachable=Internal error: type for Property '{name}' is unreachable.
mxml.builder.AbstractBuilder.StyleUnreachable=Internal error: type for Style '{name}' is unreachable.
mxml.builder.AbstractBuilder.InvalidEnumerationValue=Invalid value:  ${value}.  It must be one of ${values}.
mxml.builder.AbstractBuilder.RuntimeSVGNotSupported=The Flash player does not support loading SVG at runtime.  To embed SVG use the @Embed() compile time function.
mxml.builder.AbstractBuilder.EmptyChildInitializer=Child tag initializer for type '${type}' may not be empty.

# If you update any of these strings, you must change ASC's equivalents in asc/src/localized_strings/EN/Lint_Warnings.xml (don't forget Japanese!)
mxml.builder.AbstractBuilder.Deprecated='${name}' has been deprecated.
mxml.builder.AbstractBuilder.DeprecatedMessage=${deprecationMessage}
mxml.builder.AbstractBuilder.DeprecatedUseReplacement='${name}' has been deprecated.  Please use '${replacement}'.
mxml.builder.AbstractBuilder.DeprecatedSince='${name}' has been deprecated since ${since}.  Please use '${replacement}'.
mxml.builder.AbstractBuilder.DeprecatedSinceNoReplacement='${name}' has been deprecated since ${since}.

mxml.builder.ComponentBuilder.ExcludedStyleProperty=The style '${stylePropertyName}' is excluded by type '${typeName}'.
mxml.builder.ComponentBuilder.InvalidStyleThemeError=The style '${stylePropertyName}' is only supported by type '${typeName}' with the theme(s) '${styleThemes}'.
mxml.builder.ComponentBuilder.InvalidStyleThemeWarning=The style '${stylePropertyName}' is only supported by type '${typeName}' with the theme(s) '${styleThemes}'.
mxml.builder.ComponentBuilder.UnknownNamespace=Unknown namespace ${namespace} on attribute ${text} (only default attribute namespaces are supported).
mxml.builder.ComponentBuilder.UnknownAttribute=Cannot resolve attribute '${name}' for component type ${type}.
mxml.builder.ComponentBuilder.UnknownQualifiedAttribute=Cannot resolve attribute '${localPart}' in namespace '${namespace}' for component type ${type}.
mxml.builder.ComponentBuilder.NonContiguous=Child elements of '${parentTypeName}' serving as the default property value for '${propertyName}' must be contiguous.
mxml.builder.ComponentBuilder.NestedFlexDeclaration=Component declarations are not allowed here. (Note: visual children must implement ${interfaceName})
mxml.builder.ComponentBuilder.NestedDeclaration=Component declarations are not allowed here.
mxml.builder.ComponentBuilder.SparkPrimitiveInHalo='${type}' is a graphic primitive that should be wrapped in a Group in order to be added to '${parentType}'.
mxml.builder.ComponentBuilder.MixedContent=Mixed content not allowed here.
mxml.builder.ComponentBuilder.InitializersNotAllowed=Component may not have both a text initializer and attributes.
mxml.builder.ComponentBuilder.IllegalLanguageNode=${image} is not allowed here.
mxml.builder.ComponentBuilder.MixedInitializers=Both text and non-text initializers were specified.
mxml.builder.ComponentBuilder.InvalidOverrideDeclaration=State overrides may no longer be explicitly declared. The legacy states syntax has been deprecated.
mxml.builder.ComponentBuilder.HaloNavigatorsRequireHaloContainerChildren=The children of Halo navigators must implement INavigatorContent.
mxml.builder.ComponentBuilder.RepeatersRequireHaloContainerParent=Repeaters require a Halo container based parent.
mxml.builder.ComponentBuilder.UnsupportedStatefulPropertySyntax=State-specific property syntax '${name}' is unsupported for MXML language versions earlier than 2009.
mxml.builder.ModelBuilder.ClassNotFound=The ${className} class could not be found.
mxml.builder.ModelBuilder.OnlyOneRootTag=Only one root tag is allowed.
mxml.builder.ModelBuilder.OnlyScalarError=Model '${id}' contains only scalar content - this is currently unsupported.
mxml.builder.PrimitiveBuilder.InitializerRequired=Initializer value is required here.
mxml.builder.XMLBuilder.OnlyOneRootTag=Only one root tag is allowed.
mxml.builder.XMLBuilder.MixedContent=Mixed content not allowed here.
mxml.builder.XMLBuilder.RequireXMLContent=XML content is required.
mxml.builder.XMLListBuilder.RequireXMLContent=XML content is required.
mxml.builder.VectorBuilder.WrongElementType=Elements of this Vector must be assignable to '${elementTypeName}'.

# flex2.compiler.mxml.dom
mxml.dom.AnalyzerAdapter.CouldNotResolveToComponent=Could not resolve ${tag} to a component implementation.
mxml.dom.AnalyzerAdapter.MixedContentNotAllowed=Mixed content is not allowed here.
mxml.dom.AnalyzerAdapter.ChildElementsNotAllowed=Child elements are not allowed here.
mxml.dom.MxmlScanner.ConflictingLanguageVersion=Only one language namespace must be specified per document. Found '${ns1}' and '${ns2}'.
mxml.dom.MxmlScanner.XMLTagAttributeLineNumber=Line number support for XML tag attributes is not available. It is possible that compile-time MXML error reporting and component debugging may not give correct line numbers. Please make sure that xercesPatch.jar is in the classpath.
mxml.dom.MxmlScanner.UnexpectedEndOfTokenStream=Unexpected end of token stream. The last token was: ${token}.
mxml.dom.MxmlScanner.UnexpectedEndOfSAXStream=Unexpected end of SAX event stream. The last event was: ${reason}.
mxml.dom.MxmlScanner.UnexpectedProcessingInstruction=Unexpected processing instruction encountered and will be ignored. Found: ${reason}

# flex2.compiler.mxml.reflect
mxml.reflect.ElementTypeNotFound=[${metadata}(${elementTypeName})]: type ${elementTypeName} not found.
mxml.reflect.TypeTable.NullInstanceType=[${instanceType}](${instanceTypeName}): type ${instanceTypeName} is unavailable.


# flex2.compiler.mxml.rep
mxml.rep.AtEmbed.InvalidEmbed=Invalid Embed directive in stylesheet - can't resolve source '${source}'.
mxml.rep.AtEmbed.NoEmbedParams=No parameters provided for @Embed().
mxml.rep.AtEmbed.SkinClassWithSourceNotSupported=Source attribute not supported with skinClass.
mxml.rep.AtResource.NoResourceParams=No parameters provided for @Resource().
mxml.rep.AtResource.NoResourceKeyParam=No key parameter given for @Resource().
mxml.rep.AtResource.NoResourceBundleParam=No bundle parameter given for @Resource().
mxml.rep.DocumentInfo.UnableToResolveLanguageVersion=Unable to resolve MXML language version. Please specify the language namespace on the root document tag.
mxml.rep.DocumentInfo.AmbiguousStateIdentifier=Identifier '${name}' used for both a state group and a state.
mxml.rep.MxmlDocument.AmbiguousStateFilterError=The includeIn and excludeFrom keywords may not be specified concurrently.
mxml.rep.MxmlDocument.NonPublicInheritedPropertyInit=Attempting to initialize non-public inherited property '${name}' from MXML.
mxml.rep.MxmlDocument.ReadOnlyInheritedPropertyInit=Attempting to initialize read-only inherited property '${name}' from MXML.
mxml.rep.MxmlDocument.StateResolutionError=State '${name}' was referenced without being declared.
mxml.rep.MxmlDocument.TypeIncompatibleInheritedPropertyInit=Attempting to initialize inherited property '${name}' of type '${propertyType}' with value of incompatible type '${valueType}'.
mxml.rep.StatesModel.ConflictingReparentTags=Cannot reparent the same target '${target}' to multiple destinations within the same state ('${name}').
mxml.rep.StatesModel.DuplicateState=Multiple definitions for state '${state}'.
mxml.rep.StatesModel.IncompatibleReparentType=Cannot reparent target '${target}' to specified destination.  Incompatible type or scalar property.
mxml.rep.StatesModel.IncompatibleStatefulNode=Scalar value nodes may not be state-specific.
mxml.rep.StatesModel.InvalidReparentState=Cannot reparent target '${target}'.  It already exists in state ('${name}').
mxml.rep.StatesModel.TargetResolutionError=Cannot resolve the specified reparent target '${name}'.
mxml.rep.StatesModel.MultipleInitializers=Multiple initializers for property '${name}' in state '${state}'.
mxml.rep.StatesModel.IncompatibleState=Component cannot be realized within state '${state}' because an ancestor is excluded from '${state}'. 
mxml.rep.StatesModel.CircularReparent=Circular reference detected within state '${state}' due to Reparent tag.
mxml.rep.init.ValueInitializer.DeclaredAndProceduralWithinRepeater=Unable to generate initialization code within Repeater, due to id or data binding on a component that is not a visual child.  


# flex2.compiler.util
util.Benchmark.BenchmarkText=${message} ${time}ms
util.Benchmark.BenchmarkTotalText=${message} ${time}ms Running Total: ${total}ms
util.Benchmark.BenchmarkID=${id}: ${duration}ms
util.Benchmark.TotalTime=Total time: ${time}ms
util.Benchmark.MemoryUsage=Peak memory usage: ${total} MB (Heap: ${heap}, Non-Heap: ${nonHeap})
util.AbstractLogger.Info=Info
util.AbstractLogger.Warning=Warning
util.AbstractLogger.Error=Error
util.AbstractLogger.col=col
util.AbstractLogger.Recompile=Recompile
util.AbstractLogger.Reason=Reason
util.AbstractLogger.Updated=Updated
util.ManifestParser.UndefinedClass=Manifest: Error loading namespace ${fileName}: ${line} Component ${tag} has undefined class!
util.ManifestParser.ManifestError=Manifest: Error loading namespace ${fileName}: ${line} ${message}
util.ManifestParser.InvalidClassName=Manifest: Error loading namespace ${fileName}: ${line} Component ${tag} can not use * as the defined class.
util.ManifestParser.DuplicateComponentDefinition=Manifest: Error loading namespace ${fileName}: ${line} Component ${tag} is defined more than once in this namespace.
util.MD5Crypt.UnsupportedAlgorithm=MD5 Crypt: Password encryption algorithm unsupported.
util.XMLStringSerializer.IllegalXMLChar=Illegal XML character
util.VelocityManager.InitializationError=Exception initializing velocity engine: ${message}
util.VelocityManager.InvocationError=Method '${className}.${methodName}': invocation exception during codegen: ${message}
util.VelocityManager.TemplateReferenceIsNull=Template reference '${s}' yields null.
util.VelocityManager.GetMethodNotFound=${template} line ${line}, column ${column}: Get method for '${identifier}' not found on ${className}
util.VelocityManager.SetMethodNotFound=${template} line ${line}, column ${column}: Set method for '${identifier}' not found on ${className}
util.LocalLogger.ErrMsgBug=Flex Compiler Error Reporting Bug
util.LocalLogger.GeneratedCodeMarker=Generated code (use -keep to save)
util.LocalLogger.PathInfo=Path: ${filepath}
util.LocalLogger.LineInfo=Line: ${fileline}
util.LocalLogger.ColumnInfo=Column: ${filecol}
util.LocalLogger.MessageInfo=Message: ${filemsg}
util.LocalLogger.SourceInfo=Source: ${filesource}
util.LocalLogger.ErrorCodeInfo=Error Code: ${fileerrorCode}
util.LocalLogger.StackTraceInfo=stack trace
util.VelocityException.UnableToWriteGeneratedFile=Unable to write generated file (${fileName}): ${message}.
util.VelocityException.TemplateNotFound=Unable to load template '${template}'.
util.VelocityException.GenerateException=Exception while generating from ${template}: ${message}.
util.OrderedProperties.MalformedEncoding=The encoding for the given string is malformed: ${string}
util.OrderedProperties.RemovedFromProperty='${string}' can not be contained in a property and was removed from '${property}'


# flex2.compiler
CompilerAPI.UnableToSetHeadless=Unable to set java.awt.headless due to a security exception. Please set it manually via the command line.
CompilerAPI.IncompatibleSWCArchive=SWC archive ${swc} is incompatible with this compiler.
CompilerAPI.OutputTime=Files: ${size} Time:
CompilerAPI.NotFullyCompiled=The source file wasn't fully compiled.
CompilerAPI.SourceNoLongerExists=The source file no longer exists.
CompilerAPI.SourceFileUpdated=The source file or one of the included files has been updated.
CompilerAPI.AssetUpdated=One of the assets has been updated.
CompilerAPI.SwcDefinitionObsoleted=Definition obsoleted by '${newLocation}'.
CompilerAPI.DependencyUpdated=Dependency, '${dependency}', has been updated.
CompilerAPI.DependencyNotCached=Dependency '${dependency}' not cached.
CompilerAPI.NotSourcePathFirstPreference=The source file is no longer the source path's first preference.
CompilerAPI.DependentFileNoLongerExists=Its dependent file, ${location}, no longer exists.
CompilerAPI.InvalidImportStatement=The import statement, ${defName}, is no longer valid.
CompilerAPI.DependentFileModified=Its dependent file, ${location}, has been updated.
CompilerAPI.MultiNameMeaningChanged=The meaning of the multiname ${multiName} has changed from '${qName}' to something else.
CompilerAPI.FilesChangedAffected=Files changed: ${updateCount} Files affected: ${count}
CompilerAPI.MoreThanOneDefinition=A file found in a source-path can not have more than one externally visible definition. ${topLevelDefinitions}
CompilerAPI.MustHaveOneDefinition=A file found in a source-path must have an externally visible definition. If a definition in the file is meant to be externally visible, please put the definition in a package.
CompilerAPI.WrongPackageName=A file found in a source-path must have the same package structure '${pathPackage}', as the definition's package, '${defPackage}'.
CompilerAPI.WrongDefinitionName=A file found in a source-path '${pathName}' must have the same name as the class definition inside the file '${defName}'.
CompilerAPI.CircularInheritance=The definition is in circular inheritance.
CompilerAPI.UnableToResolveDependency=Unable to resolve dependency on ${localPart}.
CompilerAPI.AmbiguousMultiname=Can not resolve a multiname reference unambiguously. ${qName1} (from ${source1}) and ${qName2} (from ${source2}) are available.
CompilerAPI.SWFEncoding=SWF Encoding...
CompilerAPI.PersistingCompilationUnits=Persisting ${count} compilation units...
CompilerAPI.FailedToMatchCacheFile=Failed to match the compile target with ${cacheName}. The cache file will not be reused.
CompilerAPI.LoadingCompilationUnits=Loading ${count} compilation units...
CompilerAPI.ChannelDefinitionNotFound=Channel definition, ${clientType}, can not be found.
CompilerAPI.TooManyErrors=Encountered too many errors!
CompilerAPI.ForcedToStop=The compiler was instructed to stop.
CompilerAPI.UnableToWriteSizeReport=Unable to write size report to ${fileName}.
CompilerAPI.UnableToResolveClass=Unable to resolve a class for ${type}: ${className}.
CompilerAPI.UnableToResolveResourceBundle=Unable to resolve resource bundle "${bundleName}".
CompilerAPI.UnableToResolveResourceBundleForLocale=Unable to resolve resource bundle "${bundleName}" for locale "${locale}".
CompilerAPI.UnableToResolveNeededClass=Unable to resolve needed class: ${className}.
CompilerAPI.BatchTime=Compiling ${sourceName}, phase ${phase}...
CompilerAPI.CompileTime=Compiling phase ${phase}...
CompilerAPI.NoCompilerFound=No compiler for '${sourceName}'.
CompilerException=Encountered errors during compiling...
CompilerSwcContext.Loaded = Loaded ${loaded} libraries...
FileSpec.UnsupportedFileType=Unsupported file type: ${name}
SourceList.UnsupportedFileType=Unsupported file type: ${name}
SourceList.FileNotInSourcePath=${name} must be in the source path.
PersistenceStore.ObsoleteCacheFileFormat=Detected obsolete cache file format. The cache file will not be reused.
PersistenceStore.NoFileSpec=FileSpec-based compilation data exists but a FileSpec is not provided.
PersistenceStore.NoSourceList=SourceList-based compilation data exists but a SourceList is not provided.
PersistenceStore.NoSourcePath=SourcePath-based compilation data exists but a SourcePath is not provided.
PersistenceStore.NoResourceBundlePath=ResourceBundlePath-based compilation data exists but a ResourceBundlePath is not provided.
PersistenceStore.NoResourceContainer=ResourceContainer-based compilation data exists but a ResourceContainer is not provided.
SourcePathBase.ClasspathOverlap=Source path entry, '${cpath}', is a subdirectory of source path entry, '${directory}'.
SourcePathBase.MoreThanOneComponentOfTheSameName=${file1} and ${file2} can't co-exist in the same directory.

# flex2.compiler.mxml
mxml.ImplementationCompiler.UnableToLoadTemplate=unable to load template '${template}'
mxml.ImplementationCompiler.CodeGenerationException=Exception while generating from ${template}: ${message}
mxml.InterfaceCompiler.WrongMXMLNamespace=unsupported MXML namespace found ('${namespace1}'). Please use the MXML namespace '${namespace2}' for MXML 2 source code.
mxml.InterfaceCompiler.InvalidCharacterOrMarkup=Invalid character or markup found. Try surrounding your code with a CDATA block.
mxml.InterfaceCompiler.WhitespaceBeforePI=Whitespace is not allowed before an XML Processing Instruction (<? ... ?>).
mxml.InterfaceCompiler.InvalidIdentifier='${id}' is not a valid identifier.
mxml.InterfaceCompiler.IdentifierUsedMoreThanOnce=identifier '${id}' used more than once.
mxml.InterfaceCompiler.IdentifierMatchesClassName='${name}': identifier and class may not have the same name.
mxml.InterfaceCompiler.ClassNameInvalidActionScriptIdentifier=class name must be a valid ActionScript identifier.
mxml.InterfaceCompiler.ClassNameSpecifiedMoreThanOnce=class name specified more than once in document.
mxml.InterfaceCompiler.InlineComponentInternalError=internal error processing inline component.
mxml.InterfaceCompiler.BaseClassNotFound=Unable to locate specified base class '${baseClassName}' for component class '${className}'.
mxml.InterfaceCompiler.InvalidComponentName=Invalid component name '${name}': component name must be legal ActionScript class name.
mxml.InterfaceCompiler.InvalidToken=Parse error: '${child}' is not allowed to follow '${parent}'.
mxml.InterfaceCompiler.MissingEndTag=The element type '${tag}' must be terminated by the matching end-tag '${endTag}'.
mxml.InterfaceCompiler.InvalidMarkupAfterRootElement=The markup in the document following the root element must be well-formed.
mxml.InterfaceCompiler.StateNameRequired='name' is a required attribute for the State tag.
mxml.InterfaceCompiler.VectorTypeRequired='type' is a required attribute for the Vector tag.
mxml.InvalidStateAttributeUsage=The includeIn and excludeFrom attributes are not allowed on MXML language tag '${name}'.
mxml.InvalidStateSpecificValue=Cannot specify state-specific value for MXML language attribute '${name}'.

# flex2.compiler.i18n
i18n.PropertyText.InvalidClassReference=Invalid ClassReference directive in resource bundle.  It must contain a single String parameter.

#flex2.compiler.swc (only warnings- use SwcException for errors)
swc.Swc.OldVersion=${swc} version ${swcVer} is incompatible with compiler version ${compilerVer}.

# flex2.compiler.asdoc
asdoc.AsDocAPI.CouldNotCreate=Could not create ${file}: ${message}
asdoc.AsDocAPI.UnknownOS=Unknown OS for ASDoc.  ASDoc will only run on Windows and Mac OS X.
asdoc.AsDocAPI.NotFound=The following ${property} could not be found: ${names}

#flex.compiler.util
util.SwcDependencyUtil.DependsOn=${location} depends on:
