未生成资源文件代码

TRS*_*TRS 15 c# windows wpf user-interface localization

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

我检查了两个文件的所有属性是否相同.

它确实产生Resources1.resx,但不是为Resources.de-DE.resxResources.en-US.resx.

loo*_*oop 10

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


小智 5

是的,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; }
Run Code Online (Sandbox Code Playgroud)

6)

 In config file add this under System.web

    <globalization enableClientBasedCulture="true" culture="en-US" uiCulture="en-US" />
Run Code Online (Sandbox Code Playgroud)

7)重建项目并测试它。

它会起作用的。Designer.cs文件为空的真正原因是资源designer.cs将根据您的web.config文件引用这些文件。


Wae*_*ani 5

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

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

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

例如,就我而言,我使用此名称创建了文件SharedResources-ar.resx. 然后双击并使用编辑器将其访问修饰符更改为 public,如下所示:

在此输入图像描述

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

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