#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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=Exporta\u00e7\u00e3o EPF
providerName=Eclipse.org

# Perspective
packagingPerspectiveName=Empacotamento

# Category
packagingCategoryName=Empacotamento

# Views
packagingViewName=Biblioteca de M\u00e9todos de Empacotamento
packagingMessageViewName=Mensagem de Empacotamento de Biblioteca

# Action Set
packagingActionSet=Empacotamento

# Actions
newConfigAction=&Configura\u00e7\u00e3o
newConfigActionTooltip=Criar uma nova configura\u00e7\u00e3o de biblioteca
openConfigAction=&Configura\u00e7\u00e3o
openConfigActionTooltip=Abrir uma configura\u00e7\u00e3o de biblioteca existente

# Export Wizard Category
exportCategoryName=M\u00e9todo

# Export Library Configuration Wizard
exportLibraryConfigurationWizardName=Configura\u00e7\u00e3o de Biblioteca
exportLibraryConfiguration=Exportar uma configura\u00e7\u00e3o de biblioteca.

# Export Method Plug-ins Wizard
exportMethodPluginsWizardName=Plug-ins de M\u00e9todo
exportMethodPlugins=Exportar um ou mais plug-ins de m\u00e9todo.



               
