From: Eric Dong Date: Thu, 5 Sep 2013 05:39:57 +0000 (+0000) Subject: Refine the select language logic. X-Git-Tag: edk2-stable201903~12276 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=10516d293f5734504adce90c6136440beb4dab6f Refine the select language logic. Signed-off-by: Eric Dong Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14630 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/PerformancePkg/Dp_App/DpUtilities.c b/PerformancePkg/Dp_App/DpUtilities.c index 4daca0b853..65efb80c80 100644 --- a/PerformancePkg/Dp_App/DpUtilities.c +++ b/PerformancePkg/Dp_App/DpUtilities.c @@ -218,8 +218,12 @@ GetNameFromHandle ( CHAR16 *NameString; UINTN StringSize; CHAR8 *PlatformLanguage; + CHAR8 *BestLanguage; EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2; + BestLanguage = NULL; + PlatformLanguage = NULL; + // // Method 1: Get the name string from image PDB // @@ -269,13 +273,23 @@ GetNameFromHandle ( // Get the current platform language setting // GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&PlatformLanguage, NULL); + + BestLanguage = GetBestLanguage( + ComponentName2->SupportedLanguages, + FALSE, + PlatformLanguage, + ComponentName2->SupportedLanguages, + NULL + ); + + SafeFreePool (PlatformLanguage); Status = ComponentName2->GetDriverName ( ComponentName2, - PlatformLanguage != NULL ? PlatformLanguage : "en-US", + BestLanguage, &StringPtr ); + SafeFreePool (BestLanguage); if (!EFI_ERROR (Status)) { - SafeFreePool (PlatformLanguage); StrnCpy (mGaugeString, StringPtr, DP_GAUGE_STRING_LENGTH); mGaugeString[DP_GAUGE_STRING_LENGTH] = 0; return;