// *++
  //
// Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
// (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Module Name:
//
//   VfrStrings.vfr
//
// Abstract:
//
//   String definitions for Sample Setup formset.
//
// Revision History:
//
// --*/


/=#

#langdef en-US  "English"
#langdef fr-FR  "Francais"
#langdef x-UEFI-ns "UefiNameSpace"


#string STR_FORM_SET_TITLE             #language en-US "Browser Testcase Engine"
                                       #language fr-FR "Browser Testcase Engine"
#string STR_FORM_SET_TITLE_HELP        #language en-US "This is a sample driver which is used to test the browser op-code operations.  This is for development purposes and not to be distributed in any form other than a test application.  Here is a set of wide \wideAAAAAAAAA\narrow and narrow AAA!"
                                       #language fr-FR "This is a sample driver which is used to test the browser op-code operations.  This is for development purposes and not to be distributed in any form other than a test application.  Here is a set of wide \wideAAAAAAAAA\narrow and narrow AAA!"
#string STR_FORM1_TITLE                #language en-US "My First Setup Page"
                                       #language fr-FR "Mi Primero Arreglo Página"
#string STR_FORM2_TITLE                #language en-US "My Second Setup Page"
                                       #language fr-FR "Mi Segunda Paginación De la Disposición"
#string STR_FORM3_TITLE                #language en-US "My Third Setup Page"
                                       #language fr-FR "Mi Tercera Paginación De la Disposición"
#string STR_FORM6_TITLE                #language en-US "My Sixth Setup Page"
                                       #language fr-FR "My Sixth Setup Page"
#string STR_DYNAMIC_TITLE              #language en-US "My Dynamic Page"
                                       #language fr-FR "My Dynamic Page Spanish"
#string STR_SUBTITLE_TEXT              #language en-US "My subtitle text"
                                       #language fr-FR "Mi texto del subtítulo"
#string STR_SUBTITLE_TEXT2             #language en-US " "
                                       #language fr-FR " "
#string STR_CPU_STRING                 #language en-US "My CPU Speed is "
                                       #language fr-FR "My CPU Speed is "
#string STR_CPU_STRING2                #language en-US " "
                                       #language fr-FR " "
#string STR_NUMERIC_NUM_PROMPT         #language en-US "Please select the number"
                                       #language fr-FR "Please select the number"
#string STR_NUMERIC_NUM_HELP           #language en-US "Check the input number, test the efi buffer varstore"
                                       #language fr-FR "Check the input number, test the efi buffer varstore"
#string STR_ONE_OF_PROMPT              #language en-US "My one-of prompt #1"
                                       #language fr-FR "Mi uno- de guía # 1"
#string STR_ONE_OF_PROMPT_KEYWORD      #language en-US "My Keyword Namespace Test"
                                       #language fr-FR "My Keyword Namespace Test"
                                       #language x-UEFI-ns "iSCSIBootEnable"
#string STR_CHECK_KEYWORD_SUPPORT      #language en-US "Check iSCSI Boot Enable"
                                       #language fr-FR "Check iSCSI Boot Enable"
#string STR_ONE_OF_PROMPT_X_UEFI       #language en-US "x-UEFI HII Option"
                                       #language fr-FR "x-UEFI HII Option"
                                       #language x-UEFI-ns "xUefiHiiOption"
#string STR_ONE_OF_PROMPT_X_UEFI_HELP  #language en-US "This is an HII option which has REST_STYLE flag and x-UEFI namespace UNI string associated. This HII option could be configured by either in-band edk2 setup browser or the remote management in out-of-band such as Redfish service. This HII option is configured through EFI_KEYWORD_HANDLER_PROTOCOL."
#string STR_ONE_OF_PROMPT_NON_X_UEFI       #language en-US "Non x-UEFI HII Option"
                                           #language fr-FR "Non x-UEFI HII Option"
#string STR_ONE_OF_PROMPT_NON_X_UEFI_HELP  #language en-US "This is a HII option which has REST_STYLE flag but without the x-UEFI namespace UNI string associated. This HII option could be configured by either setup browser or the remote management in out-of-band such as Redfish service. This HII option is configured through EFI HII Configuration Routing Protocol becasue it doesn't have x-UEFI namespace UNI string."
#string STR_ONE_OF_HELP                #language en-US "My one-of help is going to be a long string to test out the efficiency of the ability of the I am tired of typing capabilities"
                                       #language fr-FR "Mi uno- de ayuda va a ser una cadena larga a probar fuera de la eficacia de la capacidad del yo es cansada de capacidades el pulsar."
