2016年2月26日 星期五

[UWP-C#] 多國語系的設定

許多專案會希望能夠支援多國語系,UWP當然也不例外,有個十分簡單的方法可以達成。

先開啟一個新的專案來試驗吧。

首先先在你的專案裡面加入兩個資料夾

並命名為zh-TW與en,並在兩個資料夾內分別加入資源檔案(Resources.resw),

資源檔案的檔名可以不用修改。


















它的儲存機制是以Key - Value來存放的,我們試著在String1各別加入不一樣的文字。










此時Key為String1的值在中文與英文會顯示不同的文字。而該怎麼在程式碼中使用呢?



接著你就可以直接執行看看,若是在中文環境下就會印出zh-TW資源檔的文字,

而英文環境則是en裡面的文字。

這麼一來就可以隨著使用者語系不同而改變。

但是,你可能會有一個需求是,我能不能在App裡面就直接切換了呢?

因為現在這種作法只能關閉App並且切換語系後重開機,

實在有些麻煩,事實上是可行的。

假設你現在想要強制它改為英文,就只需要輸入這行就可以了。



這麼一來就可以在App當中改語系了。

接著,如果你想要在XAML之中使用這個值,也是可行的。

首先你必須將你的元件設定Uid,就像下面這行一樣。



之後,在你的Resources.resw檔中,會用到上面的Uid,

假設你想給MyTextBlock設定Text的值的話,就只要這樣輸入就可以了。