// *++
//
// Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// 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"

