我在使用本地资源文件在Windows Phone 7上工作时遇到了一些麻烦。以下是我正在做的事情:
在我的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>
答案 0 :(得分:6)
当然,手机支持本地化资源:
答案 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语法吧 更容易使用以下步骤:
在Visual中打开主XAML页面(通常是MainPage.xaml) 工作室设计师
打开PhoneApplicationPage的属性并设置 DataContext是 Application.Resources - &gt; LocalizedStrings。注意:如果你已经 然后使用DataContext对象 你应该整合 LocalizedStrings类进入那个 对象,以便它具有本地化 支持。
- 醇>
设置Page的DataContext后,您可以更改数据 绑定页面上的任何控件 只需选择房产(例如: 文本,选中等),选择“应用” 数据绑定...“,并设置路径 到Localizedresources.BtnText或 无论你想要什么名字 资源价值是。