# 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=\u30a8\u30c7\u30a3\u30bf\u306e\u30aa\u30d7\u30b7\u30e7\u30f3
OpenIDE-Module-Display-Category=\u7de8\u96c6
OpenIDE-Module-Short-Description=\u300c\u30aa\u30d7\u30b7\u30e7\u30f3\u300d\u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u30a8\u30c7\u30a3\u30bf\u306b\u95a2\u9023\u3059\u308b\u30d1\u30cd\u30eb\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002
OpenIDE-Module-Long-Description=\u300c\u30a8\u30c7\u30a3\u30bf\u300d\u3001\u300c\u30d5\u30a9\u30f3\u30c8\u3068\u8272\u300d\u3001\u304a\u3088\u3073\u300c\u30ad\u30fc\u30de\u30c3\u30d7\u300d\u306a\u3069\u306e\u300c\u30c4\u30fc\u30eb\u300d-\u300c\u30aa\u30d7\u30b7\u30e7\u30f3\u300d\u30c0\u30a4\u30a2\u30ed\u30b0\u30fb\u30d1\u30cd\u30eb\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002

#EditorPanel
CTL_Editor=\u30a8\u30c7\u30a3\u30bf(&E)
CTL_Editor_Title=\u30a8\u30c7\u30a3\u30bf
CTL_Editor_Description=\u30a8\u30c7\u30a3\u30bf
KW_EditorOptions=\u30a8\u30c7\u30a3\u30bf\u306e\u30aa\u30d7\u30b7\u30e7\u30f3

#General Subcategory
CTL_General_DisplayName=\u4e00\u822c
CTL_General_ToolTip=\u4e00\u822c\u30a8\u30c7\u30a3\u30bf\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3
KW_General=\u4e00\u822c\u7684\u306a\u30a8\u30c7\u30a3\u30bf\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3,\u30b3\u30fc\u30c9\u6298\u308a\u305f\u305f\u307f,\u30ad\u30e3\u30e1\u30eb\u30fb\u30b1\u30fc\u30b9

#Formatting Subcategory
CTL_Formating_DisplayName=\u30d5\u30a9\u30fc\u30de\u30c3\u30c8
CTL_Formating_ToolTip=\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3
KW_Formatting=\u30a8\u30c7\u30a3\u30bf\u306e\u4f4d\u7f6e\u63c3\u3048,\u30a8\u30c7\u30a3\u30bf\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8,\u30a8\u30c7\u30a3\u30bf\u306e\u30bf\u30d6,\u30a8\u30c7\u30a3\u30bf\u306e\u30a4\u30f3\u30c7\u30f3\u30c8,\u30a8\u30c7\u30a3\u30bf\u306e\u4e2d\u62ec\u5f27,\u30a8\u30c7\u30a3\u30bf\u306e\u7a7a\u884c,\u30a8\u30c7\u30a3\u30bf\u306e\u30b9\u30da\u30fc\u30b9,\u30a8\u30c7\u30a3\u30bf\u306e\u884c\u6298\u8fd4\u3057,\u30a8\u30c7\u30a3\u30bf\u306e\u30de\u30fc\u30b8\u30f3
KW_FormattingPanel=\u30a8\u30c7\u30a3\u30bf\u306e\u66f8\u5f0f\u8a2d\u5b9a
KW_IndentationPanel=\u30a8\u30c7\u30a3\u30bf\u306e\u30a4\u30f3\u30c7\u30f3\u30c8

#Hints Subcategory
CTL_Hints_DisplayName=\u30d2\u30f3\u30c8
CTL_Hints_ToolTip=\u30d2\u30f3\u30c8\u3068\u8b66\u544a
KW_Hints=\u30d2\u30f3\u30c8,\u4fee\u6b63,\u63d0\u6848,\u8b66\u544a

#Mark Occurences Subcategory
CTL_MarkOccurences_DisplayName=\u5f37\u8abf\u8868\u793a
CTL_MarkOccurences_ToolTip=\u5f37\u8abf\u8868\u793a
KW_Mark=\u51fa\u73fe\u7b87\u6240\u3092\u30de\u30fc\u30af,\u5f37\u8abf\u8868\u793a

#Tasklist Subcategory
CTL_Tasklist_DisplayName=\u30bf\u30b9\u30af\u30fb\u30ea\u30b9\u30c8
CTL_Tasklist_ToolTip=\u30bf\u30b9\u30af\u30fb\u30ea\u30b9\u30c8\u306e\u8a2d\u5b9a
KW_TaskList=\u30a8\u30e9\u30fc\u30fb\u30d0\u30c3\u30b8,\u30bf\u30b9\u30af\u30fb\u30ea\u30b9\u30c8

#LanguageBasedOptionPanel
LBL_Language=\u8a00\u8a9e(&L):

#Action Category Names
OptionsDialog/Actions/Build=\u30d3\u30eb\u30c9
OptionsDialog/Actions/CVS=CVS
OptionsDialog/Actions/Edit=\u7de8\u96c6
OptionsDialog/Actions/File=\u30d5\u30a1\u30a4\u30eb
OptionsDialog/Actions/Form=\u30d5\u30a9\u30fc\u30e0
OptionsDialog/Actions/GoTo=\u79fb\u52d5
OptionsDialog/Actions/Help=\u30d8\u30eb\u30d7
OptionsDialog/Actions/Refactor=\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0
OptionsDialog/Actions/Run=\u5b9f\u884c
OptionsDialog/Actions/Source=\u30bd\u30fc\u30b9
OptionsDialog/Actions/Tools=\u30c4\u30fc\u30eb
OptionsDialog/Actions/View=\u8868\u793a
OptionsDialog/Actions/Window=\u30a6\u30a3\u30f3\u30c9\u30a6
OptionsDialog/Actions/System=\u30b7\u30b9\u30c6\u30e0
OptionsDialog/Actions/XML=XML

# Options Export
Editor.Options.Export.Category.displayName=\u30a8\u30c7\u30a3\u30bf
Editor.Options.Export.General.displayName=\u4e00\u822c
Editor.Options.Export.Macros.displayName=\u30de\u30af\u30ed
Editor.Options.Export.Formatting.displayName=\u30d5\u30a9\u30fc\u30de\u30c3\u30c8
Editor.Options.Export.Indentation.displayName=\u30a4\u30f3\u30c7\u30f3\u30c8
Editor.Options.Export.CodeTemplates.displayName=\u30b3\u30fc\u30c9\u30fb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
Editor.Options.Export.Other.displayName=\u305d\u306e\u4ed6

FolderBasedOptionPanel.filterLabel.text=\u691c\u7d22(&S):

