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

# Complete new strings need translation.
previous_name_null1=Cofni\u0119cie zmiany nazwy jest niedozwolone, je\u015bli poprzednia nazwa ma warto\u015b\u0107 NULL.
err_name_empty=Nazwa nie mo\u017ce by\u0107 pusta. Podaj poprawn\u0105 nazw\u0119.
moveAction_label=Przenie\u015b

AbstractDiagram_Select_text=Wyb\u00f3r
AbstractDiagram_Select_tooltip=Wybierz w\u0119ze\u0142 lub powi\u0105zanie
AbstractDiagram_AddNode_title=Dodawanie w\u0119z\u0142a
AbstractDiagram_AddNode_err_msg=IXRD0002W: Nie powiod\u0142o si\u0119 dodanie w\u0119z\u0142a do diagramu
AbstractDiagram_Link_text=Powi\u0105zanie
AbstractDiagram_Link_select=Wybierz powi\u0105zanie
AbstractDiagram_Link_tooltip=Utw\u00f3rz nowe powi\u0105zanie
ActivityDiagram_StartNode_text=W\u0119ze\u0142 pocz\u0105tkowy
ActivityDiagram_StartNode_tooltip=Utw\u00f3rz w\u0119ze\u0142 pocz\u0105tkowy
AbstractDiagram_FreeText_text=Dowolny tekst
AbstractDiagram_FreeText_tooltip=Utw\u00f3rz nowy dowolny tekst
ActivityDiagram_SyncBar_text=Pasek synchronizacji
ActivityDiagram_SyncBar_tooltip=Utw\u00f3rz nowy pasek synchronizacji
ActivityDiagram_DecisionNode_text=W\u0119ze\u0142 decyzyjny
ActivityDiagram_DecisionNode_tooltip=Utw\u00f3rz w\u0119ze\u0142 decyzyjny
ActivityDiagram_EndNode_text=W\u0119ze\u0142 ko\u0144cowy
ActivityDetailDiagram_prefix=Szczeg\u00f3\u0142owe informacje o dzia\u0142aniu:
ActivityDiagram_EndNode_tooltip=Utw\u00f3rz w\u0119ze\u0142 ko\u0144cowy
ActivityDiagram_Activity_text=Dzia\u0142anie
ActivityDiagram_Activity_tooltip=Utw\u00f3rz dzia\u0142anie
ActivityDiagram_Iteration_text=Iteracja
ActivityDiagram_Iteration_tooltip=Utw\u00f3rz iteracj\u0119
ActivityDiagram_Phase_text=Etap
ActivityDiagram_Phase_tooltip=Utw\u00f3rz etap
AbstractDiagram_TaskDescriptor_text=Deskryptor zadania
AbstractDiagram_RoleDescriptor_text=Deskryptor roli
WorkProductDependencyDiagram_prefix=Diagram zale\u017cno\u015bci produktu pracy:
AbstractDiagram_RoleDescriptor_tooltip=Utw\u00f3rz deskryptor roli
AbstractDiagram_TaskDescriptor_tooltip=Utw\u00f3rz deskryptor zadania
ActvitivityDiagram_DeliveryProcess_text=Proces dostarczania
ActvitivityDiagram_CapabilityPattern_text=Wzorzec mo\u017cliwo\u015bci
ActvitivityDiagram_Phase_tex=Etap
ActvitivityDiagram_Iteration_text=Iteracja
ActvitivityDiagram_Activity_text=Dzia\u0142anie
AbstractDiagram_WorkProductDescriptor_text=Deskryptor produktu pracy
AbstractDiagram_WorkProductDescriptor_tooltip=Utw\u00f3rz deskryptor produktu pracy

AbstractDiagramEditor_alignMenu_text=Wyr\u00f3wnaj
AbstractDiagramEditor_refreshFromBaseActivity_text=Od\u015bwie\u017c z dzia\u0142ania podstawowego
AbstractDiagramEditor_formatTextBoxActivity_text=Formatuj pole tekstowe...
AbstractDiagramEditor_hAlignAverageAction_text=Poziomo do \u015bredniej
AbstractDiagramEditor_hAlignFirstSelectedAction_text=Poziomo do pierwszej wybranej
AbstractDiagramEditor_vAlignAverageAction_text=Pionowo do \u015bredniej
AbstractDiagramEditor_vAlignFirstSelectedAction_text=Pionowo do pierwszej wybranej
AbstractDiagramEditor_Save_text=Zapisz
AbstractDiagramEditor_Save_message=Zapisywanie {0}
AbstractDiagramEditor_MoveNode_label=Przenie\u015b w\u0119ze\u0142
AbstractDiagramEditorrefreshfrombase=Od\u015bwie\u017c z podstawy
AbstractDiagram_BendPoint_create=Utw\u00f3rz punkt zmiany

