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

# Import XML Wizard
importXMLWizard_title=Import pliku XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Okre\u015blenie pliku importu
selectXMLFilePage_desc=Podaj plik XML zawieraj\u0105cy tre\u015b\u0107 biblioteki metod do zaimportowania, a nast\u0119pnie wybierz odpowiedni\u0105 operacj\u0119 importu, kt\u00f3ra ma by\u0107 wykonana.
fileLabel_text=Plik XML:
browseButton_text=Przegl\u0105daj...
optionGroup_text=Opcja scalania
optionGroup1_text=Opcja sprawdzania wtyczki podstawowej
overwriteRadioButton_text=Przes\u0142o\u0144 istniej\u0105c\u0105 tre\u015b\u0107 biblioteki metod tre\u015bci\u0105 zaimportowan\u0105
mergeRadioButton_text=Scal zaimportowan\u0105 tre\u015b\u0107 w istniej\u0105cej bibliotece metod
mergeRadioButton2_text=Scal zaimportowan\u0105 tre\u015b\u0107 w istniej\u0105cej bibliotece metod (scalanie na poziomie element\u00f3w)

# Progress Messages
importingXML_text=Trwa importowanie tre\u015bci biblioteki XML do bie\u017c\u0105cej biblioteki metod...

# Import XML Error Dialog
review_log_files=Operacja importu zosta\u0142a zako\u0144czona. Przejrzyj pliki dziennika\nw folderze ''{0}'' pod k\u0105tem b\u0142\u0119d\u00f3w.
importXMLError_msg=IUPM0000E: Nie mo\u017cna kontynuowa\u0107 operacji importowania.
importXMLError_reason=IUPM0009E: Bie\u017c\u0105ca biblioteka metod jest tylko do odczytu.\n\nUpewnij si\u0119, \u017ce mo\u017cna zapisywa\u0107 w bibliotece metod ''{0}'' lub utw\u00f3rz now\u0105 bibliotek\u0119 metod i pon\u00f3w pr\u00f3b\u0119.

# Error Messages
invalidXMLFile_error=Podany plik XML jest niepoprawny.
versionMismatch_oldData=IUPM0010E: Podany plik XML zosta\u0142 wyeksportowany z poprzedniej wersji ({0}) programu {1}. Pliki musz\u0105 by\u0107 wyeksportowane z bie\u017c\u0105cej wersji programu {1}.
versionMismatch_oldData_unknown=IUPM0011E: Podany plik XML zosta\u0142 wyeksportowany z poprzedniej wersji programu {0}. Pliki musz\u0105 by\u0107 wyeksportowane z bie\u017c\u0105cej wersji programu {0}.
versionMismatch_oldTool=IUPM0012E: Podany plik zosta\u0142 wyeksportowany z nowszej wersji ({0}) programu {1}. Konieczna jest aktualizacja programu {1}, aby zaimportowa\u0107 ten plik.  
versionMismatch_oldTool_unknown=IUPM0013E: Nie mo\u017cna otworzy\u0107 podanego pliku XML. Konieczna jest aktualizacja programu {0}, aby zaimportowa\u0107 ten plik.  

importXMLService_element_not_handled=Nie obs\u0142u\u017cono elementu: {0}
importXMLService_element_without_id=Element bez identyfikatora: {0}
importXMLService_import_failed=Importowanie nie powiod\u0142o si\u0119: {0}
importXMLService_missing_plugin=Brak wymaganej wtyczki {0}
importXMLService_error_missing_plugins=Brak wymaganej wtyczki lub wtyczek. Sprawd\u017a szczeg\u00f3\u0142y w plikach dziennika.

library_error_no_eclass=B\u0142\u0105d podczas tworzenia obiektu ContentCategory: nie mo\u017cna pobra\u0107 klasy EClass dla {0}
library_no_package=Nie mo\u017cna znale\u017a\u0107 pakietu, do kt\u00f3rego nale\u017cy obiekt {0}
library_error_create_element=B\u0142\u0105d podczas tworzenia elementu: {0}
library_object_string=obiekt {0}, cecha {1}
library_error_set_attribute_2=B\u0142\u0105d podczas ustawiania atrybutu: niepoprawna warto\u015b\u0107 cechy atrybutu {0}
library_error_set_attribute=B\u0142\u0105d podczas ustawiania atrybutu dla danych: obiekt {0}, cecha {1} i warto\u015b\u0107 {2}
library_error_set_attribute_3=Nie wiadomo, jak ustawi\u0107 atrybut dla danych: obiekt {0} cecha {1} i warto\u015b\u0107 {2}
library_error_set_reference=B\u0142\u0105d podczas ustawiania odniesienia dla cechy {0}: brak elementu o identyfikatorze {1}
library_error_set_reference_2=B\u0142\u0105d podczas ustawiania odniesienia dla danych: obiekt {0}, cecha {1} i warto\u015b\u0107 {2}

