## @file
# This file is used to define strings used in the UPT tool
#
# Copyright (c) 2011 - 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.
##
"""
This file contains user visible strings in a format that can be used for
localization
"""

import gettext

#
# string table starts here...
#

## strings are classified as following types
#    MSG_...: it is a message string
#    ERR_...: it is a error string
#    WRN_...: it is a warning string
#    HLP_...: it is a help string
#

_ = gettext.gettext

MSG_USAGE_STRING = _("\n"
    "UEFI Packaging Tool (UEFIPT)\n"
    "%prog [options]"
    )

##
# Version and Copyright
#
MSG_VERSION_NUMBER = _("1.1")
MSG_VERSION = _("UEFI Packaging Tool (UEFIPT) - Revision " + \
                MSG_VERSION_NUMBER)
MSG_COPYRIGHT = _("Copyright (c) 2011 - 2016 Intel Corporation All Rights Reserved.")
MSG_VERSION_COPYRIGHT = _("\n  %s\n  %s" % (MSG_VERSION, MSG_COPYRIGHT))
MSG_USAGE = _("%s [options]\n%s" % ("UPT", MSG_VERSION_COPYRIGHT))
MSG_DESCRIPTION = _("The UEFIPT is used to create, " + \
                    "install or remove a UEFI Distribution Package. " + \
                    "If WORKSPACE environment variable is present, " + \
                    "then UPT will install packages to the location specified by WORKSPACE, " + \
                    "otherwise UPT will install packages to the current directory. " + \
                    "Option -n will override this default installation location")

#
# INF Parser related strings.
#
ERR_INF_PARSER_HEADER_FILE = _(
    "The Header comment section should start with an @file at the top.")
ERR_INF_PARSER_HEADER_MISSGING = _(
    "The Header comment is missing. It must be corrected before continuing.")
ERR_INF_PARSER_UNKNOWN_SECTION = _("An unknown section was found. "
                                   "It must be corrected before continuing. ")
ERR_INF_PARSER_NO_SECTION_ERROR = _("No section was found. "
                            "A section must be included before continuing.")
ERR_INF_PARSER_BUILD_OPTION_FORMAT_INVALID = \
    _("Build Option format incorrect.")
ERR_INF_PARSER_BINARY_ITEM_FORMAT_INVALID = _(
     "The format of binary %s item is incorrect. "
     "It should contain at least %d elements.")
ERR_INF_PARSER_BINARY_ITEM_FORMAT_INVALID_MAX = _(
     "The format of binary %s item is invalid, "
     "it should contain not more than %d elements.")
ERR_INF_PARSER_BINARY_ITEM_INVALID_FILETYPE = _(
     "The Binary FileType is incorrect. It should in %s")
ERR_INF_PARSER_BINARY_ITEM_FILE_NOT_EXIST = _(
     "The Binary File: %s not exist.")
ERR_INF_PARSER_BINARY_ITEM_FILENAME_NOT_EXIST = _(
     "The Binary File Name item not exist")
ERR_INF_PARSER_BINARY_VER_TYPE = _(
     "Only this type is allowed: \"%s\".")
ERR_INF_PARSER_MULTI_DEFINE_SECTION = \
    _("Multiple define sections found. "
      "It must be corrected before continuing.")
ERR_INF_PARSER_DEFINE_ITEM_MORE_THAN_ONE_FOUND = \
    _("More than 1 %s is defined in DEFINES section. "
      "It must be corrected before continuing.")
ERR_INF_PARSER_DEFINE_NAME_INVALID = \
    _("Incorrect name format for : %s")
ERR_INF_PARSER_DEFINE_GUID_INVALID = \
    _("The format of this GUID is incorrect: %s")
ERR_INF_PARSER_DEFINE_MODULETYPE_INVALID = _("Incorrect MODULE_TYPE: %s")
ERR_INF_PARSER_DEFINE_FROMAT_INVALID = _("Incorrect format: %s")
ERR_INF_PARSER_FILE_NOT_EXIST = _("This file does not exist: %s")
ERR_INF_PARSER_FILE_NOT_EXIST_OR_NAME_INVALID = \
    _("The file does not exist or not in sub-directories "
      "or has an incorrect file name of the directory containing the INF or DEC file: %s. "
      "It must be corrected before continuing")
ERR_INF_PARSER_DEFINE_SHADOW_INVALID = \
   _("The SHADOW keyword is only valid for"
                                       " SEC, PEI_CORE and PEIM module types.")
ERR_INF_PARSER_DEFINE_SECTION_HEADER_INVALID = \
    _("The format of the section header is incorrect")
ERR_INF_PARSER_DEPEX_SECTION_INVALID = \
    _("A module can't have a Depex section when its module type is %s")
ERR_INF_PARSER_DEPEX_SECTION_INVALID_FOR_BASE_LIBRARY_CLASS = \
    _("A base type library class can't have a Depex section with module type not defined.")
ERR_INF_PARSER_DEPEX_SECTION_INVALID_FOR_LIBRARY_CLASS = \
    _("A library class can't have a Depex section when its supported module type list is not defined.")
ERR_INF_PARSER_DEPEX_SECTION_INVALID_FOR_DRIVER = \
    _("A driver can't have a Depex section when its module type is UEFI_DRIVER.")
ERR_INF_PARSER_DEPEX_SECTION_NOT_DETERMINED  = \
    _("Cannot determine the module's Depex type. The Depex's module types are conflict")
ERR_INF_PARSER_DEFINE_SECTION_MUST_ITEM_NOT_EXIST = _(
                "No %s found in INF file, please check it.")
ERR_INF_PARSER_DEPEX_SECTION_MODULE_TYPE_ERROR = \
    _("The module type of [Depex] section is invalid, not support type of %s")
ERR_INF_PARSER_DEPEX_SECTION_CONTENT_MISSING = \
    _("Missing content in: %s")
ERR_INF_PARSER_DEPEX_SECTION_CONTENT_ERROR  = \
    _("The [Depex] section contains invalid content: %s")                    
ERR_INF_PARSER_DEPEX_SECTION_SEC_TYPE_ERROR = \
    _("The format is incorrect. The section type keyword of the content in the"
      " [Depex] section is only for 'PEI_DEPEX', 'DXE_DEPEX', 'SMM_DEPEX', "
      "it does not support type:  %s")
ERR_INF_PARSER_UE_SECTION_USER_ID_ERROR = \
    _("This format is incorrect. "
      "The UserID: %s in [UserExtension] section is incorrect.")
ERR_INF_PARSER_UE_SECTION_ID_STRING_ERROR = \
    _("This format is incorrect. "
      "IdString: %s in [UserExtension] section is incorrect.")
ERR_INF_PARSER_LIBRARY_SECTION_CONTENT_ERROR = \
    _("The format is incorrect. "
      "You can only have a Library name and a Feature flag in one line.")
