///** @file
//  String definitions for Boot Maintenance Utility.
//
//  Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
//  This program and the accompanying materials
//  are licensed and made available under the terms and conditions of the BSD License
//  which accompanies this distribution.  The full text of the license may be found at
//  http://opensource.org/licenses/bsd-license.php
//  
//  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
//  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//  
//**/

/=#

#langdef   en-US "English"
#langdef   fr-FR "Français"

#string STR_NULL_STRING                #language en-US  " "
                                       #language fr-FR  " "
#string STR_NONE                       #language en-US  "NONE"
                                       #language fr-FR  "NONE"
#string STR_MISSING_STRING             #language en-US  "Missing String"
                                       #language fr-FR  "Missing String"
#string STR_FORM_MAIN_TITLE            #language en-US  "Boot Maintenance Manager"
                                       #language fr-FR  "Boot Maintenance Manager"
#string STR_FORM_BOOT_SETUP_TITLE      #language en-US  "Boot Options"
                                       #language fr-FR  "Boot Options"
#string STR_BOOT_MAINT_MANAGER_HELP    #language en-US  "This selection will take you to the Boot Maintenance Manager"
                                       #language fr-FR  "This selection will take you to the Boot Maintenance Manager"
#string STR_FORM_BOOT_SETUP_HELP       #language en-US  "Modify system boot options"
                                       #language fr-FR  "Modify system boot options"
#string STR_FORM_DRIVER_SETUP_TITLE    #language en-US  "Driver Options"
                                       #language fr-FR  "Driver Options"
#string STR_FORM_DRIVER_SETUP_HELP     #language en-US  "Modify boot driver options"
                                       #language fr-FR  "Modify boot driver options"
#string STR_FORM_BOOT_ADD_TITLE        #language en-US  "Add Boot Option"
                                       #language fr-FR  "Add Boot Option"
#string STR_FORM_BOOT_ADD_HELP         #language en-US  "Add EFI Application or Removable Fs as Boot Option"
                                       #language fr-FR  "Add EFI Application or Removable Fs as Boot Option"
#string STR_FORM_BOOT_DEL_TITLE        #language en-US  "Delete Boot Option"
                                       #language fr-FR  "Delete Boot Option"
#string STR_FORM_BOOT_IMMEDIATE_HELP   #language en-US  "Will be valid immediately"
                                       #language fr-FR  "Will be valid immediately"
#string STR_FORM_BOOT_CHG_TITLE        #language en-US  "Change Boot Order"
                                       #language fr-FR  "Change Boot Order"
#string STR_FORM_DRV_ADD_TITLE         #language en-US  "Add Driver Option"
                                       #language fr-FR  "Add Driver Option"
#string STR_FORM_DRV_ADD_HELP          #language en-US  "Add .EFI Driver as Driver Option"
                                       #language fr-FR  "Add .EFI Driver as Driver Option"
#string STR_FORM_DRV_DEL_TITLE         #language en-US  "Delete Driver Option"
                                       #language fr-FR  "Delete Driver Option"
#string STR_FORM_DRV_CHG_TITLE         #language en-US  "Change Driver Order"
                                       #language fr-FR  "Change Driver Order"
#string STR_FORM_NEXT_BOOT_HELP        #language en-US  "Will be valid on next boot"
                                       #language fr-FR  "Will be valid on next boot"
#string STR_FORM_BOOT_NEXT_TITLE       #language en-US  "Set Boot Next Value"
                                       #language fr-FR  "Set Boot Next Value"
#string STR_FORM_BOOT_NEXT_HELP        #language en-US  "Modify next boot behavior"
                                       #language fr-FR  "Modify next boot behavior"
#string STR_FORM_TIME_OUT_TITLE        #language en-US  "Set Time Out Value"
                                       #language fr-FR  "Set Time Out Value"
#string STR_FORM_TIME_OUT_HELP         #language en-US  "Modify automatic boot time-out value"
                                       #language fr-FR  "Modify automatic boot time-out value"
