#
# Copyright (C) 2012 The Android Open Source Project
#
# Licensed 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.
#

GEN_Error=Error
GEN_Warning=Warning
GEN_Question=Question
EXC_SkinFramework_CreateIAndroidSkin=There was an internal error while loading the {0} skin.\nAn application restart may solve this problem, but if it recurs, you may need to reinstall MOTODEV Studio. 
WARN_SkinFramework_SkinNotInstalled=The skin named {0} is not installed.\nAlthough this does not prevent the Android emulator from working, this skin is not accessible.\nIf this error recurs, you may need to reinstall MOTODEV Studio.
WARN_SkinFramework_InvalidInstalledSkinsNotLoaded=Skin {0} is invalid and was not loaded.\nAlthough this does not prevent the Android emulator from working, this skin is not accessible.\nIf this error recurs, you may need to reinstall MOTODEV Studio.
ERR_SrcDestComposite_InvalidFillingBase=Errors were found. Check the following:\n{0}{1}
ERR_SrcDestComposite_InvalidFillingPhoneNumber=\n\t- In the phone number field, be sure you have entered only digits, with no additional symbols such as hyphens, parentheses, or spaces.
ERR_SrcDestComposite_InvalidFillingEmulator=\n\t- In the emulator list, be sure you have selected a running emulator.
UI_SrcDestComposite_OriginatingRunningEmulatorLabel=Originating Android Emulator : 
UI_SrcDestComposite_DestinationRunningEmulatorLabel=Destination Android Emulator :   
UI_SrcDestComposite_OriginatingPhoneNumberLabel=Originating Phone # : 
UI_SrcDestComposite_DestinationPhoneNumberLabel=Destination Phone # : 
EXC_AndroidEmulatorStarter_TimeoutWhileRunningProtocol=An error is preventing the Android Emulator from being displayed. \
	Some possible causes are:\n\t- The timeout interval is too short.  You may need to increase the timeout value on \
	the Android Virtual Device property page.\n\nSince the emulator is not fully functional, MOTODEV Studio is \
	aborting the emulator start process.
EXC_AndroidEmulatorStarter_EmulatorStartCanceled=Android Emulator start process canceled by user.
EXC_AndroidEmulatorReseter_ErrorWhilePerformingDeleteOperation=Reset operation could not be completed. Manually remove all \
	files, except config.ini and snapshots.img (if it exists), from {0} to complete the process. If you don't have the needed permissions, contact your system administrator.
EXC_AndroidEmulatorReseter_ErrorWhilePerformingDeleteSnapshotOperation=Reset operation could not be completed. Manually remove all \
	files, except config.ini from {0} to complete the process. If the snapshots.img file exists, replace it by {1}. If you don't have the needed permissions, contact your system administrator.
EXC_AndroidEmulatorReseter_ErrorWhilePerformingSnapshotCopyOperation=Error while resetting the snapshot file. Manually copy the file from {0} \
	to {1} to complete the process. If you don't have the needed permissions, contact your system administrator.	
EXC_AndroidEmulatorStarter_ProcessTerminated=The emulator process terminated unexpectedly:  
EXC_TimeoutWhileStarting=The timeout was reached while trying to start Android Emulator {0}. 
EXC_VncServerNotRunning=The VNC server is not running on {0}.\n{1}
EXC_CouldNotStartProtocol=Couldn't establish a connection to the Android emulator.
EXC_AndroidExceptionHandler_CannotRunStopService=The device instance could not be stopped.
EXC_AndroidLogicUtils_CannotStartProcess=It was not possible to start the emulator process. The instance start process will be aborted.
EXC_AndroidLogicUtils_DeviceIsOffline=The device is not online. 
ERR_AndroidEmulatorStarter_InstanceNullPointer=Android emulator was not defined. The operation will not be performed.
ERR_AndroidEmulatorStarter_NoLogicAvailableForStart=An error is preventing the Android emulator from being started. \
	Try reinstalling or updating MOTODEV Studio.
