# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

# Copyright 2012 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]"

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

# Contributor(s):

# Portions Copyrighted 2012 Sun Microsystems, Inc.

CONTACTING_ISSUE_TRACKER=\u6b63\u5728\u8054\u7cfb\u95ee\u9898\u8ddf\u8e2a\u5668...
CTL_AddInstance=\u6dfb\u52a0\u670d\u52a1\u5668
CTL_LogoutMenuItem=\u4ece\u56e2\u961f\u670d\u52a1\u5668\u6ce8\u9500
CTL_NewProjectAction=\u65b0\u5efa\u9879\u76ee...
CTL_OpenProjectAction=\u6253\u5f00\u9879\u76ee(&O)...
ERR_NotHttp=\u4ec5 HTTP \u548c HTTPS \u662f\u53d7\u652f\u6301\u7684\u534f\u8bae
ERR_UrlNotValid=\u6b64 URL \u4f3c\u4e4e\u4e0d\u662f\u6709\u6548\u7684
ERR_UrlNotValidHash=\u6b64 URL \u4f3c\u4e4e\u4e0d\u662f\u6709\u6548\u7684 - \u4ee5 '#' \u7ed3\u5c3e
# {0} - error description
ERROR_CONNECTION=<html>\u5c1d\u8bd5\u8fde\u63a5\u5230\u56e2\u961f\u670d\u52a1\u5668\u65f6\u51fa\u9519 - \u65e0\u6cd5\u83b7\u53d6 Kenai \u9879\u76ee\u4fe1\u606f\u3002<br>\u8bf7\u68c0\u67e5 Internet \u8fde\u63a5\u5e76\u9a8c\u8bc1\u56e2\u961f\u9879\u76ee\u662f\u5426\u4ecd\u5b58\u5728\u3002<br><br>\u62a5\u544a\u7684\u9519\u8bef\u4e3a: <b>{0}</b></html>
ERROR_ISSUETRACKER=<html>\u6b64\u9879\u76ee\u6ca1\u6709\u95ee\u9898\u8ddf\u8e2a\u5668\u3002</html>
# {0} - icon url
# {1} - server name
LandingPagePanel.creatingSCMRepository.failed=<p><img src=''{0}''>&nbsp;\u65e0\u6cd5\u521b\u5efa SCM \u8d44\u6e90\u5e93\u3002\u8bf7\u4f7f\u7528 {1} Web \u754c\u9762\u3002</p>
# {0} - project name
# {1} - detailed message
# {2} - server name
LandingPagePanel.messageEditorPane.message=<html>\n<body>\n<p style="margin-top: 20">\n<b>\u5df2\u6210\u529f\u5728 {2} \u4e0a\u521b\u5efa\u9879\u76ee {0}</b></p>\n{1}\n<p>\u8981\u6dfb\u52a0\u6216\u5220\u9664\u529f\u80fd, \u8bf7\u8f6c\u5230 {2}</p>\n<p>\u8981\u5728\u672c\u5730\u8d44\u6e90\u5e93\u4e2d<b>\u521b\u5efa\u65b0\u7684\u6e90\u4ee3\u7801\u9879\u76ee</b> (\u4f8b\u5982 Java, C/C++, PHP \u7b49), \u8bf7\u5355\u51fb\u201c\u521b\u5efa\u65b0\u9879\u76ee\u201d\u6309\u94ae\u3002</p>\n<p>\u8981\u5c06<b>\u73b0\u6709\u6e90\u4ee3\u7801\u9879\u76ee\u5bfc\u5165\u5230</b> {2} \u4e0a\u7684\u8d44\u6e90\u5e93\u4e2d, \u53ea\u9700\u5c06\u5176\u590d\u5236\u5230\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939\u5373\u53ef\u3002</p>\n</body>\n</html>\n
# {0} - local path
LandingPagePanel.messageEditorPane.repoMessage=<p>\u5df2\u5728\u4ee5\u4e0b\u4f4d\u7f6e\u521b\u5efa\u672c\u5730\u8d44\u6e90\u5e93:<br>{0}</p>
LBL_AuthenticationFailed=\u9a8c\u8bc1\u5931\u8d25
LBL_FindIssuesActionName=\u67e5\u627e\u95ee\u9898...
LBL_LoggedIn=\u5df2\u767b\u5f55\u56e2\u961f\u670d\u52a1\u5668
LBL_NewIssuesActionName=\u62a5\u544a\u95ee\u9898...
LBL_Offline_Tooltip=\u672a\u767b\u5f55\u56e2\u961f\u670d\u52a1\u5668
LBL_OpenTeamProjectName=\u6253\u5f00\u5bf9\u5e94\u7684\u56e2\u961f\u670d\u52a1\u5668\u9879\u76ee...
LBL_ProviderDescription=\u652f\u6301\u57fa\u4e8e Oracle Developer Cloud Service \u6280\u672f\u6784\u5efa\u56e2\u961f\u670d\u52a1\u5668\u3002
LBL_ProviderName=Oracle Developer Cloud Service
MSG_OpeningProject=\u6253\u5f00\u56e2\u961f\u9879\u76ee...
MSG_TeamProject=\u56e2\u961f\u9879\u76ee\u7684\u4e00\u90e8\u5206
NameAndLicenseWizardPanelGUI.defaultPrjDesc=\u5c1a\u65e0\u8bf4\u660e\u3002
# Default messages
NameAndLicenseWizardPanelGUI.defaultPrjName=\u6211\u7684\u9879\u76ee
NameAndLicenseWizardPanelGUI.needLogin=\u60a8\u9700\u8981\u767b\u5f55\u5230\u56e2\u961f\u670d\u52a1\u5668\u4ee5\u521b\u5efa\u56e2\u961f\u9879\u76ee\u548c\u8d44\u6e90\u5e93\u3002
NameAndLicenseWizardPanelGUI.prjDescLengthErrMsg=\u9879\u76ee\u8bf4\u660e\u5fc5\u987b\u5c11\u4e8e 500 \u4e2a\u5b57\u7b26\u3002
NameAndLicenseWizardPanelGUI.prjDescRequired=\u9879\u76ee\u8bf4\u660e\u662f\u5fc5\u9700\u7684\u3002
NameAndLicenseWizardPanelGUI.prjNameExistsErrMsg=\u5df2\u5b58\u5728\u540c\u540d\u7684\u9879\u76ee\u3002
NameAndLicenseWizardPanelGUI.prjNameLengthErrMsg=\u9879\u76ee\u540d\u957f\u5ea6\u5fc5\u987b\u4ecb\u4e8e 2 \u4e0e 20 \u4e2a\u5b57\u7b26\u4e4b\u95f4\u3002
NameAndLicenseWizardPanelGUI.prjNameRequired=\u9879\u76ee\u540d\u79f0\u662f\u5fc5\u9700\u7684\u3002
NameAndLicenseWizardPanelGUI.prjTitleLengthErrMsg=\u9879\u76ee\u6807\u9898\u957f\u5ea6\u5fc5\u987b\u4ecb\u4e8e 2 \u4e0e 40 \u4e2a\u5b57\u7b26\u4e4b\u95f4\u3002
NewProject.progress.creatingProject=\u6b63\u5728\u521b\u5efa\u9879\u76ee...
NewProject.progress.creatingSCMRepository=\u6b63\u5728\u521b\u5efa SCM \u8d44\u6e90\u5e93...
# {0} - detailed message
NewProject.progress.projectCreationFailed=\u672a\u80fd\u521b\u5efa\u9879\u76ee: {0}
NewProject.progress.repositoryCheckout=\u6b63\u5728\u521d\u59cb\u5316\u672c\u5730\u8d44\u6e90\u5e93...
NewProjectAction.close=\u5173\u95ed
NewProjectAction.createNewProject=\u521b\u5efa\u65b0\u9879\u76ee...
NewProjectAction.dialogTitle=\u5728 Oracle Developer Cloud Service \u4e0a\u65b0\u5efa\u9879\u76ee
# {0} - server instance name
NewProjectAction.goToKenai=\u8f6c\u5230 {0}
NewProjectWizardIterator.GitRepository=Git \u8d44\u6e90\u5e93
NewProjectWizardIterator.GitSourceCodeRepository=Git \u6e90\u4ee3\u7801\u8d44\u6e90\u5e93
NewProjectWizardIterator.name=\u65b0\u5efa\u56e2\u961f\u9879\u76ee\u5411\u5bfc
NewProjectWizardIterator.NoGitClient=Git \u5ba2\u6237\u673a\u4e0d\u53ef\u7528
OpenIDE-Module-Display-Category=\u56e2\u961f
OpenIDE-Module-Name=ODCS UI
OpenIDE-Module-Short-Description=Oracle Developer Services UI

