[開發] 如何撰寫支援多語系的APP - WP7/8

看板WindowsPhone作者 (WildDagger)時間11年前 (2014/03/10 13:35), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/1
承上篇的Win8篇,Windows Phone 7/8相對而言算是比較簡單的 (除了動態磚的標題以外......) 最主要的原因是Windows Phone 7/8每個專案都有內建「LocalizedStrings.cs」 所以不需要像Windows 8/8.1一樣使用x:Uid的方式 這個類別最重要的是直接先幫你把資源字串產生出來 因此最大的不同之處就是你在XAML用了之後可以馬上看到成果 不過缺點是當你改了資源檔後,畫面不會改也不會自動新增資源, 可能還會跳錯跟你說找不到某某某資源, 所以還是需要重建專案一次才行。 在預設的情況下,應該可以在Resources的資料夾下面看到AppResources.resx這個檔案 (不意外的其實也是個XML檔案,但是仍然建議用預設的編輯器去開) 裡面有一些預設已經定義完畢的字串 重點是ApplicationTitle、ResourceLanguage這兩項 預設應該會是「我的應用程式」、「zh-TW」才對(以繁體中文版建立的話) 輸入名稱與值,並且重建專案後 就可以直接在頁面的XAML輸入資源字串 Windows Phone 7/8的方式是綁定字串 因此不是輸入x:Uid而是在想要綁定的屬性上輸入 {Binding Path=LocalizedResources.(資源名稱), Source={StaticResource LocalizedStrings}} (注意不可以斷行) 而如果是程式碼的話,則是必須先引用「(專案名稱).Resources」的命名空間 接著使用「AppResources.(資源名稱)」才能把資源給讀取進來 至於怎麼產生多語系檔案呢? 要先注意的是,你在WMAppMenifest.xml裡面「封裝→支援的語系」做設定的話其實沒用 而是要在專案上按右鍵選屬性, 在跳出來的視窗中「支援的文化特性」這項勾選你想支援的語言 系統才會對應產生AppResources.resx的多語系檔案 雖然我比較喜歡這種方式,不過Windows Phone 8.1似乎是往Win8.1方向靠過去 所以這樣的開發模式大概就要走入歷史了...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.112.253

03/10 14:47, , 1F
推!!!
03/10 14:47, 1F

03/10 18:22, , 2F
外標題 跟 內標題不同 ? 哪個才是對的 ?
03/10 18:22, 2F
版主幫我改的,我也同意了,所以請以外標題為準(汗 ※ 編輯: hoyunxian 來自: 111.250.112.253 (03/10 19:26)

03/10 22:00, , 3F
原本標題比較模糊 所以我幫原po改成這樣啦~
03/10 22:00, 3F
文章代碼(AID): #1J7Ky5Rg (WindowsPhone)