#string STR_ONE_OF_TEXT1               #language en-US "My one-of text #1"
                                       #language fr-FR "Mi uno- del texto # 1"
#string STR_ONE_OF_TEXT2               #language en-US "My one-of text #2"
                                       #language fr-FR "Mi uno- del texto # 2"
#string STR_ONE_OF_TEXT3               #language en-US "My one-of text #3"
                                       #language fr-FR "Mi uno- del texto # 3"
#string STR_ONE_OF_TEXT4               #language en-US "Suppress the Checkbox"
                                       #language fr-FR "Mi uno- del texto # 4"
#string STR_ONE_OF_TEXT5               #language en-US "GrayOut the Checkbox"
                                       #language fr-FR "Mi uno- del texto # 5"
#string STR_ONE_OF_TEXT6               #language en-US "Enable Checkbox"
                                       #language fr-FR "Mi uno- del texto # 6"
#string STR_BOOT_ORDER1                #language en-US "SmallBootList"
                                       #language fr-FR "Mi uno- del texto # 7"
#string STR_BOOT_ORDER2                #language en-US "LargeBootList"
                                       #language fr-FR "Mi uno- del texto # 8"
#string STR_CHECK_BOX_PROMPT           #language en-US "Activate this check box"
                                       #language fr-FR "Active Las Armas Nucleares"
#string STR_CHECK_BOX_HELP             #language en-US "This is the help message for the activation of check boxes.  This is not to be confused with activating Czech boxes, since one can never tell what the ramifications are of activating foreign controlled boxes are."
                                       #language fr-FR "Éste es el mensaje de la ayuda para la activación del armamento nuclear. Cuál es exactamente resistente calcular fuera sobre de eso?"
#string STR_CHECK_DYNAMIC_PROMPT       #language en-US "Activate Dynamic check box"
                                       #language fr-FR "Activate Dynamico check box"
#string STR_CHECK_DYNAMIC_HELP         #language en-US "This is the help message for the activation of check boxes.  This is not to be confused with activating Czech boxes, since one can never tell what the ramifications are of activating foreign controlled boxes are."
                                       #language fr-FR "Spanish - This is the help message for the activation of check boxes.  This is not to be confused with activating Czech boxes, since one can never tell what the ramifications are of activating foreign controlled boxes are."
#string STR_NUMERIC_PROMPT             #language en-US "How old are you?"
                                       #language fr-FR "Cómo viejo es usted?"
#string STR_NUMERIC_STEP_PROMPT        #language en-US "How old are you? (Step)"
                                       #language fr-FR "Cómo viejo es usted?(Step)"
#string STR_NUMERIC_PROMPT1            #language en-US "How tall are you?"
                                       #language fr-FR "Cómo viejo es usted?"
#string STR_NUMERIC_READONLY_PROMPT    #language en-US "How old are you?(Readonly)"
                                       #language fr-FR "Cómo viejo es usted?(Readonly)"
#string STR_NUMERIC_MANUAL_PROMPT      #language en-US "How old are you? (Manual)"
                                       #language fr-FR "Cómo viejo es usted? (Manual)"
#string STR_TALL_HEX_PROMPT            #language en-US "How tall are you? (Hex)"
                                       #language fr-FR "Cómo viejo es usted? (Hex)"
#string STR_MYIFRNVDATA2_HEX_PROMPT    #language en-US "MyIfrNVData2 Uint8? (Hex)"
#string STR_MYIFRNVDATA2_HEX_HELP      #language en-US "MyIfrNVData2 Uint8? (Hex) Help"
#string STR_NUMERIC_HELP0              #language en-US "This is the help for those who are too old to understand the question. Type how old you are in a numeric value.  The valid range in this case is from 0 to 240.  Let's see if you actually read this help and figure that out."
                                       #language fr-FR "This is the help for those who are too old to understand the question. Type how old you are in a numeric value.  The valid range in this case is from 0 to 240.  Let's see if you actually read this help and figure that out."
