#
# 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 error messages for the Xerces XML
# serializer.  Many DOM Load/Save error messages also 
# live here, since the serializer largely implements that package.
#
# As usual with properties files, the messages are arranged in
# key/value tuples.
# 
# @version $Id: XMLSerializerMessages_zh_TW.properties /st_wptg_1.8.0.0.0jdk/2 2013/05/27 00:30:48 gmolloy Exp $

    BadMessageKey = \u627E\u4E0D\u5230\u5C0D\u61C9\u8A0A\u606F\u7D22\u5F15\u9375\u7684\u932F\u8AA4\u8A0A\u606F\u3002
    FormatFailed = \u683C\u5F0F\u5316\u4E0B\u5217\u8A0A\u606F\u6642\u767C\u751F\u5167\u90E8\u932F\u8AA4:\n

    ArgumentIsNull = \u5F15\u6578 ''{0}'' \u70BA\u7A7A\u503C\u3002
    NoWriterSupplied = \u672A\u63D0\u4F9B\u5BEB\u5165\u5668\u7D66\u5E8F\u5217\u5316\u7A0B\u5F0F\u3002
    MethodNotSupported = \u6B64\u8655\u7406\u7AD9\u4E0D\u652F\u63F4\u65B9\u6CD5 ''{0}''\u3002
    ResetInMiddle = \u5728\u5E8F\u5217\u5316\u671F\u9593\u53EF\u80FD\u7121\u6CD5\u91CD\u8A2D\u5E8F\u5217\u5316\u7A0B\u5F0F\u3002
    Internal = \u5167\u90E8\u932F\u8AA4: \u5143\u7D20\u72C0\u614B\u70BA\u96F6\u3002
    NoName = \u6C92\u6709 rawName \u4E14 localName \u70BA\u7A7A\u503C\u3002
    ElementQName = \u5143\u7D20\u540D\u7A31 ''{0}'' \u4E0D\u662F QName\u3002
    ElementPrefix = \u5143\u7D20 ''{0}'' \u4E0D\u5C6C\u65BC\u4EFB\u4F55\u547D\u540D\u7A7A\u9593: \u53EF\u80FD\u672A\u5BA3\u544A\u524D\u7F6E\u78BC\u6216\u524D\u7F6E\u78BC\u9023\u7D50\u5176\u4ED6\u547D\u540D\u7A7A\u9593\u3002
    AttributeQName = \u5C6C\u6027\u540D\u7A31 ''{0}'' \u4E0D\u662F QName\u3002
    AttributePrefix = \u5C6C\u6027 ''{0}'' \u4E0D\u5C6C\u65BC\u4EFB\u4F55\u547D\u540D\u7A7A\u9593: \u53EF\u80FD\u672A\u5BA3\u544A\u524D\u7F6E\u78BC\u6216\u524D\u7F6E\u78BC\u9023\u7D50\u5176\u4ED6\u547D\u540D\u7A7A\u9593\u3002
    InvalidNSDecl = \u547D\u540D\u7A7A\u9593\u5BA3\u544A\u8A9E\u6CD5\u4E0D\u6B63\u78BA: {0}\u3002
    EndingCDATA = \u5B57\u5143\u9806\u5E8F "]]>" \u4E0D\u53EF\u51FA\u73FE\u5728\u5167\u5BB9\u4E2D\uFF0C\u9664\u975E\u7528\u65BC\u6A19\u793A CDATA \u6BB5\u843D\u7684\u7D50\u5C3E\u3002
    SplittingCDATA = \u5206\u5272\u5305\u542B CDATA \u6BB5\u843D\u7D42\u6B62\u6A19\u8A18 "]]>" \u7684 CDATA \u6BB5\u843D\u3002
    ResourceNotFound = \u627E\u4E0D\u5230\u8CC7\u6E90 ''{0}''\u3002
    ResourceNotLoaded = \u7121\u6CD5\u8F09\u5165\u8CC7\u6E90 ''{0}''\u3002{1}
    SerializationStopped =  \u4F9D\u7167\u4F7F\u7528\u8005\u8981\u6C42\u505C\u6B62\u5E8F\u5217\u5316\u3002

    # DOM Level 3 load and save messages
    no-output-specified = no-output-specified: \u8981\u5BEB\u5165\u8CC7\u6599\u7684\u8F38\u51FA\u76EE\u7684\u5730\u70BA\u7A7A\u503C\u3002
    unsupported-encoding = unsupported-encoding: \u51FA\u73FE\u4E0D\u652F\u63F4\u7684\u7DE8\u78BC\u3002
    unable-to-serialize-node = unable-to-serialize-node: \u7BC0\u9EDE\u7121\u6CD5\u5E8F\u5217\u5316\u3002
