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

# Plug-in
pluginName=Edycja biblioteki EPF
providerName=Eclipse.org

_UI_Content_group=Tre\u015b\u0107 metody

_UI_Disciplines_group=Dyscypliny
_UI_Domains_group=Domeny
_UI_WorkProductTypes_group=Typy produkt\u00f3w pracy
_UI_Role_Sets_group=Zestawy r\u00f3l
_UI_Tools_group=Narz\u0119dzia
_UI_Standard_Categories_group=Kategorie standardowe
_UI_Custom_Categories_group=Kategorie niestandardowe
_UI_MethodContent_group=Pakiety tre\u015bci
_UI_Categories_group=Kategorie

_UI_Processes_group=Procesy
_UI_PlanningTemplates_group=Szablony planowania

_UI_CapabilityPatterns_text=Wzorce mo\u017cliwo\u015bci
_UI_DeliveryProcesses_text=Procesy dostarczania
_UI_ProcessContributions_text=Procesy r\u00f3\u017cnicowe
_UI_PlanningTemplates_text=Szablony planowania

_UI_CapabilityPattern_text=Wzorzec mo\u017cliwo\u015bci
_UI_DeliveryProcess_text=Proces dostarczania
_UI_ProcessContribution_text=Proces r\u00f3\u017cnicowy

_UI_Configurations_text=Konfiguracje

_UI_ProcessFamilies_text=Rodziny proces\u00f3w

_UI_Uncategorized_text=Nieskategoryzowane
_UI_Uncategorized_Tasks_text=Nieskategoryzowane zadania
_UI_Uncategorized_Roles_text=Nieskategoryzowane role

_UI_Guidances_group=Wskaz\u00f3wki
_UI_Guidances_Checklists=Listy kontrolne
_UI_Guidances_Concepts=Poj\u0119cia
_UI_Guidances_Examples=Przyk\u0142ady
_UI_Guidances_EstimationConsiderations=Zagadnienia dotycz\u0105ce szacowania
_UI_Guidances_Practices=\u0106wiczenia
_UI_Guidances_Reports=Raporty
_UI_Guidances_ReusableAssets=Zasoby wielokrotnego u\u017cytku
_UI_Guidances_Roadmap=Przewodnik
_UI_Guidances_SupportingMaterials=Materia\u0142y pomocnicze
_UI_Guidances_Techniques=Techniki
_UI_Guidances_Templates=Szablony
_UI_Guidances_TermDefinitions=Definicje termin\u00f3w
_UI_Guidances_ToolMentors=Mentory narz\u0119dzi
_UI_Guidances_Whitepapers=Opracowania
_UI_Guidances_WorkProductGuidelines=Wytyczne
_UI_Key_Concepts=Kluczowe poj\u0119cia


_UI_Roles_group=Role
_UI_Tasks_group=Zadania
_UI_WorkProducts_group=Produkty pracy
_UI_Activities_group=Dzia\u0142ania

# Breakdown structure column display names
BS_Column_name=Nazwa
BS_Column_prefix=Przedrostek
BS_Column_id=Indeks
BS_Column_predecessors=Poprzednicy
BS_Column_is_repeatable=Powtarzalne
BS_Column_is_ongoing=Aktualne
BS_Column_is_event_driven=Sterowane zdarzeniami
BS_Column_entry_state=Stan wej\u015bciowy
BS_Column_exit_state=Stan wyj\u015bciowy
BS_Column_teams=Zesp\u00f3\u0142
BS_Column_type=Typ
BS_Column_model_info=Informacja o modelu
BS_Column_presentation_name=Nazwa prezentacji
BS_Column_deliverable=Produkt cz\u0105stkowy
BS_Column_is_optional=Opcjonalne
BS_Column_is_planned=Planowane
BS_Column_has_multiple_occurrences=Wielokrotne wyst\u0105pienia

