# 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 2000, 2009. 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.
