【问题标题】:.NET MVC localized resource file is not read.NET MVC 本地化资源文件未被读取
【发布时间】:2018-03-20 15:32:02
【问题描述】:

我试图添加一些卫星资源文件以显示不同的语言 我一般都关注这两个帖子

stackoverflow post

Localization of a Site in MVC5 Using Resource File

简而言之,这就是我所做的(使用 Visual Studio 2017,.net Framework 4.5)

我创建了一个名为“资源”的文件夹

我右击这个文件夹并创建了一个名为“Lang.resx”的文件,添加了一个字符串对(名称:Welcome,值:Hello),然后将其切换为公共并保存

我右键单击该文件夹并创建了另一个名为“Lang.es.resx”的文件,添加了一个字符串对(名称:Welcome,值:Hola),然后将其切换为公共并保存

我打开 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 中创建了多个新项目,结果始终相同。 所以一定是我做错了什么,或者缺少一些步骤

【问题讨论】:

    标签: c# asp.net-mvc localization


    【解决方案1】:

    好的,经过一整天的调试,我找到了原因

    1. 使用资源文件时,它会在当前 bin 文件夹中创建附加文件夹,例如 Language.es.resx,然后创建一个名为 es 的文件夹
    2. 当我将项目上传到 ftp 服务器时,没有创建这个语言文件夹,也没有上传 es recource.dll 文件

    我想就是这样,希望这可以帮助任何面临同样问题的人

    【讨论】:

      【解决方案2】:

      在 Visual Studio 的文件属性中,设置:

      复制到输出目录:总是复制

      如果你想在一个文件夹中保存多个文件,你可以随时编辑你的 .csproj 文件

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-19
        相关资源
        最近更新 更多