]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add in ConvertIso639LanguageToRfc3066Language API.
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 22 May 2008 00:59:42 +0000 (00:59 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 22 May 2008 00:59:42 +0000 (00:59 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5268 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/HiiLib/HiiString.c

index b28a955d810aa39ef1756cd1a7d80608d39d35f6..2df4b47c38ac772b546289db25eae1b0b960d610 100644 (file)
@@ -415,6 +415,44 @@ ConvertRfc3066LanguageToIso639Language (
 }\r
 \r
 \r
+/**\r
+  Convert language code from ISO639-2 to RFC3066.\r
+\r
+  LanguageIso639 contain a single ISO639-2 code such as\r
+  "eng" or "fra".\r
+\r
+  The LanguageRfc3066 must be a buffer large enough\r
+  for RFC_3066_ENTRY_SIZE characters.\r
+\r
+  If LanguageIso639 is NULL, then ASSERT.\r
+  If LanguageRfc3066 is NULL, then ASSERT.\r
+\r
+  @param  LanguageIso639         ISO639-2 language code.\r
+  @param  LanguageRfc3066        RFC3066 language code.\r
+\r
+  @retval EFI_SUCCESS            Language code converted.\r
+  @retval EFI_NOT_FOUND          Language code not found.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConvertIso639LanguageToRfc3066Language (\r
+  IN  CONST CHAR8   *LanguageIso639,\r
+  OUT CHAR8         *LanguageRfc3066\r
+  )\r
+{\r
+  UINTN Index;\r
+  \r
+  for (Index = 0; Iso639ToRfc3066ConversionTable[Index] != 0; Index += 5) {\r
+    if (CompareMem (LanguageIso639, &Iso639ToRfc3066ConversionTable[Index], 3) == 0) {\r
+      CopyMem (LanguageRfc3066, &Iso639ToRfc3066ConversionTable[Index + 3], 2);\r
+      return EFI_SUCCESS;\r
+    }\r
+  }\r
+\r
+  return EFI_NOT_FOUND;\r
+}\r
+\r
 /**\r
   Convert language code list from RFC3066 to ISO639-2, e.g. "en-US;fr-FR" will\r
   be converted to "engfra".\r