#string STR_NUMERIC_HELP1              #language en-US "This is the help for those who are curious about body height. Type how tall you are in a numeric value.  The valid range in this case is from 0 to 250.  Let's see if you actually read this help and figure that out."
                                       #language fr-FR "This is the help for those who are curious about body height. Type how tall you are in a numeric value.  The valid range in this case is from 0 to 250.  Let's see if you actually read this help and figure that out."
#string STR_NUMERIC_HELP2              #language en-US "This is the help for those who are too old to understand the question. Adjust how old you are step by step.  The valid range in this case is from 0 to 243 in step of 1.  Let's see if you actually read this help and figure that out."
                                       #language fr-FR "This is the help for those who are too old to understand the question. Adjust how old you are step by step.  The valid range in this case is from 0 to 243 in step of 1.  Let's see if you actually read this help and figure that out."
#string STR_NUMERIC_HELP3              #language en-US "This is the help for those who are curious about body height. Type how tall you are in a numeric value.  The valid range in this case is from 0 to 190.  Let's see if you actually read this help and figure that out."
                                       #language fr-FR "Ésta es la ayuda para los que sean demasiado viejos entender la pregunta. Pulse cómo es viejo usted está en años."

#string STR_PASSWORD_PROMPT            #language en-US "Set the system password"
                                       #language fr-FR "Cuál es la palabra mágica?"
#string STR_TEXT_SECRUITY_TEST_TEXT    #language en-US "Access only permitted for Admin"
                                       #language fr-FR "Access only permitted for Admin"
#string STR_TEXT_SECRUITY_TEST_HELP    #language en-US "If this label is not gray, then current user has admin access setup permission. If this label is gray, then current user has no admin access setup permission."
                                       #language fr-FR "If this label is not gray, then current user has admin access setup permission. If this label is gray, then current user has no admin access setup permission."
#string STR_GOTO_FORM1                 #language en-US "Enter Page 1"
                                       #language fr-FR "Vaya a paginar 1"
#string STR_GOTO_FORM2                 #language en-US "Enter Page 2"
                                       #language fr-FR "Vaya a paginar 2"
#string STR_GOTO_FORM3                 #language en-US "Enter Page 3"
                                       #language fr-FR "Vaya a paginar 3"
#string STR_GOTO_FORM4                 #language en-US "Enter Page 4 Formmap Page"
                                       #language fr-FR "Vaya a paginar 4"
#string STR_GOTO_FORM6                 #language en-US "Enter Page 6"
                                       #language fr-FR "Enter Page 6"
#string STR_GOTO_FORM5                 #language en-US "Enter Page 5 Modal Page"
                                       #language fr-FR "Enter Page 5 Modal Page"
#string STR_GOTO_FORM5_HELP            #language en-US "Enter this form to double confirm the selection, must select on option before exit!"
                                       #language fr-FR "Enter this form to double confirm the selection, must select on option before exit!"
#string STR_GOTO_DYNAMIC               #language en-US "Goto Dynamic Page +"
                                       #language fr-FR "Vaya a página dynamico"
#string STR_GOTO_DYNAMIC2              #language en-US "Goto Fresh Dynamic Page"
                                       #language fr-FR "Vaya a página fresca dynamico"
#string STR_GOTO_DYNAMIC3              #language en-US "Update dest through retrieve"
                                       #language fr-FR "Update dest through retrieve"
#string STR_GOTO_DYNAMIC4              #language en-US "Update dest through changing"
                                       #language fr-FR "Update dest through changing"
#string STR_GOTO_DYNAMIC3_HELP         #language en-US "Update the destination through "retrieve" call back type before user select it."
                                       #language fr-FR "Update the destination through "retrieve" call back type before user select it."
#string STR_GOTO_DYNAMIC4_HELP         #language en-US "Update the destination through "changing" call back type when user select it."
                                       #language fr-FR "Update the destination through "changing" call back type when user select it."
#string STR_ERROR_INCONSISTENT         #language en-US "This is my inconsistent error message"
                                       #language fr-FR "Éste es mi mensaje de error contrario."
#string STR_ERROR_POPUP                #language en-US "You typed in something bad!"
                                       #language fr-FR "Esto es un mensaje de error del popup."
