################################################################################
##
##  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.
##
################################################################################
# Developer RTE Section

# AutomationManager

notVisible="{0}" non \u00e8 visibile.
unsupportedValues="{0}" non supporta allAutomationValues.
unsupportedReplay="{0}" non supporta le ripetizioni.
rootApplication=L'elemento principale dell'ID riproducibile ["{0}"] deve rappresentare l'applicazione.
notResolved=Impossibile risolvere elemento secondario per la parte "{0}":"{1}" nell'elemento primario "{2}".
resolvedTo="{0}" risolto in "{1}".
idResolved=ID "{0}" risolto troppo presto.
idNotResolved=Impossibile risolvere ID "{0}"
nullReturned=Elemento secondario null restituito in "{0}" da "{1}" con "{2}" elementi secondari.
matchesMsg="{0}" corrispondenze per il criterio {"{1}"}.
notDefined=Propriet\u00e0 "{0}" non definita in "{1}".
classNotFound=Impossibile trovare classe di automazione "{0}".
methodNotFound=Impossibile trovare il metodo di automazione "{0}" per la classe "{1}".
missingArgument=Manca il valore dell'argomento: "{0}".

# TextFieldAutomationHelper

notReplayable=Impossibile eseguire di nuovo KeyboardEvent con codice chiave "{0}".

# codec/AssetPropertyCodec

notSettable=Non \u00e8 consentito impostare risorse.

# codec/DefaultPropertyCodec

precisionLoss=La propriet\u00e0 "{0}" potrebbe non essere stata convertita con la massima precisione.

# codec/ListDataObjectCodec

notSupported=Impostazione di selectedItem non supportata.

# qtp/QTPAdapter

invisible=Non visibile.
notActiveX=Impossibile caricare il plug-in di Adobe Flex 4 per HP Quick Test Pro. Questo plug-in supporta solo Microsoft Internet Explorer.
notWindows=Impossibile caricare il plug-in di Adobe Flex 4 per HP Quick Test Pro. Questo plug-in non \u00e8 supportato in '{0}'.
noExternalInterface=Impossibile caricare il plug-in di Adobe Flex 4 per HP Quick Test Pro. ExternalInterface non \u00e8 disponibile in questo lettore.
noPlayerID=Impossibile caricare il plug-in di Adobe Flex 4 per HP Quick Test Pro. Non \u00e8 stato specificato l'ID per il lettore nella pagina HTML.
invalidPlayerID=Impossibile caricare il plug-in di Adobe Flex 4 per HP Quick Test Pro. ID lettore non valido '{0}'.
unableToLoadPluginGeneric=Impossibile caricare il plug-in di Adobe Flex 4 per HP Quick Test Pro - '{0}'.
notSynchronized=In attesa del completamento dell'operazione precedente.

# qtp/QTPEnvironment

autClassNotFound=Impossibile trovare AutomationClass per "{0}" "{1}".



# Licence handler messages 
recordLimitReached=Licenza non presente. Con la versione di prova \u00e8 possibile utilizzare solo un numero limitato di record.
replayLimitReached=Licenza non presente. Con la versione di prova \u00e8 possibile eseguire solo un numero limitato di ripetizioni.
