#
# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# This file stores localized messages for the Xerces XPointer implementation.
#
# The messages are arranged in key and value tuples in a ListResourceBundle.
#
# @version $Id: XPointerMessages_ja.properties /st_wptg_1.8.0.0.0jdk/2 2013/05/28 01:05:12 gmolloy Exp $

# Messages for message reporting
BadMessageKey = \u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30AD\u30FC\u306B\u5BFE\u5FDC\u3059\u308B\u30A8\u30E9\u30FC\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
FormatFailed = \u6B21\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u66F8\u5F0F\u8A2D\u5B9A\u4E2D\u306B\u5185\u90E8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F:\n  

# XPointer Framework Error Messages
XPointerProcessingError = XPointerProcessingError: XPointer\u5F0F\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
InvalidXPointerToken = InvalidXPointerToken: XPointer\u5F0F\u306B\u7121\u52B9\u306A\u30C8\u30FC\u30AF\u30F3''{0}''\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
InvalidXPointerExpression = InvalidXPointerExpression: XPointer\u5F0F''{0}''\u304C\u7121\u52B9\u3067\u3059\u3002
MultipleShortHandPointers = MultipleShortHandPointers: XPointer\u5F0F''{0}''\u304C\u7121\u52B9\u3067\u3059\u3002\u8907\u6570\u306EShortHand\u30DD\u30A4\u30F3\u30BF\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 
SchemeDataNotFollowedByCloseParenthesis = SchemeDataNotFollowedByCloseParenthesis: XPointer\u5F0F''{0}''\u304C\u7121\u52B9\u3067\u3059\u3002SchemeData\u306E\u5F8C\u306B'')''\u6587\u5B57\u304C\u3042\u308A\u307E\u305B\u3093\u3002 
SchemeUnsupported = SchemeUnsupported: XPointer\u30B9\u30AD\u30FC\u30E0''{0}''\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
InvalidShortHandPointer = InvalidShortHandPointer: ShortHand\u30DD\u30A4\u30F3\u30BF''{0}''\u306ENCName\u304C\u7121\u52B9\u3067\u3059\u3002
UnbalancedParenthesisInXPointerExpression = UnbalancedParenthesisInXPointerExpression: XPointer\u5F0F''{0}''\u304C\u7121\u52B9\u3067\u3059\u3002\u5DE6\u4E38\u30AB\u30C3\u30B3''{1}''\u306E\u6570\u304C\u53F3\u4E38\u30AB\u30C3\u30B3''{2}''\u306E\u6570\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002
InvalidSchemeDataInXPointer = InvalidSchemeDataInXPointer: XPointer\u5F0F''{0}''\u306B\u7121\u52B9\u306ASchemeData\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002

# XPointer Element Scheme Error Messages
InvalidElementSchemeToken = InvalidElementSchemeToken: element() Scheme XPointer\u5F0F\u306B\u7121\u52B9\u306A\u30C8\u30FC\u30AF\u30F3''{0}''\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002
InvalidElementSchemeXPointer = InvalidElementSchemeXPointer: Element Scheme XPointer\u5F0F''{0}''\u304C\u7121\u52B9\u3067\u3059\u3002
XPointerElementSchemeProcessingError = XPointerElementSchemeProcessingError: XPointer element() Scheme\u5F0F\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
InvalidNCNameInElementSchemeData = InvalidNCNameInElementSchemeData: element() Scheme\u306B\u7121\u52B9\u306ANCName\u3092\u6301\u3064ShortHand\u30DD\u30A4\u30F3\u30BF''{0}''\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002
InvalidChildSequenceCharacter = InvalidChildSequenceCharacter: element() Scheme\u306B\u7121\u52B9\u306A\u5B50\u30B7\u30FC\u30B1\u30F3\u30B9\u6587\u5B57''{0}''\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 
