创建localizatin .resx文件会使空的.Designer.cs文件

时间:2018-11-13 08:24:15

标签: c# .net localization resx

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

Resources.resx
Resources.en-us.resx
Resources.da-dk.resx

当我打开.resx文件时,可以向其中添加条目。一旦完成此操作(并将“访问修饰符”设置为“内部”或“公共”),它就会生成一个Resources.*.Designer.cs文件(应如此)。但是,对于en-usda-dk,它们为空。没有任何错误。

据我能读到的(hereherehere),文件名和.resx扩展名之间不能有点。令我惊讶的是,这是事实。如果我将所有en-us / da-dk文件重命名为Whatever.resx,将创建Whatever.Designer.cs文件。

我已经阅读了很多答案,尝试过使用T4模板和其他方法,但是我根本无法创建工作的Designer.cs文件。

我做错了吗?我觉得我已经尝试了一切。我只想能够Resources.TestText并让我的应用程序根据文化进行翻译。

1 个答案:

答案 0 :(得分:0)

这是设计使然。

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");