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

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=Wybierz
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 nowy 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 nowy w\u0119ze\u0142 decyzyjny
ActivityDiagram_EndNode_text=W\u0119ze\u0142 ko\u0144cowy
ActivityDetailDiagram_prefix=Szczeg\u00f3\u0142y dzia\u0142ania:
ActivityDiagram_EndNode_tooltip=Utw\u00f3rz nowy w\u0119ze\u0142 ko\u0144cowy
ActivityDiagram_Activity_text=Dzia\u0142anie
ActivityDiagram_Activity_tooltip=Utw\u00f3rz nowe dzia\u0142anie
ActivityDiagram_Iteration_text=Iteracja
ActivityDiagram_Iteration_tooltip=Utw\u00f3rz now\u0105 iteracj\u0119
ActivityDiagram_Phase_text=Etap
ActivityDiagram_Phase_tooltip=Utw\u00f3rz nowy etap
AbstractDiagram_TaskDescriptor_text=Deskryptor zadania
AbstractDiagram_RoleDescriptor_text=Deskryptor roli
WorkProductDependencyDiagram_prefix=Diagram zale\u017cno\u015bci produktu pracy:
AbstractDiagram_RoleDescriptor_tooltip=Utw\u00f3rz nowy deskryptor roli
AbstractDiagram_TaskDescriptor_tooltip=Utw\u00f3rz nowy 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 nowy 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\u0142\u00f3w dzia\u0142ania
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=Dopasuj 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_text0=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}?
