###############################################################################
# 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 API and implementation
# yyyymmdd bug      Email and other contact information
# -------- -------- -----------------------------------------------------------
# 20070201   154100 pmoogk@ca.ibm.com - Peter Moogk, Port internet code from WTP to Eclipse base.
###############################################################################

#
# Messages in plugin.xml.
#
PLUGIN_NAME=Internet Connection Management UI
PLUGIN_PROVIDER=Eclipse.org
PLUGIN_INTERNET_PREFERENCE_TITLE=Network Connections
PreferenceKeywords.PROXY=proxy,http,https,socks,ssl,network