#string STR_FORM_MEMORY_CHECK_TITLE    #language en-US  "Set Memory Check Type"
                                       #language fr-FR  "Set Memory Check Type"
#string STR_FORM_MEMORY_CHECK_HELP     #language en-US  "Modify the type of memory checking"
                                       #language fr-FR  "Modify the type of memory checking"
#string STR_FORM_UEFI_OPTIMIZED_BOOT_TITLE #language en-US "UEFI Optimized Boot"
                                           #language fr-FR "UEFI Optimized Boot"
#string STR_FORM_UEFI_OPTIMIZED_BOOT_HELP  #language en-US "Modify the UEFI Optimized Boot setting"
                                           #language fr-FR "Modify the UEFI Optimized Boot setting"
#string UEFI_OPTIMIZED_BOOT_DESCRIPTION	   #language en-US "UEFI Optimized Boot"
                                           #language fr-FR "UEFI Optimized Boot"
#string UEFI_OPTIMIZED_BOOT_HELP	       #language en-US "Check to enable UEFI Optimized Boot"
                                           #language fr-FR "Check to enable UEFI Optimized Boot"
#string STR_FORM_CON_MAIN_TITLE        #language en-US  "Console Options"
                                       #language fr-FR  "Console Options"
#string STR_FORM_CON_MAIN_HELP         #language en-US  "Modify system console options"
                                       #language fr-FR  "Modify system console options"
#string STR_FORM_CON_IN_TITLE          #language en-US  "Console Input Device Select"
                                       #language fr-FR  "Console Input Device Select"
#string STR_FORM_CON_IN_HELP           #language en-US  "Enable console device as ConIn"
                                       #language fr-FR  "Enable console device as ConIn"
#string STR_FORM_SET_FD_ORDER_TITLE    #language en-US  "Set Legacy Floppy Drive Order"
                                       #language fr-FR  "Set Legacy Floppy Drive Order"
#string STR_FORM_SET_HD_ORDER_TITLE    #language en-US  "Set Legacy HardDisk Drive Order"
                                       #language fr-FR  "Set Legacy HardDisk Drive Order"
#string STR_FORM_SET_CD_ORDER_TITLE    #language en-US  "Set Legacy CD-ROM Drive Order"
                                       #language fr-FR  "Set Legacy CD-ROM Drive Order"
#string STR_FORM_SET_NET_ORDER_TITLE   #language en-US  "Set Legacy NET Drive Order"
                                       #language fr-FR  "Set Legacy NET Drive Order"
#string STR_FORM_SET_BEV_ORDER_TITLE   #language en-US  "Set Legacy BEV Drive Order"
                                       #language fr-FR  "Set Legacy BEV Drive Order"
#string STR_FORM_GOTO_SETTING          #language en-US  "Go Back To Setting Page"
                                       #language fr-FR  "Go Back To Setting Page"
#string STR_COM1                       #language en-US  "COM1"
                                       #language fr-FR  "COM1"
#string STR_COM2                       #language en-US  "COM2"
                                       #language fr-FR  "COM2"
#string STR_COM_AS_CONSOLE_OPTION      #language en-US  "Select this COM port as Console"
                                       #language fr-FR  "Select this COM port as Console"
#string STR_FORM_CON_OUT_TITLE         #language en-US  "Console Output Device Select"
                                       #language fr-FR  "Console Output Device Select"
#string STR_FORM_CON_OUT_HELP          #language en-US  "Enable console device as ConOut"
                                       #language fr-FR  "Enable console device as ConOut"
#string STR_FORM_STD_ERR_TITLE         #language en-US  "Console Standard Error Device Select"
                                       #language fr-FR  "Console Standard Error Device Select"
#string STR_FORM_STD_ERR_HELP          #language en-US  "Enable console device as StdErr"
                                       #language fr-FR  "Enable console device as StdErr"
