[.NET] [C++/CLI] 多國語言 (.resx)

使用visual studio C++/CLI 要撰寫多國語言介面,可利用內部的資源檔案(.resx)來應用。

1. 針對控制項上的文字或標頭來做多國語言
- 設定好初始的介面。
- 點選表單[Properties/ Localizable]設為true,代表此表單載入時要依照系統文化設定語言。
- 點選[Language],設定為要製作的國家的語言。
- 第一次添加時,visual studio會自動幫你添加一個resx檔案到表單下。






- 此時可看到表單上會顯示目前表單是使用哪一個國家的資源檔,若是原始的資源檔,則後方不會特別顯示文字。
- 在指定的國家的資源檔地下,仍然可利用右方properties內的text來修改設定要顯示的文字。
- 修改完成後,相對資料會自動放入資源檔中。


2. 針對其他特定文字來做多國語言(EX. 訊息視窗文字)
- 需要針對單一專案,手動添加資源檔。
- 依照不同語言文化也可將檔案名稱利用" . "與文化隔開。[檔案名.文化特性.resx]










- 可添加字串、影像等資訊到資源檔中。
- 加入字串名稱以及內容,之後就可以利用ResourceManager來將字串取出。

ex.
using namespace System::Resources;
using namespace System::Reflection;

System::Resources::ResourceManager^ m_CurResource;
//創建ResourceManager時,依照命名空間.資源檔名稱來填入創建實例的欄位中。
//原本以為是填入專案名稱...結果錯得很慘...
m_CurResource=gcnew ResourceManager("命名空間名稱(專案名稱).資源檔名稱", Assembly::GetExecutingAssembly());

//將資源檔內的名稱填入GetString或GetObj下即可取得其回傳資料。
m_CurResource->GetString("名稱");
m_CurResource->GetObj("名稱");

若ResourceManager創建時的資源檔名稱不正確時,會導致以下問題:










參考資訊:
http://www.dotblogs.com.tw/larrynung/archive/2009/04/24/8158.aspx
http://social.msdn.microsoft.com/Forums/zh-TW/809ace8b-f340-4b75-be47-08f00caa8e87/-

這個網誌中的熱門文章

[Tips] 設定桌面文字顏色

登入失敗: 使用者帳戶限制。可能原因為不允許空的密碼,登入時數限制,或強制的原則限制

[Win7] 電腦管理-損毀傾印