#-------------------------------------------------------------------------------
# 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
providerName=Eclipse.org
pluginName=Edycja biblioteki EPF

_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=Procedury
_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
_UI_UdtElements_group=Typy zdefiniowane przez u\u017cytkownika

# 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