#string STR_FORM_MODE_TITLE            #language en-US  "Console Output Mode Select"
                                       #language fr-FR  "Console Output Mode Select"
#string STR_FORM_MODE_HELP             #language en-US  "Select Console Output Mode: 80x25, 100x31, etc."
                                       #language fr-FR  "Select Console Output Mode: 80x25, 100x31, etc."
#string STR_FORM_COM_TITLE             #language en-US  "COM Attribute Setup Page"
                                       #language fr-FR  "COM Attribute Setup Page"
#string STR_FORM_COM_HELP              #language en-US  "Setup ComPort BaudRate, DataBits, StopBits, Parity and TerminalType"
                                       #language fr-FR  "Setup ComPort BaudRate, DataBits, StopBits, Parity and TerminalType"
#string STR_FORM_DRV_ADD_FILE_TITLE    #language en-US  "Add Driver Option Using File"
                                       #language fr-FR  "Add Driver Option Using File"
#string STR_FORM_DRV_ADD_HANDLE_TITLE  #language en-US  "Add Driver Option Using Handle"
                                       #language fr-FR  "Add Driver Option Using Handle"
#string STR_FORM_BOOT_ADD_DESC_TITLE   #language en-US  "Modify Boot Option Description"
                                       #language fr-FR  "Modify Boot Option Description"
#string STR_FORM_DRV_ADD_DESC_TITLE    #language en-US  "Modify Driver Option Description"
                                       #language fr-FR  "Modify Driver Option Description"
#string STR_NUM_AUTO_BOOT              #language en-US  "Auto Boot Time-out"
                                       #language fr-FR  "Auto Boot Time-out"
#string STR_HLP_AUTO_BOOT              #language en-US  "Range: 0 to 65535 seconds, 0 means no wait, 65535 means waiting for key"
                                       #language fr-FR  "Range: 0 to 65535 seconds, 0 means no wait, 65535 means waiting for key"
#string STR_BOOT_NEXT                  #language en-US  "Boot Next Value"
                                       #language fr-FR  "Boot Next Value"
#string STR_BOOT_NEXT_HELP             #language en-US  "Next boot use this boot option"
                                       #language fr-FR  "Next boot use this boot option"
#string STR_LOAD_OPTION_DEVPATH        #language en-US  "This is the devicepath"
                                       #language fr-FR  "This is the devicepath"
#string STR_LOAD_OPTION_DESC           #language en-US  "Input the description"
                                       #language fr-FR  "Input the description"
#string STR_LOAD_OPTION_ACTIVE         #language en-US  "Load Option Active"
                                       #language fr-FR  "Load Option Active"
#string STR_LOAD_OPTION_FORCE_RECON    #language en-US  "Load Option Reconnect"
                                       #language fr-FR  "Load Option Reconnect"
#string STR_SAVE_AND_EXIT              #language en-US  "Commit Changes and Exit"
                                       #language fr-FR  "Commit Changes and Exit"
#string STR_NO_SAVE_AND_EXIT           #language en-US  "Discard Changes and Exit"
                                       #language fr-FR  "Discard Changes and Exit"
#string STR_CON_IN_SETUP               #language en-US  "Set Console Input Device"
                                       #language fr-FR  "Set Console Input Device"
#string STR_CON_OUT_SETUP              #language en-US  "Set Console Output Device"
                                       #language fr-FR  "Set Console Output Device"
#string STR_CON_ERR_SETUP              #language en-US  "Set Error Output Device"
                                       #language fr-FR  "Set Error Output Device"
#string STR_CON_MODE_SETUP             #language en-US  "Set Console Output Mode"
                                       #language fr-FR  "Set Console Output Mode"
#string STR_CON_COM_SETUP              #language en-US  "Set COM Attributes"
                                       #language fr-FR  "Set COM Attributes"
#string STR_COM_TERMI_TYPE             #language en-US  "Set COM Terminal Type"
                                       #language fr-FR  "Set COM Terminal Type"
