// *++
//
// 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.
//
// Module Name:
//
//   SetupBrowserStr.uni
//
// Abstract:
//
//   String definitions for Browser.
//
// --*/


/=#

#langdef en-US "English"
#langdef fr-FR "Français"

#string UNKNOWN_STRING                 #language en-US  "!"
                                       #language fr-FR  "!"
#string STATUS_BROWSER_ERROR           #language en-US  "Browser met some error, return!"
                                       #language fr-FR  "Browser met some error, return!"
#string STATUS_BROWSER_FORM_NOT_FOUND  #language en-US  "Form not found, return!"
                                       #language fr-FR  "Form not found, return!"
#string STATUS_BROWSER_NO_SUBMIT_IF    #language en-US  "Not allowed to submit, return!"
                                       #language fr-FR  "Not allowed to submit, return!"
#string FUNCTION_NINE_STRING           #language en-US  "F9=Reset to Defaults"
                                       #language fr-FR  "F9=Reset à Défauts"
#string FUNCTION_TEN_STRING            #language en-US  "F10=Save"
                                       #language fr-FR  "F10=Économiser"
#string SAVE_FAILED                    #language en-US  "Failed to Save"
                                       #language fr-FR  "Échouer à économiser"
#string NO_SUBMIT_IF_CHECK_FAILED      #language en-US  "NO_SUBMIT_IF check fail."
                                       #language fr-FR  "NO_SUBMIT_IF check fail."
#string ADJUST_HELP_PAGE_DOWN          #language en-US  "More (D/d)"
                                       #language fr-FR  "More (D/d)"
#string ADJUST_HELP_PAGE_UP            #language en-US  "More (U/u)"
                                       #language fr-FR  "More (U/u)"
#string PROMPT_FOR_PASSWORD            #language en-US  "Please type in your password"
                                       #language fr-FR  "S'il vous plaît tape votre mot de passe"
#string PROMPT_FOR_NEW_PASSWORD        #language en-US  "Please type in your new password"
                                       #language fr-FR  "S'il vous plaît tape votre nouveau mot de passe"
#string CONFIRM_PASSWORD               #language en-US  "Please confirm your new password"
                                       #language fr-FR  "S'il vous plaît confirmer votre nouveau mot de passe"
#string CONFIRM_ERROR                  #language en-US  "Passwords are not the same"
                                       #language fr-FR  "Les mots de passe ne sont pas pareils"
#string PASSWORD_INVALID               #language en-US  "Incorrect password"
                                       #language fr-FR  "Mauvais mot de passe"
#string PRESS_ENTER                    #language en-US  "Press ENTER to continue"
                                       #language fr-FR  "La presse ENTRE continuer"
#string PROMPT_FOR_DATA                #language en-US  "Please type in your data"
                                       #language fr-FR  "S'il vous plaît tape vos données"
#string EMPTY_STRING                   #language en-US  ""
                                       #language fr-FR  ""
#string MINI_STRING                    #language en-US  "Please enter enough characters"
                                       #language fr-FR  "Veuillez écrire assez de caractères"
#string OPTION_MISMATCH                #language en-US  "Question value mismatch with Option value!"
                                       #language fr-FR  "Question valeur décalage avec l'option valeur!"
#string FORM_SUPPRESSED                #language en-US  "Form is suppressed. Nothing is displayed."
                                       #language fr-FR  "Form is suppressed. Nothing is displayed."
#string PROTOCOL_NOT_FOUND             #language en-US  "Convert string to device path fail. Can't goto the destination."
                                       #language fr-FR  "Convert string to device path fail. Can't goto the destination."
#string DISCARD_OR_JUMP                #language en-US  "Press D(d) to discard changes for this form, Press G(g) to go to this form"
                                       #language fr-FR  "Press D(d) to discard changes for this form, Press G(g) to go to this form"
#string DISCARD_OR_JUMP_DISCARD        #language en-US  "D (d)"
                                       #language fr-FR  "D (d)"
#string DISCARD_OR_JUMP_JUMP           #language en-US  "G (g)"
                                       #language fr-FR  "G (g)"
#string DISCARD_OR_CHECK               #language en-US  "Press D(d) to discard changes for this form, Press C(c) to check the error"
                                       #language fr-FR  "Press D(d) to discard changes for this form, Press C(c) to check the error"
