# 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.

OpenIDE-Module-Display-Category=Ruby
OpenIDE-Module-Name=Ruby Java \u96c6\u6210
OpenIDE-Module-Short-Description=\u652f\u6301\u4f7f\u7528 JRuby \u5728 Ruby \u9879\u76ee\u4e2d\u8bbf\u95ee Java \u5e93
OpenIDE-Module-Long-Description=\u652f\u6301\u4f7f\u7528 JRuby \u5728 Ruby \u9879\u76ee\u4e2d\u8bbf\u95ee Java \u5e93
LBL_Config_Java=Java

# CustomizerDialog
LBL_Customizer_Title=\u9879\u76ee\u5c5e\u6027 - {0}
LBL_CustomizeGeneral_Platform_JLabel=&Java \u5e73\u53f0\uff1a
LBL_CustomizeGeneral_Platform_JButton=\u7ba1\u7406\u5e73\u53f0(&M)...
MSG_ProjectArtifactFormat={0} - {1}

#Dialog for adding JARS
LBL_AddJar_DialogTitle=\u6dfb\u52a0 JAR/\u6587\u4ef6\u5939
LBL_ZipJarFolderFilter=\u7c7b\u8def\u5f84\u6761\u76ee\uff08\u6587\u4ef6\u5939\u3001ZIP \u6216 JAR \u6587\u4ef6\uff09

#Known classpath display names
LBL_JavacClasspath_DisplayName=\u7528\u4e8e\u7f16\u8bd1\u6e90\u4ee3\u7801\u7684\u7c7b\u8def\u5f84
LBL_JavacTestClasspath_DisplayName=\u7528\u4e8e\u7f16\u8bd1\u6d4b\u8bd5\u7684\u7c7b\u8def\u5f84
LBL_RunClasspath_DisplayName=\u7528\u4e8e\u8fd0\u884c\u9879\u76ee\u7684\u7c7b\u8def\u5f84
LBL_RunTestClasspath_DisplayName=\u7528\u4e8e\u8fd0\u884c\u6d4b\u8bd5\u7684\u7c7b\u8def\u5f84
LBL_BuildClassesDir_DisplayName=\u7f16\u8bd1\u7684\u6e90
LBL_BuildTestClassesDir_DisplayName=\u7f16\u8bd1\u7684\u6d4b\u8bd5
LBL_CustomizeCompile_Classpath_AddLibrary=\u6dfb\u52a0\u5e93
LBL_AddLibrary=\u6dfb\u52a0\u5e93

# VisualClassPathItem
LBL_MISSING_LIBRARY=\u7f3a\u5c11\u5e93\uff1a{0}
LBL_MISSING_PROJECT=\u7f3a\u5c11\u9879\u76ee\uff1a{0}
LBL_MISSING_FILE=\u4e2d\u65ad\u7684\u5f15\u7528\uff1a{0}
ACSD_CustomizerGeneral_jLabelTarget=N/A
ACSD_CustomizerGeneral_jButton1=\u6253\u5f00 Java \u5e73\u53f0\u7ba1\u7406\u5668\u3002
ACSD_CustomizerLibraries_jLabelClasspathC=\u5217\u51fa\u7528\u4e8e\u7f16\u8bd1\u6e90\u4ee3\u7801\u7684\u7c7b\u8def\u5f84\u4e0a\u7684\u6240\u6709\u9879\u3002
ACSD_CustomizerLibraries_jButtonAddArtifact=\u6253\u5f00\u9879\u76ee\u9009\u62e9\u5668\uff0c\u60a8\u53ef\u4ee5\u4ece\u4e2d\u5c06\u9879\u76ee\u6dfb\u52a0\u5230\u7c7b\u8def\u5f84\u4e2d\u3002
ACSD_CustomizerLibraries_jButtonAddLibrary=\u6253\u5f00\u201c\u6dfb\u52a0\u5e93\u201d\u5bf9\u8bdd\u6846
ACSD_CustomizerLibraries_jButtonAddJar=\u6253\u5f00 JAR \u6587\u4ef6\u9009\u62e9\u5668\uff0c\u60a8\u53ef\u4ee5\u4ece\u4e2d\u5c06 JAR \u6587\u4ef6\u6dfb\u52a0\u5230\u7c7b\u8def\u5f84\u3002
ACSD_CustomizerLibraries_jButtonRemove=\u4ece\u7c7b\u8def\u5f84\u4e2d\u5220\u9664\u9009\u5b9a\u9879\u3002
ACSD_CustomizerLibraries_jButtonMoveUp=\u5728\u7c7b\u8def\u5f84\u9879\u5217\u8868\u4e2d\u5411\u524d\u79fb\u52a8\u9009\u5b9a\u9879\u3002
ACSD_CustomizerLibraries_jButtonMoveDown=\u5728\u7c7b\u8def\u5f84\u9879\u5217\u8868\u4e2d\u5411\u540e\u79fb\u52a8\u9009\u5b9a\u9879\u3002
AD_AddLibrary=N/A
LBL_CustomizeLibraries_LibrariesTab=JRuby \u7c7b\u8def\u5f84
LBL_CustomizeLibraries_AddProject_JButton=\u6dfb\u52a0\u9879\u76ee(&P)...
LBL_CustomizeLibraries_AddLibary_JButton=\u6dfb\u52a0\u5e93(&L)...
LBL_CustomizeLibraries_AddJar_JButton=\u6dfb\u52a0 JAR/\u6587\u4ef6\u5939(&F)
LBL_CustomizeLibraries_Edit_JButton=\u7f16\u8f91(&E)
LBL_CustomizeLibraries_Remove_JButton=\u5220\u9664(&R)
LBL_CustomizeLibraries_MoveUp_JButton=\u4e0a\u79fb(&U)
LBL_CustomizeLibraries_MoveDown_JButton=\u4e0b\u79fb(&D)
LBL_CustomizeLibraries_LibrariesC_JLabel=\u8fd0\u884c\u65f6\u5e93(&T)\uff1a
LBL_CustomizeLibraries_Build_Subprojects=\u4f9d\u636e\u7c7b\u8def\u5f84\u751f\u6210\u9879\u76ee(&B)
ACSD_CustomizerLibraries_JTabbedPane=N/A
ACSN_CustomizerLibraries_JTabbedPane=N/A
AN_CustomizerLibraries_jListClasspathC=N/A
AD_CheckBoxBuildSubprojects=N/A

IncludeJava=\u5305\u542b Java\uff08\u9700\u8981\u91cd\u65b0\u542f\u52a8\uff09(&I)
IncludeJavaTip=\u5982\u679c\u9009\u62e9\u8be5\u9009\u9879\uff0c\u5219\u4ee3\u7801\u5b8c\u6210\u3001\u8f6c\u81f3\u58f0\u660e\u7b49\u90fd\u4f1a\u5c06 Java \u7c7b\u548c Ruby \u5305\u542b\u5728 Java \u96c6\u6210 API \u4e2d\u3002

