################################################################################
##
##  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}' \u3092\u8868\u793a\u3067\u304d\u307e\u305b\u3093\u3002
unsupportedValues='{0}' \u306f allAutomationValues \u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002
unsupportedReplay='{0}' \u306f\u7e70\u308a\u8fd4\u3057\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002
rootApplication=\u8907\u88fd\u53ef\u80fd id ['{0}'] \u306e\u30eb\u30fc\u30c8\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
notResolved=\u30d1\u30fc\u30c4 '{0}' \u306e\u5b50\u3092\u89e3\u6c7a\u3067\u304d\u307e\u305b\u3093 : \u89aa '{2}' \u5185\u306e '{1}'\u3002
resolvedTo='{0}' \u306f '{1}' \u306b\u89e3\u6c7a\u3055\u308c\u307e\u3057\u305f\u3002
idResolved='{0}' id \u306e\u89e3\u6c7a\u304c\u65e9\u3059\u304e\u307e\u3059\u3002
idNotResolved=id '{0}' \u3092\u89e3\u6c7a\u3067\u304d\u307e\u305b\u3093\u3002
nullReturned=null \u306e\u5b50\u304c '{0}' \u3067 '{1}' \u306b\u3088\u3063\u3066 '{2}' \u306e\u5b50\u3068\u5171\u306b\u8fd4\u3055\u308c\u307e\u3057\u305f\u3002
matchesMsg='{0}' \u304c\u57fa\u6e96 {'{1}'} \u306b\u4e00\u81f4\u3057\u307e\u3059\u3002
notDefined=\u30d7\u30ed\u30d1\u30c6\u30a3 '{0}' \u304c '{1}' \u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
classNotFound=\u30aa\u30fc\u30c8\u30e1\u30fc\u30b7\u30e7\u30f3\u30af\u30e9\u30b9 '{0}' \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
methodNotFound=\u30af\u30e9\u30b9 '{1}' \u306e\u30aa\u30fc\u30c8\u30e1\u30fc\u30b7\u30e7\u30f3\u30e1\u30bd\u30c3\u30c9 '{0}' \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
missingArgument=\u5f15\u6570\u5024\u304c\u3042\u308a\u307e\u305b\u3093 : '{0}'\u3002

# TextFieldAutomationHelper

notReplayable=\u30ad\u30fc\u30b3\u30fc\u30c9 '{0}' \u3067 KeyboardEvent \u3092\u7e70\u308a\u8fd4\u305b\u307e\u305b\u3093\u3002

# codec/AssetPropertyCodec

notSettable=\u30a2\u30bb\u30c3\u30c8\u306f\u8a2d\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002

# codec/DefaultPropertyCodec

precisionLoss=\u30d7\u30ed\u30d1\u30c6\u30a3 '{0}' \u306e\u5909\u63db\u3067\u7cbe\u5ea6\u306e\u640d\u5931\u306e\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002

# codec/ListDataObjectCodec

notSupported=selectedItem \u306e\u8a2d\u5b9a\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002

# qtp/QTPAdapter

invisible=\u8868\u793a\u3067\u304d\u307e\u305b\u3093\u3002
notActiveX=HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u306e\u306f\u3001Microsoft Internet Explorer \u306e\u307f\u3067\u3059\u3002
notWindows=HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u306f "{0}" \u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
noExternalInterface=HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002ExternalInterface \u306f\u3001\u3053\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u3067\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002
noPlayerID=HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002html \u30da\u30fc\u30b8\u3067\u30d7\u30ec\u30fc\u30e4\u30fc\u306b\u5bfe\u3057\u3066 ID \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
invalidPlayerID=HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3002\u30d7\u30ec\u30fc\u30e4\u30fc ID "{0}" \u306f\u7121\u52b9\u3067\u3059\u3002
unableToLoadPluginGeneric=HP Quick Test Pro \u306e Adobe Flex 4 \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093 - "{0}"\u3002
notSynchronized=\u524d\u306e\u51e6\u7406\u304c\u5b8c\u4e86\u3059\u308b\u306e\u3092\u5f85\u3063\u3066\u3044\u307e\u3059\u3002

# qtp/QTPEnvironment

autClassNotFound='{0}' '{1}' \u306e AutomationClass \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002



# Licence handler messages 
recordLimitReached=\u30e9\u30a4\u30bb\u30f3\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\u8a66\u7528\u7248\u3067\u306f\u3001\u30ec\u30b3\u30fc\u30c9\u6570\u306f\u5236\u9650\u3055\u308c\u307e\u3059\u3002
replayLimitReached=\u30e9\u30a4\u30bb\u30f3\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\u8a66\u7528\u7248\u3067\u306f\u3001\u7e70\u308a\u8fd4\u3057\u6570\u306f\u5236\u9650\u3055\u308c\u307e\u3059\u3002