ERR_INF_PARSER_LIBRARY_SECTION_LIBNAME_MISSING = \
    _("Format invalid. Please specify a library name.")
ERR_INF_PARSER_SOURCES_SECTION_CONTENT_ERROR = \
    _("The format is incorrect. It should be formated as follows: "
      "FileName, Family | TagName | ToolCode | FeatureFlagExpr.")
ERR_INF_PARSER_PCD_SECTION_TYPE_ERROR = \
    _("The PCD section type is incorrect. The value should be this list: %s")
ERR_INF_PARSER_PCD_SECTION_CONTENT_ERROR = \
    _("PcdName format invalid." 
      "Should like following: PcdName | Value | FeatureFlag.")
ERR_INF_PARSER_PCD_NAME_FORMAT_ERROR = \
    _("Format invalid." 
      "Should like following: <TokenSpaceGuidCName>.<PcdCName> ")   
ERR_INF_PARSER_GUID_PPI_PROTOCOL_SECTION_CONTENT_ERROR = \
    _("The format is incorrect. "
      "It should be formated as follows: CName | FeatureFlag.")
ERR_INF_PARSER_PACKAGE_SECTION_CONTENT_ERROR = \
    _("The format is incorrect. "
      "It should be formated as follows:  <TokenSpaceGuidCName>.<PcdCName>")
ERR_INF_PARSER_PCD_TAIL_COMMENTS_INVALID = \
    _("The format is incorrect. "
      "Multiple usage descriptions must be described on subsequent lines.")
ERR_INF_PARSER_MODULE_SECTION_TYPE_ERROR = \
    _("This section format is incorrect: %s.")
ERR_INF_PARSER_SECTION_NAME_DUPLICATE = \
    _("This section has multiple section names, "
      "only one section name is permitted.")
ERR_INF_PARSER_SECTION_ARCH_CONFLICT = \
    _("The 'common' ARCH must not be used with the specified ARCHs.")
ERR_INF_PARSER_SOURCE_SECTION_TAGNAME_INVALID = \
    _("This TagName is incorrect: %s. "
      "It must be corrected before continuing.")
ERR_INF_PARSER_TAGNAME_NOT_PERMITTED = \
    _("TagName is not permitted: %s. "
      "It must be corrected before continuing.")
ERR_INF_PARSER_TOOLCODE_NOT_PERMITTED = \
    _("ToolCode is not permitted: %s. "
      "It must be corrected before continuing.")
ERR_INF_PARSER_SOURCE_SECTION_FAMILY_INVALID = \
    _("This family is incorrect: %s. "
      "It must be corrected before continuing. ")
ERR_INF_PARSER_SOURCE_SECTION_SECTIONNAME_INVALID = \
    _("This SectionName is incorrect: %s. "
      "It must be corrected before continuing.")
ERR_INF_PARSER_PCD_CVAR_GUID = \
    _("TokenSpaceGuidCName must be valid C variable format.")
ERR_INF_PARSER_PCD_CVAR_PCDCNAME = \
    _("PcdCName must be valid C variable format.")
ERR_INF_PARSER_PCD_VALUE_INVALID = \
    _("The PCD value is incorrect. It must be corrected before continuing.")    
ERR_INF_PARSER_FEATURE_FLAG_EXP_SYNTAX_INVLID = \
    _("Incorrect feature flag expression: %s")
ERR_INF_PARSER_FEATURE_FLAG_EXP_MISSING = \
    _("The feature flag expression is missing. Please specify a feature flag.")
ERR_INF_PARSER_INVALID_CNAME = \
    _("Incorrect CName: %s. You must specify a valid C variable name.")
ERR_INF_PARSER_CNAME_MISSING = \
    _("Missing CName. Specify a valid C variable name.")
ERR_INF_PARSER_DEFINE_SECTION_KEYWORD_INVALID = \
    _("The Define section contains an invalid keyword:  \"%s\"."  
    "It must be corrected before continuing.")
ERR_INF_PARSER_FILE_MISS_DEFINE = \
    _("The following file listed in the module "
      "directory is not listed in the INF: %s")
ERR_INF_PARSER_VERSION_NUMBER_DEPRICATED = \
    _("VERSION_NUMBER depricated.  "
      "The INF file %s should be modified to use the VERSION_STRING instead.")
ERR_INF_PARSER_VER_EXIST_BOTH_NUM_STR = \
    _("The INF file %s defines both VERSION_NUMBER and VERSION_STRING, "
      "using VERSION_STRING")
ERR_INF_PARSER_NOT_SUPPORT_EDKI_INF = _("EDKI INF is not supported")
ERR_INF_PARSER_EDKI_COMMENT_IN_EDKII = _("The EDKI style comment is not supported in EDKII modules")

ERR_INF_PARSER_FEATUREPCD_USAGE_INVALID = _("The usage for FeaturePcd can only"
    " be type of \"CONSUMES\".") 

ERR_INF_PARSER_DEFINE_ITEM_NO_NAME = _("No name specified")
ERR_INF_PARSER_DEFINE_ITEM_NO_VALUE = _("No value specified")

ERR_INF_PARSER_MODULETYPE_INVALID = _("Drivers and applications are not allowed to have a MODULE_TYPE of \"BASE\". "
"Only libraries are permitted to a have a MODULE_TYPE of \"BASE\".")
ERR_INF_GET_PKG_DEPENDENCY_FAIL = _("Failed to get PackageDependencies information from file %s")
ERR_INF_NO_PKG_DEPENDENCY_INFO = _("There are no packages defined that use the AsBuilt PCD information.")

#
# Item duplicate
#
ERR_INF_PARSER_ITEM_DUPLICATE_IN_DEC = \
_('"%s" is redefined in its dependent DEC files')
ERR_INF_PARSER_ITEM_DUPLICATE = _("%s define duplicated! " 
                                  "It must be corrected before continuing.")
ERR_INF_PARSER_ITEM_DUPLICATE_COMMON = _("%s define duplicated! Item listed" 
"in an architectural section must not be listed in the common architectural"
"section.It must be corrected before continuing.")
ERR_INF_PARSER_UE_SECTION_DUPLICATE_ERROR = \
_("%s define duplicated! Each UserExtensions section header must have a "
  "unique set of UserId, IdString and Arch values. "
  "It must be corrected before continuing.")

ERR_INF_PARSER_DEFINE_LIB_NAME_INVALID = \
_("The name 'NULL' for LibraryClass is a reserved word."
"Please don't use it.")

ERR_GLOBAL_MARCO_INVALID = \
_("Using global MACRO in INF/DEC is not permitted: %s . "
"It must be corrected before continuing.")                                          