LoginPanelDetails.forgotPassword.text=\u5fd8\u8bb0\u4e86\u53e3\u4ee4?
LoginPanelDetails.chkRememberMe.toolTipText=\u5728 IDE \u4f1a\u8bdd\u4e4b\u95f4\u8bb0\u4f4f\u53e3\u4ee4\u3002\u4f4e\u5b89\u5168\u6027\u3002
LoginPanelDetails.chkRememberMe.text=\u8bb0\u4f4f\u6211(&R)
LoginPanelDetails.lblPassword.text=\u53e3\u4ee4(&P):
LoginPanelDetails.lblUserName.text=\u7528\u6237\u540d(&U):
OpenProjectDialog.jLabel1.text=\u9879\u76ee ID\uff1a

OpenODCSProjectWindowTitle=\u4ece Oracle Developer Cloud Service \u6253\u5f00\u9879\u76ee
OpenODCSProjectAction.OpenFromODCS=\u4ece\u5f00\u53d1\u4eba\u5458\u670d\u52a1\u5668\u6253\u5f00
OpenODCSProjectAction.Cancel=\u53d6\u6d88

NewProject.progress.repoCreationFailed=\u672a\u80fd\u521b\u5efa\u8d44\u6e90\u5e93:
NewProject.progress.creatingIssues=\u6b63\u5728\u521b\u5efa\u4efb\u52a1\u8d44\u6e90\u5e93...
NewProject.progress.issuesCreationFailed=\u672a\u80fd\u521b\u5efa\u4efb\u52a1\u8d44\u6e90\u5e93:
NewProject.progress.repositoryCommit=\u6b63\u5728\u63d0\u4ea4\u6e90...
NameAndLicenseWizardPanelGUI.panelName=\u540d\u79f0\u548c\u8bb8\u53ef\u8bc1
NameAndLicenseWizardPanelGUI.notLoggedIn=\u672a\u767b\u5f55!
NameAndLicenseWizardPanelGUI.btnPrivacyPublic.TTtext=\u60a8\u7684\u9879\u76ee\u5c06\u662f\u516c\u5171\u7684, \u5e76\u4e14\u5bf9\u6240\u6709\u7528\u6237\u53ef\u89c1
NameAndLicenseWizardPanelGUI.btnPrivacyPrivate.TTtext=\u60a8\u7684\u9879\u76ee\u5c06\u662f\u79c1\u6709\u7684, \u5e76\u4e14\u4ec5\u5bf9\u5176\u6210\u5458\u53ef\u89c1
NameAndLicenseWizardPanelGUI.btnPrivacyOrganizationPrivate.TTtext=\u9879\u76ee\u5c06\u4ec5\u5bf9\u7ec4\u7ec7\u7684\u6210\u5458\u53ef\u89c1

