簡體   English   中英

無法讀取.NET MVC本地化資源文件

[英].NET MVC localized resource file is not read

我試圖添加一些衛星資源文件以顯示不同的語言,我通常遵循這兩篇文章

stackoverflow發布

使用資源文件在MVC5中對站點進行本地化

這就是我所做的概括(使用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中創建了多個新項目,結果始終是相同的。 所以一定是我做錯了什么,或者缺少一些步驟

好,經過一整天的調試,我找到了原因

  1. 使用資源文件時,它將在當前bin文件夾中創建另一個文件夾,例如Language.es.resx,然后創建一個名為es的文件夾。
  2. 當我將項目上傳到ftp服務器時,未創建此語言文件夾並且未上傳es recource.dll文件

我認為就是這樣,希望這可以幫助任何面臨相同問題的人

在Visual Studio的文件屬性中,設置:

復制到輸出目錄:始終復制

如果要在一個文件夾中包含多個文件,則始終可以編輯.csproj文件

<Content Include="parent directory\*.*">
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM