+/**\r
+ Get best support language for this driver.\r
+ \r
+ First base on the current platform used language to search,Second base on the \r
+ default language to search. The caller need to free the buffer of the best \r
+ language.\r
+\r
+ @param[in] SupportedLanguages The support languages for this driver.\r
+ @param[in] Iso639Language Whether get language for ISO639.\r
+\r
+ @return The best support language for this driver.\r
+**/\r
+CHAR8 *\r
+GetBestLanguageForDriver (\r
+ IN CONST CHAR8 *SupportedLanguages, \r
+ IN BOOLEAN Iso639Language\r
+ )\r
+{\r
+ CHAR8 *LanguageVariable;\r
+ CHAR8 *BestLanguage;\r
+\r
+ LanguageVariable = GetVariable (Iso639Language ? L"Lang" : L"PlatformLang", &gEfiGlobalVariableGuid);\r
+\r
+ BestLanguage = GetBestLanguage(\r
+ SupportedLanguages,\r
+ Iso639Language,\r
+ (LanguageVariable != NULL) ? LanguageVariable : "",\r
+ Iso639Language ? "en" : "en-US",\r
+ NULL\r
+ );\r
+\r
+ if (LanguageVariable != NULL) {\r
+ FreePool (LanguageVariable);\r
+ }\r
+\r
+ return BestLanguage;\r
+}\r
+\r