#string DISCARD_OR_CHECK_CHECK         #language en-US  "C (c)"
                                       #language fr-FR  "C (c)"
#string CONFIRM_DISCARD_MESSAGE        #language en-US  "Discard configuration changes"
                                       #language fr-FR  "Discard configuration changes"
#string CONFIRM_DEFAULT_MESSAGE        #language en-US  "Load default configuration"
                                       #language fr-FR  "Load default configuration"
#string CONFIRM_DEFAULT_MESSAGE_2ND    #language en-US  "load default configuration"
                                       #language fr-FR  "load default configuration"
#string CONFIRM_SUBMIT_MESSAGE         #language en-US  "Save configuration changes"
                                       #language fr-FR  "Save configuration changes"
#string CONFIRM_SUBMIT_MESSAGE_2ND     #language en-US  "save configuration changes"
                                       #language fr-FR  "save configuration changes"
#string CONFIRM_RESET_MESSAGE          #language en-US  "Reset"
                                       #language fr-FR  "Reset"
#string CONFIRM_RESET_MESSAGE_2ND      #language en-US  "reset"
                                       #language fr-FR  "reset"
#string CONFIRM_EXIT_MESSAGE           #language en-US  "Exit"
                                       #language fr-FR  "Exit"
#string CONFIRM_EXIT_MESSAGE_2ND       #language en-US  "exit"
                                       #language fr-FR  "exit"
#string CONFIRM_OPTION                 #language en-US  "Press 'Y' to confirm, 'N'/'ESC' to ignore."
                                       #language fr-FR  "Press 'Y' to confirm, 'N'/'ESC' to ignore."
#string CONFIRM_OPTION_YES             #language en-US  "Y (y)"
                                       #language fr-FR  "Y (y)"
#string CONFIRM_OPTION_NO              #language en-US  "N (n)"
                                       #language fr-FR  "N (n)"
#string CONFIRM_OPTION_OK              #language en-US  "O (o)"
                                       #language fr-FR  "O (o)"
#string CONFIRM_OPTION_CANCEL          #language en-US  "C (c)"
                                       #language fr-FR  "C (c)"
#string CONFIRM_OPTION_CONNECT         #language en-US  " and "
                                       #language fr-FR  " and "
#string CONFIRM_OPTION_END             #language en-US  "?"
                                       #language fr-FR  "?"
#string RECONNECT_FAILED               #language en-US  "Reconnect the controller failed!"
                                       #language fr-FR  "Reconnect the controller failed!"
#string RECONNECT_CONFIRM_CHANGES      #language en-US  "Reconnect is required, confirm the changes then exit and reconnect"
                                       #language fr-FR  "Reconnect is required, confirm the changes then exit and reconnect"
#string RECONNECT_CHANGES_OPTIONS      #language en-US  "Press 'Y' to save, 'N' to discard"
                                       #language fr-FR  "Press 'Y' to save, 'N' to discard"
#string RECONNECT_REQUIRED             #language en-US  "Reconnect is required, exit and reconnect"
                                       #language fr-FR  "Reconnect is required, exit and reconnect"
#string GET_TIME_FAIL                  #language en-US  " Get date/time fail, display ??."
                                       #language fr-FR  " Get data/time fail, display ??."
#string PASSWORD_NOT_SUPPORTED         #language en-US  "Unsupported! Because no interactieve flag or no ConfigAccess protocol!"
                                       #language fr-FR  "Unsupported! Because no interactieve flag or no ConfigAccess protocol!"
#string OK_SELECTABLE_OPTION           #language en-US  "[ Ok ]"
                                       #language fr-FR  "[ Ok ]"
#string CANCEL_SELECTABLE_OPTION       #language en-US  "[Cancel]"
                                       #language fr-FR  "[Cancel]"
#string YES_SELECTABLE_OPTION          #language en-US  "[ Yes ]"
                                       #language fr-FR  "[ Yes ]"
#string NO_SELECTABLE_OPTION           #language en-US  "[ No ]"
                                       #language fr-FR  "[ No ]"
#string ERROR_POPUP_STRING             #language en-US  "ERROR"
                                       #language fr-FR  "ERROR"
#string WARNING_POPUP_STRING           #language en-US  "WARNING"
                                       #language fr-FR  "WARNING"
#string INFO_POPUP_STRING              #language en-US  "INFO"
                                       #language fr-FR  "INFO"

