#-------------------------------------------------------------------------------
# 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=RCP-Benutzerschnittstelle f\u00fcr EPF Composer
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version: {1}\n\
Build-ID: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2008. All Rights Reserved.\n

# Category
methodCategoryName=Methode

# Views
welcomeViewName=Willkommen

# Actions
globalActionSet=Globale Aktionsgruppe
newAction=&Neu
newActionTooltip=Neu
openAction=\u00d6&ffnen...
openActionTooltip=\u00d6ffnen
searchAction=&Suchen...
searchActionTooltip=Suchen
welcomeAction=&Willkommen
welcomeActionToolTip=Willkommen

# Tooltips
shortcut.overview.tooltip=Zur Seite "\u00dcbersicht" zur\u00fcckkehren
shortcut.tutorials.tooltip=Zur Seite "Lernprogramm" zur\u00fcckkehren
shortcut.firststeps.tooltip=Zur Seite "Erste Schritte" zur\u00fcckkehren
shortcut.webresources.tooltip=Zur Seite "Webressourcen" zur\u00fcckkehren

#Action Set
actionSet.description = Aktionen in der Funktionsleiste des Hilfesystems
actionSet.label = Hilfesystem
searchAction.label = Hilf&e durchsuchen
searchAction.tooltip = Hilfe durchsuchen
dynamicHelpAction.label = &Dynamische Hilfe 
dynamicHelpAction.tooltip = Dynamische Hilfe
#Activities/Capabilities
activity.general=Projekte und Ressourcen importieren und exportieren
activity.general.desc=Standard-Eclipse-Funktionen f\u00fcr den Import und Export von Projekten und Ressourcen verwenden.
activity.team.cvs=CVS-Unterst\u00fctzung
activity.team.cvs.desc=Concurrent Versions System (CVS) f\u00fcr die Verwaltung von Ressourcen verwenden.
activity.team=Basisteamunterst\u00fctzung
activity.team.desc=Projekte unter Verwendung von Konfigurationsmanagementsystemen gemeinsam nutzen.

activity.cat.general=Allgemein
activity.cat.general.desc=Standard-Eclipse-Funktionen verwenden.
activity.cat.team=Team
activity.cat.team.desc=Konfigurationsmanagementsysteme f\u00fcr die Verwaltung von Ressourcen verwenden.

PreferencePages.Capabilities = Funktionen
PreferencePages.Capabilities.activityName = &Funktionen
PreferencePages.Capabilities.categoryName = &Funktionen
PreferencePages.Capabilities.activityPromptButton = &Systemanfrage beim Aktivieren von Funktionen
PreferencePages.Capabilities.activityPromptButtonTooltip = Es erscheint eine Systemanfrage, wenn ein Feature, das die Aktivierung von Funktion voraussetzt, zum ersten Mal verwendet wird.
PreferencePages.Capabilities.captionMessage = Mit Funktionen k\u00f6nnen Sie verschiedene Produktkomponenten aktivieren und inaktivieren. Diese Funktionen sind nach einer Gruppe vordefinierter Kategorien gruppiert.
