我试图添加一些卫星资源文件来显示不同的语言 我一般关注这两个帖子
Localization of a Site in MVC5 Using Resource File
这就是我在简历中所做的事情(使用visual studio 2017,.net framework 4.5)
我创建了一个名为“Resources”的文件夹
我右键单击此文件夹并创建了一个名为“Lang.resx”的文件,添加了一个字符串对(名称:Welcome,value:Hello),然后将其切换为public并保存
我右键单击此文件夹并创建了另一个名为“Lang.es.resx”的文件,添加了一个字符串对(名称:Welcome,value:Hola),然后将其切换为public并保存
我打开了web.config并将以下行添加到System.Web
<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto" />
我打开了一个空白视图,将以下内容写入该视图
@{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("es");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("es");
}
<div>@MyProject.Resources.Lang.Welcome</div>
<div>@Thread.CurrentThread.CurrentCulture.DisplayName</div>
<div>@Thread.CurrentThread.CurrentUICulture.DisplayName</div>
输出如下:
您好 西班牙语 西班牙语
正如你所看到的,文化被改变但是不知何故Lang.es.resx没有被阅读,我在不同的托管VPS中创建了多个新项目,结果总是一样的。 所以必须有一些我做错了,或者缺少一些步骤
答案 0 :(得分:0)
好的,经过一整天的调试,我发现了原因
我认为就是这样,希望这可以帮助任何面临同样问题的人
答案 1 :(得分:0)
在Visual Studio的文件属性中,设置:
复制到输出目录:始终复制
如果要在一个文件夹中保存多个文件,则始终可以编辑.csproj文件
<Content Include="parent directory\*.*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>