# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# IBM Corporation - initial implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR

# Plug-in
pluginName=EPF Composer RCP UI
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
\u30d0\u30fc\u30b8\u30e7\u30f3: {0}\n\
\n\
(c) Copyright Eclipse contributors and others {1}, {2}. All Rights Reserved.\n

# Category
methodCategoryName=\u30e1\u30bd\u30c3\u30c9

# Views
welcomeViewName=\u3088\u3046\u3053\u305d

# Actions
globalActionSet=\u30b0\u30ed\u30fc\u30d0\u30eb\u30fb\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30bb\u30c3\u30c8
newAction=\u65b0\u898f(&N)
newActionTooltip=\u65b0\u898f
openAction=\u958b\u304f(&O)...
openActionTooltip=\u958b\u304f
searchAction=\u691c\u7d22(&S)...
searchActionTooltip=\u691c\u7d22
welcomeAction=\u3088\u3046\u3053\u305d(&W)
welcomeActionToolTip=\u3088\u3046\u3053\u305d

# Tooltips
shortcut.overview.tooltip=\u300c\u6982\u8aac\u300d\u30da\u30fc\u30b8\u306b\u623b\u308b
shortcut.tutorials.tooltip=\u300c\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u300d\u30da\u30fc\u30b8\u306b\u623b\u308b
shortcut.firststeps.tooltip=\u300c\u6700\u521d\u306e\u30b9\u30c6\u30c3\u30d7\u300d\u30da\u30fc\u30b8\u306b\u623b\u308b
shortcut.webresources.tooltip=\u300cWeb \u30ea\u30bd\u30fc\u30b9\u300d\u30da\u30fc\u30b8\u306b\u623b\u308b       

#Action Set
actionSet.description = \u30d8\u30eb\u30d7\u30fb\u30b7\u30b9\u30c6\u30e0\u306e\u30c4\u30fc\u30eb\u30d0\u30fc\u30fb\u30a2\u30af\u30b7\u30e7\u30f3
actionSet.label = \u30d8\u30eb\u30d7\u30fb\u30b7\u30b9\u30c6\u30e0
searchAction.label = \u691c\u7d22\u306e\u30d8\u30eb\u30d7(&E)
searchAction.tooltip = \u30d8\u30eb\u30d7\u691c\u7d22
dynamicHelpAction.label = \u52d5\u7684\u30d8\u30eb\u30d7(&D) 
dynamicHelpAction.tooltip = \u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30fb\u30d8\u30eb\u30d7

#Activities/Capabilities
activity.general=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u304a\u3088\u3073\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
activity.general.desc=\u6a19\u6e96\u306e Eclipse \u30d7\u30ed\u30b8\u30a7\u30af\u30c8/\u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30dd\u30fc\u30c8/\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u6a5f\u80fd\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
activity.team.cvs=CVS \u30b5\u30dd\u30fc\u30c8
activity.team.cvs.desc=Concurrent Versions System (CVS) \u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u7ba1\u7406\u3092\u884c\u3044\u307e\u3059\u3002
activity.team=\u30b3\u30a2\u30fb\u30c1\u30fc\u30e0\u30fb\u30b5\u30dd\u30fc\u30c8
activity.team.desc=\u69cb\u6210\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5171\u6709\u3092\u884c\u3044\u307e\u3059\u3002

activity.cat.general=\u4e00\u822c
activity.cat.general.desc=\u6a19\u6e96\u306e Eclipse \u6a5f\u80fd\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
activity.cat.team=\u30c1\u30fc\u30e0
activity.cat.team.desc=\u69cb\u6210\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u7ba1\u7406\u3092\u884c\u3044\u307e\u3059\u3002

PreferencePages.Capabilities = \u6a5f\u80fd
PreferencePages.Capabilities.activityName = \u6a5f\u80fd(&C)
PreferencePages.Capabilities.categoryName = \u6a5f\u80fd(&C)
PreferencePages.Capabilities.activityPromptButton = \u6a5f\u80fd\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u969b\u306b\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u8868\u793a(&P)
PreferencePages.Capabilities.activityPromptButtonTooltip = \u6a5f\u80fd\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u30d5\u30a3\u30fc\u30c1\u30e3\u30fc\u304c\u6700\u521d\u306b\u4f7f\u7528\u3055\u308c\u308b\u5834\u5408\u306b\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u51fa\u3059
PreferencePages.Capabilities.captionMessage = \u6a5f\u80fd\u3092\u9078\u629e\u3057\u3066\u3001\u88fd\u54c1\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u4f7f\u7528\u53ef\u80fd\u307e\u305f\u306f\u4f7f\u7528\u4e0d\u53ef\u306b\u3057\u307e\u3059\u3002  \u3053\u308c\u3089\u306e\u6a5f\u80fd\u306f\u3001\u4e8b\u524d\u5b9a\u7fa9\u3055\u308c\u305f\u30ab\u30c6\u30b4\u30ea\u30fc\u306e\u30bb\u30c3\u30c8\u306b\u5f93\u3063\u3066\u30b0\u30eb\u30fc\u30d7\u5316\u3055\u308c\u307e\u3059\u3002
