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

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Wersja: {0}\n\
\n\
(c) Copyright Kontrybutorzy Eclipse i inni {1}, {2}. 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.
