# 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
#
# Message ID Range:
#

# Export XML Wizard
exportXMLWizard_title=Eksport pliku XML

# Select Export Type Wizard Page
selectExportTypePage_desc=Wybierz typ tre\u015bci biblioteki metod do wyeksportowania.
exportLibraryRadioButton_text=Wyeksportuj ca\u0142\u0105 bibliotek\u0119 metod
exportPluginsRadioButton_text=Wyeksportuj jedn\u0105 lub wi\u0119cej wtyczek metod
exportConfigsRadioButton_text=Wyeksportuj konfiguracj\u0119 metody

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Okre\u015blenie pliku eksportu
selectXMLFilePage_desc=Podaj docelowy plik XML do zapisania wyeksportowanej tre\u015bci biblioteki metod.
fileLabel_text=Plik XML:
browseButton_text=Przegl\u0105daj...

# Overwrite Confirmation Dialog
overwriteText_msg=Plik ''{0}'' ju\u017c istnieje.\nCzy chcesz go zast\u0105pi\u0107?
overwriteText_msg1=Plik ''{0}'' ju\u017c istnieje.\nCzy zast\u0105pi\u0107 go i zawieraj\u0105cy go folder {1}?

# Progress Messages
exportingXML_text=Eksportowanie tre\u015bci biblioteki metod do pliku XML...

# Error Messages
invalidXMLFile_error=Podany plik XML jest niepoprawny.
exportXMLWizard_error=IUPM0000E: Eksportowanie zako\u0144czy\u0142o si\u0119 niepowodzeniem: {0}
exportXMLWizard_reviewLog=Proces eksportowania zosta\u0142 zako\u0144czony. Przejrzyj pliki dziennik\u00f3w w katalogu eksportowania.
exportXMLService_error=B\u0142\u0105d podczas eksportowania biblioteki: {0}
exportXMLService_feature_error=B\u0142\u0105d podczas ustawiania warto\u015bci sk\u0142adnika: element={0}, sk\u0142adnik={1}
xmlLibrary_error_load_xml=Nie mo\u017cna za\u0142adowa\u0107 \u017ar\u00f3d\u0142a XML ''{0}''
xmlLibrary_no_plugin=Brak wtyczki metody dla id {0}
xmlLibrary_no_feature=Nie mo\u017cna pobra\u0107 sk\u0142adnika XML dla {0}_{1}
xmlLibrary_no_class=Nie mo\u017cna pobra\u0107 klasy EClass dla {0}
xmlLibrary_error_create_element=B\u0142\u0105d podczas tworzenia elementu: nie wiadomo, jak ustawi\u0107 warto\u015b\u0107 dla opcji {0}
xmlLibrary_error_set_value=B\u0142\u0105d podczas tworzenia elementu, nie mo\u017cna ustawi\u0107 warto\u015bci {0} dla kontenera {1}
xmlLibrary_invalid_feature_value=Niepoprawna warto\u015b\u0107 cechy atrybutu dla sk\u0142adnika {0} o warto\u015bci {1}
xmlLibrary_error_set_value_2=B\u0142\u0105d podczas ustawiania atrybutu. Nie mo\u017cna ustawi\u0107 warto\u015bci dla danych: sk\u0142adnik={0}, obiekt={1}, warto\u015b\u0107={2}
xmlLibrary_error_set_value_3=Nie wiadomo, jak ustawi\u0107 warto\u015b\u0107 dla danych: sk\u0142adnik={0}, obiekt={1}, warto\u015b\u0107={2}
xmlLibrary_error_set_reference=B\u0142\u0105d podczas ustawiania odniesienia. Nie mo\u017cna ustawi\u0107 warto\u015bci dla danych: sk\u0142adnik={0}, obiekt={1}, warto\u015b\u0107={2}
xmlLibrary_error_process_wrong_container=Proces ''{0}'' nie ma poprawnego kontenera. Kontener jest typu ''{1}'', a nie jest to pakiet procesu.
xmlLibrary_new_id=Element {0} jest przypisany z nowym identyfikatorem {1}, poniewa\u017c nie ma poprawnego identyfikatora
xmlLibrary_id_not_unique=Identyfikator elementu ''{0}'' jest u\u017cywany przez wi\u0119cej ni\u017c jeden element

export_config_to_temp_location=Eksportuj konfiguracj\u0119 w po\u0142o\u017cenie tymczasowe
open_lib_from_temp_exported_location=Otw\u00f3rz bibliotek\u0119 wyeksportowan\u0105 w po\u0142o\u017cenie tymczasowe