ERR_MARCO_DEFINITION_MISS_ERROR = \
_("MACRO expand incorrectly, can not find the MACRO definition. "
"It must be corrected before continuing.") 

#
# AsBuilt related
#
ERR_LIB_CONTATIN_ASBUILD_AND_COMMON = _("A binary INF file should not contain both AsBuilt LIB_INSTANCES information "
                                        "and a common library entry.")
ERR_LIB_INSTANCE_MISS_GUID = _("Could not get FILE_GUID definition from instance INF file.")

ERR_BO_CONTATIN_ASBUILD_AND_COMMON = _("A binary INF file should contain either AsBuilt information "
                                       "or a common build option entry, not both.")

ERR_ASBUILD_PCD_SECTION_TYPE = _("The AsBuilt INF file contains a PCD section type that is not permitted: %s.")
ERR_ASBUILD_PATCHPCD_FORMAT_INVALID = _("The AsBuilt PatchPcd entry must contain 3 elements: PcdName|Value|Offset")
ERR_ASBUILD_PCDEX_FORMAT_INVALID = _("The AsBuilt PcdEx entry must contain one element: PcdName")
ERR_ASBUILD_PCD_VALUE_INVALID = \
    _("The AsBuilt PCD value %s is incorrect or not align with it's datum type %s. "
      "It must be corrected before continuing.")
ERR_ASBUILD_PCD_TOKENSPACE_GUID_VALUE_MISS = _("Package file value could not be retrieved for %s.")
ERR_ASBUILD_PCD_DECLARITION_MISS = _("PCD Declaration in DEC files could not be found for: %s.")
ERR_ASBUILD_PCD_OFFSET_FORMAT_INVALID = _("PCD offset format invalid, number of (0-4294967295) or"
"Hex number of UINT32 allowed : %s.")

#
# XML parser related strings
#
ERR_XML_PARSER_REQUIRED_ITEM_MISSING = \
    _("The XML section/attribute '%s' is required under %s, it can't be missing or empty")
ERR_XML_INVALID_VARIABLENAME = \
    _("The VariableName of the GUID in the XML tree does not conform to the packaging specification.  "
      "Only a Hex Byte Array of UCS-2 format or L\"string\" is allowed): %s %s %s")
ERR_XML_INVALID_LIB_SUPMODLIST = _("The LIBRARY_CLASS entry %s must have the list appended using the format as: \n"
"BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER SMM_CORE DXE_SMM_DRIVER DXE_RUNTIME_DRIVER "
"DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION USER_DEFINED\n Current is %s.")
ERR_XML_INVALID_EXTERN_SUPARCHLIST = \
    _("There is a mismatch of SupArchList %s between the EntryPoint, UnloadImage, Constructor, "
      "and Destructor elements in the ModuleSurfaceArea.ModuleProperties: SupArchList: %s. ")
ERR_XML_INVALID_EXTERN_SUPMODLIST = _("The SupModList attribute of the CONSTRUCTOR or DESTRUCTOR element: %s does not "
"match the Supported Module Types listed after LIBRARY_CLASS = <Keyword> | %s")
ERR_XML_INVALID_EXTERN_SUPMODLIST_NOT_LIB = _("The module is not a library module. "
                                              "The MODULE_TYPE : %s listed in the ModuleSurfaceArea.Header "
                                              "must match the SupModList attribute %s")
ERR_XML_INVALID_BINARY_FILE_TYPE = _("Invalid binary file type %s.")

#
# Verbosity related strings.
#
MSG_DISTRIBUTION_PACKAGE_FILE_EXISTS = _(
    "The distribution package file %s already exists.\nPress Y to override it."
    " To exit the application, press any other key.")
MSG_CHECK_MODULE_EXIST         = _(
    "\nChecking to see if module exists in workspace started ...")
MSG_CHECK_MODULE_EXIST_FINISH  = \
    _("Checking to see if  module exists in workspace ... Done.")
MSG_CHECK_MODULE_DEPEX_START   = _(
    "\nChecking to see if module depex met by workspace started ...")
MSG_CHECK_MODULE_DEPEX_FINISH  = _(
    "Checking to see if module depex met by workspace ... Done.")
MSG_CHECK_PACKAGE_START        = _(
    "\nChecking to see if  package exists in workspace started ...")
MSG_CHECK_PACKAGE_FINISH       = _(
    "Checking to see if  package exists in workspace ... Done.")
MSG_CHECK_DP_START             = \
    _("\nChecking to see if DP exists in workspace ... Done.")
MSG_CHECK_DP_FINISH            = _("Check DP exists in workspace ... Done.")
MSG_MODULE_DEPEND_ON           = _("Module %s depends on Package %s")
MSG_INIT_IPI_START             = _("\nInitialize IPI database started ...")
MSG_INIT_IPI_FINISH            = _("Initialize IPI database ... Done.")
MSG_GET_DP_INSTALL_LIST        = _(
    "\nGetting list of DP install information started ...")
MSG_GET_DP_INSTALL_INFO_START  = _(
    "\nGetting list of DP install information started ...")
MSG_GET_DP_INSTALL_INFO_FINISH = _("Getting DP install information ... Done.")
MSG_UZIP_PARSE_XML             = _(
    "Unzipping and parsing distribution package XML file ... ")
MSG_INSTALL_PACKAGE            = _("Installing package ... %s")
MSG_INSTALL_MODULE             = _("Installing module ... %s")
MSG_NEW_FILE_NAME_FOR_DIST      = _(
    "Provide new filename for distribution file to be saved:\n")
MSG_UPDATE_PACKAGE_DATABASE    = _("Update Distribution Package Database ...")
MSG_PYTHON_ON                  = _("(Python %s on %s) ")
MSG_SEARCH_FOR_HELP            = _(
    "\n(Please send email to edk2-devel@lists.01.org for\n"
    " help, attach the following call stack trace.)\n")
MSG_REMOVE_TEMP_FILE_STARTED   = _("Removing temp files started ... ")
MSG_REMOVE_TEMP_FILE_DONE   = _("Removing temp files ... Done.")
MSG_FINISH                     = _("Successfully Done.")
MSG_COMPRESS_DISTRIBUTION_PKG  = _("Compressing Distribution Package File ...")
MSG_CONFIRM_REMOVE             = _(
    "Some packages or modules depend on this distribution package.\n"
    "Do you really want to remove it?")
MSG_CONFIRM_REMOVE2            = _(
    "This file has been modified: %s. Do you want to remove it?"
    "Press Y to remove or other key to keep it")
MSG_CONFIRM_REMOVE3            = _(
    "This is a newly created file: %s.  Are you sure you want to remove it?  "
    "Press Y to remove or any other key to keep it")
MSG_USER_DELETE_OP             = _(
    "Press Y to delete all files or press any other key to quit:")
MSG_REMOVE_FILE                = _("Removing file: %s ...")

MSG_INITIALIZE_ECC_STARTED     = _("\nInitialize ECC database started ...")
MSG_INITIALIZE_ECC_DONE        = _("Initialize ECC database ... Done.")
MSG_DEFINE_STATEMENT_FOUND     = _("DEFINE statement '%s' found in section %s")
MSG_PARSING                    = _("Parsing %s ...")

MSG_REPKG_CONFLICT             = \
_("Repackaging is not allowed on this file: %s. "
  "It was installed from distribution %s(Guid %s Version %s).")

MSG_INVALID_MODULE_INTRODUCED  = _("Some modules are not valid after removal.")
MSG_CHECK_LOG_FILE             = _("Please check log file %s for full list")
MSG_NEW_FILE_NAME      = _(
    "Provide new filename:\n")
MSG_RELATIVE_PATH_ONLY = _("Please specify a relative path, full path is not allowed: %s")
MSG_NEW_PKG_PATH  = _(
    "Select package location.  To quit with no input, press [Enter].")
MSG_CHECK_DP_FOR_REPLACE = _("Verifying the dependency rule for replacement of distributions:\n %s replaces %s")
MSG_CHECK_DP_FOR_INSTALL = _("Verifying the dependency rule for installation of distribution:\n %s")
MSG_REPLACE_ALREADY_INSTALLED_DP = _("Distribution with the same GUID/Version is already installed, "
                                     "replace would result in two instances, which is not allowed")
MSG_RECOVER_START = _('An error was detected, recovery started ...')
MSG_RECOVER_DONE = _('Recovery completed.')
MSG_RECOVER_FAIL = _('Recovery failed.')
#
# Error related strings.
#

ERR_DEPENDENCY_NOT_MATCH         = _(
    "Module %s's dependency on package %s (GUID %s Version %s) " 
    "cannot be satisfied")
ERR_MODULE_NOT_INSTALLED         = _(
    "This module is not installed in the workspace: %s\n")
ERR_DIR_ALREADY_EXIST            = _(
    "This directory already exists: %s.\n"
    "Select another location.  Press [Enter] with no input to quit:")
ERR_USER_INTERRUPT               = _("The user has paused the application")
ERR_DIST_FILE_TOOMANY            = _(
    "Only one .content and one .pkg file in ZIP file are allowed.")
ERR_DIST_FILE_TOOFEW             = _(
    "Must have one .content and one .pkg file in the ZIP file.")
ERR_FILE_ALREADY_EXIST           = _(
    "This file already exists: %s.\n"
    "Select another path to continue. To quit with no input press [Enter]:")
ERR_SPECIFY_PACKAGE              = _(
    "One distribution package must be specified")
ERR_FILE_BROKEN                  = _(
    "This file is invalid in the distribution package: %s")
ERR_PACKAGE_NOT_MATCH_DEPENDENCY = _(
    "This distribution package does not meet the dependency requirements")
ERR_UNKNOWN_FATAL_INSTALL_ERR    = \
_("Unknown unrecoverable error when installing: %s")
ERR_UNKNOWN_FATAL_REPLACE_ERR    = \
_("Unknown unrecoverable error during replacement of distributions: %s replaces %s")
ERR_OPTION_NOT_FOUND             = _("Options not found")
ERR_INVALID_PACKAGE_NAME         = _("Incorrect package name: %s. ")
ERR_INVALID_PACKAGE_PATH         = \
_("Incorrect package path: %s. The path must be a relative path.")
ERR_NOT_FOUND                    = _("This was not found: %s")
ERR_INVALID_MODULE_NAME          = _("This is not a valid module name: %s")
ERR_INVALID_METAFILE_PATH        = _('This file must be in sub-directory of WORKSPACE: %s.')
ERR_INVALID_MODULE_PATH          = \
_("Incorrect module path: %s. The path must be a relative path.")
ERR_UNKNOWN_FATAL_CREATING_ERR   = _("Unknown error when creating: %s")
ERR_PACKAGE_NOT_INSTALLED        = _(
    "This distribution package not installed: %s")
ERR_DISTRIBUTION_NOT_INSTALLED   = _(
    "The distribution package is not installed.")
ERR_UNKNOWN_FATAL_REMOVING_ERR   = _("Unknown error when removing package")
ERR_UNKNOWN_FATAL_INVENTORYWS_ERR   = _("Unknown error when inventorying WORKSPACE")
ERR_NOT_CONFIGURE_WORKSPACE_ENV  = _(
    "The WORKSPACE environment variable must be configured.")
ERR_NO_TEMPLATE_FILE             = _("This package information data file is not found: %s")
ERR_DEBUG_LEVEL                  = _(
    "Not supported debug level. Use default level instead.")
ERR_REQUIRE_T_OPTION             = _(
    "Option -t is required during distribution creation.")
ERR_REQUIRE_O_OPTION             = _(
    "Option -o is required during distribution replacement.")
ERR_REQUIRE_U_OPTION             = _(
    "Option -u is required during distribution replacement.")
ERR_REQUIRE_I_C_R_OPTION         = _(
    "Options -i, -c and -r are mutually exclusive.")
ERR_I_C_EXCLUSIVE                = \
_("Option -c and -i are mutually exclusive.")
ERR_I_R_EXCLUSIVE                = \
_("Option -i and -r are mutually exclusive.")
ERR_C_R_EXCLUSIVE                = \
_("Option -c and -r are mutually exclusive.")
ERR_U_ICR_EXCLUSIVE                = \
_("Option -u and -c/-i/-r are mutually exclusive.")

ERR_L_OA_EXCLUSIVE                = \
_("Option -l and -c/-i/-r/-u are mutually exclusive.")

ERR_FAILED_LOAD                  = _("Failed to load %s\n\t%s")
ERR_PLACEHOLDER_DIFFERENT_REPEAT = _(
    "${%s} has different repeat time from others.")
ERR_KEY_NOTALLOWED               = _("This keyword is not allowed: %s")
ERR_NOT_FOUND_ENVIRONMENT        = _("Environment variable not found")
ERR_WORKSPACE_NOTEXIST           = _("WORKSPACE doesn't exist")
ERR_SPACE_NOTALLOWED             = _(
    "Whitespace characters are not allowed in the WORKSPACE path. ")
ERR_MACRONAME_NOGIVEN            = _("No MACRO name given")
ERR_MACROVALUE_NOGIVEN           = _("No MACRO value given")
ERR_MACRONAME_INVALID            = _("Incorrect MACRO name: %s")
ERR_MACROVALUE_INVALID            = _("Incorrect MACRO value: %s")
ERR_NAME_ONLY_DEFINE             = _(
    "This variable can only be defined via environment variable: %s")
