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

# Import Library Configuration Wizard
importConfigWizard_title=Importowanie konfiguracji biblioteki
selectConfigDirWizardPage_title=Okre\u015blanie katalogu importu
selectConfigDirWizardPage_text=Okre\u015bl katalog zawieraj\u0105cy konfiguracj\u0119 biblioteki do zaimportowania.
reviewChangesWizardPage_title=Przegl\u0105danie zmian w bibliotece
reviewChangesWizardPage_text=Przejrzyj zmiany, kt\u00f3re zostan\u0105 wprowadzone w bie\u017c\u0105cej bibliotece metod.
selectConfigSpecsWizardPage_title=Wyb\u00f3r specyfikacji konfiguracji
selectConfigSpecsWizardPage_text=Wybierz jedn\u0105 lub wi\u0119cej specyfikacji konfiguracji metod do zaimportowania.

# Import Method Plug-ins Wizard
importPluginsWizard_title=Importowanie wtyczek metod
selectPluginsDirWizardPage_title=Okre\u015blanie katalogu importu
selectPluginsDirWizardPage_text=Okre\u015bl katalog zawieraj\u0105cy wtyczki metod do zaimportowania.
selectPluginsWizardPage_title=Wyb\u00f3r wtyczek metod
selectPluginsWizardPage_text=Wybierz jedn\u0105 lub wi\u0119cej wtyczek metod do zaimportowania. Je\u015bli wybrana wtyczka ju\u017c istnieje w bie\u017c\u0105cej bibliotece metod, sprawd\u017a r\u00f3\u017cnice wersji.
importPluginsWizard_ERR_Import_plugin=Importowanie wtyczki nie powiod\u0142o si\u0119

ConfigurationImportService_MSG0=Sprawdzanie poprawno\u015bci wybranej konfiguracji biblioteki...
ConfigurationImportService_MSG1=Podany katalog nie zawiera poprawnej konfiguracji.
ConfigurationImportService_MSG3=Importowanie konfiguracji metody...
ConfigurationImportService_MSG2=Nie mo\u017cna zaimportowa\u0107 obecnie otwartej biblioteki do niej samej.
ImportConfigurationWizard_MSG1=Importowanie konfiguracji metody...
ImportConfigurationWizard_ERR_Import_configuration=Importowanie konfiguracji nie powiod\u0142o si\u0119

FileModifyChecker_Checkout_failed_title=Pobieranie nie powiod\u0142o si\u0119
FileModifyChecker_Checkout_failed_msg=Niekt\u00f3re pliki nie zosta\u0142y pobrane, czy chcesz spr\u00f3bowa\u0107 ponownie?

ImportConfigReportPage_title=Raport importowania konfiguracji
ImportPluginWizard_readonly=IUPE0201E: Biblioteka jest tylko do odczytu.
ImportPluginWizard_MSG1=Importowanie wtyczki metody...
ImportPluginWizard_error=B\u0142\u0105d
ImportPluginWizard_warn_existing_plugins=IUPE0200E: Nast\u0119puj\u0105ce wybrane wtyczki ju\u017c istniej\u0105 i ponowne ich zaimportowanie nadpisze istniej\u0105ce:\n\n {0} \n\nCzy na pewno kontynuowa\u0107?
ImportPluginWizard_confirm_continue=\n\nCzy na pewno kontynuowa\u0107?
ImportPluginWizard_warn_circular_plugins=Wykryto odniesienia cykliczne mi\u0119dzy nast\u0119puj\u0105cymi wtyczkami

