// *++
	//
// Copyright (c) 2007 - 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:
//
//   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_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 submmit will pop up a dialogue to show SUBMITTED Callback has been triggered"
                                                     #language fr-FR "Change the value and press F10 to submmit will pop up a dialogue to show SUBMITTED Callback has been triggered"
#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 curret form or not"
                                                     #language fr-FR "Select this question will pop up a message box, then user can decide whether exit curret 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"
#string STR_UNION_BIT_NUMERIC_PROMPT   #language en-US "UNION EfiVarStore bit numeric"
                                       #language fr-FR "UNION EfiVarStore bit numeric"
#string STR_UNION_BIT_NUMERIC_HELP     #language en-US "Question refer to bit field in UNION type efivastore, the Standard default is 7 Manufacture default is 8"
                                       #language fr-FR "Question refer to bit 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"