#string STR_MY_STRING_DEFAULT          #language en-US "my password"
                                       #language fr-FR "my password"
#string STR_MY_STRING_PROMPT2          #language en-US "String - Interactive"
                                       #language fr-FR "String - interactive"
#string STR_MY_STRING_HELP2            #language en-US "This is my string help - Interactive"
                                       #language fr-FR "This is my string help - interactive"
#string STR_TEXT_TEXT_1                #language en-US "This is my 1st text string"
                                       #language fr-FR "This is my 1st text string"
#string STR_TEXT_TEXT_2                #language en-US "This is my 2nd text string that I am testing"
                                       #language fr-FR "This is my 2nd text string that I am testing"
#string STR_DATE_PROMPT                #language en-US "System Date"
                                       #language fr-FR "Fecha del sistema"
#string STR_DATE_HELP                  #language en-US "This is the help for the Date (month/day/year). (Error checking will be done against month/day/year combinations that are not supported.)"
                                       #language fr-FR "Esto es la ayuda para el Fecha (mes/día/las). (Verificar de error se hará contra vez mes/día/las combinaciones de año que no se sostienen.)"
#string STR_TIME_PROMPT                #language en-US "System Time"
                                       #language fr-FR "Tiempo del sistema"
#string STR_TIME_HELP                  #language en-US "This is the help for the Time (hour/minute/second)."
                                       #language fr-FR "Esto es la ayuda para el Tiempo (hora/minuto/segundo)."
#string STR_RESTORE_DEFAULTS_PROMPT    #language en-US "This is my restore defaults prompt"
                                       #language fr-FR "This is my Spanish restore defaults prompt"
#string STR_RESTORE_DEFAULTS_HELP      #language en-US "This is my restore defaults help"
                                       #language fr-FR "Ésta es mi ayuda española de los defectos del restore"
#string STR_SAVE_DEFAULTS_PROMPT       #language en-US "This is my save defaults prompt"
                                       #language fr-FR "This is my Spanish save defaults prompt"
#string STR_SAVE_DEFAULTS_HELP         #language en-US "This is my save defaults help"
                                       #language fr-FR "This is my Spanish save defaults help"
#string STR_TEXT_HELP                  #language en-US "This is my text help"
                                       #language fr-FR "This is my Spanish text help"
#string STR_GOTO_HELP                  #language en-US "This is my goto help"
                                       #language fr-FR "This is my Spanish goto help"
#string STR_BANNER_TITLE               #language en-US "This is my English banner title"
                                       #language fr-FR "Éste es mi título español de la bandera"
#string STR_SUPPRESS_IF_TEXT1          #language en-US "This is my English suppress-if text1"
                                       #language fr-FR "This is my Spanish suppress-if text1"
#string STR_SUPPRESS_IF_TEXT2          #language en-US "This is my English suppress-if text2"
                                       #language fr-FR "This is my Spanish suppress-if text2"
#string STR_GRAYOUT_IF_TEXT1           #language en-US "This is my English grayout-if text1"
                                       #language fr-FR "This is my Spanish grayout-if text1"
#string STR_GRAYOUT_IF_TEXT2           #language en-US "This is my English grayout-if text2"
                                       #language fr-FR "This is my Spanish grayout-if text2"
#string STR_INVENTORY_HELP             #language en-US "This is my English inventory help string"
                                       #language fr-FR "This is my Spanish inventory help string"
#string STR_INVENTORY_TEXT1            #language en-US "This is my English inventory text1 string"
                                       #language fr-FR "This is my Spanish inventory text1 string"
#string STR_INVENTORY_TEXT2            #language en-US "This is my English inventory text2 string"
                                       #language fr-FR "This is my Spanish inventory text2 string"
#string STR_TEST_OPCODE                #language en-US "Pick 1"
                                       #language fr-FR "Pick 1"
#string STR_TEST_OPCODE2               #language en-US "Pick 2"
                                       #language fr-FR "Pick 2"
#string STR_EXIT_TEXT                  #language en-US "Exit now!"
                                       #language fr-FR "Salir ahora!"
#string STR_SAVE_TEXT                  #language en-US "Save now!"
                                       #language fr-FR "(French)Save now!"
#string STR_RESET_TEXT                 #language en-US "Reset now!"
                                       #language fr-FR "(French)Reset now!"