ERR_AndroidLogicPlugin_EmulatorStopped=The Android emulator process has unexpectedly stopped running. The instance {0} is now stopped.
ERR_AndroidLogicPlugin_InvalidTimeoutValue=Invalid timeout value: {0}
ERR_TransferFilesLogic_NotEnoughInformation=There is not enough information about the files being transferred to the emulator. 
INFO_ConnectVncLogic_UserCancelledVncServerStart=User canceled the execution of the VNC server!
QUESTION_AndroidEmulatorReseter_ConfirmationText=WARNING: Resetting the emulator(s) will delete all user-specific data, such as installed applications, custom files (such as user databases) and any customizations performed on the device(s).\n\nDo you want to proceed?
QUESTION_AndroidEmulatorStopper_StopEmulatorQuestion=Are you sure you want to stop "{0}"?
QUESTION_AndroidExceptionHandler_ImpossibleToReconnect=Cannot reconnect to the emulator. Do you want to retry?
MON_AndroidEmulatorStarter_ConnectingToEmulator=Connecting to Android emulator instance...
MON_AndroidEmulatorStopper_DisposingInstance=Disposing of the Android emulator instance
MON_AndroidEmulatorStopper_StopVm=Stopping the device instance. This may take a few minutes...
MON_AndroidEmulatorStarter_Canceling=Canceling
QUESTION_AndroidEmulatorReseter_Yes=Yes
QUESTION_AndroidEmulatorReseter_No=No
DPISCALECALCULATOR_Error_MonitorDpi=Monitor Dpi value should contain only digits
DPISCALECALCULATOR_Error_MonitorSize=Monitor Size should contain only digits and dots
DPISCALECALCULATOR_Error_ScreenSize=Screen size must contain only digits and dots
DPISCALECALCULATOR_MonitorDpi_Label=Monitor Screen Resolution
DPISCALECALCULATOR_MonitorDpiSize_Label=Based on Monitor Size (in)
DPISCALECALCULATOR_MonitorDpivalue_Label=Value (dpi)
DPISCALECALCULATOR_Regex_TwoDigits=\\d+(\\.\\d{1,2})*
DPISCALECALCULATOR_ResultGroup_Title=Result
DPISCALECALCULATOR_ResultMonitorDpi_Label=Resolution (dpi):
DPISCALECALCULATOR_ResultScale_Label=Scale:
DPISCALECALCULATOR_ScreenSize_Label=Device Screen Size(in) :
DPISCALECALCULATOR_Title=Screen Resolution / Scale Calculator
ERR_PropertiesMainComposite_MissingTimeoutValue=You must provide a timeout value
ERR_PropertiesMainComposite_TimeoutValueIsNotPositiveInteger=The timeout value must be a positive integer 
ERR_PropertiesMainComposite_MissingSDCardPath=You must provide a valid SD Card path
ERR_PropertiesMainComposite_MissingSDCardSize=You must provide the SD Card size
ERR_PropertiesMainComposite_SDCardPathIsNotValid=The SD Card path is not valid
ERR_PropertiesMainComposite_SDCardSizeIsNotPositiveInteger=The SD Card size must be greater than 9MB
INFO_InfoComposite_EmulatorDefinitionNotFound=The selected emulator type was not found.\
												The device was not created.\
												The default type has been selected instead.												