ERR_EDK_GLOBAL_SAMENAME          = _(
    "EDK_GLOBAL defined a macro with the same name as one defined by 'DEFINE'")
ERR_SECTIONNAME_INVALID          = _(
    "An incorrect section name was found: %s. 'The correct file is '%s' .")
ERR_CHECKFILE_NOTFOUND           = _(
    "Can't find file '%s' defined in section '%s'")
ERR_INVALID_NOTFOUND             = _(
    "Incorrect statement '%s' was found in section '%s'")
ERR_TEMPLATE_NOTFOUND            = _("This package information data file is not found: %s")
ERR_SECTION_NAME_INVALID         = _('Incorrect section name: %s')
ERR_SECTION_REDEFINE             = _(
    "This section already defined: %s.")
ERR_SECTION_NAME_NONE            = \
    _('The section needs to be specified first.')
ERR_KEYWORD_INVALID              = _('Invalid keyword: %s')
ERR_VALUE_INVALID                = _("Invalid \"%s\" value in section [%s].")
ERR_FILELIST_LOCATION            = _(
    'The directory "%s" must contain this file: "%s".')
ERR_KEYWORD_REDEFINE             = _(
    "Keyword in this section can only be used once: %s.")
ERR_FILELIST_EXIST               = _(
    'This file does not exist: %s.')
ERR_COPYRIGHT_CONTENT            = _(
    "The copyright content must contain the word \"Copyright\" (case insensitive).")
ERR_WRONG_FILELIST_FORMAT        = \
_('File list format is incorrect.' 
  'The correct format is: filename|key=value[|key=value]')
ERR_FILELIST_ATTR                = _(
    "The value of attribute \"%s\" includes illegal character.")
ERR_UNKNOWN_FILELIST_ATTR        = _(
    'Unknown attribute name: %s.')
ERR_EMPTY_VALUE                  = _("Empty value is not allowed")
ERR_KEYWORD_MANDATORY            = _('This keyword is mandatory: %s')
ERR_BOOLEAN_VALUE                = _(
    'Value of key [%s] must be true or false, current: [%s]')
ERR_GUID_VALUE                   = _(
    'GUID must have the format of 8-4-4-4-12 with HEX value. '
    'Current value: [%s]')
ERR_VERSION_VALUE                = _(
    'The value of key [%s] must be a decimal number. Found: [%s]')
ERR_VERSION_XMLSPEC              = _(
    'XmlSpecification value must be 1.1, current: %s.')

ERR_INVALID_GUID                 = _("Incorrect GUID value string: %s")

ERR_FILE_NOT_FOUND               = \
    _("File or directory not found in workspace")
ERR_FILE_OPEN_FAILURE            = _("Could not open file")
ERR_FILE_WRITE_FAILURE           = _("Could not write file.")
ERR_FILE_PARSE_FAILURE           = _("Could not parse file")
ERR_FILE_READ_FAILURE            = _("Could not read file")
ERR_FILE_CREATE_FAILURE          = _("Could not create file")
ERR_FILE_CHECKSUM_FAILURE        = _("Checksum of file is incorrect")
ERR_FILE_COMPRESS_FAILURE        = _("File compression did not correctly")
ERR_FILE_DECOMPRESS_FAILURE      = \
    _("File decompression did not complete correctly")
ERR_FILE_MOVE_FAILURE            = _("Move file did not complete successfully")
ERR_FILE_DELETE_FAILURE          = _("File could not be deleted")
ERR_FILE_COPY_FAILURE            = _("File did not copy correctly")
ERR_FILE_POSITIONING_FAILURE     = _("Could not find file seek position")
ERR_FILE_TYPE_MISMATCH           = _("Incorrect file type")
ERR_FILE_CASE_MISMATCH           = _("File name case mismatch")
ERR_FILE_DUPLICATED              = _("Duplicate file found")
ERR_FILE_UNKNOWN_ERROR           = _("Unknown error encountered on file")
ERR_FILE_NAME_INVALIDE           = _("This file name is invalid, it must not be an absolute path or "
                                     "contain a period \".\" or \"..\":  %s.")
ERR_OPTION_UNKNOWN               = _("Unknown option")
ERR_OPTION_MISSING               = _("Missing option")
ERR_OPTION_CONFLICT              = _("Options conflict")
ERR_OPTION_VALUE_INVALID         = _("Invalid option value")
ERR_OPTION_DEPRECATED            = _("Deprecated option")
ERR_OPTION_NOT_SUPPORTED         = _("Unsupported option")
ERR_OPTION_UNKNOWN_ERROR         = _("Unknown error when processing options")
ERR_PARAMETER_INVALID            = _("Invalid parameter")
ERR_PARAMETER_MISSING            = _("Missing parameter")
ERR_PARAMETER_UNKNOWN_ERROR      = _("Unknown error in parameters")
ERR_FORMAT_INVALID               = _("Invalid syntax/format")
ERR_FORMAT_NOT_SUPPORTED         = _("Syntax/format not supported")
ERR_FORMAT_UNKNOWN               = _("Unknown format")
ERR_FORMAT_UNKNOWN_ERROR         = _("Unknown error in syntax/format ")
ERR_RESOURCE_NOT_AVAILABLE       = _("Not available")
ERR_RESOURCE_ALLOCATE_FAILURE    = _("A resource allocation has failed")
ERR_RESOURCE_FULL                = _("Full")
ERR_RESOURCE_OVERFLOW            = _("Overflow")
ERR_RESOURCE_UNDERRUN            = _("Underrun")
ERR_RESOURCE_UNKNOWN_ERROR       = _("Unknown error")
ERR_ATTRIBUTE_NOT_AVAILABLE      = _("Not available")
ERR_ATTRIBUTE_RETRIEVE_FAILURE   = _("Unable to retrieve")
ERR_ATTRIBUTE_SET_FAILURE        = _("Unable to set")
ERR_ATTRIBUTE_UPDATE_FAILURE     = _("Unable to update")
ERR_ATTRIBUTE_ACCESS_DENIED      = _("Access denied")
ERR_ATTRIBUTE_UNKNOWN_ERROR      = _("Unknown error when accessing")
ERR_COMMAND_FAILURE              = _("Unable to execute command")
ERR_IO_NOT_READY                 = _("Not ready")
ERR_IO_BUSY                      = _("Busy")
ERR_IO_TIMEOUT                   = _("Timeout")
ERR_IO_UNKNOWN_ERROR             = _("Unknown error in IO operation")
ERR_UNKNOWN_ERROR                = _("Unknown error")
ERR_UPT_ALREADY_INSTALLED_ERROR  = _("Already installed")
ERR_UPT_ENVIRON_MISSING_ERROR    = _("Environ missing")
ERR_UPT_REPKG_ERROR              = _("File not allowed for RePackage")
ERR_UPT_DB_UPDATE_ERROR          = _("Update database did not complete successfully")
ERR_UPT_INI_PARSE_ERROR          = _("INI file parse error")
ERR_COPYRIGHT_MISSING            = \
_("Header comment section must have copyright information")
ERR_LICENSE_MISSING              = \
_("Header comment section must have license information")
ERR_INVALID_BINARYHEADER_FORMAT  = \
_("Binary Header comment section must have abstract,description,copyright,license information")
ERR_MULTIPLE_BINARYHEADER_EXIST = \
_("the inf file at most support one BinaryHeader at the fileheader section.")
ERR_INVALID_COMMENT_FORMAT       = _("Comment must start with #")
ERR_USER_ABORT                   = _("User has stopped the application")
ERR_DIST_EXT_ERROR               = \
_("Distribution file extension should be '.dist'. Current given: '%s'.")
ERR_DIST_FILENAME_ONLY_FOR_REMOVE               = \
_("Only distribution filename without path allowed during remove. Current given: '%s'.")
ERR_NOT_STANDALONE_MODULE_ERROR  = \
    _("Module %s is not a standalone module (found in Package %s)")
