未生成资源文件代码

时间:2013-07-30 09:01:09

标签: c# wpf windows user-interface localization

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

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

它会为Resources1.resx生成,但不会为Resources.de-DE.resxResources.en-US.resx生成。

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

有趣的是,我今天也有类似情况。我将在此处分享该方案和解决方案,因为我认为这与您的问题有关。

我只想拥有一个阿拉伯文化资源文件SharedResources.ar.resx,而我没有另一个名为SharedResources.resx的资源。

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

例如,对于我来说,我创建的文件名为SharedResources-ar.resx。然后双击并使用编辑器将其访问修饰符更改为public,

enter image description here

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

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

答案 2 :(得分:0)

是的,Designer resx文件仍为空。 你应该按照以下步骤,它将100%工作。 1)在任何文件夹下创建Resource.resx文件

2)设置CustomTools = PublicResXFileCodeGenerator和 Build Action = Resource.resx文件属性中的嵌入式资源。

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