#-------------------------------------------------------------------------------
# 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=\u0418\u043c\u043f\u043e\u0440\u0442 EPF
providerName=Eclipse.org

# Import Wizard Category
importCategoryName=\u041c\u0435\u0442\u043e\u0434

# Import Library Configuration Wizard
importLibraryConfigurationWizardName=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438
importLibraryConfigurationWizardText=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.

# Import Method Plug-ins Wizard
importMethodPluginsWizardName=\u041c\u043e\u0434\u0443\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432
importMethodPluginsWizardText=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.



               
