MFC 應用程式中的當地語系化資源:附屬 DLL
MFC 7.0 版和更新版本提供附屬 DLL 的增強支援,這項功能有助於建立當地語系化為多種語言的應用程式。 附屬 DLL 是 僅限資源的 DLL ,其中包含針對特定語言本地化的應用程式資源。 當應用程式開始執行時,MFC 會自動載入最適合環境的當地語系化資源。 例如,您可以有一個具有英文語言資源且具有兩個附屬 DLL 的應用程式,一個包含您資源的法文翻譯,另一個包含德文翻譯。 當應用程式在英文語言系統上執行時,它會使用英文資源。 如果在法文系統上執行,它會使用法文資源;如果在德文系統上執行,則會使用德文資源。
若要支援 MFC 應用程式中的當地語系化資源,MFC 會嘗試載入附屬 DLL,其中包含當地語系化為特定語言的資源。 附屬 DLL 的名稱為 ApplicationNameXXX.dll,其中 ApplicationName 是使用 MFC .exe或.dll的名稱,而 XXX 是資源語言的三個字母代碼(例如'ENU' 或 'DEU')。
MFC 會嘗試依序載入下列每個語言的資源 DLL,並在找到資源 DLL 時停止:
從 GetUserDefaultUILanguage() Win32 API 傳回的目前用戶預設 UI 語言。
目前使用者的預設 UI 語言,沒有任何特定的子語言(也就是 ENC [加拿大英文] 會變成 ENU [美式英文])。
系統的預設UI語言,如 GetSystemDefaultUILanguage() API 所傳回。 在其他平臺上,這是操作系統本身的語言。
系統的預設 UI 語言,沒有任何特定的子語言。
具有 3 個字母代碼 LOC 的假語言。
如果 MFC 找不到任何附屬 DLL,它會使用應用程式本身中包含的任何資源。
例如,假設應用程式LangExample.exe使用MFC,並在多個使用者介面系統上執行;系統 UI 語言為 ENU [美式英文],而目前使用者的 UI 語言設定為 FRC [加拿大法文]。 MFC 會依下列順序尋找下列 DLL:
LangExampleFRC.dll (使用者的UI語言)。
LangExampleFRA.dll (使用者 UI 語言沒有子語言,在此範例中為法文 (法國)。
LangExampleENU.dll(系統的UI語言)。
LangExampleLOC.dll。
如果找不到這些 DLL,MFC 會使用 LangExample.exe 中的資源。