###############################################################################
# Copyright (c) 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
###############################################################################

#do not translate the following messages
NO_DELETE=|gif|jpg|jpeg|png|bmp|ico|pdf|txt|text|doc|xls|ppt|htm|html|shtml|jsp|asp|php|hta|htc|ashx|xml|css|js|vb|vbs|vbx|au|avi|mp3|aif|aiff|asf|asx|wm|wmv|wma|mid|exe|cab|zip|flv|
#Specify url extensions to be bypassed. This is for debug purpose only.
NO_PROXY=

#translate the following messages
proxy.clear_tip=Clear Logs
proxy.clear=Clear
proxy.source=Source
proxy.global=System global
proxy.time=Time
proxy.type=Use HTTP Proxy For:
proxy.none=None
proxy.show_fine=Show trace logs
proxy.message=Message
proxy.copy=&Copy

proxy.swfmethod=SWF bridge method:
proxy.swfmethod.none=Do nothing.
proxy.swfmethod.bootloader=Use an SWF bootloader.
proxy.swfmethod.transcoder=Transcode incoming SWFs.

proxy.pref_description=HTTP Proxy settings
proxy.deleting_cache=Deleting internet cache ...
proxy.session=This session only
proxy.swf_version=Minimum SWF version to be handled:
proxy.timeout=Timeout (seconds):
proxy.port=Port (1-65535, 0=Automatic):

proxy.dialog.text=Clear Internet Cache Dialog
proxy.dialog.ok=OK
proxy.cache_clear=Internet Cache Clear

proxy.cache_confirmation1=will delete your Internet cache of Flash content\nto access the Flash content.
proxy.cache_clear_when_startup_and_cache_clear=Clear Internet cache without comfirming (recommended)
proxy.confirm_and_cache_clear=Clear Internet cache for this time
proxy.confirm_and_no_operation=Do not clear the cache (Flash functionality would not work!)

proxy.cache_clear_when_startup=Clear without confirming
proxy.confirm_cache_clear=Confirm before clear
proxy.no_cache_clear=Never clear the cache
