Windows phone 7 本地化Windows Phone 7应用程序

Windows phone 7 本地化Windows Phone 7应用程序,windows-phone-7,Windows Phone 7,我在Windows Phone 7上获取本地化资源文件时遇到了一些问题。以下是我正在做的: 创建一个资源文件,比如“Strings.resx”(构建操作:编译) 创建一个默认值为空字符串的键,比如“TestKey” 在同一文件夹中添加一个值为“some English string”的英文资源文件:Strings.en-us.resx(构建操作:嵌入资源) 在同一文件夹中添加一个值为“some Japanese string”的日语资源文件:Strings.ja-jp.resx(构建操作:嵌入式

我在Windows Phone 7上获取本地化资源文件时遇到了一些问题。以下是我正在做的:

  • 创建一个资源文件,比如“Strings.resx”(构建操作:编译)
  • 创建一个默认值为空字符串的键,比如“TestKey”
  • 在同一文件夹中添加一个值为“some English string”的英文资源文件:Strings.en-us.resx(构建操作:嵌入资源)
  • 在同一文件夹中添加一个值为“some Japanese string”的日语资源文件:Strings.ja-jp.resx(构建操作:嵌入式资源)
  • 在我的PC Silverlight中,当我更改Thread.CurrentThread.CurrentCulture时,WPF应用程序工作正常。但在手机中,我似乎总是得到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>
    
    de;es es;
    
    当然,手机支持本地化资源:


    我写了一篇博文,提供了一系列帮助我理解基础知识的There is a的链接。此后,只需学习如何进行数据绑定:

    MSDN文章向您展示了如何 设置文件并创建 本地化字符串类,但它们 假设你知道如何使用它 用于数据绑定的类。Visual Studio 2010和Silverlight句柄数据 与Winforms不同的绑定,以及 自从XAML以来,它变得更加混乱 也有自己的定义 与其他资源不同的资源 我们刚刚创建的.NET资源。 Silverlight也使用这个术语 资源,以引用使用 “内容”的构建动作,如 这些文件被打包到 .XAP文件类似于 “资源”获取的构建操作 嵌入到.Dll程序集中(例如: 从内容或文件加载图像 资源文件)。相反,我发现 使用Text=“{Binding Path=resourceFile.resourceName, Source={StaticResource Localizedresources}}“XAML语法 使用以下步骤更容易:

  • 在Visual Studio中打开主要的XAML页面(通常是MainPage.XAML) 工作室设计师

  • 打开PhoneApplicationPage的属性并设置 要创建的数据上下文 Application.Resources–> 本地化字符串。注意:如果您已经 正在使用DataContext对象,然后 您应该集成 本地化将类划分为 对象,使其具有本地化 支持

  • 设置页面的DataContext后,可以更改数据 页上任何控件的绑定方式 只需选择属性(例如: 文本、选中等),选择“应用 数据绑定…,并设置路径 要本地化dresources.BtnText或 不管你想要什么名字 资源价值是有限的


  • 这是一个很好的答案,非常感谢您抽出时间+1用于
    SupportedCultures
    属性。令人惊讶的是,它没有通过应用程序属性在VisualStudio中公开。