// /** @file
//
// Copyright (c) 2023-2024, Mario Bălănică <mariobalanica02@gmail.com>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/

#langdef en-US  "English"

#string STR_NULL_STRING                                    #language en-US ""

#string STR_FORM_SET_TITLE                                 #language en-US "EFI Memory Attribute Protocol"
#string STR_FORM_SET_TITLE_HELP                            #language en-US "Configure the state of the EFI Memory Attribute Protocol.\n\n"
                                                                           "Some old OS loader versions (e.g. as found in CentOS Stream 9) do not properly support the protocol and may cause a Synchronous Exception. This security feature can be disabled to work around the issue; otherwise it should be kept enabled."

#string STR_ENABLE_PROTOCOL_PROMPT                         #language en-US "Enable Protocol"