SelectConfigsToImport_label1=Zostan\u0105 zaimportowane nast\u0119puj\u0105ce elementy:
ImportConfigurationWizard_error=B\u0142\u0105d
SelectImportConfigurationSource_MSG1=Analizowanie
SelectConfigSpecsToImportPage_title2=Wyb\u00f3r specyfikacji konfiguracji do zaimportowania
SelectImportPluginSource_not_used=nieu\u017cywane
SelectImportPluginSource_no_path=Wskazany katalog nie istnieje.
SelectImportPluginSource_no_dir=Nie okre\u015blono katalogu
SelectPluginsToImport_label_plugins=Wtyczki dost\u0119pne w katalogu importu:
SelectPluginsToImport_label_author=Autor:
SelectPluginsToImport_label_version=Wersja:
SelectPluginsToImport_label_desc=Kr\u00f3tki opis:
ImportConfigurationWizard_readonly=IUPE0201E: Biblioteka jest tylko do odczytu.
PluginImportingService_MSG0=Sprawdzanie poprawno\u015bci wybranych wtyczek...
PluginImportingService_MSG1=Podana \u015bcie\u017cka nie zawiera poprawnej wtyczki metody.
PluginImportingService_MSG3=Importowanie wtyczki metody...
PluginImportingService_MSG5=Nie mo\u017cna zaimportowa\u0107 wybranej wtyczki metody. Nie mo\u017cna znale\u017a\u0107 zale\u017cnej od niej wtyczki ''{0}'' w bie\u017c\u0105cej bibliotece metod.
PluginImportingService_MSG6=Nie mo\u017cna zaimportowa\u0107 wybranej wtyczki metody. Nie mo\u017cna znale\u017a\u0107 wtyczki zale\u017cnej w bie\u017c\u0105cej bibliotece metod.
DiffReportViewer_content=Tre\u015b\u0107
DiffReportViewer_in_import=W imporcie
SelectPluginsToImport_MSG1=Trwa analizowanie plik\u00f3w...
DiffReportLabelProvider_yes=Tak
SelectPluginsToImport_error=B\u0142\u0105d
DiffReportViewer_in_lib=W bibliotece
DiffReportViewer_status=Status
SelectPluginsToImport_libraryPluginExists=Znaleziono wybran\u0105 wtyczk\u0119 w bie\u017c\u0105cej bibliotece
SelectPluginsToImport_libraryPluginNotExists=Nie znaleziono wybranej wtyczki w bie\u017c\u0105cej bibliotece
SelectConfigSpecsToImportPage_libraryConfigSpecExists=Znaleziono konfiguracj\u0119 w bie\u017c\u0105cej bibliotece
SelectConfigSpecsToImportPage_configSpecNoSelection=Nie wybrano specyfikacji konfiguracji.
SelectConfigSpecsToImportPage_configSpecDataLabel=Wybrana konfiguracja w katalogu importu
SelectConfigSpecsToImportPage_label_configs=Specyfikacje konfiguracji dost\u0119pne w katalogu importu:
SelectImportConfigurationSource_not_used=nieu\u017cywane
SelectConfigSpecsToImportPage_label_desc=Kr\u00f3tki opis:
SelectImportConfigurationSource_no_path=Podana \u015bcie\u017cka nie istnieje.
SelectPluginsToImport_pluginNoSelection=Nie wybrano wtyczki.
SelectImportConfigurationSource_no_dir=Nie podano katalogu
SelectImportConfigurationSource_plugin_readonly=Wtyczka {0} jest tylko do odczytu\n
SelectImportConfigurationSource_plugin_locked=IUPE0203E: Wtyczka {0} jest zablokowana\n
SelectImportConfigurationSource_error_not_updatable=Wtyczka lub wtyczki w bibliotece s\u0105 zablokowane lub tylko do odczytu.\nNale\u017cy je odblokowa\u0107 i upewni\u0107 si\u0119, \u017ce pliki mo\u017cna aktualizowa\u0107.
SelectPluginsToImport_pluginDataLabel=Wybrana wtyczka w katalogu importu
DiffReportViewer_type=Typ tre\u015bci
SelectConfigSpecsToImportPage_libraryConfigSpecNotExists=W bie\u017c\u0105cej bibliotece nie znaleziono wybranej konfiguracji.
versionMismatch_oldData=IUPE0204E: Podane pliki zosta\u0142y wyeksportowane w poprzedniej wersji ({0}) programu {1}. Pliki musz\u0105 by\u0107 wyeksportowane w bie\u017c\u0105cej wersji programu {1}.
versionMismatch_oldData_unknown=IUPE0205E: Podane pliki zosta\u0142y wyeksportowane w poprzedniej wersji programu {0}. Pliki musz\u0105 by\u0107 wyeksportowane w bie\u017c\u0105cej wersji programu {0}.
versionMismatch_oldTool=IUPE0206E: Podane pliki zosta\u0142y wyeksportowane w nowszej wersji ({0}) programu {1}. Konieczna jest aktualizacja programu {1}, aby zaimportowa\u0107 te pliki. 
versionMismatch_oldTool_unknown=IUPE0207E: Nie mo\u017cna otworzy\u0107 podanych plik\u00f3w. Konieczna jest aktualizacja programu {0}, aby zaimportowa\u0107 te pliki.
ConfigurationImportService_handleToolVersion_error=IUPE0208E: Nie powiod\u0142a si\u0119 aktualizacja wtyczki lub wtyczek.
optionGroup_text=Opcja importu
checkBaseRadioButton_text=Sprawd\u017a wtyczki podstawowe
ignoreRemoveRadioButton_text=Zignoruj i usu\u0144 nierozwi\u0105zane odniesienia
