我有我的默认资源文件Resources.resx
,Visual Studio 很好地为其生成了一个designer.cs
类,但是当我尝试创建时Resources.de-DE.resx
,它不会生成。
我检查了两个文件的所有属性都相同。
它确实生成 for Resources1.resx
,但不生成Resources.de-DE.resx
or Resources.en-US.resx
。
我有我的默认资源文件Resources.resx
,Visual Studio 很好地为其生成了一个designer.cs
类,但是当我尝试创建时Resources.de-DE.resx
,它不会生成。
我检查了两个文件的所有属性都相同。
它确实生成 for Resources1.resx
,但不生成Resources.de-DE.resx
or Resources.en-US.resx
。
您好@TRS,您可能会感到困惑,Resources.resx存在Designer.cs,Resources.de-DE.resx应该有一些Designer.cs,但事实并非如此,因为设计器文件对于所有资源文件。而且在Designer.cs中创建的属性也很常见,这意味着您将在每次转换中使用此属性,因此您可以做出的区别是基于 ResourceCulture。
有趣的是,我今天也遇到了类似的情况。我将在这里分享场景和解决方案,因为我认为它与您的问题有关。
我想要一个仅用于阿拉伯文化的资源文件SharedResources.ar.resx
,而我没有另一个名为SharedResources.resx
.
解决方案是创建包含单个 [dot] 的资源文件,然后重命名它。
例如,在我的例子中,我创建了这个名称的文件,SharedResources-ar.resx
. 然后双击并使用编辑器将其访问修饰符更改为公共,如下所示:
这将生成具有正确静态属性的 .cs 文件。之后,将文件重命名为正确的格式。SharedResources.ar.resx
. 否则不会生成!
我不知道这是否是一个好的解决方案,但解决我的问题并希望也能解决其他人的问题。
是的,Designer resx 文件仍然为空。您应该按照以下步骤操作,它将 100% 工作。1) 在任意文件夹下创建 Resource.resx 文件
2) 在 Resource.resx 文件属性中设置 CustomTools = PublicResXFileCodeGenerator 和 Build Action = Embedded Resource。
3) 现在创建不同的语言文件,如下所示,Resources.en-US.resx Resources.nl-NL.resx 等
4)如果是 MVC,在您的 MVC 模型中将此命名空间称为 project.folder
5)如下更改属性之一(示例)
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}"), Display(Name = "dtMovinDate",ResourceType = typeof(Resources.Resource))]
public DateTime dtMovinDate { get; set; }
6)
In config file add this under System.web
<globalization enableClientBasedCulture="true" culture="en-US" uiCulture="en-US" />
7)重建项目并进行测试。
它会起作用的。Designer.cs 文件为空的真正原因是资源 Designer.cs 将根据您的 web.config 文件引用这些文件。