ERR_UPT_ALREADY_RUNNING_ERROR    = \
    _("UPT is already running, only one instance is allowed")
ERR_MUL_DEC_ERROR = _("Multiple DEC files found within one package directory tree %s: %s, %s")
ERR_INSTALL_FILE_FROM_EMPTY_CONTENT = _("Error file to be installed is not found in content file: %s")
ERR_INSTALL_FILE_DEC_FILE_ERROR = _("Could not obtain the TokenSpaceGuidCName and the PcdCName from the DEC files "
"that the package depends on for this pcd entry: TokenValue: %s Token: %s")
ERR_NOT_SUPPORTED_SA_MODULE = _("Stand-alone module distribution does not allow EDK 1 INF")
ERR_INSTALL_DIST_NOT_FOUND               = \
_("Distribution file to be installed is not found in current working directory or workspace: %s")
ERR_REPLACE_DIST_NOT_FOUND               = \
_("Distribution file for replace function was not found in the current working directory or workspace: %s")
ERR_DIST_FILENAME_ONLY_FOR_REPLACE_ORIG               = \
_("Only a distribution file name without a path is allowed for "
  "the distribution to be replaced during replace. Current given: '%s'.")
ERR_UNIPARSE_DBLQUOTE_UNMATCHED = \
_("Only Language entry can contain a couple of matched quote in one line")
ERR_UNIPARSE_NO_SECTION_EXIST = _("No PakcageDef or ModuleDef section exists in the UNI file.")
ERR_UNIPARSE_STRNAME_FORMAT_ERROR = _("The String Token Name %s must start with \"STR_\"")
ERR_UNIPARSE_SEP_LANGENTRY_LINE = _("Each <LangEntry> should be in a separate line :%s.")
ERR_UNIPARSE_MULTI_ENTRY_EXIST = \
_("There are same entries : %s in the UNI file, every kind of entry should be only one.")
ERR_UNIPARSE_ENTRY_ORDER_WRONG = \
_("The string entry order in UNI file should be <AbstractStrings>, <DescriptionStrings>, \
<BinaryAbstractStrings>, <BinaryDescriptionStrings>.")
ERR_UNIPARSE_STRTOKEN_FORMAT_ERROR = _("The String Token Type %s must be one of the '_PROMPT', '_HELP' and '_ERR_'.") 
ERR_UNIPARSE_LINEFEED_UNDER_EXIST = _("Line feed should not exist under this line: %s.")
ERR_UNIPARSE_LINEFEED_UP_EXIST = _("Line feed should not exist up this line: %s.")
ERR_UNI_MISS_STRING_ENTRY = _("String entry missed in this Entry, %s.")
ERR_UNI_MISS_LANGENTRY = _("Language entry missed in this Entry, %s.")
ERR_BINARY_HEADER_ORDER           = _("Binary header must follow the file header.")
ERR_NO_SOURCE_HEADER              = _("File header statement \"## @file\" must exist at the first place.")
ERR_UNI_FILE_SUFFIX_WRONG = _("The UNI file must have an extension of '.uni', '.UNI' or '.Uni'")
ERR_UNI_FILE_NAME_INVALID = _("The use of '..', '../' and './' in the UNI file is prohibited.")
ERR_UNI_SUBGUID_VALUE_DEFINE_DEC_NOT_FOUND = _("There are no DEC file to define the GUID value for \
this GUID CName: '%s'.")

#
# Expression error message
#
ERR_EXPR_RIGHT_PAREN            = \
_('Missing ")" in expression "%s".')
ERR_EXPR_FACTOR                 = \
_('"%s" is expected to be HEX, integer, macro, quoted string or PcdName in '
  'expression "%s".')
ERR_EXPR_STRING_ITEM            = \
_('"%s" is expected to be HEX, integer, macro, quoted string or PcdName in '
  'expression [%s].')
ERR_EXPR_EQUALITY               = \
_('"%s" is expected to be ==, EQ, != or NE  in expression "%s".')
ERR_EXPR_BOOLEAN                = \
_('The string "%s" in expression "%s" can not be recognized as a part of the logical expression.')
ERR_EXPR_EMPTY                  = _('Boolean value cannot be empty.')
ERR_EXPRESS_EMPTY               = _('Expression can not be empty.')
ERR_EXPR_LOGICAL                = \
_('The following is not a valid logical expression: "%s".')
ERR_EXPR_OR                     = _('The expression: "%s" must be encapsulated in open "(" and close ")" '
                                    'parenthesis when using | or ||.')
ERR_EXPR_RANGE                  = \
_('The following is not a valid range expression: "%s".')
ERR_EXPR_RANGE_FACTOR           = \
_('"%s" is expected to be HEX, integer in valid range expression "%s".')
ERR_EXPR_RANGE_DOUBLE_PAREN_NESTED = \
_('Double parentheses nested is not allowed in valid range expression: "%s".')
ERR_EXPR_RANGE_EMPTY            = _('Valid range can not be empty.')
ERR_EXPR_LIST_EMPTY             = _('Valid list can not be empty.')
ERR_PAREN_NOT_USED              = _('Parenthesis must be used on both sides of "OR", "AND" in valid range : %s.')
ERR_EXPR_LIST                   = \
_('The following is not a valid list expression: "%s".')


