2010-09-27 59 views
10

我有一個小麻煩本地化的資源文件,在Windows Phone 7在這裏工作是我在做什麼:本地化的Windows Phone 7應用程序

  1. 創建一個資源文件,說「Strings.resx」 (生成操作:編譯)
  2. 創建密鑰,說「密押」與空字符串
  3. 的默認值在同一文件夾添加英文資源文件,「一些英文字符串」的值:Strings.en- us.resx(構建操作:嵌入式資源)
  4. 在同一個文件夾中添加一個日文資源文件,其值爲「som e日文字符串「:Strings.ja-jp.resx(構建行動:嵌入式資源)

在我的PC Silverlight中,WPF應用程序在我更改Thread.CurrentThread.CurrentCulture時正常工作。但在手機中,我似乎總是獲取Strings.resx文件中的值 - 一個空字符串。

我已經嘗試過使用設計器生成的代碼並手工連接資源管理器,它似乎並不重要。這裏是我的代碼:

  Type t = typeof(Strings); 

      _resourceManager = new ResourceManager(
       t.Namespace + "." + t.Name, 
       t.Assembly); 

      _resourceManager.GetString("TestKey"); 

告訴我手機支持本地化資源......;>我在做什麼錯了?謝謝!

更新:感謝Olivier轉發鏈接。我也看到了這一點,但錯過了重要的一步。我沒有將「SupportedCultures」節點添加到我的csproj中。做出了所有的不同 - 希望別人不會像我一樣兩個小時試圖弄清楚這一點。

<SupportedCultures>de-DE;es-ES;</SupportedCultures> 
+1

對'SupportedCultures'屬性+1。令人驚訝的是,它沒有通過應用程序屬性在Visual Studio中公開。 – si618 2011-05-27 02:09:40

回答

4

我寫了一篇博客,提供鏈接到一堆Globalization/Localization guides for WP7.有一個Windows Phone 7 in 7 Training video,幫助我瞭解的基礎知識。經過簡單地學習如何做數據綁定的問題,它是:

MSDN文章顯示您的文件和如何 設置創建 LocalizedStrings類,但他們隨後 假設你知道如何使用 數據綁定類。 Visual Studio的 2010和Silverlight處理數據 結合不同於的WinForms和 它會變得更加混亂,因爲XAML 也有它的 資源是不同的,則 .NET資源,我們剛剛創建自己的定義。 Silverlight中還使用術語 資源指使用 「內容」的生成操作文件,因爲 這些文件被包裹成類似文件如何與「資源」的 生成操作的 .xap文件得到嵌入到.Dll程序集中的 (例如: 從內容加載圖像或 資源文件)。我發現使用Text =「{Binding Path = resourceFile」而不是 。資源名稱, 來源= {StaticResource的 Localizedresources}}」 XAML語法,它 是更容易使用以下步驟:

  1. 在Visual Studio設計,打開您的主XAML頁面(通常MainPage.xaml中)

  2. 打開了的PhoneApplicationPage的屬性和設置 的DataContext是 Application.Resources - > LocalizedStrings注意:如果你已經 使用的是DataContext對象,然後。您應該將 LocalizedStrings類整合到該 對象中,以便它具有本地化 支持。

  3. 一旦頁面的DataContext的已設置您可以更改數據 在頁面上的任何控制由 結合簡單的選擇屬性(例如: 文本,檢查等),選擇「應用 數據綁定...」 ,並將路徑 設置爲Localizedresources.BtnText或 ,無論所需的 資源值的名稱是什麼。

+0

這是一個很好的答案,非常感謝您花時間! – will 2010-10-20 19:48:50

相關問題