###############################################################################
# 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: 2.18 to 3.3.4.

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.9 to 0.11.

connectorDescriptor.description.mantis = Integration for the open source Mantis bug tracker (Beta).
connectorDescriptor.license.mantis = Free, EPL
connectorDescriptor.name.mantis = Mantis
connectorDescriptor.provider.mantis = Mylyn-Mantis
connectorDescriptor.overview.summary.mantis = This project is an Eclipse Mylyn Repository plug-in for the Mantis Bug Tracking application using the Mantis Connect SOAP interface. This Repository Connector is beta quality. For the most part it works as advertised, it just needs testing and some refinements added. Should you need any help, use the forums to ask questions or the bug tracker to report problems.\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 = Commercial, 45 day trial
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 version 6 and FogBugz on Demand service.\n\
\n\
Foglyn is free during 45 days trial period. Free, standard and site licenses are available.