# DEC parser error message
#
ERR_DECPARSE_STATEMENT_EMPTY        = \
_('Must have at least one statement in section %s.')
ERR_DECPARSE_DEFINE_DEFINED         = \
_('%s already defined in define section.')
ERR_DECPARSE_DEFINE_SECNAME         = \
_('No arch and others can be followed for define section.')
ERR_DECPARSE_DEFINE_MULTISEC        = \
_('The DEC file does not allow multiple define sections.')
ERR_DECPARSE_DEFINE_REQUIRED        = \
_("Field [%s] is required in define section.")
ERR_DECPARSE_DEFINE_FORMAT          = \
_("Wrong define section format, must be KEY = Value.")
ERR_DECPARSE_DEFINE_UNKNOWKEY       = \
_("Unknown key [%s] in define section.")
ERR_DECPARSE_DEFINE_SPEC            = \
_("Specification value must be HEX numbers or decimal numbers.")
ERR_DECPARSE_DEFINE_PKGNAME         = \
_("Package name must be AlphaNumeric characters.")
ERR_DECPARSE_DEFINE_PKGGUID         = \
_("GUID format error, must be HEX value with form 8-4-4-4-12.")
ERR_DECPARSE_DEFINE_PKGVERSION      = \
_("Version number must be decimal number.")
ERR_DECPARSE_DEFINE_PKGVUNI         = \
_("UNI file name format error or file does not exist.")
ERR_DECPARSE_INCLUDE                = \
_("Incorrect path: [%s].")
ERR_DECPARSE_LIBCLASS_SPLIT         = \
_("Library class format error, must be Libraryclass|Headerpath.")
ERR_DECPARSE_LIBCLASS_EMPTY         = \
_("Class name or file name must not be empty.")
ERR_DECPARSE_LIBCLASS_LIB           = \
_("Class name format error, must start with upper case letter followed with " 
  "zero or more alphanumeric characters.")
ERR_DECPARSE_LIBCLASS_PATH_EXT      = _("File name must be end with .h.")
ERR_DECPARSE_LIBCLASS_PATH_DOT      = _("Path must not include '..'.")
ERR_DECPARSE_LIBCLASS_PATH_EXIST    = _("File name [%s] does not exist.")
ERR_DECPARSE_PCD_CVAR_GUID          = \
_("TokenSpaceGuidCName must be valid C variable format.")
ERR_DECPARSE_PCD_SPLIT              = \
_("Incorrect PcdName. The format must be TokenSpaceGuidCName.PcdCName"
                                        "|PcdData|PcdType|Token.")
ERR_DECPARSE_PCD_NAME               = \
_("Incorrect PCD name. The correct format must be "
  "<TokenSpaceGuidCName>.<PcdCName>.")
ERR_DECPARSE_PCD_CVAR_PCDCNAME      = \
_("PcdCName must be valid C variable format.")
ERR_DECPARSE_PCD_TYPE               = \
_('Incorrect PCD data type. A PCD data type  must be one of '
  '"UINT8", "UINT16", "UINT32", "UINT64", "VOID*", "BOOLEAN".')
ERR_DECPARSE_PCD_VOID               = \
_("Incorrect  value [%s] of type [%s].  Value  must be printable and in the "
  "form of{...} for array, or ""..."" for string, or L""..."""
  "for unicode string.")
ERR_DECPARSE_PCD_VALUE_EMPTY        = \
_("Pcd value can not be empty.") 
ERR_DECPARSE_PCD_BOOL               = \
_("Invalid value [%s] of type [%s]; must be expression, TRUE, FALSE, 0 or 1.")
ERR_DECPARSE_PCD_INT                = _("Incorrect value [%s] of type [%s]."\
" Value must be a hexadecimal, decimal or octal in C language format.")
ERR_DECPARSE_PCD_INT_NEGTIVE        = _("Incorrect value [%s] of type [%s];"
                                        " must not be signed number.")
ERR_DECPARSE_PCD_INT_EXCEED         = _("Incorrect value [%s] of type [%s]; "
                                    "the number is too long for this type.")
ERR_DECPARSE_PCD_FEATUREFLAG        = \
_("PcdFeatureFlag only allow BOOLEAN type.")
ERR_DECPARSE_PCD_TOKEN              = \
_("An incorrect PCD token found: [%s].  "
  "It must start with 0x followed by 1 - 8 hexadecimal. ")
ERR_DECPARSE_PCD_TOKEN_INT          = _("Incorrect token number [%s].  "
     "This token number exceeds the maximal value of unsigned 32.")
ERR_DECPARSE_PCD_TOKEN_UNIQUE       = _("Token number must be unique to the token space: %s.")
ERR_DECPARSE_CGUID                  = \
_("No GUID name or value specified, must be <CName> = <GuidValueInCFormat>.")
ERR_DECPARSE_CGUID_NAME             = \
_("No GUID name specified, must be <CName> = <GuidValueInCFormat>.")
ERR_DECPARSE_CGUID_GUID             = \
_("No GUID value specified, must be <CName> = <GuidValueInCFormat>.")
ERR_DECPARSE_CGUID_GUIDFORMAT       = \
_("Incorrect GUID value format, must be <GuidValueInCFormat:" 
  "{8,4,4,{2,2,2,2,2,2,2,2}}>.")
ERR_DECPARSE_CGUID_NOT_FOUND = _("Unable to find the GUID value of this GUID CName : '%s'.")
ERR_DECPARSE_FILEOPEN               = _("Unable to open: [%s].")
ERR_DECPARSE_SECTION_EMPTY          = _("Empty sections are not allowed.")
ERR_DECPARSE_SECTION_UE             = _("Incorrect UserExtentions format. "
                            "Must be UserExtenxions.UserId.IdString[.Arch]+.")
ERR_DECPARSE_SECTION_UE_USERID      = _("Invalid UserId, must be underscore" 
                                        "or alphanumeric characters.")
ERR_DECPARSE_SECTION_UE_IDSTRING    = \
    _("Incorrect IdString, must be \" ... \".")
ERR_DECPARSE_ARCH                   = \
_("Unknown arch, must be 'common' or start with upper case letter followed by"
                            " zero or more upper case letters and numbers.")
ERR_DECPARSE_SECTION_COMMA          = _("Section cannot end with comma.")
ERR_DECPARSE_SECTION_COMMON         = \
_("'COMMON' must not be used with specific ARCHs in the same section.")
ERR_DECPARSE_SECTION_IDENTIFY       = \
_("Section header must start with and end with brackets[].")
ERR_DECPARSE_SECTION_SUBEMPTY       = \
_("Missing a sub-section name in section: [%s]. "
  "All sub-sections need to have names. ")
