///** @file
//
//  String definitions for the Device Manager.
//
//  Copyright (c) 2004 - 2017, 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_EDKII_MENU_TITLE           #language en-US  "Device Manager"
                                       #language fr-FR  "Device Manager"
#string STR_EDKII_MENU_HELP            #language en-US  "This selection will take you to the Device Manager"
                                       #language fr-FR  "This selection will take you to the Device Manager"
#string STR_DEVICES_LIST               #language en-US  "Devices List"
                                       #language fr-FR  "Devices List"
#string STR_DISK_DEVICE                #language en-US  "Disk Devices"
                                       #language fr-FR  "Disk Devices"
#string STR_VIDEO_DEVICE               #language en-US  "Video Devices"
                                       #language fr-FR  "Video Devices"
#string STR_NETWORK_DEVICE             #language en-US  "Network Devices"
                                       #language fr-FR  "Network Devices"
#string STR_INPUT_DEVICE               #language en-US  "Input Devices"
                                       #language fr-FR  "Input Devices"
#string STR_ON_BOARD_DEVICE            #language en-US  "Motherboard Devices"
                                       #language fr-FR  "Motherboard Devices"
#string STR_OTHER_DEVICE               #language en-US  "Other Devices"
                                       #language fr-FR  "Other Devices"
#string STR_MISSING_STRING             #language en-US  "Missing String"
                                       #language fr-FR  "Missing String"
#string STR_EMPTY_STRING               #language en-US  ""
                                       #language fr-FR  ""
#string STR_EXIT_STRING                #language en-US  "Press ESC to exit."
                                       #language fr-FR  "Press ESC to exit."
#string STR_FORM_NETWORK_DEVICE_TITLE_HEAD  #language en-US  "Network Device"
#string STR_FORM_NETWORK_DEVICE_TITLE       #language en-US  "Network Device"
                                       #language fr-FR  "Network Device"
#string STR_FORM_NETWORK_DEVICE_HELP   #language en-US  "Network Device Help..."
                                       #language fr-FR  "Network Device Help..."
#string STR_NETWORK_DEVICE_STRING      #language en-US  "Network Device"
                                       #language fr-FR  "Network Device"
#string STR_FORM_NETWORK_DEVICE_LIST_HELP   #language en-US  "Select the network device according the MAC address"
                                            #language fr-FR  "Select the network device according the MAC address"
#string STR_FORM_NETWORK_DEVICE_LIST_TITLE  #language en-US  "Network Device List"
                                            #language fr-FR  "Network Device List"
#string STR_NETWORK_DEVICE_LIST_STRING      #language en-US  "Network Device List"
                                            #language fr-FR  "Network Device List"
#string STR_NETWORK_DEVICE_HELP             #language en-US  "Network Device"
                                            #language fr-FR  "Network Device"
//
// Ensure that this is the last string.  We are using it programmatically
// to do string token re-usage settings for the Device Manager since we are
// constantly recreating this page based on HII population.
////
