#-------------------------------------------------------------------------------
# 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

# Command Handler
selectAll=Wybierz wszystko

# Properties View
_UI_ProcessEditor_menu=Proces
_UI_CreateChild_menu_item=&Nowy element potomny
_UI_CreateSibling_menu_item=N&owy element r\u00f3wnorz\u0119dny
_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

