我有一个多语言应用程序,客户想要编辑他想要的Resources.resx文件。 我创建了silverlight项目并添加了一些文件:
他们都有构建行动“嵌入式资源”
一切正常,但这些文件嵌入到XAP文件中。客户无法编辑它们。
我的资源经理我是这样的:
private static ResourceManager manager;
public static ResourceManager Manager
{
get
{
if (manager == null)
manager = new ResourceManager("Project.Resources", Assembly.GetExecutingAssembly());
return manager;
}
}
如何从某个文件夹中获取此资源,而不是将它们构建为.xap文件???
答案 0 :(得分:3)
由于这只是一个字符串本地化问题,并且您只想要选择整套本地化内容的灵活性,因此有几种方法可以将字符串绑定到资源管理器。 大部分内容过于复杂,无法达到预期效果:
鉴于以下内容:
更简单的方法是简单地将字符串作为名称值对放在全局App字典中,并通过简短的 StaticResource 绑定引用它们,例如
。Text={StaticResource L_MenuHome}
剩下的问题就是如何将另一组语言字符串添加到App字典中(实际上非常简单):
我不知道为什么每个人似乎都喜欢真正复杂的解决方案,当StaticResources做得很好而且工作量少得多。我们还倾向于使用Web服务从数据库中获取一组语言字符串,因为它通常小于200K,数据库更新更灵活。
无论如何,只是试图将一些常识重新置于本地化中。它对我们有用。随意使用,忽略,建议改进等。
希望这有帮助。
答案 1 :(得分:2)
您可以尝试下载相应的文件并将其存储在隔离存储中,然后尝试从那里读取。你可以在应用程序启动时执行此操作
由于您在resx中只有字符串,我建议您将资源项复制为具有某种预定义格式的简单文本并从那里读取。如果您需要有关任何具体实施细节的帮助,请与我们联系。