#string STR_DISCARD_CURRENT            #language en-US "Discard current form now!"
                                       #language fr-FR "(French)Discard current form now!"
#string STR_SAVE_CURRENT               #language en-US "Save current form now!"
                                       #language fr-FR "(French)Save current form now!"
#string STR_DISCARD_CURRENT_AND_EXIT   #language en-US "Discard current form and exit now!"
                                       #language fr-FR "(French)Discard current form and exit now!"
#string STR_SAVE_CURRENT_AND_EXIT      #language en-US "Save current form and exit now!"
                                       #language fr-FR "(French)Save current form and exit now!"
#string STR_NULL_STRING                #language en-US ""
                                       #language fr-FR ""
#string STR_TEST_STRING                #language en-US "This is a test string"
                                       #language fr-FR "Esto es una secuencia de la prueba"
#string STR_GRAYOUT_TEST               #language en-US "Grayout VarEq test"
                                       #language fr-FR "Grayout VarEq test"
#string STR_SUPPRESS_TEST              #language en-US "Suppress VarEq test"
                                       #language fr-FR "Suppress VarEq test"
#string STR_CLEAR_TEST                 #language en-US "Clear VarEq test"
                                       #language fr-FR "Clear VarEq test"
#string STR_STANDARD_DEFAULT_PROMPT    #language en-US "Reset to Standard Default"
                                       #language fr-FR "Reset to Standard Default"
#string STR_STANDARD_DEFAULT_HELP      #language en-US "This will reset all the Questions to their standard default value"
                                       #language fr-FR "This will reset all the Questions to their standard default value"
#string STR_MANUFACTURE_DEFAULT_PROMPT #language en-US "Reset to Manufacture Default"
                                       #language fr-FR "Reset to Manufacture Default"
#string STR_MANUFACTURE_DEFAULT_HELP   #language en-US "This will reset all the Questions to their manufacture default value"
                                       #language fr-FR "This will reset all the Questions to their manufacture default value"
#string STR_NAME_VALUE_VAR_NAME0_HELP  #language en-US "This numeric(UINT8) use Name/Value storage, Name is NameValueVar0"
                                       #language fr-FR "This numeric(UINT8) use Name/Value storage, Name is NameValueVar0"
#string STR_NAME_VALUE_VAR_NAME1_HELP  #language en-US "This numeric(UINT16) use Name/Value storage, Name is NameValueVar1"
                                       #language fr-FR "This numeric(UINT16) use Name/Value storage, Name is NameValueVar1"
#string STR_NAME_VALUE_VAR_NAME2_HELP  #language en-US "This string use Name/Value storage, Name is NameValueVar2"
                                       #language fr-FR "This string use Name/Value storage, Name is NameValueVar2"
#string STR_STRING_CHECK               #language en-US "STRING"
                                       #language fr-FR "STRING"
#string STR_STRING_CHECK_ERROR_POPUP   #language en-US "String you typed in is not correct!"
                                       #language fr-FR "String you typed in is not correct!"
#string STR_TEXT_REFRESH_GUID          #language en-US "Add new menu by press "Ctrl + C""
                                       #language fr-FR "Add new menu by press "Ctrl + C""
#string STR_TEXT_REFRESH_GUID_COUNT    #language en-US "Refresh guid event count"
                                       #language fr-FR "Refresh guid event count"
#string STR_MODAL_FORM_TITLE           #language en-US "First Modal Form"
                                       #language fr-FR "First Modal Form"
#string STR_EXIT_THROUGH_FORM_DISCARD_EXIT           #language en-US "Exit through form discard and exit"
                                                     #language fr-FR "Exit through form discard and exit"
#string STR_EXIT_THROUGH_FORM_SUBMIT_EXIT            #language en-US "Exit through form submit and exit"
                                                     #language fr-FR "Exit through form submit and exit"
#string STR_DEFAULT_VALUE_FROM_CALLBACK_PROMPT       #language en-US "Get Call Back default"
                                                     #language fr-FR "Get Call Back default"
#string STR_DEFAULT_VALUE_FROM_CALLBACK_HELP         #language en-US "This is the help for getting default value from call back function"
                                                     #language fr-FR "This is the help for getting default value from call back function"