# {0} - name of the ODCS server where a project with a Git repository will be created
SourceAndIssuesWizardPanelGUI.GitOnKenai=Git (\u5728 {0} \u4e0a)
SourceAndIssuesWizardPanelGUI.LocalRepoRequired=\u9700\u8981\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939\u8def\u5f84
SourceAndIssuesWizardPanelGUI.panelName=\u6e90\u4ee3\u7801\u548c\u95ee\u9898
SummaryWizardPanelGUI.jLabel1.text=\u5355\u51fb\u201c\u5b8c\u6210\u201d\u53ef\u5f00\u59cb\u5728\u56e2\u961f\u670d\u52a1\u5668\u4e0a\u5171\u4eab\u9879\u76ee\u3002
SummaryWizardPanelGUI.localRoot.text=\u65b0\u4f4d\u7f6e
SummaryWizardPanelGUI.panelName=\u6982\u8981
SummaryWizardPanelGUI.projectsMoveLabel.text=\u2022 \u9879\u76ee/\u6587\u4ef6\u5939\u5c06\u79fb\u52a8\u5230\u65b0\u4f4d\u7f6e:
SummaryWizardPanelGUI.tobeSharedLabel.text=\u2022 \u4ee5\u4e0b\u9879\u76ee/\u6587\u4ef6\u5c06\u5728\u56e2\u961f\u670d\u52a1\u5668\u4e0a\u5171\u4eab:
SummaryWizardPanelGUI.projectCreatedLabel.text=\u2022 \u9879\u76ee "{0}" \u5c06\u5728\u670d\u52a1\u5668 "{1}" \u4e0a\u521b\u5efa
SummaryWizardPanelGUI.repoLabel.text=\u2022 \u5c06\u4e3a\u9879\u76ee\u6e90\u521b\u5efa\u65b0\u8d44\u6e90\u5e93\u3002
SummaryWizardPanelGUI.commitPrepareLabel.text=<html>\u2022 \u5c06\u9879\u76ee\u7684\u6e90\u51c6\u5907\u597d\u4ee5\u63d0\u4ea4\u5230\u8d44\u6e90\u5e93\u4e2d</html>
SummaryWizardPanelGUI.projectsMoveLabelNoSelection.text=\u2022 \u5c06\u5728\u4ee5\u4e0b\u4f4d\u7f6e\u4e3a\u60a8\u7684\u9879\u76ee\u548c\u6e90\u521b\u5efa\u65b0\u672c\u5730\u8d44\u6e90\u5e93:

SourceAndIssuesWizardPanelGUI.foldersToShareLabel.text=\u6587\u4ef6\u5939\u6216\u9879\u76ee(&O):
SourceAndIssuesWizardPanelGUI.addProjectButton.text=\u6dfb\u52a0\u9879\u76ee(&P)...
SourceAndIssuesWizardPanelGUI.addFolderButton.text=\u6dfb\u52a0\u6587\u4ef6\u5939(&A)...
SourceAndIssuesWizardPanelGUI.removeButton.text=\u5220\u9664(&R)
SourceAndIssuesWizardPanelGUI.addFolderButton.AccessibleContext.accessibleDescription=\u6dfb\u52a0\u6587\u4ef6\u5939
SourceAndIssuesWizardPanelGUI.addProjectButton.AccessibleContext.accessibleDescription=\u6dfb\u52a0\u9879\u76ee
SourceAndIssuesWizardPanelGUI.removeButton.AccessibleContext.accessibleDescription=\u5220\u9664
SourceAndIssuesWizardPanelGUI.addProjectButton.AccessibleContext.accessibleName=\u6dfb\u52a0\u9879\u76ee...
SourceAndIssuesWizardPanelGUI.sourceCodeLabel.AccessibleContext.accessibleDescription=\u6e90\u4ee3\u7801\u8d44\u6e90\u5e93
SourceAndIssuesWizardPanelGUI.repoComboBox.AccessibleContext.accessibleName=\u6e90\u4ee3\u7801\u8d44\u6e90\u5e93
SourceAndIssuesWizardPanelGUI.repoComboBox.AccessibleContext.accessibleDescription= \u6e90\u4ee3\u7801\u8d44\u6e90\u5e93
SourceAndIssuesWizardPanelGUI.localRepoFolderLabel.AccessibleContext.accessibleDescription=\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939
SourceAndIssuesWizardPanelGUI.localFolderTextField.AccessibleContext.accessibleName=\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939
SourceAndIssuesWizardPanelGUI.localFolderTextField.AccessibleContext.accessibleDescription=\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939
SourceAndIssuesWizardPanelGUI.AccessibleContext.accessibleName=\u65b0\u5efa\u56e2\u961f\u9879\u76ee
SourceAndIssuesWizardPanelGUI.AccessibleContext.accessibleDescription=\u65b0\u5efa\u56e2\u961f\u9879\u76ee
SourceAndIssuesWizardPanelGUI.localFolderBrowseButton.AccessibleContext.accessibleDescription=\u6d4f\u89c8\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939
SourceAndIssuesWizardPanelGUI.sourceCodeLabel.text=\u6e90\u4ee3\u7801\u8d44\u6e90\u5e93(&C):
SourceAndIssuesWizardPanelGUI.localRepoFolderLabel.text=\u672c\u5730\u8d44\u6e90\u5e93\u6587\u4ef6\u5939(&D):
SourceAndIssuesWizardPanelGUI.localFolderBrowseButton.text=\u6d4f\u89c8(&W)...