ERR_DECPARSE_SECTION_SUBTOOMANY     = _("Too many DOT splits in [%s].")
ERR_DECPARSE_SECTION_UNKNOW         = _("Section name [%s] unknown.")
ERR_DECPARSE_SECTION_FEATUREFLAG    = \
_("[%s] must not be in the same section as other types of PCD.")
ERR_DECPARSE_MACRO_PAIR             = _("No macro name/value given.")
ERR_DECPARSE_MACRO_NAME             = _("No macro name given.")
ERR_DECPARSE_MACRO_NAME_UPPER       = \
_("Macro name must start with upper case letter followed "
"by zero or more upper case letters or numbers.  Current macro name is: [%s].")
ERR_DECPARSE_SECTION_NAME           = \
_('Cannot mix different section names %s.')
ERR_DECPARSE_BACKSLASH              = \
_('Backslash must be the last character on a line and '
                                        'preceded by a space character.')
ERR_DECPARSE_BACKSLASH_EMPTY        = \
_('Empty line after previous line that has backslash is not allowed.')
ERR_DECPARSE_REDEFINE               = _(
    "\"%s\" already defined in line %d.")
ERR_DECPARSE_MACRO_RESOLVE          = _("Macro %s in %s cannot be resolved.")
ERR_DECPARSE_UE_DUPLICATE           = \
    _("Duplicated UserExtensions header found.")
ERR_DECPARSE_PCDERRORMSG_MISS_VALUE_SPLIT = \
    _("Missing '|' between Pcd's error code and Pcd's error message.")
ERR_DECPARSE_PCD_MISS_ERRORMSG = \
    _("Missing Pcd's error message.")
ERR_DECPARSE_PCD_UNMATCHED_ERRORCODE = \
    _("There is no error message matched with this Pcd error code : %s in both DEC and UNI file.")
ERR_DECPARSE_PCD_NODEFINED = _("The PCD : %s used in the Expression is undefined.")
#
# Used to print the current line content which cause error raise.
# Be attached to the end of every error message above.
#
ERR_DECPARSE_LINE                   = _(" Parsing line: \"%s\".")

#
# Warning related strings.
#
WRN_PACKAGE_EXISTED       = _(
    "A package with this GUID and Version already exists: "
    "GUID %s, Version %s.")
WRN_MODULE_EXISTED        = _("This module already exists: %s")
WRN_FILE_EXISTED          = _("This file already exists: %s")
WRN_FILE_NOT_OVERWRITTEN  = \
_("This file already exist and cannot be overwritten: %s")
WRN_DIST_PKG_INSTALLED = _("This distribution package %s has previously been installed.")
WRN_DIST_NOT_FOUND         = _(
    "Distribution is not found at location %s")
WRN_MULTI_PCD_RANGES      = _(
    "A PCD can only have one type of @ValidRange, @ValidList, and @Expression comment")
WRN_MULTI_PCD_VALIDVALUE  = _(
    "A PCD can only have one of @ValidList comment")
WRN_MULTI_PCD_PROMPT      = _(
    "A PCD can only have one of @Prompt comment")
WRN_MISSING_USAGE                = _("Missing usage")
WRN_INVALID_GUID_TYPE            = _("This is and incorrect Guid type: %s")
WRN_MISSING_GUID_TYPE            = _("Missing Guid Type")
WRN_INVALID_USAGE                = _("This is an incorrect Usage: %s")
WRN_INF_PARSER_MODULE_INVALID_HOB_TYPE = \
    _("This is an incorrect HOB type: %s")
WRN_INF_PARSER_MODULE_INVALID_EVENT_TYPE = \
    _("This is an incorrect EVENT type: %s")
WRN_INF_PARSER_MODULE_INVALID_BOOTMODE_TYPE = \
    _("This is an incorrect BOOTMODE type: %s")
WRN_INVALID_MODULE_TYPE = \
    _("This is an incorrect Module type: %s")  
WRN_MODULE_PARSE_FAILED = \
    _("Parsing of this module did not complete correctly: %s.")
WRN_EDK1_INF_FOUND = \
    _("EDK 1 module file found: %s")
WRN_INVALID_COPYRIGHT = \
    _("Copyright information is not right")
WARN_SPECIAL_SECTION_LOCATION_WRONG = _("Warning. A special section should be "
                                        "at the end of a file or at the end of a section.")
WARN_INSTALLED_PACKAGE_NOT_FOUND = \
    _("File not found. The DEC file for a package cannot be found in GUID/Version/Install path: %s %s %s")
WARN_CUSTOMPATH_OVERRIDE_USEGUIDEDPATH = \
    _("option selection of --custom-path will override the option --use-guided-paths")

#
# Help related strings.
#
HLP_PRINT_DEBUG_INFO             = _(
    "Print DEBUG statements, where DEBUG_LEVEL is 0-9")
HLP_PRINT_INFORMATIONAL_STATEMENT = _("Print informational statements")
HLP_RETURN_NO_DISPLAY            = _(
    "Returns only the exit code, informational and error messages are" 
    " not displayed")
HLP_RETURN_AND_DISPLAY           = _(
    "Returns the exit code and displays  error messages only")
HLP_SPECIFY_PACKAGE_NAME_INSTALL = _(
    "Specify the UEFI Distribution Package filename to install")
HLP_SPECIFY_PACKAGE_NAME_CREATE  = _(
    "Specify the UEFI Distribution Package filename to create")
HLP_SPECIFY_PACKAGE_NAME_REMOVE  = _(
    "Specify the UEFI Distribution Package filename to remove")
HLP_SPECIFY_TEMPLATE_NAME_CREATE = _(
    "Specify Package Information Data filename to create package")
HLP_SPECIFY_DEC_NAME_CREATE      = _(
    "Specify dec file names to create package")
HLP_SPECIFY_INF_NAME_CREATE      = _(
    "Specify inf file names to create package")
HLP_LIST_DIST_INSTALLED      = _(
    "List the UEFI Distribution Packages that have been installed")
HLP_NO_SUPPORT_GUI               = _(
    "Starting the tool in graphical mode is not supported in this version")
HLP_DISABLE_PROMPT               = _(
    "Disable user prompts for removing modified files. Valid only when -r is present")
HLP_CUSTOM_PATH_PROMPT           = _(
    "Enable user prompting for alternate installation directories")
HLP_SKIP_LOCK_CHECK              = _(
    "Skip the check for multiple instances")
HLP_SPECIFY_PACKAGE_NAME_REPLACE  = _(
    "Specify the UEFI Distribution Package file name to replace the existing file name")
HLP_SPECIFY_PACKAGE_NAME_TO_BE_REPLACED = _(
    "Specify the UEFI Distribution Package file name to be replaced")
HLP_USE_GUIDED_PATHS = _(
    "Install packages to the following directory path by default: <PackageName>_<PACKAGE_GUID>_<PACKAGE_VERSION>")
HLP_TEST_INSTALL = _(
    "Specify the UEFI Distribution Package filenames to install")

MSG_TEST_INSTALL_PASS = _("All distribution package file are satisfied for dependence check.")
MSG_TEST_INSTALL_FAIL = _("NOT all distribution package file are satisfied for dependence check.")