#string STR_DEFAULT_VALUE_FROM_ACCESS_PROMPT         #language en-US "Get ExtractConfig default"
                                                     #language fr-FR "Get ExtractConfig default"
#string STR_DEFAULT_VALUE_FROM_ACCESS_HELP           #language en-US "This is the help for getting default value from ExtractConfig function"
                                                     #language fr-FR "This is the help for getting default value from ExtractConfig function"
#string STR_GOTO_ANOTHER_FORMSET                     #language en-US "Goto ABC Information Sample FormSet"
                                                     #language fr-FR "Goto ABC Information Sample FormSet"
#string STR_GOTO_ANOTHER_FORMSET_HELP                #language en-US "When select this option, browser will go to another formset."
                                                     #language fr-FR "When select this option, browser will go to another formset."
#string STR_DEVICE_PATH                              #language en-US ""
                                                     #language fr-FR ""
#string STR_SUBMITTED_CALLBACK_TEST_PROMPT           #language en-US "Submitted callback test"
                                                     #language fr-FR "Submitted callback test"
#string STR_SUBMITTED_CALLBACK_TEST_HELP             #language en-US "Change the value and press F10 to submit will pop up a dialogue to show SUBMITTED Callback has been triggered"
                                                     #language fr-FR "Change the value and press F10 to submit will pop up a dialogue to show SUBMITTED Callback has been triggered"
#string STR_QUESTION_APPLY_TEST_PROMPT               #language en-US "Question apply test"
                                                     #language fr-FR "Question apply test"
#string STR_QUESTION_APPLY_TEST_HELP                 #language en-US "Change the value and it will be applied automaticlly. If set to 44, then return failed."
                                                     #language fr-FR "Change the value and it will be applied automaticlly. If set to 44, then return failed."
#string STR_POPUP_TEST_PROMPT                        #language en-US "Select it to invoke Hii Popup Protocol"
                                                     #language fr-FR "Select it to invoke Hii Popup Protocol"
#string STR_POPUP_TEST_HELP                          #language en-US "Select this question will pop up a message box, then user can decide whether exit current form or not"
                                                     #language fr-FR "Select this question will pop up a message box, then user can decide whether exit current form or not"
#string STR_POPUP_STRING                             #language en-US "Are you sure to exit current form?"
                                                     #language fr-FR "Are you sure to exit current form?"
//
// Form 7 to show Questions which refer to Union Bit varstore
//
#string STR_FORM7_TITLE                #language en-US "Form to Show Questions with union and bit VarStore"
                                       #language fr-FR "Form to Show Questions with union and bit VarStore"
#string STR_GOTO_FORM7                 #language en-US "Enter Page 7"
                                       #language fr-FR "Enter Page 7"
#string STR_GOTO_FORM7_HELP            #language en-US "This Form is to Show Questions with union and bit VarStore"
                                       #language fr-FR "This Form is to Show Questions with union and bit VarStore"
#string STR_NEST_BIT_EFI_VARSTORE      #language en-US "Nested BIT fields in efivarstore"
                                       #language fr-FR "Nested BIT fields in efivarstore"
#string STR_BIT_EFI_VARSTORE           #language en-US "BIT fields in efivarstore"
                                       #language fr-FR "BIT fields in efivarstore"
#string STR_NEST_BIT_VARSTORE          #language en-US "Nested BIT fields in bufferstore"
                                       #language fr-FR "Nested BIT fields in bufferstore"
#string STR_BIT_VARSTORE               #language en-US "BIT fields in bufferstore"
                                       #language fr-FR "BIT fields in bufferstore"
#string STR_UNION_EFI_VARSTORE         #language en-US "Union efivarstore"
                                       #language fr-FR "Union efivarstore"
#string STR_BIT_NEST_CHECK_BOX_PROMPT  #language en-US "NEST_BIT check box"
                                       #language fr-FR "NEST_BIT check box"
#string STR_BIT_NEST_CHECK_BOX_HELP    #language en-US "The check box refer to nested bit field, the default is checked"
                                       #language fr-FR "The check box refer to nested bit field, the default is checked"
#string STR_ONE_OF_BIT_NEST_PROMPT     #language en-US "NEST_BIT one-of"
                                       #language fr-FR "NEST_BIT one-of"
