Windows Phone 8初學者開發—第7部分:本地化應用程序


第7部分:本地化應用程序

原文地址:

http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-7-Localizing-the-App

系列地址:http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners

源代碼: http://aka.ms/absbeginnerdevwp8 
PDF文件: http://aka.ms/absbeginnerdevwp8pdf

在本課中我將解釋如何本地化您的應用,也就是說我們可以在您的應用程序中呈現不同語言的文本。例如,我需要同時支持英語和西班牙語的用戶以開辟潛在的銷售應用程序的市場。現在在不同的市場有了更多的銷售而不是局限在本地市場,這是朝着正確方向邁出的一大步。

本課的計划是:

  1. 我們將學習在AppResources.resx文件中存儲名稱/值對以及在聲明式的XAML代碼(或命令式的C#代碼)中訪問它們。
  2. 我們將看到在Visual Studio中如何創建針對特定語言和區域的文件。
  3. 我們將學習Windows Phone 8操作系統如何基於用戶的語言和區域來選擇正確版本的AppResouces.resx文件。

1. 修改AppResources.resx設置並綁定到它的值

如果您展開PetSounds項目的Resource文件夾,您將會看到一個稱為AppResources.resx的文件:

如果您雙擊並打開它,它將會在一個特別的設計器的主區域中被打開:

該文件是一系列的名稱/值對。左側是我們將要綁定的設置名稱。右側是給定語言的設置。哪種語言?請查看最后的屬性。

資源語言(ResourceLanguage)

被設置為:

en-US

"en" 的意思是"English"。"US"是指區域,在這里的意思是”USA”。因此,這些設置用於講英語的美國用戶。它也是默認的AppResources文件(您將很快會看到默認和我們支持的其他語言/區域之間的區別)。

名稱/值對主要是我們在應用程序中使用的文本片段。但是“資源流動方向(ResourceFlowDirection)”是有關字符應該往哪個方向呈現的設置。正如您所知道的,一些語言的閱讀習慣是從右向做,該設置在應用程序中被用於這個目的。

正如您所看到的,ApplictionTitle設置被設為"MY APPLICATION"。如果我想把MainPage.xaml中的TextBlock轉換為使用AppResources中的設置應該怎么做?我將使用如下的綁定表達式:

正如您所看到的,我將硬編碼的文本替換為以下的綁定表達式:

Text="{Binding Path=LocalizedResources.ApplicationTitle,Source={StaticResource LocalizedStrings}}"

 

接下來需要進行一些背景方面的解釋。現在只要知道我們正在使用綁定表達式將數據綁定到屬性(文本)。綁定表達式中的Path屬性是指項目中的LocalizedStrings.cs文件。它創建了一個AppResources對象的實例,這個實例為我們提供了對基於區域和手機用戶首選語言的AppResource文件的訪問。我們馬上就會看到他們是如何一起工作的。.ApplicationTitle指向AppResources.resx文件中的特定名稱入口。Source屬性綁定到LocalizedStrings,編譯器通過LocalizedStrings可以找到LocalizedResources屬性,該屬性是LocalizedStrings.cs文件中LocalizedStrings類的一部分。

為了獲取這些內容是如何相互關聯的更加深入的討論,您可以參考MSDN上的這篇文章:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff637520(v=vs.105).aspx

2. 添加對第二語言的支持

現在我們只支持英語(美國)。無論用戶在世界的哪個區域,我都想支持西班牙語。要做到只一點:

  1. 在解決方案資源管理器中,右鍵單擊項目標題PetSounds
  2. 在上下文菜單中選擇”屬性(Properties)”

項目屬性設計器將會出現,並且左側的應用程序(Application)選項卡已被選中(如果未選中則選中它)

在“支持的區域性(Supported Cultures)”下,選擇“西班牙語(Spanish)”。

然后保存項目並關閉項目屬性選項卡。根據當前加載到Visual Studio主要區域的內容,您有可能將會看到以下消息:

如果看到它,您可以單擊"是"按鈕。

現在在Resources文件夾中將會出現一個新的文件:

AppResources.es.resx

AppResources文件的.es后綴表示西班牙語(es表示”Espanol”)。雙擊這個文件並打開它:

默認情況下它是英文。在我兒子的幫助下,我將值(Value)從英語翻譯為西班牙語。請注意:名稱(Name)在英語版本和西班牙語版本的文件中必須相同。不要翻譯名稱,僅需要翻譯值。名稱是編程的標識,名稱對應的值將顯示給最終用戶。

3. 測試應用程序的不同語言版本

完成翻譯后按F5運行應用程序,使用手機模擬器的啟動按鈕,然后從右向左輕掃以進入按字母順序排列的應用程序列表,並向下滾動到設置應用程序,點擊並打開它:

在設置應用程序的“系統”頁面,向下滾動至“語言+區域”並點擊該選項:

在“語言+區域”頁面,點擊手機語言並將“英語(美國)”編輯為:

在語言和區域列表中我選擇"espanol (Espana)":

然后滾動到頁面底部,您將看到“重新啟動手機”按鈕。注意消息中的“需要重新啟動”提示:

當重新啟動后我看到消息“hasta luego”:

此時Visual Studio會斷開連接。沒關系,您不需要處在Visual Studio中的調試模式,現在僅需要關注手機模擬器。手機模擬器將使用最近一次部署的應用程序版本。

一旦應用程序模擬器啟動完畢,您可以輕掃以進入應用程序列表,您會發現他們都是西班牙語了。

點擊"PetSounds"應用程序:

當應用程序打開時,您將會發現標題被替換為我們在AppResources.es.resx文件中的輸入。

非常棒!現在我只需要重復這些步驟,尤其是在整個應用程序中創建名稱/值對並使用綁定表達式以完全本地化應用程序的用戶界面。

除非您使用雙語,您可能想回溯以上步驟並重置手機模擬器以重新使用英語。或者您可以完全關閉手機模擬器(在Windows任務欄,右鍵單擊並選擇關閉),Visual Studio將以缺省值重啟手機模擬器。

回顧

綜上所述,本課的重點是如何使用AppResources文件、項目屬性和一些綁定語法來本地化您的應用程序。我們同時學習了如何設置手機的語言和區域以測試我們的本地化自定義。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM