///** @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_MEMORY_CHECK_SETUP         #language en-US  "Memory Check Type"
                                       #language fr-FR  "Memory Check Type"
#string STR_MEMORY_CHECK_SETUP_HELP    #language en-US  "Memory test coverage level. Ignore chooses not to test memory. Quick and Sparse test some memory, and Extensive performs a detailed memory test."
                                       #language fr-FR  "Memory test coverage level. Ignore chooses not to test memory. Quick and Sparse test some memory, and Extensive performs a detailed memory test."
#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
//