ActivityDiagram_openActivityDetailDiagram_text=Otw\u00f3rz diagram szczeg\u00f3\u0142owych informacji o dzia\u0142aniu
refreshAction_label=Od\u015bwie\u017c
refreshFromBaseCmd_label=Od\u015bwie\u017c z podstawy
diagram_saveError=IUPD0001W: Nie powiod\u0142o si\u0119 zapisanie diagramu

DeleteDiagram_text=Usu\u0144 diagram
DeleteDiagram_prompt=Czy na pewno chcesz zamkn\u0105\u0107 i usun\u0105\u0107 ten diagram?\nZmiana ta jest trwa\u0142a i nie b\u0119dzie mo\u017cna jej cofn\u0105\u0107.
align_bend_point_text=Przypisz punkt zmiany
ConfigurationEditorInput_configeditor0=Edytor konfiguracji
diagram_node_property_value_problem_msg=B\u0142\u0105d w warto\u015bci w\u0142a\u015bciwo\u015bci w\u0119z\u0142a
diagram_errorDialog_title=B\u0142\u0105d

ActivityDetailDiagramEditor_ResetDiagramLayout_text=Zresetuj uk\u0142ad diagramu
errorDialog_title=B\u0142\u0105d
command_cannotEdit=IUPD0003E: Nie mo\u017cna edytowa\u0107 diagramu

AbstractDiagramEditor_ParentEditorClose_title=Zamkni\u0119to nadrz\u0119dny edytor
AbstractDiagramEditor_ParentEditorClose_text=Edytor {0} zosta\u0142 zamkni\u0119ty. Czy chcesz r\u00f3wnie\u017c zamkn\u0105\u0107 {1}?

#Below three strings moved from AuthoringUI resources.properties.
DiagramValidation_err_cannot_connect_text=IUPA0032W: Nie mo\u017cna po\u0142\u0105czy\u0107
DiagramValidation_err_samepredandsuc_text=IUPA0033W: Nie mo\u017cna mie\u0107 takiego samego sk\u0142adnika podzia\u0142u, jak poprzednik i nast\u0119pca
DiagramValidation_err_cannot_delete_text=Nie mo\u017cna usun\u0105\u0107
deleteCommand_label=Usu\u0144
deleteLinkCommand_label=Usu\u0144 po\u0142\u0105czenie

ActivityDiagram_Milestone_text=Kamie\u0144 milowy
ActivityDiagram_Milestone_tooltip=Utw\u00f3rz kamie\u0144 milowy
ActivityDiagram_Join_Node_text=W\u0119ze\u0142 \u0142\u0105cz\u0105cy
ActivityDiagram_Join_Node_tooltip=Utw\u00f3rz w\u0119ze\u0142 \u0142\u0105cz\u0105cy
ActivityDiagram_Merge_Node_text=W\u0119ze\u0142 scalaj\u0105cy
ActivityDiagram_Merge_Node_tooltip=Utw\u00f3rz w\u0119ze\u0142 scalaj\u0105cy
ActivityDiagram_Fork_Node_text=W\u0119ze\u0142 rozwidlaj\u0105cy
ActivityDiagram_Fork_Node_tooltip=Utw\u00f3rz w\u0119ze\u0142 rozwidlaj\u0105cy
ActivityDiagram_Partition_Node_text=Partycja dzia\u0142ania
ActivityDiagram_Palette_flows_title=Przep\u0142ywy
ActivityDiagram_Palette_nodes_titles=W\u0119z\u0142y
ActivityDiagram_Palette_flows_create_text=Narz\u0119dzie do tworzenia przep\u0142yw\u00f3w
ActivityDiagram_Palette_nodes_group_text=Grupa narz\u0119dzi do tworzenia w\u0119z\u0142\u00f3w
ActivityDiagram_Palette_control_flow_text=Przep\u0142yw sterowania
ActivityDiagram_Palette_control_flow_create_text=Utw\u00f3rz przep\u0142yw sterowania
ActivityDiagram_Partition_Node_tooltip=Utw\u00f3rz partycj\u0119 dzia\u0142ania

ActivityDiagram_New_Task_Descriptor=Nowy deskryptor zadania
ActivityDiagram_New_Milestone=Nowy kamie\u0144 milowy
WPDD_New_WorkProductDescriptor=Nowy deskryptor produktu pracy
ActivityDiagram_New_Activity=Nowe dzia\u0142anie
ActivityDiagram_New_Phase=Nowy etap
ActivityDiagram_New_Iteration=Nowa iteracja
Progress_Saving_message=Zapisywanie {0}
Warning_Saving_Diagram=IUPD0001W: Nie powiod\u0142o si\u0119 zapisanie diagramu

ActivityDiagram_kind=Diagram dzia\u0142ania
ActivityDetail_Diagram_kind=Diagram szczeg\u00f3\u0142owych informacji o dzia\u0142aniu
WorkProductDependency_Diagram_kind=Diagram zale\u017cno\u015bci produktu pracy
WPDD_Palette_control_flow_text=Zale\u017cno\u015b\u0107 produktu pracy
WPDD_Palette_control_flow_create_text=Utw\u00f3rz zale\u017cno\u015b\u0107 produktu pracy 
