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

ABCGeneratorProblem=Errore interno nel sottosistema generatore ABC durante la generazione del codice per: ${sourceFileName}: ${stackTrace}
AccessorTypesMustMatchProblem=I tipi di accessor devono corrispondere.
AccessUndefinedMemberProblem=Accesso a una proprietà possibilmente non definita ${memberName} mediante un riferimento con tipo statico ${className}.
AccessUndefinedPropertyInPackageProblem=Accesso alla proprietà possibilmente non definita ${propertyName} nel pacchetto ${packageName}.
AccessUndefinedPropertyProblem=Accesso alla proprietà possibilmente non definita ${propertyName}.
AmbiguousReferenceProblem=Riferimento ambiguo a ${property}
AssignToConstProblem=Assegnazione non valida a una variabile specificata come costante.
AssignToFunctionProblem=Assegnazione non valida alla funzione ${funcName}.
AssignToReadOnlyPropertyProblem=La proprietà ${name} è di sola lettura.
AttemptToDeleteFixedPropertyProblem=Tentativo di eliminare la proprietà fissa ${name}. Solo le proprietà definite dinamicamente possono essere eliminate.
AttributesAreNotCallableProblem=Gli attributi non sono richiamabili.
BadAccessInterfaceMemberProblem=I membri di interfaccia non possono essere dichiarati public, private, protected o internal.
BadCharacterProblem=Errore di carattere imprevisto: '${errorText}' non è consentito in questo punto
BadSetterReturnTypeProblem=Il tipo restituito di una definizione setter non deve essere specificato o deve essere void.
BaseClassIsFinalProblem=La classe base è ${finalStr}.
BURMDiagnosticForEachExpectedInProblem=La parola chiave '${k_each}' non è consentita senza un operatore '${k_in}'
BURMDiagnosticInvalidDecrementProblem=L'operando di decremento deve essere un riferimento.
BURMDiagnosticNotAllowedHereProblem=${node} non consentito qui
BURMPatternMatchFailureProblem=Impossibile generare il codice per ${node}
BURNDiagnosticInvalidIncrementProblem=L'operando di incremento deve essere un riferimento.
CallUndefinedMethodProblem=Chiamata al metodo possibilmente non definito ${methodName}.
CannotDeleteSuperDescendantsProblem=Impossibile eliminare discendenti super.
CannotExtendClassProblem=Un'interfaccia può estendere solo altre interfacce, ma ${className} è una classe.
CannotExtendInterfaceProblem=Una ${classStr} può estendere solo un'altra ${classStr}, non un'${interfaceStr}.
CannotResolveConfigExpressionProblem=Impossibile risolvere la costante di configurazione: '${configName}'
CircularTypeReferenceProblem=Tipo di riferimento circolare rilevato in ${className}
ClassesMappedToSameRemoteAliasProblem=È stata trovata una mappatura per '${existingClassName}' all'alias di classe remota '${alias}' durante l'elaborazione della classe '${className}'. Flex ora genera codice per verificare se un alias è già stato registrato. Durante la deserializzazione di dati remoti, un alias può essere mappato a una sola classe.
ClosureProblem=Closure error.
CodegenInternalProblem=Errore interno del generatore di codice: ${diagnostic}
CompiledAsAComponentProblem=${className} è un modulo o un'applicazione con riferimento diretto. Di conseguenza ${className} e tutte le sue dipendenze saranno collegate con ${mainDefinition}. È consigliato l'uso di un'interfaccia per evitare questa situazione.
ConfigurationFileNotFoundProblem=Impossibile trovare il file di configurazione: ${file}
ConfigurationProblem=Problema di configurazione: ${reason}.\n${location}
ConflictingInheritedNameInNamespaceProblem=Esiste un conflitto con la definizione ereditata ${declName} nello spazio dei nomi ${nsName}.
ConflictingNameInNamespaceProblem=Esiste un conflitto con la definizione ${declName} nello spazio dei nomi ${nsName}.
ConstructorCannotHaveReturnTypeProblem=Una funzione di costruzione non può specificare un tipo restituito
ConstructorIsGetterSetterProblem=Una funzione di costruzione non può essere un metodo getter o setter
ConstructorIsStaticProblem=Le funzioni di costruzione devono essere metodi di istanze
ConstructorMustBePublicProblem=Una funzione di costruzione può essere dichiarata solo ${modifier}
CountedForLoopInitializerProblem=Errore di sintassi: è previsto un punto e virgola prima di rightparen.
CSSCodeGenProblem=Problema di generazione codice CSS. Motivo: '${reason}'
CSSEmbedAssetProblem=Impossibile incorporare la risorsa da '${embed}'.
CSSParserProblem=${reason}
CSSUndefinedNamespacePrefixProblem=Prefisso spazio dei nomi non definito '${prefix}'.
CSSUndefinedTypeProblem='${type}' non definito.
CSSUnknownDefaultNamespaceProblem=Un selettore di tipo senza prefisso di spazio dei nomi richiede la definizione di uno spazio dei nomi predefinito. ${selectorText}
CSSUnresolvedClassReferenceProblem=${qname} non definito.
CyclicalIncludesProblem=Include cicliche trovate in ${file}
DependencyNotCompatibleProblem=La dipendenza ${definition} di ${swc} prevede la versione minima supportata ${swcMinimumVersion}, che è successiva alla versione di compatibilità ${compatibilityVersion}.
DeprecatedConfigurationOptionProblem='${option}' è stata dichiarata obsoleta a partire da ${since}. Utilizzate '${replacement}'
DuplicateAttributeProblem=L'attributo ${attrStr} è stato specificato più volte.
DuplicateClassDefinitionProblem=Definizione di classe duplicata: ${className}.
DuplicateConfigNameProblem=Spazio dei nomi di configurazione duplicato: '${configName}'
DuplicateFunctionDefinitionProblem=Definizione di funzione duplicata: ${methodName}
DuplicateInterfaceDefinitionProblem=Definizione di interfaccia duplicata: ${interfaceName}.
DuplicateInterfaceProblem=${classStr} ${className} implementa ${interfaceStr} ${interfaceName} più volte.
DuplicateLabelProblem=Definizione di etichetta duplicata.
DuplicateNamespaceDefinitionProblem=Definizione dello spazio dei nomi duplicata.
DuplicateQNameInSourcePathProblem=${qName} è definito da più file: ${fileList} 
DuplicateSkinStateProblem=Dichiarazione duplicata di SkinState '${name}'
DuplicateSourceFileProblem=${file} è stato specificato più di una volta nell'elenco delle origini di include.
DuplicateSourcePathProblem=${directory} è stata specificata più di una volta nel percorso di origine.
DuplicateSwitchCaseProblem=Alternativa switch duplicata ${caseName}.
DynamicNotOnClassProblem=L'attributo ${dynamicStr} può essere utilizzato solo nelle definizioni di ${classStr}.
EmbedAS2TagsModifiedProblem=Le azioni AS2 sono state rimosse dal tag ${symbol}
EmbedBadFontParameters=La transcodifica dei caratteri richiede che venga specificato 'fontName' e uno tra 'source', 'systemFont' e 'sourceList'
EmbedBadScalingGridTargetProblem=Impossibile ridimensionare il simbolo ${symbol} perché non è del tipo Sprite
EmbedCouldNotDetermineSampleFrameCountProblem=Impossibile determinare il numero di fotogrammi campione nel file ${filename}
EmbeddedFontShadowsDeviceFontProblem=Il carattere incorporato '${alias}' può sovrapporsi a un carattere dispositivo con lo stesso nome. Specificate fontName come alias per indicare il carattere con un nome differente
EmbedExceptionWhileTranscodingProblem=Eccezione durante la transcodifica: ${exception}
EmbedInitialValueProblem=Una variabile Embed non può avere un valore esistente.
EmbedInvalidAttributeValueProblem=Il valore ${value} non è valido per l'attributo ${attribute}
EmbedInvalidUnicodeRangeProblem=Intervallo Unicode non valido '${range}'
EmbedMissingSymbolProblem=Impossibile trovare il simbolo ${symbol} nel file ${swf}
EmbedMovieScalingNoSymbolProblem=Specificate un simbolo quando ridimensionate un filmato incorporato
EmbedMultipleMetaTagsProblem=Una variabile può avere un solo tag di metadati Embed
EmbedNoSkinClassProblem=Specificate un attributo skinClass quando incorporate risorse skin
EmbedNoSourceAttributeProblem=Embed richiede un attributo di file di origine
EmbedQualityRequiresCompressionProblem=Non specificate quality se la compressione è disattivata
EmbedQualityValueProblem=Il valore ${value} non è valido per l'attributo quality. Deve essere compreso tra 0.0 e 100.0
EmbedScalingGridProblem=Gli attributi scaleBottom, scaleLeft, scaleRight e scaleTop devono essere specificati insieme
EmbedScalingGridValueProblem=Il valore di ridimensionamento ${value} deve essere maggiore di 0 per l'attributo ${attr}
EmbedSkinClassNotFoundProblem=Impossibile trovare la classe ${skinClass}
EmbedSourceAttributeCouldNotBeReadProblem=Impossibile leggere il file di origine Embed ${filename}
EmbedSourceAttributeDoesNotExistProblem=Impossibile trovare il file di origine Embed
EmbedSourceFileNotFoundProblem=Impossibile trovare il file di origine Embed: ${file}
EmbedTypeNotEmbeddableProblem=Impossibile incorporare il tipo ${typeName}
EmbedUnableToBuildFontProblem=Impossibile generare il carattere '${fontName}'
EmbedUnableToReadSourceProblem=Impossibile leggere l'origine di transcodifica '${source}'
EmbedUnknownAttributeProblem=Attributo sconosciuto: ${attr}
EmbedUnknownMimeTypeProblem=Tipo mime non gestito ${mimeType}
EmbedUnrecogniedFileTypeProblem=Il file ${file} è di un tipo sconosciuto che non può essere incorporato
EmbedUnsupportedAttributeProblem=L'attributo ${attribute} non può essere utilizzato con il tipo mime: ${mimeType}
EmbedUnsupportedSamplingRateProblem=La frequenza ${frequency} non è supportata nel file ${filename}
FileNotFoundProblem=File non trovato: ${file}
FinalOutsideClassProblem=L'attributo ${finalStr} può essere utilizzato solo in un metodo definito in una ${classStr}.
FunctionNotMarkedOverrideProblem=Override di una ${funcStr} non contrassegnata per l'${overrideStr}
FunctionWithoutBodyProblem=La funzione non ha un corpo.
FXGCompilerProblem=Problema di compilazione FXG: ${message}
GetterCannotHaveParametersProblem=Una definizione getter non può avere parametri.
GlobalBindablePropertyProblem=[${bindableStr}] non consentito sulle variabili globali o ${packageStr}
HostComponentClassNotFoundProblem=[HostComponent] classe '${className}' non trovata.
HostComponentMustHaveTypeProblem=[HostComponent] deve specificare un nome di tipo.
IllegalAssignmentToClassProblem=Assegnazione non valida alla classe ${className}.
ImplicitCoercionToSubtypeProblem=Assegnazione forzata implicita di un valore di tipo statico ${baseType} a un tipo ${subType} possibilmente non correlato.
ImplicitCoercionToUnrelatedTypeProblem=Assegnazione forzata implicita di un valore del tipo ${actualType} a un tipo ${expectedType} non correlato.
InaccessibleMethodReferenceProblem=Tentativo di accesso al metodo non accessibile ${methodName} mediante un riferimento con tipo statico ${className}.
InaccessiblePropertyReferenceProblem=Tentativo di accesso alla proprietà non accessibile ${propertyName} mediante un riferimento con tipo statico ${className}.
IncompatibleDefaultValueProblem=Valore predefinito non compatibile del tipo ${srcType} invece del tipo previsto ${tgtType}.
IncompatibleInterfaceMethodProblem=Il metodo ${methodName} di ${interfStr} in ${namespaceStr} ${namespaceName} è implementato con una firma incompatibile in ${classStr} ${className}
IncompatibleOverrideProblem=${overrideStr} incompatibile.
InterfaceBindablePropertyProblem=[${bindableStr}] non è consentito in una definizione ${interfStr}.
InterfaceCannotBeInstantiatedProblem=Non è possibile creare istanze di interfacce con l'operatore new.
InterfaceMethodWithBodyProblem=I metodi definiti in una ${interfaceStr} non possono avere un corpo.
InterfaceModifierProblem=L'attributo di interfaccia ${modifier} non è valido.
InterfaceNamespaceAttributeProblem=Gli attributi namespace non sono consentiti nei metodi di interfaccia.
InternalCompilerProblem=Errore interno del compilatore
InvalidABCByteCodeProblem=Codice byte ABC non valido.
InvalidBackgroundColorProblem=Colore di sfondo non valido: ${backgroundColor}
InvalidDecrementOperandProblem=L'operando di decremento non è valido.
InvalidEscapeSequenceProblem='${badSequence}' non è una sequenza di escape valida
InvalidForInInitializerProblem=Errore di sintassi: inizializzatore for-in non valido; è prevista una sola espressione.
InvalidIncrementOperandProblem=L'operando di incremento non è valido.
InvalidLvalueProblem=La destinazione dell'assegnazione deve essere un valore di riferimento.
InvalidNamespaceInitializerProblem=Un inizializzatore di spazio dei nomi deve essere una stringa letterale o un altro spazio dei nomi.
InvalidNamespaceProblem=Un attributo namespace definito dall'utente può essere utilizzato solo al livello principale di una definizione di ${classStr}.
InvalidOverrideProblem=L'attributo ${overrideStr} può essere utilizzato solo in un metodo definito in una classe.
InvalidPrivateNamespaceAttrProblem=L'attributo ${privateStr} può essere utilizzato solo nelle definizioni delle proprietà di ${classStr}.
InvalidPrivateNamespaceProblem=${privateStr} può essere utilizzato come spazio dei nomi solo all'interno di una ${classStr}.
InvalidProtectedNamespaceAttrProblem=L'attributo ${protectedStr} può essere utilizzato solo nelle definizioni delle proprietà di ${classStr}.
InvalidProtectedNamespaceProblem=${protectedStr} può essere utilizzato come spazio dei nomi solo all'interno di una ${classStr}.
InvalidPublicNamespaceAttrProblem=L'attributo ${publicStr} può essere utilizzato solo all'interno di un ${packageStr}.
InvalidPublicNamespaceProblem=${publicStr} può essere utilizzato come spazio dei nomi solo all'interno di una ${packageStr}.
InvalidRestParameterDeclarationProblem=I parametri specificati dopo la parola chiave di definizione parametro ...rest possono essere solo del tipo di dati Array.
InvalidSuperExpressionProblem=Un'espressione super può essere utilizzata solo nei metodi di istanze di classe.
InvalidSuperStatementProblem=Un'istruzione super può essere utilizzata solo nelle funzioni di costruzione di istanze di classe.
JSDataClassMethodError=ERROR: DataClass classes must not declare methods. 
JSInternalCompilerProblem=Internal compiler error: ${message}. 
JSUnsupportedFeatureProblem=Unsupported feature: ${feature}. 
JSWarnClassInitProblem=PERFORMANCE: Avoid loose class initialization statements. Consider using singletons instead.
JSWarnClosureAdvancedOptimizationsProblem=WARNING: Optimizing with ADVANCED_OPTIMIZATIONS will fail because of accessing properties via unknown strings.
JSWarnRuntimeNameLookupProblem=PERFORMANCE: Forced to emit expensive runtime name lookup. Consider using strict types instead of generic objects and avoiding dynamic classes.
LocalBindablePropertyProblem=[${bindableStr}] non è consentito in una definizione ${funcStr}.
LossyConversionProblem=Inizializzazione non valida: la conversione al tipo ${targetType} determina una perdita di dati.
MethodCannotBeConstructorProblem=Il metodo non può essere utilizzato come funzione di costruzione.
MissingBuiltinProblem=Tipo incorporato mancante ${builtinType}
MissingCatchOrFinallyProblem=Errore di sintassi: è prevista una clausola catch o finally.
MissingFactoryClassInFrameMetadataProblem=In questa unità di compilazione non è specificata una factoryClass nei metadati Frame per il caricamento delle librerie condivise in runtime. Per compilare senza librerie condivise in runtime, impostate l'opzione -static-link-runtime-shared-libraries su true oppure rimuovete l'opzione -runtime-shared-libraries.
MissingRequirementConfigurationProblem=Variabile di configurazione '${required}' non impostata
MissingSignedDigestProblem=Nessun digest firmato trovato nel file catalog.xml della libreria, ${libraryPath}.
MissingSkinPartProblem=La parte skin richiesta '${skinPartName}' è mancante.
MissingSkinStateProblem=Lo stato skin richiesto '${skinPartName}' è mancante.
MissingUnsignedDigestProblem=Nessun digest non firmato trovato nel file catalog.xml della libreria, ${libraryPath}.
MultipleConfigNamespaceDecorationsProblem=Gli spazi dei nomi di configurazione duplicati non sono consentiti in una definizione
MultipleSwitchDefaultsProblem=L'istruzione switch ha più valori predefiniti, mentre ne è consentito solo uno.
MXMLAttributeVersionProblem=L'attributo '${name}' può essere utilizzato solo in MXML ${version} e versioni successive. Verrà ignorato.
MXMLClassNodeProblem='${qname}' non specifica una classe o un'interfaccia. Verrà ignorato.
MXMLDatabindingSourceNotBindableProblem=La funzione di associazione dati non sarà in grado di rilevare le assegnazioni a '${sourceName}'.
MXMLDuplicateIDProblem=Questo ID non è univoco. Verrà ignorato.
MXMLFinalClassProblem='${qname}' è una classe finale e quindi non può essere utilizzata come tag principale.
MXMLIncludeInAndExcludeFromProblem=Gli attributi 'includeIn' e 'excludeFrom' non possono essere specificati nello stesso tag. Verranno entrambi ignorati.
MXMLIncompatibleArrayElementProblem=Un elemento array di tipo '${actualType}' è incompatibile con il [ArrayElementType] di '${expectedType}' previsto per la proprietà '${propertyName}'.
MXMLIncompatibleVectorElementProblem=Questo elemento è incompatibile con il tipo Vector. Verrà ignorato.
MXMLInvalidEntityProblem=Entità sconosciuta '{entity}' trovata. Verrà ignorata.
MXMLInvalidIDProblem=Questo ID non è un identificatore ActionScript valido. Verrà ignorato.
MXMLInvalidItemCreationPolicyProblem=I valori validi per itemCreationPolicy sono 'immediate' e 'deferred'. Questo attributo verrà ignorato.
MXMLInvalidItemDestructionPolicyProblem=I valori validi per itemDestructionPolicy sono 'auto' e 'never'. Questo attributo verrà ignorato.
MXMLInvalidPercentageProblem=Inizializzatore per '${property}': espressione percentuale non valida: '${text}'.
MXMLInvalidTextForTypeProblem=Impossibile analizzare un valore di tipo '${type}' da '${text}'.
MXMLInvalidVectorFixedAttributeProblem=L'attributo 'fixed' deve essere 'true' o 'false'. Verrà ignorato.
MXMLInvalidVectorTypeAttributeProblem=L'attributo 'type' non specifica una classe nota. Verrà utilizzato il tipo '*'.
MXMLMissingRootTagProblem=Nessun tag principale trovato in questo file MXML.
MXMLMissingVectorTypeAttributeProblem=È richiesto un attributo 'type' in un tag <Vector>. Verrà utilizzato il tipo '*'.
MXMLNotAClassProblem='${qname}' non è una classe. Questo tag verrà ignorato.
MXMLOperationMissingNameProblem=L'operazione richiede un attributo name.
MXMLOtherLanguageNamespaceProblem=È possibile utilizzare un solo spazio dei nomi language in un documento MXML. Questo attributo verrà ignorato.
MXMLOuterDocumentAlreadyDeclaredProblem=È già stata dichiarata una proprietà denominata outerDocument, in conflitto con la proprietà outerDocument del tag fx:Component.
MXMLPercentageNotAllowedProblem=Inizializzatore per '${property}': espressione percentuale non consentita qui: '${text}'.
MXMLPrivateAttributeProblem=Questo attributo usa uno spazio dei nomi privato e verrà quindi ignorato.
MXMLPrivateTagLocationProblem=Il tag <Private> deve essere l'ultimo tag secondario del tag principale del file. Verrà ignorato.
MXMLSemanticProblem=Problema interno durante l'analisi semantica del codice MXML
MXMLUnexpectedAttributeProblem=Attributo non previsto. Verrà ignorato.
MXMLUnexpectedDatabindingProblem=Espressione di associazione dati non prevista. Verrà ignorata.
MXMLUnexpectedTagProblem=Tag non previsto. Verrà ignorato.
MXMLUnexpectedTextProblem=Testo non previsto. Verrà ignorato.
MXMLUnrecognizedCompilerDirectiveProblem=La funzione ${functionName} non è una direttiva di compilazione riconosciuta
MXMLUnresolvedTagProblem=Questo tag non può essere risolto in una classe ActionScript. Verrà ignorato.
MXMLUnterminatedEntityProblem=Entità non terminata trovata. Verrà ignorata.
MXMLXMLListMixedContentProblem=Contenuto misto non consentito qui.
MXMLXMLOnlyOneRootTagProblem=È consentito un solo tag principale
MXMLXMLRequireContentProblem=È richiesto un contenuto XML
NamespaceInInterfaceProblem=Le dichiarazioni degli spazi dei nomi non sono consentite nelle interfacce.
NativeMethodWithBodyProblem=I metodi nativi non possono avere un corpo.
NativeNotOnFunctionProblem=L'attributo ${nativeStr} può essere utilizzato solo nelle definizioni di ${functionStr}.
NativeUsedInInterfaceProblem=L'attributo ${nativeStr} non può essere utilizzato nelle definizioni di ${interfStr}.
NativeVariableProblem=Le variabili non possono essere ${nativeStr}.
NestedGetterSetterProblem=Le proprietà accessor non possono essere nidificate all'interno di altre funzioni.
NestedPackageProblem=I pacchetti non possono essere nidificati.
NoCompilationUnitForDefinitionProblem=Non è stata trovata alcuna unità di compilazione con il nome '${qname}'.
NoDefaultConstructorInBaseClassProblem=Nessuna funzione di costruzione predefinita trovata nella classe base ${baseClass}.
NoDefinitionForSWCDependencyProblem=Impossibile trovare la definizione ${qname} nel file SWC ${swcFilename}
NoMainDefinitionProblem=Non è stata trovata nessuna definizione visibile esternamente con il nome '${qname}'.
NonConstantNamespaceProblem=Un inizializzatore di spazio dei nomi deve essere una stringa letterale o un altro spazio dei nomi.
NonConstantParamInitializerProblem=L'inizializzatore di parametro non è noto oppure non è una costante della fase di compilazione.
NonDirectoryInSourcePathProblem=${file} è stato specificato nel percorso di origine e non è una directory.
NoScopesInABCCompilationUnitProblem=Impossibile trovare gli ambiti nell'unità di compilazione.
OnlyOneHostComponentAllowedProblem=È consentito un solo [HostComponent].
OverlappingSourcePathProblem=Voci sovrapposte nel percorso di origine: ${ancestor} è un antenato di ${descendant}
OverrideFinalProblem=Impossibile ridefinire un metodo ${finalStr}.
OverrideNotFoundProblem=Il metodo contrassegnato con ${overrideStr} deve eseguire l'${overrideStr} di un altro metodo.
OverrideOutsideClassProblem=L'attributo ${overrideStr} può essere utilizzato solo nelle definizioni delle proprietà di ${classStr}.
PackageCannotBeUsedAsValueProblem=Il pacchetto non può essere utilizzato come valore: ${packageName}.
ParserProblem=Problema interno di analisi sintattica
PropertyIsWriteOnlyProblem=La proprietà ${name} è di sola scrittura.
PrototypeInvalidAttributeProblem=L'attributo prototype non è valido.
RemovedConfigurationOptionProblem='${option}' non è più supportata e non avrà alcun effetto.
RequiredParameterAfterOptionalProblem=I parametri obbligatori non sono consentiti dopo i parametri opzionali.
ResourceBundleMalformedEncodingProblem=La codifica della stringa specificata ha una struttura non corretta: ${string}
ResourceBundleNoBundleParameterProblem=Nessun parametro bundle fornito per @Resource()
ResourceBundleNoKeyParameterProblem=Nessun parametro key fornito per @Resource()
ResourceBundleNotFoundForLocaleProblem=Impossibile risolvere il pacchetto di risorse '${bundleName}' per l'impostazione internazionale '${locale}'
ResourceBundleNotFoundProblem=Impossibile risolvere il pacchetto di risorse '${bundleName}'
RestParameterMustBeLastProblem=I parametri rest devono essere specificati per ultimi.
ReturnCannotBeUsedInGlobalProblem=L'istruzione return non può essere utilizzata nel codice di inizializzazione globale.
ReturnCannotBeUsedInPackageProblem=L'istruzione return non può essere utilizzata nel codice di inizializzazione di un pacchetto.
ReturnCannotBeUsedInStaticProblem=L'istruzione return non può essere utilizzata nel codice di inizializzazione statico.
ReturnMustReturnValueProblem=La funzione non restituisce un valore.
ReturnValueMustBeUndefinedProblem=Il valore restituito deve essere undefined.
SemanticProblem=Problema interno durante l'analisi semantica
SetterCannotHaveOptionalProblem=Una definizione setter non può avere parametri opzionali.
SetterMustHaveOneParameterProblem=Una definizione setter deve avere un solo parametro.
SkinPartsMustBePublicProblem=Le parti skin devono essere pubbliche.
StaticAndOverrideProblem=Le funzioni non possono essere sia ${staticStr} che ${overrideStr}.
StaticNamespaceDefinitionProblem=L'attributo static non è consentito nelle definizioni ${namespaceKeyword}.
StaticOutsideClassProblem=L'attributo ${staticStr} può essere utilizzato solo nelle definizioni all'interno di una ${classStr}.
StrictUndefinedMethodProblem=Chiamata a un metodo possibilmente non definito ${methodName} mediante un riferimento con tipo statico ${className}.
SyntaxProblem=Errore di sintassi: '${tokenText}' non è consentito in questo punto
ThisUsedInStaticFunctionProblem=La parola chiave ${thisKeyword} non può essere usata nei metodi statici, bensì soltanto nei metodi di istanza, nelle chiusure di funzioni e nel codice global.
TooFewFunctionParametersProblem=Numero di argomenti non corretto. Ne erano previsti ${nParams}
TooManyFunctionParametersProblem=Numero di argomenti non corretto. Ne erano previsti non più di ${nParams}
UnableToBuildReportProblem=Impossibile generare il rapporto: ${message}
UnableToBuildSWFProblem=Impossibile generare il file SWF ${file}
UnableToBuildSWFTagProblem=Impossibile generare il tag SWF per ${name}
UnableToListFilesProblem=Impossibile elencare il contenuto della directory: @{directory}
UnboundMetadataProblem=Metadati non associati a una definizione
UndefinedConfigNameProblem=Costante di configurazione non definita: '${configName}'
UndefinedConfigNamespaceProblem=Spazio dei nomi di configurazione non definito: '${configName}'
UnexpectedExceptionProblem=Eccezione imprevista '${exceptionName}'.
UnexpectedReturnProblem=L'istruzione return non può essere usata qui.
UnexpectedTokenProblem=Errore di sintassi: previsto ${tokenKind}, ricevuto invece '${tokenText}'
UnfoundPropertyProblem=Accesso alla proprietà non definita ${property}
UnimplementedInterfaceMethodProblem=Il metodo ${methodName} di ${interfStr} in ${namespaceStr} ${namespaceName} non è implementato da ${classStr} ${className}
UnknownBreakTargetProblem=Impossibile trovare la destinazione dell'istruzione break.
UnknownContinueTargetProblem=Impossibile trovare la destinazione dell'istruzione continue.
UnknownInterfaceProblem=${interfaceStr} ${interfaceName} non trovata.
UnknownNamespaceProblem=Spazio dei nomi sconosciuto ${namespaceName}.
UnknownSuperclassProblem=Impossibile trovare la definizione della classe base ${superclassName}.
UnknownTypeProblem=Tipo non trovato o non è una costante della fase di compilazione: ${typeName}.
UnresolvedClassReferenceProblem=Impossibile trovare la definizione ${qname}.
UnresolvedNamespaceProblem=Spazio dei nomi non trovato o non è una costante della fase di compilazione.
UnsupportedSourceFileProblem=Il ${file} è di un tipo non supportato: ${ext}
VarInInterfaceProblem=Le dichiarazioni ${varStr} non sono consentite in ${interfStr}.
VoidTypeProblem=${voidStr} non è un tipo valido.
WrongSkinPartProblem=Il tipo di parte skin '${skinPartTypeName}' deve essere assegnabile a '${hostSkinPartTypeName}'.
