###############################################################################
# Copyright (c) 2007, 2008 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
###############################################################################
#flash
flash_element_found={0} item(s) found
flash_error_no_element=No items found
flash_filter_noninformative=&Filter Non-informative Items
flash_flash_dom=Flash DOM
flash_show_visual=Show &Visuall Structure
flash_debugMode=Show &All Information (Debug Mode)
flash_scanWindowless=&Scan Windowless Flash (Debug Mode)
flash_error_no_location=No Location
flash_error_select_flash=Please select Flash Item
flash_warning=Warning
#debug message : no need to translate
flash_error_target_length=Error: target level {0}

