###############################################################################
# Copyright (c) 2009 Tasktop Technologies 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:
#      Tasktop Technologies - initial API and implementation
###############################################################################
#Properties file for org.eclipse.mylyn.discovery.site.categories
Bundle-Name.0 = Mylyn Discovery Categories

connectorCategory.name.eclipse = Eclipse.org
connectorCategory.description.eclipse = Connectors hosted on Eclipse. Community supported via bugs.eclipse.org.

connectorCategory.name.community = Community
connectorCategory.description.community = Connectors provided by the Mylyn Community. Level of support may vary.

connectorDescriptor.description.bugzilla = Integration for the open source Bugzilla bug tracking system.
connectorDescriptor.provider.bugzilla = Eclipse Mylyn
connectorDescriptor.license.bugzilla = Free, EPL
connectorDescriptor.name.bugzilla = Mozilla Bugzilla
connectorDescriptor.overview.summary.bugzilla = \
Bugzilla is a free and open source system for managing bugs, software \
projects and more. Key features include \
advanced search, time tracking, reports and attachments.\n\
\n\
The Bugzilla Connector is the reference implementation for Mylyn connectors \
and provides robust support for viewing and updating Bugzilla from Eclipse. \
Key connector features include support for attachments, subtasks, custom \
fields, change notifications, offline access and advanced query \
capabilities.\n\
\n\
Supported Versions: 3.6 to 4.5.

connectorDescriptor.description.trac = Integration for the open source Trac issue tracking system.
connectorDescriptor.provider.trac = Eclipse Mylyn
connectorDescriptor.license.trac = Free, EPL
connectorDescriptor.name.trac = Edgewall Trac
connectorDescriptor.overview.summary.trac = Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. \n\
\n\
Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies.\n\
\n\
The Trac connector supports attachments and access through the web-interface and XML-RPC.\n\
\n\
Supported Versions: 0.12 to 1.0.

connectorDescriptor.description.mantis = Integration for the open source Mantis bug tracker.
connectorDescriptor.license.mantis = Free, EPL
connectorDescriptor.name.mantis = Mantis
connectorDescriptor.provider.mantis = Mylyn-Mantis
connectorDescriptor.overview.summary.mantis = MantisBT is a free popular web-based bugtracking system.\n\
\n\
The Mantis connector allows you to manage your bugs straight from Eclipse.\n\
\n\
Supported features include: creating and updating tasks, synchronizing tasks, commenting and uploading and downloading attachments.\n\
\n\
Supported Versions: 0.0.5 or 1.1.0a4 or greater.

connectorDescriptor.description.foglyn = Integration for the FogBugz project management system.
connectorDescriptor.license.foglyn = Free, EPL
connectorDescriptor.name.foglyn = Foglyn
connectorDescriptor.provider.foglyn = www.foglyn.com
connectorDescriptor.overview.summary.foglyn = Foglyn \u2013 FogBugz connector for Mylyn\n\
\n\
Foglyn allows you to list, view and edit your cases, attach new files or screenshots and resolve or reassign cases to somebody else.\n\
\n\
Foglyn works with FogBugz versions 6, 7 and 8 and FogBugz on Demand service.

connectorDescriptor.description.tuleap = Integration for the Tuleap open ALM system.
connectorDescriptor.license.tuleap = Free, EPL
connectorDescriptor.name.tuleap = Tuleap
connectorDescriptor.provider.tuleap = Obeo, Enalean, Ericsson
connectorDescriptor.overview.summary.tuleap = Tuleap Agile connector for Mylyn\n\
\n\
Access & edit Tuleap artifacts (tasks, bugs, stories...) as well as agile tools (releases, sprints planning, card-wall, burn-down) right from Eclipse.\n\
\n\
Tuleap is a full free Open Source Suite for Application Lifecycle Management. \
Traditional development, Requirements Management, Agile Development, IT Service management... \
Tuleap makes software projects more productive, collaborative and industrialized.\n\
\n\
Supported features include: creating and updating tasks, querying tasks, commenting, uploading and downloading attachments.\n\
Agile development is now also supported: Planning sprints or releases, managing tasks in a card-wall, Burn-down chart.
\n\
Supported versions: Tuleap 7.1 and higher.

connectorDescriptor.description.gerrit = Integration for the open source Gerrit code review system.
connectorDescriptor.provider.gerrit = Eclipse Mylyn
connectorDescriptor.license.gerrit = Free, EPL
connectorDescriptor.name.gerrit = Gerrit
connectorDescriptor.overview.summary.gerrit = Gerrit is a web based code review system, facilitating online code reviews for projects using the Git version control system.\n\
\n\
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.\n\
\n\
Supported Versions: 2.6 to 2.9.

connectorDescriptor.name.hudson = Hudson/Jenkins
connectorDescriptor.license.hudson = Free, EPL
connectorDescriptor.provider.hudson = Eclipse Mylyn
connectorDescriptor.description.hudson = Monitor builds and work with build artifacts in your workspace.
overview.summary.hudson = You can now complete your daily work with Hudson/Jenkins entirely from within the Eclipse IDE, including monitoring and running builds, and inspecting \
results. Accessing build information is instant and available offline. One of the most useful time savers is the ability to run tests that failed on the server within your workspace, \
with just one click. A significant feature that is now available is support for traceability between tasks, source and builds.\n\
\n\
Supported Versions: Hudson 2.2 to 3.2, Jenkins 1.466 to 1.580
. 