#string STR_ONE_OF_BIT_NEST_HELP       #language en-US "The oneof refer to nested bit field"
                                       #language fr-FR "The oneof refer to nested bit field"
#string STR_BIT_NEST_NUMERIC_PROMPT    #language en-US "NEST_BIT numeric"
                                       #language fr-FR "NEST_BIT numeric"
#string STR_BIT_NEST_NUMERIC_HELP      #language en-US "The numeric refer to nested bit field, the Standard default is 6 Manufacture default is 7"
                                       #language fr-FR "The numeric refer to nested bit field, the Standard default is 6 Manufacture default is 7"
#string BYTE_QUESTION_NEST_BIT_PROMPT  #language en-US "Use byte field in NEST_BIT structure"
                                       #language fr-FR "Use byte field in NEST_BIT structure"
#string BYTE_QUESTION_NEST_BIT_HELP    #language en-US "The Question refer to byte field in NEST_BIT structure"
                                       #language fr-FR "The Question refer to byte field in NEST_BIT structure"
#string STR_BIT_NEST_NUMERIC_DEFAULT_HELP   #language en-US "NEST_BIT numeric, default value form callback function, the Standard default is C Manufacture default is D"
                                            #language fr-FR "NEST_BIT numeric, default value form callback function, the Standard default is C Manufacture default is D"
#string STR_BIT_CHECK_BOX_PROMPT       #language en-US "BIT check box"
                                       #language fr-FR "BIT check box"
#string STR_BIT_CHECK_BOX_HELP         #language en-US "The check box refer to bit field, the default is checked"
                                       #language fr-FR "The check box refer to bit field, the default is checked"
#string STR_ONE_OF_BIT_PROMPT          #language en-US "BIT one-of"
                                       #language fr-FR "BIT one-of"
#string STR_ONE_OF_BIT_HELP            #language en-US "The one-of refer to bit field"
                                       #language fr-FR "The one-of refer to bit field"
#string STR_BIT_NUMERIC_PROMPT         #language en-US "BIT numeric"
                                       #language fr-FR "BIT numeric"
#string STR_BIT_NUMERIC_HELP           #language en-US "The numeric refer to bit field, the Standard default is 4 Manufacture default is 5"
                                       #language fr-FR "The numeric refer to bit field  the Standard default is 4 Manufacture default is 5"
#string STR_BUFFER_BIT_NUMERIC_HELP    #language en-US "The numeric refer to bit field, the Standard default is 16 Manufacture default is 17"
                                       #language fr-FR "The numeric refer to bit field, the Standard default is 16 Manufacture default is 17"
#string BYTE_QUESTION_BIT_PROMPT       #language en-US "Use byte field in BIT structure"
                                       #language fr-FR "Use byte field in BIT structure"
#string BYTE_QUESTION_BIT_HELP         #language en-US "The question refer to byte field in BIT structure"
                                       #language fr-FR "The question refer to byte field in BIT structure"
#string STR_UNION_BYTE_NUMERIC_PROMPT  #language en-US "UNION EfiVarStore byte numeric"
                                       #language fr-FR "UNION EfiVarStore byte numeric"
#string STR_UNION_BYTE_NUMERIC_HELP    #language en-US "Question refer to byte field in UNION type efivastore, the Standard default is 7 Manufacture default is 8"
                                       #language fr-FR "Question refer to byte field in UNION type efivastore, the Standard default is 7 Manufacture default is 8"
// Boot Order
#string STR_BOOT_TITLE                 #language en-US "Boot"
#string STR_BOOT_OPTIONS               #language en-US "Boot Order"
#string STR_BOOT_OPTION1               #language en-US "IDE HDD"
#string STR_BOOT_OPTION2               #language en-US "ATAPI CD"
#string STR_BOOT_OPTION3               #language en-US "PXE"
#string STR_BOOT_OPTION4               #language en-US "USB"

#string STR_VAR_NAME                   #language en-US "MyVar"

#string STR_DEFAULTSTORE_MFG           #language en-US "Manufacture Default"
                                       #language fr-FR "Manufacture Default"

#string STR_DEFAULTSTORE_SAFE          #language en-US "Safe Default"
                                       #language fr-FR "Safe Default"

