Aer*_*del 12 resx visual-studio-2010
我在使用Resx资源文件时遇到了Visual Studio 2010中最奇怪的行为,我无法绕过它.
问题如下:Visual Studio不会designer.cs
为具有本地化名称(例如resource.fr.resx
)的资源文件生成文件,但它适用于具有简单名称的其他文件(例如resource.resx
).
这是我的visual studio项目设置的快照:
正如您所看到的,我只是使用3个资源文件进行了简单的测试:
designer.cs
for test.resx
和的文件test2.resx
生成得很好.但test.fr.designer.cs
无论我做什么,都会被创建但总是空白.
我有双重和三重检查:为本地化文件正确设置了自定义工具属性.所有文件的所有属性都完全相同(我正在使用PublicResxFileCodeGenerator
,但如果我将访问修饰符设置为内部和使用,我会得到相同的行为ResxFileCodeGenerator
).
注意:我注意到,在创建资源文件时,Visual Studio通常会将访问修饰符默认为"内部".但是,在创建本地化资源文件(resource.fr.resx
)时,它默认为"无代码生成".刚发现有趣的是因为它证明了Visual Studio因某种原因不同地处理本地化文件.
- >这里有什么我想念的吗?如果有人对这个问题有所了解,我将不胜感激,这让我发疯.
Lar*_*rry 20
虽然我没有研究过这个特定的问题,但我对".resx"文件还有很多其他问题.Visual Studio有时会出错(处理".resx"文件等),我已经正式向MSFT报告了其中一些(因为它影响了我自己的商业本地化程序).在任何情况下,您通常不应该以这种方式命名.它实际上违反了MSFT的本地化规则.默认语言文件通常不应该有嵌入式语言代码,因此可能会因此而窒息.我需要调查,但你应该做的是创建"Test.resx",它有一个"Designer.cs"文件,然后是"Test.fr.resx",但没有.然后将所有默认语言字符串放在"Test.resx"中,并将相应的法语字符串放在"Test.fr.resx"中.在代码中,您可以访问"Test.Designer.cs"中找到的强类型名称,除非您将"System.Threading.Thread.CurrentThread.CurrentUICulture"设置为"fr",否则您获取的字符串将是默认语言字符串.然后你将从"Test.fr.resx"中取回法语版本的字符串,除非在那里找不到(没有翻译),在这种情况下你将从"Test.resx"中取回后备字符串(即,默认语言字符串).这就是hub-and-spoke模型基本上如何工作的方式.
归档时间: |
|
查看次数: |
13956 次 |
最近记录: |