2011-11-07 81 views
1

我正在研究已經本地化爲多種語言的MFC應用程序。它動態鏈接到MFC,如果目標系統安裝了MFC LOC DLL,它會按預期自動使用這些DLL。但是,在這些操作系統中,有些用戶更喜歡英語,有沒有辦法強制它使用英文DLL而不是翻譯後的MFC LOC DLL?避免MFC LOC DLL

+0

我不確定你的意思是什麼樣的系統(除了Windows是顯而易見的),但也許喜歡英語的用戶(我懷疑給定國家的每個人。 ..)可以在區域設置中將他們的首選UI語言設置爲英語?除此之外,您需要編寫自定義加載程序來以首選語言加載DLL,而不是缺省操作系統。你可以發佈這些加載你的本地化庫的代碼嗎?尤其是關於Locale Detection(我想知道你用什麼代碼來了解LCID)? –

回答

0

MFC LOC機制是恕我直言恐怖的。它應該儘量避免,因爲它會造成更多的傷害,因爲它會造成更多的傷害。

由於無法使用多個翻譯,就像您所體驗的那樣,MFC LOC在我們行業的恥辱廳應該是一個不錯的地方。想想所有這些導致其他不相關的基於MFC的應用程序出現部分翻譯的應用程序。

這就是爲什麼我認爲最好是在您自己的資源DLL中提供MFC資源的翻譯。

免責聲明:我的廣告如下;-)

appTranslator是你的朋友翻譯您的MFC應用程序。它可以自動翻譯27種語言的MFC資源。它會自動構建您的資源DLL。還有更多......廣告

/結束這CodeProject article礦提供了現成使用的代碼,以支持資源DLL和支持裝載的語言菜單。好的,這不是你的問題,但我認爲它可能有幫助。哦,這是免責聲明,因爲它是免費的;-)

+0

如果我動態鏈接到MFC,我該如何防止它加載已經在系統上的LOC DLL?是靜態鏈接到MFC的唯一合理的解決方案? – Jonathan

+0

如果您將MFC dll與您的應用程序並排安裝,它將不會查找共享的MFC loc DLL。 –

+0

我試着在本地目錄中使用合併模塊和專用程序集並行使用MFC,兩者仍然設法找到已安裝的完整可再發行程序安裝所安裝的LOC DLL。 – Jonathan