我正在尝试将本地化添加到我的.NET MVC项目。据我所见(here,here和here),我应该能够总共创建三个文件(如果我有两种语言)。>
Resources.resx
Resources.en-us.resx
Resources.da-dk.resx
当我打开.resx文件时,可以向其中添加条目。一旦完成此操作(并将“访问修饰符”设置为“内部”或“公共”),它就会生成一个Resources.*.Designer.cs
文件(应如此)。但是,对于en-us
和da-dk
,它们为空。没有任何错误。
据我能读到的(here,here和here),文件名和.resx扩展名之间不能有点。令我惊讶的是,这是事实。如果我将所有en-us
/ da-dk
文件重命名为Whatever.resx
,将创建Whatever.Designer.cs
文件。
我已经阅读了很多答案,尝试过使用T4模板和其他方法,但是我根本无法创建工作的Designer.cs文件。
我做错了吗?我觉得我已经尝试了一切。我只想能够Resources.TestText
并让我的应用程序根据文化进行翻译。
答案 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");