本地化Windows Phone 7应用程序

时间:2010-09-27 04:28:32

标签: windows-phone-7

我在使用本地资源文件在Windows Phone 7上工作时遇到了一些麻烦。以下是我正在做的事情:

  1. 创建资源文件,例如“Strings.resx”(构建操作:编译)
  2. 创建一个密钥,说“TestKey”,默认值为空字符串
  3. 在同一文件夹中添加英文资源文件,其值为“some English string”:Strings.en-us.resx(构建操作:嵌入式资源)
  4. 在同一文件夹中添加日语资源文件,其值为“some japanese string”:Strings.ja-jp.resx(构建操作:嵌入式资源)
  5. 在我的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>
    

2 个答案:

答案 0 :(得分:6)

当然,手机支持本地化资源:

How to: Build a Localized Application for Windows Phone

答案 1 :(得分:4)

我写了一篇博文,其中提供了一系列Globalization / Localization guides for WP7.的链接。有一个Windows Phone 7 in 7 Training video帮助我理解了基础知识。之后,这只是学习如何进行数据绑定的问题:

  

MSDN文章向您展示了如何操作   设置文件并创建   LocalizedStrings类,但他们然后   假设你知道如何使用它   数据绑定类。视觉工作室   2010年和Silverlight处理数据   绑定不同于Winforms,和   自XAML以来,它变得更加混乱   也有它自己的定义   与之不同的资源   我们刚刚创建的.NET资源。   Silverlight也使用该术语   用于引用使用的文件的资源   “内容”的构建行为,如   这些文件被包装进了   .XAP文件类似于文件的方式   构建“资源”行动得到   嵌入到.Dll程序集中(例如:   从内容加载图像或   资源文件)。我发现了相反   使用Text =“{Binding   路径= resourceFile.resourceName,   源= {StaticResource的   Localizedresources}}“XAML语法吧   更容易使用以下步骤:

     
      
  1. 在Visual中打开主XAML页面(通常是MainPage.xaml)   工作室设计师

  2.   
  3. 打开PhoneApplicationPage的属性并设置   DataContext是   Application.Resources - &gt;   LocalizedStrings。注意:如果你已经   然后使用DataContext对象   你应该整合   LocalizedStrings类进入那个   对象,以便它具有本地化   支持。

  4.   
  5. 设置Page的DataContext后,您可以更改数据   绑定页面上的任何控件   只需选择房产(例如:   文本,选中等),选择“应用”   数据绑定...“,并设置路径   到Localizedresources.BtnText或   无论你想要什么名字   资源价值是。

  6.