# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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 tworzenia danych EPF
providerName=Eclipse.org

# Category
methodCategoryName=Metoda

# Perspective
authoringPerspectiveName=Tworzenie
browsingPerspectiveName=Przegl\u0105danie

# Views
libraryViewName=Biblioteka
configurationViewName=Konfiguracja
contentViewName=Tre\u015b\u0107
configurationErrorLogViewName=Dziennik b\u0142\u0119d\u00f3w konfiguracji

# Editors
methodElementEditorName=Edytor sk\u0142adnik\u00f3w metody
configurationEditorName=Edytor konfiguracji
processEditorName=Edytor proces\u00f3w
activityDiagramEditorName=Edytor diagram\u00f3w dzia\u0142ania
activityDetailDiagramEditorName=Edytor diagram\u00f3w szczeg\u00f3\u0142\u00f3w dzia\u0142ania
workProductDepedencyDiagramEditorName=Edytor diagram\u00f3w zale\u017cno\u015bci produktu pracy

# Wizards
newMethodLibraryWizardName=Biblioteka metody
newMethodLibraryWizardDescription=Utw\u00f3rz now\u0105 bibliotek\u0119 metod.
newMethodPluginWizardName=Wtyczka metody
newMethodPluginWizardDescription=Utw\u00f3rz now\u0105 wtyczk\u0119 metody.
newConfigurationWizardName=Konfiguracja metody
newConfigurationWizardDescription=Utw\u00f3rz now\u0105 konfiguracj\u0119 metody.

# Cheat Sheets
methodAuthoringCheatSheetsName=\u015aci\u0105gawki tworzenia metod
CheatsheetGetstartedCategoryText=Pierwsze kroki
CheatsheetReusableContentCategoryText=Utw\u00f3rz tre\u015b\u0107 metody wielokrotnego u\u017cytku
CheatsheetWriteContentCategoryText=Zapisz tre\u015b\u0107 metody
CheatsheetProcessesCategoryText=Praca z procesami
CheatsheetNavigateMethodContent=Przejd\u017a do tre\u015bci metody
CheatsheetCreateMethodConfiguration=Utw\u00f3rz w\u0142asn\u0105 konfiguracj\u0119 metody
CheatsheetCreateMethodPlugin=Utw\u00f3rz w\u0142asn\u0105 wtyczk\u0119 metody
CheatsheetAddMethodContent=Dodaj now\u0105 tre\u015b\u0107 metody, na przyk\u0142ad role, zadania, produkty pracy lub wskaz\u00f3wki
CheatsheetTailorMethodElements=Przystosuj istniej\u0105ce elementy metod (role, zadania, produkty pracy lub wskaz\u00f3wki) z u\u017cyciem wk\u0142adu
CheatsheetReplaceMehtodElements=Zast\u0105p istniej\u0105ce elementy metod (role, zadania, produkty pracy lub wskaz\u00f3wki)
CheatsheetAddMethodRefOrHyperlink=Dodaj odno\u015bnik lub odsy\u0142acz hipertekstowy (adres URL) do metody
CheatsheetApplyCapabilityPattern=Zastosuj wzorzec mo\u017cliwo\u015bci
CheatsheetCreateProcess=Utw\u00f3rz proces (wzorzec mo\u017cliwo\u015bci lub proces dostarczania)

# Action Set
authoringActionSet=Tworzenie
cheatSheetsActionSet=\u015aci\u0105gawki

# Global Actions
newLibraryAction=&Biblioteka metod
newLibraryActionTooltip=Tworzy now\u0105 bibliotek\u0119 metod
newPluginAction=&Wtyczka metody
newPluginActionTooltip=Tworzy now\u0105 wtyczk\u0119 metody
newConfigAction=&Konfiguracja metody
newConfigActionTooltip=Tworzy now\u0105 konfiguracj\u0119 metody
openLibraryAction=&Biblioteka metod
openLibraryActionTooltip=Otwiera istniej\u0105c\u0105 bibliotek\u0119 metod
openConfigAction=&Konfiguracja metody
openConfigActionTooltip=Otwiera istniej\u0105c\u0105 konfiguracj\u0119 metody
openCheatSheets=&\u015aci\u0105gawki...

# Library View Actions
linkWithEditor=Powi\u0105\u017c z edytorem
linkWithEditorTooltip=Powi\u0105\u017c z edytorem
showPresentationNames=Wy\u015bwietl nazwy prezentacji
showPresentationNamesTooltip=Wy\u015bwietl nazwy prezentacji

# Configuration View Actions
refreshConfig=Od\u015bwie\u017c
refreshConfigTooltip=Od\u015bwie\u017c konfiguracj\u0119

# Preference Page
authoringPreferencePage=Tworzenie
processEditor=Edytor proces\u00f3w
libraryOptions=Opcje biblioteki
startupAndShutdown=Uruchamianie i zamykanie
debug=Debugowanie
modelingOptions=Opcje modelowania
diagramAppearance=Wygl\u0105d diagramu
breakdownElementAttributes=Atrybuty sk\u0142adnika podzia\u0142u
libraryViewOptions=Opcje widoku biblioteki
activityDiagram=Diagram dzia\u0142ania

# Command Handler
selectAll=Wybierz wszystko

# Properties View
_UI_ProcessEditor_menu=Proces
_UI_CreateChild_menu_item=&Nowy element potomny
_UI_CreateSibling_menu_item=N&owe rodze\u0144stwo
_UI_ShowPropertiesView_menu_item=Wy\u015bwietl &widok w\u0142a\u015bciwo\u015bci
_UI_RefreshViewer_menu_item=O&d\u015bwie\u017c
_UI_Properties_General=Og\u00f3lne
_UI_Properties_Documentation=Dokumentacja
_UI_Properties_Guidance=Wskaz\u00f3wki
_UI_Properties_Work_Rollup=Sk\u0142adowa pracy
_UI_Properties_Team_Rollup=Sk\u0142adowa zespo\u0142u
_UI_Properties_WP_Rollup=Sk\u0142adowa produktu pracy
_UI_Properties_Roles=Role
_UI_Properties_WorkProducts=Produkty pracy
_UI_Properties_Steps=Kroki
_UI_Properties_Teams=Zespo\u0142y

RichTextMarkerTypeName=Problemy z HTML
ConfigurationMarkerTypeName=Problemy z konfiguracj\u0105
ExplanationText=Wyja\u015bnienie

