################################################################################
##
##  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}' ei n\u00e4kyviss\u00e4.
unsupportedValues='{0}' ei tue kaikkia automatisointiarvoja.
unsupportedReplay='{0}' ei tue toistoa.
rootApplication=Kopioitavan tunnuksen ['{0}'] juuren oletetaan olevan sovellus.
notResolved=Osan '{0}':'{1}' aliosaa ei voitu ratkaista yl\u00e4osassa '{2}'.
resolvedTo='{0}' ratkaistu kohteeseen '{1}'.
idResolved=Tunnus '{0}' ratkaistiin ennenaikaisesti.
idNotResolved=Tunnusta '{0}' ei voi ratkaista.
nullReturned='{1}' palautti null aliosaa kohteessa '{0}' '{2}' aliosan kanssa.
matchesMsg='{0}' vastinetta ehdolle {'{1}'}.
notDefined=Ominaisuutta '{0}' ei ole m\u00e4\u00e4ritetty kohteessa '{1}'.
classNotFound=Automatisointiluokkaa '{0}' ei l\u00f6ydy.
methodNotFound=Automatisointimenetelm\u00e4\u00e4 '{0}' ei l\u00f6ydy luokalle '{1}'.
missingArgument=Puuttuva argumenttiarvo: '{0}'.

# TextFieldAutomationHelper

notReplayable=Kohdetta KeyboardEvent ei voi toistaa avainkoodilla '{0}'.

# codec/AssetPropertyCodec

notSettable=Et voi m\u00e4\u00e4ritt\u00e4\u00e4 resurssia.

# codec/DefaultPropertyCodec

precisionLoss=Tarkkuus on mahdollisesti k\u00e4rsinyt ominaisuuden '{0}' muuntamisessa.

# codec/ListDataObjectCodec

notSupported=Valitun kohteen m\u00e4\u00e4ritt\u00e4mist\u00e4 ei tueta.

# qtp/QTPAdapter

invisible=Ei n\u00e4kyviss\u00e4.
notActiveX=Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle ei voitu ladata. Vain Microsoft Internet Explorer tukee Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle.
notWindows=Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle ei voitu ladata. '{0}' ei tue Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle.
noExternalInterface=Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle ei voitu ladata. ExternalInterface ei ole k\u00e4ytett\u00e4viss\u00e4 t\u00e4ss\u00e4 soittimessa.
noPlayerID=Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle ei voitu ladata. Soittimelle ei ole m\u00e4\u00e4ritetty tunnusta html-sivulla.
invalidPlayerID=Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle ei voitu ladata. Virheellinen soittimen tunnus '{0}'.
unableToLoadPluginGeneric=Adobe Flex 4 -plug-ini\u00e4 HP Quick Test Prolle ei voitu ladata - '{0}'.
notSynchronized=Odotetaan edellisen toiminnon suorittamista loppuun.

# qtp/QTPEnvironment

autClassNotFound=Kohdetta AutomationClass ei l\u00f6ydy kohteelle '{0}' '{1}'.



# Licence handler messages 
recordLimitReached=Ei k\u00e4ytt\u00f6oikeutta. Kokeiluversiossa sallitaan vain rajoitettu m\u00e4\u00e4r\u00e4 tallenteita.
replayLimitReached=Ei k\u00e4ytt\u00f6oikeutta. Kokeiluversiossa sallitaan vain rajoitettu m\u00e4\u00e4r\u00e4 toistoja.
