################################################################################
##
##  Licensed to the Apache Software Foundation (ASF) under one or more
##  contributor license agreements.  See the NOTICE file distributed with
##  this work for additional information regarding copyright ownership.
##  The ASF licenses this file to You under the Apache License, Version 2.0
##  (the "License"); you may not use this file except in compliance with
##  the License.  You may obtain a copy of the License at
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing, software
##  distributed under the License is distributed on an "AS IS" BASIS,
##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##  See the License for the specific language governing permissions and
##  limitations under the License.
##
################################################################################
ASK_BLAZEDS=Apache Flex can optionally integrate with remoting providers like BlazeDS, GraniteDS, WebORB, Red5, AMFPHP, RubyAMF, PyAMF and others. This feature requires flex-messaging-common.jar from the Adobe Flex SDK. The Adobe SDK license agreement for Adobe Flex 4.6 applies to this jar. This license is not compatible with the Apache V2 license. Do you want to install this jar from the Adobe Flex SDK?
ASK_FONTSWF=Apache Flex can optionally integrate with Adobe's embedded font support. This feature requires a few font jars from the Adobe Flex SDK. The Adobe SDK license agreement for Adobe Flex 4.6 applies to these jars. This license is not compatible with the Apache V2 license. Do you want to install these jars from the Adobe Flex SDK?
ASK_OSMF=The Open Source Media Framework (OSMF) used by the video components is licensed under the Mozilla Public License Version 1.1.  Do you want to install the Open Source Media Framework (OSMF)?
ASK_TLF=The Adobe Text Layout Framework (TLF) used by the Spark text components is licensed under the Mozilla Public License Version 1.1.  Do you want to install the Adobe Text Layout Framework (TLF)?
ASK_APACHE_FLEX=The Apache License V2 applies to the Apache Flex SDK.  Do you want to install the Apache Flex SDK?
ASK_ADOBE_AIR_SDK=The Adobe SDK license agreement applies to the Adobe AIR SDK.  Do you want to install the Adobe AIR SDK?
ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=The Adobe SDK license agreement applies to the Adobe Flash Player playerglobal.swc.  Do you want to install the Adobe Flash Player playerglobal.swc?
ASK_SWFOBJECT=The MIT License (MIT) applies to the SWFObject utility.  Do you want to install the SWFObject utility?
BTN_LABEL_ADOBE_LICENSE=SHOW ADOBE LICENSE
BTN_LABEL_BROWSE=BROWSE
BTN_LABEL_CLOSE=CLOSE
BTN_LABEL_COPY_LOG=COPY LOG
BTN_LABEL_INSTALL=INSTALL
BTN_LABEL_INSTALL_LOG=INSTALL LOG
BTN_LABEL_MPL_LICENSE=SHOW MPL LICENSE
BTN_LABEL_NEXT=NEXT
BTN_DISCLAIMER=Disclaimer
BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=OPEN APACHE FLEX FOLDER
ERROR_CONFIG_XML_LOAD=Error while trying to load XML configuration file: 
ERROR_DIR_NOT_EMPTY=The selected directory is not empty
ERROR_INVALID_AIR_SDK_URL_MAC=Adobe AIR SDK URL for Mac invalid in configuration file
ERROR_INVALID_AIR_SDK_URL_WINDOWS=Adobe AIR SDK URL for Windows invalid in configuration file
ERROR_INVALID_FLASH_PLAYER_SWC_URL=Flash Player swc URL invalid in configuration file
ERROR_INVALID_FLEX_SDK_DIRECTORY=Invalid Flex SDK directory selected
ERROR_INVALID_SDK_URL=Apache Flex SDK URL invalid in configuration file
ERROR_MIRROR_FETCH=Error while trying to fetch a mirror for downloading the Apache Flex SDK binaries: 
ERROR_NATIVE_PROCESS_ERROR=Native Process error unable to untar Adobe AIR SDK
ERROR_NATIVE_PROCESS_NOT_SUPPORTED=Native Process not supported. Unable to untar Adobe AIR SDK
ERROR_UNABLE_TO_COPY_FILE=Unable to copy file 
ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY=Unable to create temporary directory
ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY=Unable to clean up temporary installation directories
ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK=Unable to download Adobe AIR Runtime Kit
ERROR_UNABLE_TO_DOWNLOAD_FILE=Unable to download {0}
ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=Unable to download Flash Player swc
ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=Unable to download Apache Flex SDK
ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=Unable to install configuration files
ERROR_UNABLE_TO_UNZIP=Unable to unzip file: 
ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=Unable to download SWFObject
ERROR_UNSUPPORTED_OPERATING_SYSTEM=Unsupported operating system
ERROR_VERIFY_FLEX_SDK=The Apache Flex SDK MD5 Signature of the downloaded files does not match the reference value. The file is invalid, installation is aborted.
FETCH_GEO_IP=Trying to fetch the user's country code from the GeoIP service...
FETCH_GEO_IP_DONE=Fetched the user's country code from the GeoIP service.
FETCH_GEO_IP_ERROR=An error occurred while fetching the user's country code from the GeoIP service.
FETCH_MIRROR_CGI=Trying to fetch the SDK download mirror URL from the CGI...
FETCH_MIRROR_CGI_DONE=Fetched the SDK download mirror URL from the CGI.
FETCH_MIRROR_CGI_ERROR=Could not fetch the SDK download mirror URL from the CGI. Going to try the GeoIP route.
FETCH_MIRROR_LIST=Trying to fetch the mirror list from Apache.org...
FETCH_MIRROR_LIST_DONE=Fetched the mirror list from Apache.org.
FETCH_MIRROR_LIST_PARSED=Parsed the mirror list using the country code and got this domain: 
INFO_ABORT_INSTALLATION=Installation aborted
INFO_APP_INVOKED=Invoked in command line mode with the following arguments: 
INFO_CREATING_FLEX_HOME=Creating Apache Flex home
INFO_CREATING_TEMP_DIR=Creating temporary directory
INFO_CURRENT_LANGUAGE=Select Language
INFO_DOWNLOADING_ADOBE_FLEX_SDK=Downloading Adobe Flex SDK from: 
INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=Downloading Adobe AIR Runtime Kit for Mac from: 
INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=Downloading Adobe AIR Runtime Kit for Windows from: 
INFO_DOWNLOADING_FILE_FROM=Downloading {0} from: {1}
INFO_DOWNLOADING_FLEX_SDK=Downloading Apache Flex SDK from: 
INFO_DOWNLOADED=Download complete 
INFO_ENTER_VALID_FLEX_SDK_PATH=Please enter valid directory path for the Flex SDK
INFO_FINISHED_UNTARING=Finished untaring: 
INFO_FINISHED_UNZIPPING=Finished uncompressing: 
INFO_INSTALLATION_COMPLETE=Installation complete
INFO_INSTALLING=Installing...
INFO_INSTALLING_CONFIG_FILES=Installing frameworks configuration files configured for use with an IDE
INFO_INSTALLING_PLAYERGLOBAL_SWC=Installing Adobe Flash Player playerglobal.swc from: 
INFO_INVOKED_GUI_MODE=invoked in GUI mode
INFO_LICENSE_AGREEMENTS=License Agreements
INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=This installer will download software from multiple sites with various license agreements. Please click on each item on the left, read the license and confirm that you agree to the terms of each license by checking the checkbox next to it.
INFO_SELECT_AIR_FLASH_PLAYER=Select AIR and Flash Player versions.
INFO_SELECT_AIR=Select AIR version
INFO_SELECT_DIRECTORY=Select the directory where you want to install the Flex SDK
INFO_SELECT_DIRECTORY_INSTALL=Select installation directory
INFO_SELECT_FLASH=Select Flash Player version
INFO_SELECT_FLEX=Select Flex version
INFO_UNZIPPING=Uncompressing: 
INFO_VERIFY_FLEX_SDK_DONE=The Apache Flex SDK MD5 Signature of the downloaded files matches the reference. The file is valid.
INFO_WINDOW_TITLE=Install Apache Flex SDK {0} for use with your IDE
INSTALL_AGREE=I Agree, Install
INSTALL_AGREE_ALL=I agree to all options and licenses, Install
INSTALL_DISAGREE=I Disagree, Don't Install
SELECT_PATH_PROMPT=Where do you want to install the Apache Flex SDK?
STEP_SELECT_AIR_AND_FLASH_VERSION=Select AIR and Flash Player versions.
STEP_CREATE_DIRECTORIES=Create Directories
STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK=Apache Flex SDK (Required)
STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK=Adobe AIR SDK (Required)
STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC=Adobe Flash Player playerglobal.swc (Required)
STEP_REQUIRED_INSTALL_SWFOBJECT=SWFObject (Required)
STEP_INSTALL_CONFIG_FILES=Install Framework Configuration Files
STEP_REQUIRED_INSTALL_OSMF=OSMF (Required)
STEP_REQUIRED_INSTALL_TLF=Adobe Text Layout Framework (Required)
STEP_OPTIONAL_INSTALL_BLAZEDS=Remoting Support (Optional)
STEP_OPTIONAL_INSTALL_FONTSWF=Adobe Embedded Font Libraries and Utilities (Optional)
STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=Uncompress Adobe AIR Runtime Kit
STEP_UNZIP_AIR_RUNTIME_KIT=Uncompress Adobe AIR Runtime Kit
STEP_UNZIP_FLEX_SDK=Uncompress Apache Flex SDK
STEP_VERIFY_FLEX_SDK=Verifying Apache Flex SDK MD5 Signature
LICENSE_APACHE_V2=Apache V2 License
LICENSE_URL_APACHE_V2=http://www.apache.org/licenses/LICENSE-2.0.html
LICENSE_ADOBE_SDK=Adobe Flex SDK License
LICENSE_URL_ADOBE_SDK=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
LICENSE_ADOBE_AIR_SDK=Adobe AIR SDK License
LICENSE_URL_ADOBE_AIR_SDK=http://www.adobe.com/products/air/sdk-eula.html
LICENSE_SWFOBJECT=MIT License
LICENSE_URL_SWFOBJECT=http://opensource.org/licenses/mit-license.php
LICENSE_OSMF=Mozilla Public License Version 1.1
LICENSE_URL_OSMF=http://www.mozilla.org/MPL/
LICENSE_TLF=Mozilla Public License Version 1.1
LICENSE_URL_TLF=http://www.mozilla.org/MPL/
LICENSE_FONTSWF=Adobe Flex SDK License
LICENSE_URL_FONTSWF=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
LICENSE_BLAZEDS=Adobe Flex SDK License
LICENSE_URL_BLAZEDS=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
INFO_TRACKING=Anonymous usage statistics will be collected in accordance with our privacy policy.
INFO_VERSION=version