UI_General_BrowseButtonLabel=Browse...
UI_General_WizardTitle=New Android Virtual Device Instance
UI_PropertiesMainComposite_NameLabel=Name :
UI_PropertiesMainComposite_TimeoutLabel=Timeout (sec):
UI_PropertiesMainComposite_EmulatorWindowMode_GroupTitle=Internal Emulator Window
UI_PropertiesMainComposite_EmulatorWindowMode_NativeLabel=Show the native Emulator window within an Eclipse view (recommended)
UI_PropertiesMainComposite_EmulatorWindowMode_VncLabel=Use VNC to show the Emulator within an Eclipse view
UI_WizardMainPage_PageName=Enter Android Virtual Device Instance Main Information
UI_WizardStartupOptionsPage_PageMessage=Enter the startup options you want the Android Virtual Device instance to use.
UI_AndroidDeviceInstance_StopInstanceJob=Stop Device Instance
UI_DpiScale_Calculator=Calculate
UI_PropertiesMainComposite_TargetLabel=AVD Target :
UI_PropertiesMainComposite_SkinLabel=AVD Skin :
UI_PropertiesMainComposite_PathGroupTitle=AVD Path
UI_PropertiesMainComposite_PathLabel=AVD Path :
UI_PropertiesMainComposite_SDCardLabel=SD Card
UI_PropertiesMainComposite_SDCardNoneLabel=None
UI_PropertiesMainComposite_SDCardExistingLabel=Existing
UI_PropertiesMainComposite_SDCardNewLabel=New
UI_PropertiesMainComposite_SDCardPathLabel=SD Card Path :
UI_PropertiesMainComposite_SDCardSizeLabel=SD Card Size :
UI_PropertiesMainComposite_UseDefaultPath= Use default
ERR_PropertiesMainComposite_VmTargetEmpty=You must provide a target for the AVD
ERR_PropertiesMainComposite_VmSkinEmpty=You must provide a skin for the AVD
ERR_PropertiesMainComposite_VmPathInvalid=You must provide a valid and existing path for the AVD
ERR_PropertiesMainComposite_StartupOpt_NoQuotes=The value for {0} contains quotes, which are not allowed.
ERR_PropertiesMainComposite_StartupOpt_TextBlank=Provide a value for {0}.
ERR_PropertiesMainComposite_StartupOpt_NumberRequired=Provide a value for {0}.
ERR_PropertiesMainComposite_StartupOpt_NumberMustBeInteger=The value for {0} must be an integer.
ERR_PropertiesMainComposite_StartupOpt_NumberMustBePositiveInteger=The value for {0} must be a positive integer.
ERR_PropertiesMainComposite_StartupOpt_NumberIntRange=The value for {0} must be a value between {1} and {2}.
ERR_PropertiesMainComposite_StartupOpt_PathRequired=Provide a path for {0}.
ERR_PropertiesMainComposite_StartupOpt_PathDirNotExist=The directory specified for {0} doesn't exist. Specify a valid directory.
ERR_PropertiesMainComposite_StartupOpt_PathMustBeDir=Select a folder for {0}, not a file.
ERR_PropertiesMainComposite_StartupOpt_PathFileNotExist=The file specified for {0} doesn't exist. Specify a valid path. 
ERR_PropertiesMainComposite_StartupOpt_PathMustBeFile=Select a file for {0}, not a folder.
ERR_PropertiesMainComposite_StartupOpt_PathIncorrectFileType=The file specified for {0} is not a {1} file. Specify a valid path.
WizardMainPage_NO_SDK_CONFIGURED_MSG=Configure an SDK before creating an AVD.

UI_SdkSetup_CreateAVD_Title = Create AVD
UI_SdkSetup_CreateAVD_Message = A valid AVD (Android Virtual Device) was not detected. Do you want to create one?
EXC_General_CannotRunStopService=The instance could not be stopped automatically.
EXC_AncroidView_CannotRunMultipleStopServices=One or more instances could not be stopped automatically.
EXC_AndroidView_ErrorStartingScreens=There was an error while trying to refresh the emulator screen. \
	Restart the emulator to refresh the screen.
EXC_AbstractZoomHandler_InstanceNotFound=The currently displayed Android emulator instance is no longer \
	available.\nThe view is being closed to reflect this.
EXC_AndroidView_ViewNotFound=The Emulator view could not be accessed.\nThe requested operation will not \
	be performed. 
ERR_AndroidView_ProtocolImplementerNotSupported=The device instance is not using a communication protocol \
	supported by this viewer. The instance will be stopped. 
