/**\r
Compare whether two names of languages are identical.\r
\r
- @param Language1 Name of language 1\r
- @param Language2 Name of language 2\r
+ @param Language1 Name of language 1 from StringPackage\r
+ @param Language2 Name of language 2 to be compared with language 1.\r
\r
@retval TRUE same\r
@retval FALSE not same\r
/**\r
Compare whether two names of languages are identical.\r
\r
- @param Language1 Name of language 1\r
- @param Language2 Name of language 2\r
+ @param Language1 Name of language 1 from StringPackage\r
+ @param Language2 Name of language 2 to be compared with language 1.\r
\r
@retval TRUE same\r
@retval FALSE not same\r
{\r
UINTN Language2Len;\r
\r
+ //\r
+ // When languages are exactly same, they will be identical. \r
+ //\r
Language2Len = AsciiStrLen (Language2);\r
- return (BOOLEAN) (AsciiStrnCmp (Language1, Language2, Language2Len) == 0);\r
+ if (AsciiStrnCmp (Language2, Language1, Language2Len) == 0) {\r
+ return TRUE;\r
+ }\r
+ \r
+ //\r
+ // When Language1 is the sub tag of Language2, they will also be regarded as identical.\r
+ // This is added to support current Shell. Shell string package uses "en" as language name. \r
+ // But, it may use platform language "en-US" to get string value.\r
+ //\r
+ if (AsciiStrStr (Language2, Language1) == Language2) {\r
+ return TRUE;\r
+ }\r
+ \r
+ return FALSE;\r
}\r