# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

OpenIDE-Module-Name=\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u306e\u30b5\u30dd\u30fc\u30c8\u30fb\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3

StringSelector.promptLabel.text=\u30d7\u30ed\u30f3\u30d7\u30c8
ACSD_StringSelectorDialog = \u30e1\u30c3\u30bb\u30fc\u30b8\u4e00\u89a7\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9078\u629e\u3057\u307e\u3059
ACSD_StringSelectorMessages = \u6700\u8fd1\u306e\u30b3\u30df\u30c3\u30c8\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8
ACSN_StringSelectorMessages = \u6700\u8fd1\u306e\u30b3\u30df\u30c3\u30c8\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8

MSG_ActionContext_MultipleProjects = {0}\u500b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8
MSG_ActionContext_MultipleFiles = {0}\u500b\u306e\u30d5\u30a1\u30a4\u30eb

CTL_MenuItem_OpenVersioningOutput = \u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u306e\u51fa\u529b(&V)
CTL_VersioningOutput_Title = \u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u306e\u51fa\u529b
CTL_VersioningOutput_TitleOne = \u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u306e\u51fa\u529b - {0}
LBL_OptionsPanelName=\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406
LBL_VersioningSystems=\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0(&O):
VcsAdvancedOptionsPanel.versioningSystemsList.AccessibleContext.accessibleDescription=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u3059\u3079\u3066\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306e\u4e00\u89a7

CTL_OpenInEditor = \u958b\u304f

#
# UI Logging
#
# UI logging of button press
# {0} instance of the button
# {1} class of the button
# {2} instance of the action
# {3} class of the action
# {4} display name of the action
UI_ACTION_BUTTON_PRESS={3}\u3068\u3057\u3066\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b{4}\u3092\u547c\u51fa\u3057\u3066\u3044\u307e\u3059

CTL_Export_Title = \u5dee\u5206\u30d1\u30c3\u30c1\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
ACSD_Export = \u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3055\u308c\u308b\u30d1\u30b9\u30fb\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3068\u5834\u6240\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002 
BK3002=\u30d1\u30c3\u30c1\u30fb\u30d5\u30a1\u30a4\u30eb(*.diff\u3001*.patch)
CTL_Export_ExportAction = \u30a8\u30af\u30b9\u30dd\u30fc\u30c8
MNE_Export_ExportAction = E
BK3005=\u65e2\u5b58\u306e{0}\u3092\u7f6e\u304d\u63db\u3048\u307e\u3059\u304b?
ExportDiffPanel.asFileRadioButton.text=\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58(&F)
ExportDiffPanel.attachRadioButton.text=\u554f\u984c\u306b\u6dfb\u4ed8(&A)
ExportDiffPanel.browseButton.text=\u53c2\u7167(&B)...

CTL_Attaching=\u30d1\u30c3\u30c1\u306b\u6dfb\u4ed8\u4e2d...
ExportDiffPanel.fileTextField.AccessibleContext.accessibleName=\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58






LBL_StartChat={0}\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1

CTL_FileSelector_Cancel=\u53d6\u6d88
CTL_FileSelector_Select=\u9078\u629e

MSG_NotificationBubble_Title=\u30ea\u30dd\u30b8\u30c8\u30ea\u5185\u3067\u306e\u6700\u8fd1\u306e\u5909\u66f4\u3002
TemplatesPanel.jLabel1.text=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8(&T):
TemplatesPanel.autoFillInCheckBox.text=\u30b3\u30df\u30c3\u30c8\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u81ea\u52d5\u7684\u306b\u5165\u529b(&A)
TemplatesPanel.openButton.text=\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30c9(&L)...
TemplatesPanel.saveButton.text=\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58(&S)...
CTL_TemplateTitle=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u9078\u629e
TemplatesPanel.openButton.actionCommand=\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30c9...
CTL_SelectTemplate=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30fb\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e
ACSD_SelectTemplate =\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30fb\u30d5\u30a1\u30a4\u30eb\u3092\u53c2\u7167\u3067\u304d\u307e\u3059
CTL_Load=\u30ed\u30fc\u30c9
CTL_Save=\u4fdd\u5b58
LBL_FileTooBig=\u30d5\u30a1\u30a4\u30eb\u304c\u5927\u304d\u3059\u304e\u307e\u3059
MSG_FileTooBig=\u9078\u629e\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u304c\u5927\u304d\u3059\u304e\u308b\u3088\u3046\u3067\u3059\u3002\u958b\u304d\u307e\u3059\u304b?

MSG_VersioningInfo_title = \u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u60c5\u5831
MSG_VersioningInfoNode_name = \u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u60c5\u5831
MSG_VersioningInfoNode_desc = \u9078\u629e\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u95a2\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u60c5\u5831
MSG_VersioningInfoNode_unknownvalue = \u4e0d\u660e
RecentMessageSelector.autoFill=\u30b3\u30df\u30c3\u30c8\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u81ea\u52d5\u7684\u306b\u5165\u529b(&A)

KW_VersioningOptions=\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30aa\u30d7\u30b7\u30e7\u30f3,CVS\u30aa\u30d7\u30b7\u30e7\u30f3,Subversion\u30aa\u30d7\u30b7\u30e7\u30f3,SVN,Mercurial\u30aa\u30d7\u30b7\u30e7\u30f3,Git\u30aa\u30d7\u30b7\u30e7\u30f3
TemplatesPanel.autoFillInCheckBox.TTtext=\u30b3\u30df\u30c3\u30c8\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u306f\u3001\u3053\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u4e8b\u524d\u306b\u81ea\u52d5\u5165\u529b\u3055\u308c\u307e\u3059
TemplatesPanel.openButton.TTtext=\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3092\u30ed\u30fc\u30c9\u3057\u307e\u3059
TemplatesPanel.saveButton.TTtext=\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\u3057\u307e\u3059
TemplatesPanel.jLabel1.TTtext=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5185\u5bb9

USG_VCS_CMD=\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b3\u30de\u30f3\u30c9{4}-{3}\u304c\u547c\u3073\u51fa\u3055\u308c\u3001{1}\u30df\u30ea\u79d2\u304b\u304b\u308a\u307e\u3057\u305f\u3002