LandingPagePanel.messageEditorPane.AccessibleContext.accessibleName=\u56e2\u961f\u9879\u76ee\u521b\u5efa\u6982\u8981
LandingPagePanel.messageEditorPane.AccessibleContext.accessibleDescription=\u56e2\u961f\u9879\u76ee\u521b\u5efa\u6982\u8981
LandingPagePanel.AccessibleContext.accessibleName=\u5df2\u521b\u5efa\u56e2\u961f\u9879\u76ee
LandingPagePanel.AccessibleContext.accessibleDescription=\u5df2\u521b\u5efa\u56e2\u961f\u9879\u76ee
NameWizardPanelGUI.AccessibleContext.accessibleDescription=\u65b0\u5efa\u56e2\u961f\u9879\u76ee
NameWizardPanelGUI.AccessibleContext.accessibleName=\u65b0\u5efa\u56e2\u961f\u9879\u76ee
NameWizardPanelGUI.proxyConfigButton.AccessibleContext.accessibleDescription=\u4ee3\u7406\u914d\u7f6e
NameWizardPanelGUI.proxyConfigButton.text=\u4ee3\u7406\u914d\u7f6e(&X)...
NameWizardPanelGUI.projectWikiComboBox.AccessibleContext.accessibleDescription=Wiki \u6807\u8bb0\u8bed\u8a00
NameWizardPanelGUI.projectWikiComboBox.AccessibleContext.accessibleName=Wiki \u6807\u8bb0\u8bed\u8a00:
NameWizardPanelGUI.projectDescTextField.AccessibleContext.accessibleDescription=\u9879\u76ee\u8bf4\u660e
NameWizardPanelGUI.projectDescTextField.AccessibleContext.accessibleName=\u9879\u76ee\u8bf4\u660e

NameWizardPanelGUI.projectPrivacyLabel.AccessibleContext.accessibleDescription=\u9879\u76ee\u5b89\u5168\u6027
NameWizardPanelGUI.projectPrivacyLabel.text=\u5b89\u5168\u6027:
NameWizardPanelGUI.btnPrivacyPrivate.text=\u79c1\u6709(&P)
NameWizardPanelGUI.btnPrivacyOrganizationPrivate.text=\u5171\u4eab(&S)
NameWizardPanelGUI.projectWikiLabel.AccessibleContext.accessibleDescription=Wiki \u6807\u8bb0\u8bed\u8a00
NameWizardPanelGUI.projectWikiLabel.text=Wiki \u6807\u8bb0(&W):
NameWizardPanelGUI.projectDescLabel.AccessibleContext.accessibleDescription=\u9879\u76ee\u8bf4\u660e
NameWizardPanelGUI.projectDescLabel.text=\u9879\u76ee\u8bf4\u660e(&D):
NameWizardPanelGUI.projectNameTextField.AccessibleContext.accessibleDescription=\u9879\u76ee\u540d
NameWizardPanelGUI.projectNameTextField.AccessibleContext.accessibleName=\u9879\u76ee\u540d\u79f0

NameWizardPanelGUI.projectNameLabel.AccessibleContext.accessibleDescription=\u9879\u76ee\u540d
NameWizardPanelGUI.projectNameLabel.text=\u9879\u76ee\u540d\u79f0(&N):
NameWizardPanelGUI.loginButton.AccessibleContext.accessibleDescription=\u767b\u5f55\u5230\u56e2\u961f\u670d\u52a1\u5668
NameWizardPanelGUI.loginButton.text=\u767b\u5f55(&G)...
NameWizardPanelGUI.usernameLabel.AccessibleContext.accessibleDescription=\u767b\u5f55
NameWizardPanelGUI.usernameLabel.AccessibleContext.accessibleName=\u767b\u5f55
NameWizardPanelGUI.developerServerLabel.AccessibleContext.accessibleDescription=\u5f00\u53d1\u4eba\u5458\u670d\u52a1\u5668
NameWizardPanelGUI.developerServerLabel.text=\u5f00\u53d1\u4eba\u5458\u670d\u52a1\u5668:
NameWizardPanelGUI.developerServerLabel.AccessibleContext.accessibleName=\u5f00\u53d1\u4eba\u5458\u670d\u52a1\u5668
# {0} - ODCS server name
Utilities.password_keyring_description={0} \u7684\u53e3\u4ee4