#string STR_COM_FLOW_CONTROL           #language en-US  "Set COM Flow Control"
                                       #language fr-FR  "Set COM Flow Control"
#string STR_COM_BAUD_RATE              #language en-US  "Set COM Baud Rate"
                                       #language fr-FR  "Set COM Baud Rate"
#string STR_COM_DATA_BITS              #language en-US  "Set COM Data Bits"
                                       #language fr-FR  "Set COM Data Bits"
#string STR_COM_PARITY                 #language en-US  "Set COM Parity"
                                       #language fr-FR  "Set COM Parity"
#string STR_COM_STOP_BITS              #language en-US  "Set COM Stop Bits"
                                       #language fr-FR  "Set COM Stop Bits"
#string STR_COM_BAUD_RATE_0            #language en-US  "115200"
                                       #language fr-FR  "115200"
#string STR_COM_BAUD_RATE_1            #language en-US  "57600"
                                       #language fr-FR  "57600"
#string STR_COM_BAUD_RATE_2            #language en-US  "38400"
                                       #language fr-FR  "38400"
#string STR_COM_BAUD_RATE_3            #language en-US  "19200"
                                       #language fr-FR  "19200"
#string STR_COM_BAUD_RATE_4            #language en-US  "9600"
                                       #language fr-FR  "9600"
#string STR_COM_BAUD_RATE_5            #language en-US  "7200"
                                       #language fr-FR  "7200"
#string STR_COM_BAUD_RATE_6            #language en-US  "4800"
                                       #language fr-FR  "4800"
#string STR_COM_BAUD_RATE_7            #language en-US  "3600"
                                       #language fr-FR  "3600"
#string STR_COM_BAUD_RATE_8            #language en-US  "2400"
                                       #language fr-FR  "2400"
#string STR_COM_BAUD_RATE_9            #language en-US  "2000"
                                       #language fr-FR  "2000"
#string STR_COM_BAUD_RATE_10           #language en-US  "1800"
                                       #language fr-FR  "1800"
#string STR_COM_BAUD_RATE_11           #language en-US  "1200"
                                       #language fr-FR  "1200"
#string STR_COM_BAUD_RATE_12           #language en-US  "600"
                                       #language fr-FR  "600"
#string STR_COM_BAUD_RATE_13           #language en-US  "300"
                                       #language fr-FR  "300"
#string STR_COM_BAUD_RATE_14           #language en-US  "150"
                                       #language fr-FR  "150"
#string STR_COM_BAUD_RATE_15           #language en-US  "134"
                                       #language fr-FR  "134"
#string STR_COM_BAUD_RATE_16           #language en-US  "110"
                                       #language fr-FR  "110"
#string STR_COM_BAUD_RATE_17           #language en-US  "75"
                                       #language fr-FR  "75"
#string STR_COM_BAUD_RATE_18           #language en-US  "50"
                                       #language fr-FR  "50"
#string STR_COM_DATA_BITS_0            #language en-US  "5"
                                       #language fr-FR  "5"
#string STR_COM_DATA_BITS_1            #language en-US  "6"
                                       #language fr-FR  "6"
#string STR_COM_DATA_BITS_2            #language en-US  "7"
                                       #language fr-FR  "7"
#string STR_COM_DATA_BITS_3            #language en-US  "8"
                                       #language fr-FR  "8"
#string STR_COM_PAR_0                  #language en-US  "None"
                                       #language fr-FR  "None"
#string STR_COM_PAR_1                  #language en-US  "Even"
                                       #language fr-FR  "Even"
#string STR_COM_PAR_2                  #language en-US  "Odd"
                                       #language fr-FR  "Odd"
#string STR_COM_PAR_3                  #language en-US  "Mark"
                                       #language fr-FR  "Mark"
#string STR_COM_PAR_4                  #language en-US  "Space"
                                       #language fr-FR  "Space"
