WP8開發日誌(1):Toolkit的本地化

其實此篇blog本不是這時候發表的,但由於愛恨糾纏,還是將此備忘先寫下來罷,免得到時又忘記——只要自己還在弄WP的東西估計不會那麼快就是啦。WP8的開發,其實跟WinRT的開發大同小異而已,滿眼都是C#跟xaml,我真是恨透了xaml,可是,用慣了其實還挺上心的,新學一門技術,最困難的永遠是入門。


WP8的開發環境我用的VS2013,本身支持的控件不多,如日曆等就沒有啦,若想從基礎控件搭起恐怕有難度,WP Toolkit是微軟自身開發的第三方控件庫,像常用的DatePicker跟TimePicker用起來就相當方便(具體怎麼加載稍後附上,自己百度的話也可以完全弄明白),不過問題在於Toolkit的本地化出現了問題,如下圖所示,星期跟月份的顯示就很正常,可標題跟任務欄的文字卻只顯示英文。因爲這個問題,我幾乎用了整整一天的時間去各種搜索,搜到一篇相關的帖子可還是弄不到頭緒,下載了源碼來看,兩者APP加載時,源碼的工程是會加載Microsoft.Phone.Controls.Toolkit.resources.dll的,自己新建的工程卻沒有這一項,可以基本判斷自己的工程加載Toolkit的語言包出了問題。


wKiom1MMrfuysIrFAAB69xOmDSk407.jpg


經過一番掙扎,最終的問題原因歸結爲:新建工程的默認語言必須爲en-US(萬惡的美帝)。所以一般使用WP Express 2012英文版來開發是不會有這個問題的,頂多在工程屬性裏添加一項支持語言爲中文(簡體)就可以了。以下是具體的解決方法:


(1)修改工程的默認語言

(1-1)修改工程的AssemblyInfo.cs文件,將最後一行的默認語言改爲en-US,如下。

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]

(1-2)爲了保險起見,打開WMAppManifest.xml文件,將“打包”選項的默認語言也改爲“英語(美國)”

(1-3)自然還有工程屬性,將默認語言也爲英語。

wKiom1MMtbTjX_K8AADEGOFdf8s234.jpg

(1-4)保存工程,再關閉工程,當你再次打開工程時,其默認語言爲英語。


(2)添加中文語言的支持

重新打開剛剛修改後的工程,打開項目的屬性窗口,在(1-3)圖示的地方勾選“中文(簡體,中國)”,如下圖所示。

wKiom1MMtufxPyKuAADzQKmHans090.jpg

保存工程,你會發現在工程的Resources目錄下添加了一項AppResources.zh-CN.resx,這個就是Toolkit的本地化語言包。


(3)編譯運行

然後就完美支持中文啦,如下圖所示:

wKioL1MMt7jQ0K0-AAB3NplhQEs570.jpg


個人覺得,這樣的本地化設置的確是有點噁心,稍後附上Toolkit的源碼(現在好像上傳需要等一段時間的),有興趣的朋友可以自己研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章