QUESTION_AndroidView_StopAllInstancesOnDisposeTitle=Close Android Emulator View
QUESTION_AndroidView_StopAllInstancesOnDisposeMessage=Do you wish to stop the running Android emulator \
	instances as well?
UI_AbstractAndroidView_StopInstanceJob=Stop Device
QUESTION_AbstractAndroidView_OpenViewForStartedEmulatorsTitle=Open Android Emulator View
QUESTION_AbstractAndroidView_OpenViewForStartedEmulatorsMessage=Do you wish to display the Android Virtual Device(s) within an Eclipse view?
QUESTION_RunningInstancesOnClose_Title = Running Android Virtual Devices
QUESTION_RunningInstancesOnClose_Text = There are Android Virtual Devices running. Do you want to stop them?
QUESTION_NativeWindow_LooseOriginalScale_Title = Start up arguments
QUESTION_NativeWindow_LooseOriginalScale_Text = By zooming the emulator image you will lose the scale options used to start the Android Virtual Device. Do you want to continue?
WARN_RunningInstancesOnClose_Linux_Title = Running Android Virtual Devices
WARN_RunningInstancesOnClose_Linux_Text = The running Android Virtual Devices will be stopped
UI_LayoutContributionItem_NoLayoutsAvailable=No layouts
ERR_CannotConnectToVNC=Could not establish a connection to emulator "{0}"	
EXC_AbstractAndroidView_ViewNotAccessibleProgramatically=The Android Emulator view could not be opened automatically. \
	Open it manually by selecting "Show View" from the "Window" menu.
ERR_StopEmulatorHandler_NotAnAndroidEmulator=The service is being run with a device instance that is not supported by the service. Aborting execution.
ERR_StartEmulatorHandler_NotAnAndroidEmulator=The service is being run with a device instance that is not supported by the service. Aborting execution.
ERR_AndroidSkinTranslator_ErrorReadingKeycodeFile=It was not possible to retrieve key-related data from the skin. It will not be possible to use the mouse in this session.
ERR_AndroidSkin_NoLayoutLoaded=No skin was loaded. Check if the skin assigned to the current AVD is available and not corrupted.
ERR_AndroidSkin_InvalidLayoutProvided=The provided layout name does not exist in the skin being used by the instance. The current operation is being aborted.
ERR_AndroidSkin_ProvidedSkinPathIsNotADirectory=The selected skin was not found. Check your AVD configuration and try again later.
ERR_LayoutFileParser_BracketsDoNotMatch=The skin layout file is corrupted. It is not possible to load this skin. It will not be possible to use the mouse in this session.
ERR_LayoutFileParser_LayoutFileCouldNotBeRead=The skin layout file could not be read. It is not possible to load this skin. It will not be possible to use the mouse in this session.
PropertiesMainComposite_ABITypeLabel=ABI Type:
PropertiesMainComposite_ProxySettings_CheckboxLabel=Use settings from Eclipse Network Settings
PropertiesMainComposite_ProxySettings_GroupTitle=Proxy Settings
PropertiesMainComposite_ProxySettings_LinkToPreference=<a>Configure network settings</a>
PropertiesMainComposite_SaveSnapshot=Save to snapshot on exit
PropertiesMainComposite_SDCard_Size_Invalid_Integer=The SD card size is not a valid integer.
PropertiesMainComposite_SnapshotSettings=Snapshot Settings
PropertiesMainComposite_startFromSnapshot=Launch emulator from snapshot
PropertiesMainComposite_UseSnapshot=Enable snapshot
RepairAvdHandler_AVD_NOT_REPAIRABLE=The selected AVD is not repairable.
RepairAvdHandler_Not_Android_Instance=Aborting repair service. This is not an Android Emulator instance...

ERR_PropertiesMainComposite_ABINotAvailable=You must select one ABI type to create an AVD. If none are available, use the Android SDK Manager to download the ABI system image.
StartupOptionsComposite_Error_Loading_Skin_Cant_Calculate_Scale=Could not read emulator skin. Calculating scale will not be possible.
