wpf – 在Windows桌面和Windows Store应用程序之间共享字符串资
我正在使用
Windows桌面和
Windows存储的应用程序,可能我将来会添加Windows Phone.我在图书馆中拥有大部分的逻辑,并为不同的平台创建不同的GUI.
我想本地化我的应用程序,并希望在平台之间共享字符串资源.但是我该如何做呢? 对于Windows桌面,最常见的方法似乎是使用resx文件.这是一个简短的例子: http://compositeextensions.codeplex.com/discussions/52910 对于Windows存储应用程序转换文件而言,这里是一个例子: http://msdn.microsoft.com/en-us/library/windows/apps/hh965326.aspx 这两个解决方案都是平台特定的,我不喜欢:-(我真的希望把所有的字符串都放在一个文件/语言中,并且能够在所有的平台上使用这个解决方案. 更新2014年2月17日:据了解,resx和resw文件格式相同. Windows商店应用程序中缺少的是没有为文件生成类文件.如果我可以得到一个这样的文件,我的问题将被解决.然后我可以在我的视图模型中放置该类的一个实例,并通过属性访问所有文本. 在WPF应用程序中生成的类文件几乎可以工作.问题是这条线看起来像这样: global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ResxTest.Properties.StringTest",typeof(StringTest).Assembly); 要得到这个编译,我需要将其更改为: global::System.Resources.ResourceManager temp = new System.Resources.ResourceManager("ResxTest.Properties.StringTest",typeof(StringTest).GetTypeInfo().Assembly); 但资源ResxTest.Properties.StringTest无法加载到我的Windows Store应用程序中.由于某些原因,我需要将资源重命名为Resource.resw,并将其以“资源”的名称加载.我尝试了所有的名字,但这是唯一的名字.使用名称MyApplication.MyResource从不工作. 我不知道我是否在正确的轨道上.我几乎非常绝望,我将自己的解决方案是将我需要的所有字符串的XML文件转换为一个具有属性的巨大类,可以使用它来获取所有字符串,而不需要任何资源文件.但我认为这是丑陋和欺骗,所以我希望有人可以给我一个更好的想法:-). 更新2014年2月24日:我错了!事情正在与Portable类库相当好的工作.如果我使用它,我可以在我的视图模型中放置一个自动生成的C#类的实例,并访问该对象的所有字符串. 但如果我使用普通的图书馆的东西在Windows Store应用程序(WPF是好的)不正常工作.我已经尝试将所有文??件从一个可移植的类库中复制到Windows存储类库中.当我尝试创建一个自动生成的文件的实例我总是得到:
非常讨厌,因为我使用的Visual Studio的便携式类库不可用的快速版本.所以可能我会开发自己的解决方案,从资源文件生成类(这也给了我一些其他好处).但我仍然好奇我做错了什么
我终于解决了这个问题.我只是开发了一个简单的工具(ResToCode)来将资源文件转换为纯C#类.非常类似于Visual Studios resgen.exe正在做的,但具有一些额外的功能.它工作得很好,所以我很高兴:-).
该工具可用于CodeProject的任何人: http://www.codeproject.com/Articles/744528/ResToCode-Localization-tool-for-Windows-Desktop-St (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-8 – 如何在WinRT中以递增方式加载数据组
- windows – Apache配置:“没有可用的侦听套接字
- windows-server-2008 – 具有两个或多个域的ADFS
- Windows下Oracle的下载与安装
- windows-phone-7 – 如何将图像从隔离存储加载到
- windows-phone-8.1 – Microsoft Band SDK部署错
- Win7 Eclipse 搭建spark java1.8环境:WordCount
- wpf – VS 2010:打开包含System.Windows.Intera
- windows-7 – 如何在explorer.exe中创建新文件夹
- Windows – 文件的内存映射与CreateFile / ReadF