# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
#
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
# Other names may be trademarks of their respective owners.
#
# The contents of this file are subject to the terms of either the GNU
# General Public License Version 2 only ("GPL") or the Common
# Development and Distribution License("CDDL") (collectively, the
# "License"). You may not use this file except in compliance with the
# License. You can obtain a copy of the License at
# http://www.netbeans.org/cddl-gplv2.html
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
# specific language governing permissions and limitations under the
# License.  When distributing the software, include this License Header
# Notice in each file and include the License file at
# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the GPL Version 2 section of the License file that
# accompanied this code. If applicable, add the following below the
# License Header, with the fields enclosed by brackets [] replaced by
# your own identifying information:
# "Portions Copyrighted [year] [name of copyright owner]"
#
# Contributor(s):
#
# The Original Software is NetBeans. The Initial Developer of the Original
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
# Microsystems, Inc. All Rights Reserved.
#
# If you wish your version of this file to be governed by only the CDDL
# or only the GPL Version 2, indicate your decision by adding
# "[Contributor] elects to include this software in this distribution
# under the [CDDL or GPL Version 2] license." If you do not indicate a
# single choice of license, a recipient has the option to distribute
# your version of this file under either the CDDL, the GPL Version 2 or
# to extend the choice of license to its licensees as provided above.
# However, if you add GPL Version 2 code and therefore, elected the GPL
# Version 2 license, then the option applies only if the new code is
# made subject to such option by the copyright holder.


CTL_SourceTabCaption=\u30bd\u30fc\u30b9
# DDDataLoader
LBL_loaderName=Web\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30fb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf\u30fb\u30aa\u30d6\u30b8\u30a7\u30af\u30c8

# dtd property (document type)
PROP_documentDTD=\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u4ed5\u69d8\u306e\u30d0\u30fc\u30b8\u30e7\u30f3
HINT_documentDTD=Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30fb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf\u306e\u30d0\u30fc\u30b8\u30e7\u30f3
LAB_servletAPIUnknown=\u8a8d\u8b58\u3067\u304d\u306a\u3044\u30d0\u30fc\u30b8\u30e7\u30f3
LAB_saveButton=\u4fdd\u5b58

ACS_saveButtonA11yDesc=\u66f4\u65b0\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3002
LAB_discardButton=\u7834\u68c4

ACS_discardButtonA11yDesc=\u5909\u66f4\u3092\u7834\u68c4\u3002




#Message on DD node with line number for invalid web.xml file
TXT_errorOnLine=DD:\u7b2c{0}\u884c\u306e\u30a8\u30e9\u30fc

# DDChangesPanel and related code in DDDatabject
LAB_ConfirmDialog=\u5909\u66f4\u5185\u5bb9\u3092\u78ba\u8a8d
MSG_SynchronizeCaption=\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306e\u5909\u66f4\u5185\u5bb9\u3092\u53cd\u6620\u3059\u308b\u305f\u3081\u306b{0}\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30fb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf\u306b\u63a8\u5968\u3055\u308c\u308b\u5909\u66f4\u3002

LAB_processButton=\u51e6\u7406

LAB_processAllButton=\u3059\u3079\u3066\u3092\u51e6\u7406

LAB_closeButton=\u9589\u3058\u308b

LAB_ChangesList=\u5909\u66f4\u30ea\u30b9\u30c8

HINT_ChangesList=\u898b\u3064\u304b\u3063\u305f\u540c\u671f\u5909\u66f4\u306e\u30ea\u30b9\u30c8\u3002

LAB_addServletElement=\u30af\u30e9\u30b9{0}\u306b\u65b0\u898f\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u304a\u3088\u3073\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30fb\u30de\u30c3\u30d4\u30f3\u30b0\u8981\u7d20\u3092\u4f5c\u6210\u3002
LAB_changeServletElement=\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u8981\u7d20\u306e\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30fb\u30af\u30e9\u30b9\u3092\u30af\u30e9\u30b9{0}\u304b\u3089\u30af\u30e9\u30b9{1}\u306b\u66f4\u65b0\u3002
LAB_deleteServletElement=\u30af\u30e9\u30b9{0}\u306e\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u304a\u3088\u3073\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30fb\u30de\u30c3\u30d4\u30f3\u30b0\u8981\u7d20\u3092\u524a\u9664\u3002
LAB_moveServletElement=\u30af\u30e9\u30b9{0}\u306e\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u304a\u3088\u3073\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30fb\u30de\u30c3\u30d4\u30f3\u30b0\u8981\u7d20\u3092{1}\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u8a18\u8ff0\u5b50\u304b\u3089\u79fb\u52d5\u3002

ACS_ChangesListA11yDesc=\u898b\u3064\u304b\u3063\u305f\u540c\u671f\u5909\u66f4\u306e\u30ea\u30b9\u30c8\u3002
ACS_processButtonA11yDesc=\u9078\u629e\u3057\u305f\u5909\u66f4\u3092\u51e6\u7406\u3002
ACS_processAllButtonA11yDesc=\u3059\u3079\u3066\u306e\u5909\u66f4\u3092\u51e6\u7406\u3002
ACS_closeButtonA11yDesc=\u3053\u306e\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u9589\u3058\u308b\u3002
ACS_ChangesListA11yPanelDesc=Web\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u5909\u66f4\u304c\u767a\u751f\u3057\u305f\u305f\u3081\u3001\u3053\u306e\u78ba\u8a8d\u30c0\u30a4\u30a2\u30ed\u30b0\u30fb\u30dc\u30c3\u30af\u30b9\u306f\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30fb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf\u3078\u306e\u63a8\u5968\u3055\u308c\u308b\u5909\u66f4\u3092\u30ea\u30b9\u30c8\u3057\u307e\u3059\u3002\u884c\u3046\u5909\u66f4\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002

LAB_changeFilterElement=<filter>\u8981\u7d20\u306e<filter-class>\u306e\u5185\u5bb9\u3092\u5024"{0}"\u304b\u3089\u5024"{1}"\u306b\u66f4\u65b0\u3002
LAB_changeListenerElement=<listener>\u8981\u7d20\u306e<listener-class>\u306e\u5185\u5bb9\u3092\u5024"{0}"\u304b\u3089\u5024"{1}"\u306b\u66f4\u65b0\u3002
LAB_deleteFilterElement=<filter-class>="{0}"\u306e<filter>\u3068<filter-mapping>\u8981\u7d20\u3092\u524a\u9664\u3002
LAB_deleteListenerElement=<listener-class>="{0}"\u306e<listener>\u8981\u7d20\u3092\u524a\u9664\u3002
LAB_changeJspElement=<servlet>\u8981\u7d20\u306e<jsp-file>\u306e\u5185\u5bb9\u3092\u5024"{0}"\u304b\u3089\u5024"{1}"\u306b\u66f4\u65b0\u3002
LAB_deleteJspElement=<jsp-file>="{0}"\u306e<servlet>\u3068<servlet-mapping>\u8981\u7d20\u3092\u524a\u9664\u3002

HINT_web_dd=Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30fb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf
HINT_web_fragment_dd=Web\u30d5\u30e9\u30b0\u30e1\u30f3\u30c8\u30fb\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30fb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf

