###############################################################################
# Copyright (c) 2000, 2022 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Manumitting Technologies Inc - Solstice theme support
###############################################################################
pluginName=Eclipse IDE for Eclipse Committers Bundle
providerName=Eclipse Packaging Project

productName=Eclipse IDE
productBlurb=Eclipse IDE for Eclipse Committers (includes Incubating components)\n\
\n\
Version: {1}\n\
Build id: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2022.  All rights reserved. Eclipse and the Eclipse logo are trademarks \
of the Eclipse Foundation, Inc., https://www.eclipse.org/. The Eclipse logo cannot be altered without Eclipse''s permission. \
Eclipse logos are provided for use under the Eclipse logo and trademark guidelines, https://www.eclipse.org/logotm/. \
Oracle and Java are trademarks or registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.\n\
\n\
This product includes software developed by other open source projects including the Apache Software Foundation, https://www.apache.org/.\n

activity.java=Java Development
activity.java.desc=Develop Java applications.
activity.plugin=Plug-in Development
activity.plugin.desc=Develop plug-ins, fragments, and features for Eclipse.
activity.ant=Ant Development
activity.ant.desc=Create and use Ant build scripts
activity.team.cvs=CVS Support
activity.team.cvs.desc=Use the Concurrent Versions System (CVS) to manage resources.
activity.team=Core Team Support
activity.team.desc=Share projects using configuration management systems.
activity.team.egit=Egit Support
activity.team.egit.desc=Use the Egit plugin to manage git resources.

activity.cat.development=Development
activity.cat.development.desc=Use the Eclipse SDK to develop applications.
activity.cat.team=Team
activity.cat.team.desc=Use configuration management systems to manage resources.

PreferencePages.Capabilities = Capabilities
PreferencePages.Capabilities.activityName = &Capabilities
PreferencePages.Capabilities.categoryName = &Capabilities
PreferencePages.Capabilities.activityPromptButton = &Prompt when enabling capabilities
PreferencePages.Capabilities.activityPromptButtonTooltip = Prompt when a feature is first used that requires enablement of capabilities
PreferencePages.Capabilities.captionMessage = Capabilities allow you to enable or disable various product components.  These capabilities are grouped according to a set of predefined categories.

helpActivitySupport.showAllMessage = While showing all topics, documentation about disabled capabilities is also shown in the table of contents and search results. Some documents may refer to user interface elements that are not visible. To manually enable capabilities, use the "General -> Capabilities" preference page.
helpActivitySupport.documentMessage = This topic belongs to a capability that \
is currently disabled. It may refer to user interface elements that are \
not visible.<br><br>\
To manually enable capabilities, use\
&nbsp;<a href='ACTIVITY_EDITOR'>Capabilities preference page.</a>
helpActivitySupport.localScopeCheckbox = Show search hits from disabled capabilities

TriggerPointAdvisor.proceedMulti = Enable the selected capabilities?
TriggerPointAdvisor.proceedSingle = Enable the required capability?
TriggerPointAdvisor.dontAsk = &Always enable capabilities and don't ask me again
TriggerPointAdvisor.noDetails = Select a capability to view its description.

search.Eclipse.label = Eclipse.org
search.Eclipse.desc = Searches mailing lists, news groups, articles and other documents on Eclipse.org

productIntroTitle = Welcome to Eclipse
productIntroBrandingText = Eclipse Project
introDescription-overview = The Eclipse software development kit is the development environment used to develop plug-ins for the Eclipse platform. It provides first-class Java programming tools, and plug-in development tools for building Eclipse-based applications and extensions.
introDescription-tutorials = Learn how to be productive using Eclipse by completing end-to-end tutorials that will guide you along the way.
introDescription-samples = Explore Eclipse by installing prefabricated samples (may require an Internet connection).


activity.debug.description = Launch applications, set breakpoints and step through code.
activity.debug = Debug Support

ql.newPluginProject.description = Create a new Eclipse Plug-in project
ql.newPluginProject.label = Create a new plug-in project
ql.checkoutGitProject.description = Checkout Eclipse projects hosted in a Git repository
ql.checkoutGitProject.label = Checkout projects from Git
ql.importExistingProjects.description = Import existing Eclipse projects from the filesystem or archive
ql.importExistingProjects.label = Import existing projects
ql.openExistingFile.description = Open a file from the filesystem
ql.openExistingFile.label = Open an existing file
ql.setupQuestionnaire.label = Review IDE configuration settings
ql.mpc.description = Enhance your IDE with additional plugins and install your Marketplace favorites
ql.mpc.label = Launch the Eclipse Marketplace