#string STR_STANDARD_DEFAULT_PROMPT    #language en-US "Standard Default"
                                       #language fr-FR "Standard Default"
#string STR_MANUFACTURE_DEFAULT_PROMPT #language en-US "Manufacture Default"
                                       #language fr-FR "Manufacture Default"

//
// Name list of Name/Value storage
//
#string STR_NAME_VALUE_VAR_NAME0       #language en-US "NameValueVar0"
                                       #language fr-FR "NameValueVar0 (fr-FR)"
#string STR_NAME_VALUE_VAR_NAME1       #language en-US "NameValueVar1"
                                       #language fr-FR "NameValueVar1 (fr-FR)"
#string STR_NAME_VALUE_VAR_NAME2       #language en-US "NameValueVar2"
                                       #language fr-FR "NameValueVar2 (fr-FR)"
//
// Form Map method
//
#string STR_SAMPL_MAP_METHOD           #language en-US "Sample Map Form"
                                       #language fr-FR "Sample Map Form"
#string STR_STANDARD_MAP_METHOD        #language en-US "UEFI Standard Map Form"
                                       #language fr-FR "UEFI Standard Map Form"
//
// Serial Port
//
#string STR_SERIAL_PORT                #language en-US "Serial port number"
                                       #language fr-FR "Serial port number"
#string STR_SERIAL_PORT_DISABLE        #language en-US "Serial port disable"
                                       #language fr-FR "Serial port disable"
#string STR_SERIAL_PORT1               #language en-US "Serial port 1"
                                       #language fr-FR "Serial port 1"
#string STR_SERIAL_PORT2               #language en-US "Serial port 2"
                                       #language fr-FR "Serial port 2"
#string STR_SERIAL_PORT3               #language en-US "Serial port 3"
                                       #language fr-FR "Serial port 3"
#string STR_SERIAL_PORT4               #language en-US "Serial port 4"
                                       #language fr-FR "Serial port 4"

#string STR_SERIAL_PORT_STATUS         #language en-US "Serial port is enable"
                                       #language fr-FR "Serial port is enable"
#string STR_SERIAL_PORT_IO_ADDRESS     #language en-US "Serial port IO address"
                                       #language fr-FR "Serial port IO address"
#string STR_SERIAL_PORT_IRQ            #language en-US "Serial port IRQ value"
                                       #language fr-FR "Serial port IRQ value"

#string STR_SERIAL_PORT1_IOADDR        #language en-US "3F8"
                                       #language fr-FR "3F8"
#string STR_SERIAL_PORT2_IOADDR        #language en-US "2F8"
                                       #language fr-FR "2F8"
#string STR_SERIAL_PORT3_IOADDR        #language en-US "3E8"
                                       #language fr-FR "3E8"
#string STR_SERIAL_PORT4_IOADDR        #language en-US "2E8"
                                       #language fr-FR "2E8"

#string STR_SERIAL_PORT13_IRQ          #language en-US "4"
                                       #language fr-FR "4"
#string STR_SERIAL_PORT24_IRQ          #language en-US "3"
                                       #language fr-FR "3"

//
// TEXT/DATE/TIME
//
#string STR_TEXT_SAMPLE_HELP           #language en-US "Text Help"
                                       #language fr-FR "Text Help"
#string STR_TEXT_SAMPLE_STRING         #language en-US "Text Sample"
                                       #language fr-FR "Text Sample"
#string STR_DATE_SAMPLE_HELP           #language en-US "Date Sample"
                                       #language fr-FR "Date Sample"
#string STR_TIME_SAMPLE_HELP           #language en-US "Time Sample"
                                       #language fr-FR "Time Sample"

#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 STR_WARNING_POPUP              #language en-US  "Change value requires to reset the system."
                                       #language fr-FR  "Change value requires to reset the system."
#string STR_MATCH2_PROMPT              #language en-US  "Match2 Test"
                                       #language fr-FR  "Match2 Test"
#string STR_MATCH2_HELP                #language en-US  "This question used to test the match2 opcode."
                                       #language fr-FR  "This question used to test the match2 opcode."
#string STR_STRING                     #language en-US  "Match2 Test"
                                       #language fr-FR  "Match2 Test"
#string STR_PATTERN                    #language en-US  "Match2"
                                       #language fr-FR  "Match2"
