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

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2009. 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.
