#-------------------------------------------------------------------------------
# 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=Interfejs u\u017cytkownika EPF Composer RCP
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Wersja: {1}\n\
Etykieta kompilacji: {0}\n\
\n\
(c) Copyright Kontrybutorzy Eclipse i inni 2000, 2008. Wszelkie prawa zastrze\u017cone.\n

# Category
methodCategoryName=Metoda \

# Views
welcomeViewName=Witamy

# Actions
globalActionSet=Globalny zestaw dzia\u0142a\u0144
newAction=&Nowy
newActionTooltip=Nowy
openAction=&Otw\u00f3rz...
openActionTooltip=Otw\u00f3rz
searchAction=&Szukaj...
searchActionTooltip=Szukaj
welcomeAction=&Witamy
welcomeActionToolTip=Witamy

# Tooltips
shortcut.overview.tooltip=Powr\u00f3t do strony Przegl\u0105d
shortcut.tutorials.tooltip=Powr\u00f3t do strony Kurs
shortcut.firststeps.tooltip=Powr\u00f3t do strony Pierwsze kroki
shortcut.webresources.tooltip=Powr\u00f3t do strony Zasoby WWW 

#Action Set
actionSet.description = Dzia\u0142ania paska narz\u0119dzi systemu pomocy
actionSet.label = System pomocy
searchAction.label = &Wyszukaj w pomocy
searchAction.tooltip = Wyszukaj w pomocy
dynamicHelpAction.label = &Pomoc dynamiczna
dynamicHelpAction.tooltip = Pomoc dynamiczna

#Activities/Capabilities
activity.general=Importuj i eksportuj projekty i zasoby
activity.general.desc=U\u017cyj standardowych mo\u017cliwo\u015bci importowania/eksportowania projektu/zasob\u00f3w Eclipse.
activity.team.cvs=Obs\u0142uga systemu CVS
activity.team.cvs.desc=U\u017cyj systemu CVS (Concurrent Versions System) do zarz\u0105dzania zasobami.
activity.team=Obs\u0142uga Core Team
activity.team.desc=Wsp\u00f3\u0142u\u017cytkuj projekty za pomoc\u0105 system\u00f3w zarz\u0105dzania konfiguracj\u0105.

activity.cat.general=Og\u00f3lne
activity.cat.general.desc=U\u017cyj standardowych mo\u017cliwo\u015bci Eclipse.
activity.cat.team=Zesp\u00f3\u0142
activity.cat.team.desc=U\u017cyj system\u00f3w zarz\u0105dzania konfiguracj\u0105 do zarz\u0105dzania zasobami.

PreferencePages.Capabilities = Mo\u017cliwo\u015bci
PreferencePages.Capabilities.activityName = &Mo\u017cliwo\u015bci
PreferencePages.Capabilities.categoryName = &Mo\u017cliwo\u015bci
PreferencePages.Capabilities.activityPromptButton = &Wy\u015bwietlaj zach\u0119t\u0119 podczas w\u0142\u0105czania mo\u017cliwo\u015bci
PreferencePages.Capabilities.activityPromptButtonTooltip = Wy\u015bwietlenie zach\u0119ty podczas pierwszego u\u017cycia opcji wymagaj\u0105cej w\u0142\u0105czenia mo\u017cliwo\u015bci
PreferencePages.Capabilities.captionMessage = Mo\u017cliwo\u015bci umo\u017cliwiaj\u0105 w\u0142\u0105czenie i wy\u0142\u0105czenie r\u00f3\u017cnych komponent\u00f3w produktu. Mo\u017cliwo\u015bci te s\u0105 pogrupowane zgodnie z zestawem predefiniowanych kategorii.
