19

我有我的默认资源文件Resources.resx,Visual Studio 很好地为其生成了一个designer.cs类,但是当我尝试创建时Resources.de-DE.resx,它不会生成。

我检查了两个文件的所有属性都相同。

它确实生成 for Resources1.resx,但不生成Resources.de-DE.resxor Resources.en-US.resx

4

3 回答 3

12

您好@TRS,您可能会感到困惑,Resources.resx存在Designer.csResources.de-DE.resx应该有一些Designer.cs,但事实并非如此,因为设计器文件对于所有资源文件。而且在Designer.cs中创建的属性也很常见,这意味着您将在每次转换中使用此属性,因此您可以做出的区别是基于 ResourceCulture。

于 2013-07-30T11:05:59.980 回答
4

有趣的是,我今天也遇到了类似的情况。我将在这里分享场景和解决方案,因为我认为它与您的问题有关。

我想要一个仅用于阿拉伯文化的资源文件SharedResources.ar.resx,而我没有另一个名为SharedResources.resx.

解决方案是创建包含单个 [dot] 的资源文件,然后重命名它。

例如,在我的例子中,我创建了这个名称的文件,SharedResources-ar.resx. 然后双击并使用编辑器将其访问修饰符更改为公共,如下所示:

在此处输入图像描述

这将生成具有正确静态属性的 .cs 文件。之后,将文件重命名为正确的格式。SharedResources.ar.resx. 否则不会生成!

我不知道这是否是一个好的解决方案,但解决我的问题并希望也能解决其他人的问题。

于 2020-03-17T05:07:28.453 回答
3

是的,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 文件引用这些文件。

于 2017-06-28T10:03:54.320 回答