[英]ASP.NET Core: programatically set the resource file for localized view
[英].NET MVC localized resource file is not read
我試圖添加一些衛星資源文件以顯示不同的語言,我通常遵循這兩篇文章
這就是我所做的概括(使用Visual Studio 2017,.net framework 4.5)
我創建了一個名為“ Resources”的文件夾
我右鍵單擊此文件夾並創建一個名為“ Lang.resx”的文件,添加了一個字符串對(名稱:Welcome,值:Hello),然后將其切換為public並保存
我右鍵單擊該文件夾並創建另一個名為“ Lang.es.resx”的文件,添加了一個字符串對(名稱:Welcome,值: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中創建了多個新項目,結果始終是相同的。 所以一定是我做錯了什么,或者缺少一些步驟
好,經過一整天的調試,我找到了原因
我認為就是這樣,希望這可以幫助任何面臨相同問題的人
在Visual Studio的文件屬性中,設置:
復制到輸出目錄:始終復制
如果要在一個文件夾中包含多個文件,則始終可以編輯.csproj文件
<Content Include="parent directory\*.*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.