+ //\r
+ // Get the size of supported language.\r
+ //\r
+ SupportedLanguagesSize = 0;\r
+ Status = HiiString->GetLanguages (\r
+ HiiString,\r
+ PackageList,\r
+ &TempSupportedLanguages,\r
+ &SupportedLanguagesSize\r
+ );\r
+ if (Status != EFI_BUFFER_TOO_SMALL) {\r
+ return Status;\r
+ }\r
+\r
+ SupportedLanguages = AllocatePool (SupportedLanguagesSize);\r
+ if (SupportedLanguages == NULL) {\r
+ return EFI_OUT_OF_RESOURCES;\r
+ }\r
+\r
+ Status = HiiString->GetLanguages (\r
+ HiiString,\r
+ PackageList,\r
+ SupportedLanguages,\r
+ &SupportedLanguagesSize\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ goto Exit;\r
+ }\r
+ \r
+ if (Language == NULL) {\r
+ Language = "";\r
+ }\r
+ GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&CurrentLanguage, NULL);\r
+ BestLanguage = GetBestLanguage (\r
+ SupportedLanguages,\r
+ FALSE,\r
+ Language,\r
+ (CurrentLanguage == NULL) ? CurrentLanguage : "",\r
+ (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang),\r
+ NULL\r
+ );\r
+ if (BestLanguage == NULL) {\r
+ Status = EFI_NOT_FOUND;\r
+ goto Exit;\r
+ }\r
+ \r