【问题标题】:ASP.net core localization/resource issueASP.net 核心本地化/资源问题
【发布时间】:2019-01-13 08:26:31
【问题描述】:

我正在构建一个命名空间很少的 ASP.net 核心项目,我所有的 resx 文件都在资源文件夹中,视图的本地化工作没有问题,但控制器不是 100%。我从 Microsoft 了解到的文档是命名约定如下:

namepsace MyProject.Controllers.SubNamespace {
  class MyController: Controller {
  }
}

此控制器的 resx 必须位于 Resources/Controllers/SubNamespace/MyController.en.resx 下

但它不起作用。我是不是错过了什么。

【问题讨论】:

  • “它不工作”是什么意思?它不编译吗?它会抛出异常吗?您是否收到null 作为文本,或者可能是与您期望的不同语言的文本?
  • 缺少的信息很少。您的控制器是否与 application/Startup.cs 在同一个项目中?您的项目名称是 MyProject 还是 MyProject.Webi?它涉及程序集名称和默认命名空间的混合。还有一些方法可以覆盖它(通过属性或 csproj,但必须先找到问题)
  • @nvoigt 它会编译并运行,但它会像 _localizer["MY_TEXT"] 一样打印索引器,它会打印 MY_TEXT。
  • @Tseng 是的,它叫做 MyProject。
  • 什么是_localizer?请发帖minimal reproducible example

标签: c# asp.net-core


【解决方案1】:

我使用的是 .net core 3.1,我遇到了像你这样的问题,我通过删除项目名称中的“_”来解决它。

我的项目名称是“我的项目”

资源路径是“My Project.Resources.My_Project.MyresourceFileName.resx”

我发现当我调试我的项目时,我从项目>项目属性>应用程序选项卡>默认命名空间中删除了“_”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 2021-08-13
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多