################################################################################
##
##  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=\u201e{0}\u201c ist nicht sichtbar.
unsupportedValues=\u201e{0}\u201c unterst\u00fctzt nicht allAutomationValues.
unsupportedReplay=\u201e{0}\u201c unterst\u00fctzt die Wiedergabe nicht.
rootApplication=Der Stamm der reproduzierbaren ID [\u201e{0}\u201c] wird als Anwendung erwartet.
notResolved=Untergeordnetes Element f\u00fcr das Element \u201e{0}\u201c:\u201e{1}\u201c im \u00fcbergeordneten Element \u201e{2}\u201c kann nicht aufgel\u00f6st werden.
resolvedTo=\u201e{0}\u201c wurde in \u201e{1}\u201c aufgel\u00f6st.
idResolved=\u201e{0}\u201c ID wurde vorzeitig aufgel\u00f6st.
idNotResolved=Die ID \u201e{0}\u201c konnte nicht aufgel\u00f6st werden.
nullReturned=\u201eNull child\u201c zur\u00fcckgegeben bei \u201e{0}\u201c von \u201e{1}\u201c mit \u201e{2}\u201c untergeordneten Elementen.
matchesMsg=\u201e{0}\u201c \u00dcbereinstimmungen f\u00fcr das Kriterium {\u201e{1}\u201c}.
notDefined=Die Eigenschaft \u201e{0}\u201c ist in \u201e{1}\u201c nicht definiert.
classNotFound=Die Automatisierungsklasse \u201e{0}\u201c wurde nicht gefunden.
methodNotFound=Die Automatisierungsmethode \u201e{0}\u201c f\u00fcr die Klasse \u201e{1}\u201c wurde nicht gefunden.
missingArgument=Argumentwert fehlt: \u201e{0}\u201c.

# TextFieldAutomationHelper

notReplayable=KeyboardEvent mit Tastencode \u201e{0}\u201c kann nicht wiedergegeben werden.

# codec/AssetPropertyCodec

notSettable=Sie k\u00f6nnen kein Element festlegen.

# codec/DefaultPropertyCodec

precisionLoss=M\u00f6glicher Genauigkeitsverlust beim Konvertieren der Eigenschaft \u201e{0}\u201c.

# codec/ListDataObjectCodec

notSupported=Die Festlegung von selectedItem wird nicht unterst\u00fctzt.

# qtp/QTPAdapter

invisible=Nicht sichtbar.
notActiveX=Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro konnte nicht geladen werden. Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro unterst\u00fctzt nur Microsoft I\nnternet Explorer.\n
notWindows=Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro konnte nicht geladen werden. Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro wird von \u201e{0}\u201c nicht unterst\u00fctzt.
noExternalInterface=Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro konnte nicht geladen werden. ExternalInterface ist auf diesem Player nicht verf\u00fcgbar.
noPlayerID=Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro konnte nicht geladen werden. Auf der HTML-Seite wurde keine Player-ID angegeben.
invalidPlayerID=Das Adobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro konnte nicht geladen werden. Ung\u00fcltige Player-ID \u201e{0}\u201c.
unableToLoadPluginGeneric=Das Addobe Flex 4 Plug-in f\u00fcr HP Quick Test Pro konnte nicht geladen werden: \u201e{0}\u201c.
notSynchronized=Es wird gewartet, bis der vorherige Vorgang abgeschlossen ist.

# qtp/QTPEnvironment

autClassNotFound=AutomationClass f\u00fcr \u201e{0}\u201c \u201e{1}\u201c wurde nicht gefunden.



# Licence handler messages 
recordLimitReached=Es ist keine Lizenz vorhanden. Mit der Testversion ist nur eine begrenzte Anzahl von Datens\u00e4tzen zul\u00e4ssig.
replayLimitReached=Es ist keine Lizenz vorhanden. Mit der Testversion ist nur eine begrenzte Anzahl von Wiedergaben zul\u00e4ssig.
