C# 创建localizatin.resx文件会使.Designer.cs文件为空

C# 创建localizatin.resx文件会使.Designer.cs文件为空,c#,.net,localization,resx,C#,.net,Localization,Resx,我正在尝试将本地化添加到我的.NETMVC项目中。就我所见,如果我有两种语言,我应该能够创建总共三个文件 Resources.resx Resources.en-us.resx Resources.da-dk.resx 当我打开.resx文件时,我可以向其中添加条目。完成此操作并将Access修饰符设置为Internal或Public后,它会生成一个Resources.*.Designer.cs文件。然而,对于en us和da dk来说,它们是空的。没有错误或任何东西 据我所知,文件名和.re

我正在尝试将本地化添加到我的.NETMVC项目中。就我所见,如果我有两种语言,我应该能够创建总共三个文件

Resources.resx
Resources.en-us.resx
Resources.da-dk.resx
当我打开.resx文件时,我可以向其中添加条目。完成此操作并将Access修饰符设置为Internal或Public后,它会生成一个Resources.*.Designer.cs文件。然而,对于en us和da dk来说,它们是空的。没有错误或任何东西

据我所知,文件名和.resx扩展名之间不能有点。令我惊讶的是,这是真的。如果我将这些en-us/da-dk文件中的任何文件重命名为whater.resx,则将创建whater.Designer.cs文件

我已经阅读了很多答案,尝试了使用T4模板的方法,以及其他一些东西,但是我无法让它创建一个工作的Designer.cs文件

我做错了吗?我觉得我现在什么都试过了。我只想能够执行Resources.TestText,并让我的应用程序根据文化进行翻译。

这是经过设计的

Resources.EN-US.resx文件类型没有设计器,因为实际的设计器位于其父文件Resources.EN-US.resx中。en-us文件仅保存键/值XML

如果您正在调用资源,您可能会这样使用它:

var someVar = Resources.SomeLocalizedString;
您不必区分EN-US类型

如果你看一下设计器的代码,你可以看到发生了什么等等,我来举个例子

因此,您不需要这些设计人员,如果您设置UI线程的区域性信息,它应该是现成的

Thread.CurrentThread.CurrentUICulture = new CultureInfo("EN-US");

如果是这样的话,这是有道理的。但是我的语言环境设置为en US,我尝试将US和DK部分大写,但在我的代码中没有受到影响。我确实在我的Web.config文件中添加了标记好的,我将启动一个visual studio:你在做什么样的项目?安慰Asp?Wpf?这是一个ASP.NET Web项目。我确实尝试过在Startup.cs中使用一个线程来设置区域性,但它仍然不会使用我的翻译,它只是默认为Resource.resx值啊,是的,我想我知道发生了什么:如果你调用asp.net web项目,就会出现一个新线程;这个新线程包含默认的UI区域性信息。如果我在页面上输出thread.CurrentThread.CurrentUICulture,它将显示en US。所以有些东西肯定不起作用,hahaI使用一个名为Resx Manager的VS扩展,它可以为您处理所有事情,您只需安装它并选择您需要的语言,它就会创建所有文件。它还有一个用户界面来添加字符串。@Nekeniehl在代码不能按预期工作时并没有真正帮助我。我创建了一个新项目,它工作得非常完美。这只是给下次的一个建议,我一直在努力解决本地化问题