#string STR_COM_STOP_BITS_0            #language en-US  "One"
                                       #language fr-FR  "One"
#string STR_COM_STOP_BITS_1            #language en-US  "One And A Half"
                                       #language fr-FR  "One And A Half"
#string STR_COM_STOP_BITS_2            #language en-US  "Two"
                                       #language fr-FR  "Two"
#string STR_COM_TYPE_0                 #language en-US  "PC_ANSI"
                                       #language fr-FR  "PC_ANSI"
#string STR_COM_TYPE_1                 #language en-US  "VT_100"
                                       #language fr-FR  "VT_100"
#string STR_COM_TYPE_2                 #language en-US  "VT_100_PLUS"
                                       #language fr-FR  "VT_100_PLUS"
#string STR_COM_TYPE_3                 #language en-US  "VT_UTF8"
                                       #language fr-FR  "VT_UTF8"
#string STR_COM_TYPE_4                 #language en-US  "TTY_TERM"
                                       #language fr-FR  "TTY_TERM"
#string STR_RESET                      #language en-US  "Reset System"
                                       #language fr-FR  "Reset System"
#string STR_FORM_GOTO_MAIN             #language en-US  "Go Back To Main Page"
                                       #language fr-FR  "Go Back To Main Page"
#string STR_BOOT_FROM_FILE             #language en-US  "Boot From File"
                                       #language fr-FR  "Boot From File"
#string STR_BOOT_FROM_FILE_HELP        #language en-US  "Boot system from a file or device"
                                       #language fr-FR  "Boot system from a file or device"
#string STR_OPTIONAL_DATA              #language en-US  "Input Optional Data"
                                       #language fr-FR  "Input Optional Data"
#string STR_CHANGE_ORDER               #language en-US  "Change the order"
                                       #language fr-FR  "Change the order"
#string STR_BOOT_LEGACY                #language en-US  "Boot Legacy System"
                                       #language fr-FR  "Boot Legacy System"
#string STR_BOOT_LEGACY_HELP           #language en-US  "Supports boot from legacy FD, HD, CD, PCMCIA, USB, and Network"
                                       #language fr-FR  "Supports boot from legacy FD, HD, CD, PCMCIA, USB, and Network"
#string STR_BOOT_LEGACY_FLOPPY         #language en-US  "Boot From Floppy"
                                       #language fr-FR  "Boot From Floppy"
#string STR_BOOT_LEGACY_HARDDRIVE      #language en-US  "Boot From Hard Drive"
                                       #language fr-FR  "Boot From Hard Drive"
#string STR_BOOT_LEGACY_CDROM          #language en-US  "Boot From CD Rom"
                                       #language fr-FR  "Boot From CD Rom"
#string STR_BOOT_LEGACY_PCMCIA         #language en-US  "Boot From PCMCIA"
                                       #language fr-FR  "Boot From PCMCIA"
#string STR_BOOT_LEGACY_USB            #language en-US  "Boot From USB Device"
                                       #language fr-FR  "Boot From USB Device"
#string STR_BOOT_LEGACY_NETWORK        #language en-US  "Boot From Network"
                                       #language fr-FR  "Boot From Network"
#string STR_DISABLE_LEGACY_DEVICE      #language en-US  "Disabled"
                                       #language fr-FR  "Disabled"
#string STR_FILE_EXPLORER_TITLE        #language en-US  "File Explorer"
                                       #language fr-FR  "File Explorer"
#string STR_OUT_OF_BAND_PORT           #language fr-FR  "Out-Of-Band Mgmt Port"
                                       #language en-US  "Out-Of-Band Mgmt Port"
#string STR_HARDWARE_FLOW_CONTROL      #language fr-FR  "Hardware"
                                       #language en-US  "Hardware"
#string STR_NONE_FLOW_CONTROL          #language fr-FR  "None"
                                       #language en-US  "None"
//
// BugBug : need someone to translate these strings to french
//
