我知道一种古老的方法:使用一个具有.resx扩展名的资源文件,提供一个NeutralResourcesLanguage属性,在程序集中编译中立资源,您可以从其他本地化资源(blahblh.de-DE.resx)编译附属程序集。Visual还会从资源中生成强类型的(Properties.Resources.Default.WhateverStringResource).,因此很容易从代码.cs中使用
我刚刚学习了新的WPF方法:将资源放在.xaml文件中,使用.csproj中的UICulture标记将.baml资源放入卫星程序集中,或者不使用,并将.baml资源放在主程序集中。这些资源在.xaml内部很容易使用,但是AFAIK不是来自代码,因为没有.cs文件是自动生成的。
所以也许我搞错了,但我有几个问题。“说真的,现在怎么回事?”成为第一个。要使我的ranting有效,只需在Visual 2010中创建一个新的WPF应用程序:您将获得.xaml文件,它还将在其中放置一个空的Properties\Resources.resx。你有它,所以它们需要共存。
首先,我需要新的和旧的学校吗?我看不到从代码隐藏中使用强类型.xaml资源的简单方法。为什么不行?也许有一种方法可以将它们生成到.cs文件中,而我只是不知道。
现在更大的问题是,我也不能使用来自.xaml的.xaml资源。为什么?!Visual 2010的设计师肯定没有看到他们,但同样,这可能是我的错。
MSDN建议使用UICulture标记。它确实将.baml资源放置在附属程序集中,因此程序集甚至不包含中性程序集。但是它不适用于旧的中立资源AFAIK,一个非本地化的.resx需要进入主程序集。因此,如果我想在同一个项目中使用新的和旧的学派,我不能使用UICulture标记,我需要主程序集中的所有中立资源。我是唯一一个被这事困扰的人吗?
所以问题:
中的UICulture一样。
发布于 2011-04-02 15:12:57
实际上,在WPF中可以很容易地处理RESX文件,对于本地化来说,这是可行的方法。
看看:http://www.codeproject.com/KB/WPF/WPF_Resx_Localization.aspx和Get values from *.resx files in XAML
发布于 2011-04-03 21:05:13
您可以轻松地在SL中处理资源文件。
每次更改资源文件时,都必须将默认构造函数可见性从内部更改为public。
https://stackoverflow.com/questions/5523863
复制相似问题