c# - .net core 3.1 本地化 resx 命名的明显重大变化?
问题描述
我处理过许多 .net Core 2.2 应用程序的本地化。
我现在正在开发一个 .net Core 3.1 本地化应用程序
在 Startup.cs ConfigureServices 我有
services.AddLocalization(o =>
{
// We will put our translations in a folder called Resources
o.ResourcesPath = "Resources";
});
services.AddControllersWithViews()
.AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder)
.AddDataAnnotationsLocalization()
.AddNewtonsoftJson();
在配置方法中,我定义了我的文化等并包括
app.UseRequestLocalization(localizationOptions);
我的观点都是完美的本地化。然而,即使模型/数据注释或控制器被正确命名并放置在模型或控制器文件夹中,它们也不会本地化。
在之前的 2.2 中,使用文件夹结构对我来说完美无缺。我是否错过了 3.1 下的新内容,应该告诉它以不同的方式查看文件夹?该文件夹不应该命名为 Models 而是其他名称?
我查看了所有文档,在网上搜索过,但没能找到。
更新 见下面的答案
解决方案
现在的工作答案:
看来我可以通过将控制器和模型移出子文件夹并更改每个 resx 的名称以包括模型的 NameSpace.Models.Modelname 和控制器的 NameSpace.Controllers.Controllername 来使控制器和模型本地化。这是我目前可以让他们工作的唯一方法。
那么显然只有视图会使用文件夹/子文件夹方法?除非我完全错过了这一点,否则我认为这要么是一个巨大的问题,要么是我在任何地方都看不到清楚记录的重大变化。
我没有得到 MS 的确认这是一个重大变化,但在这一点上对我来说确实是这样。如果您从早期的 .net 核心本地化迁移,这将是一个惊喜,或者它对我来说确实如此。希望这对其他人有帮助。
推荐阅读
- javascript - 我尝试使用 Javascript 创建叠加层,但叠加层没有显示
- swift - 为 UIKitForMac 构建 iPad 应用程序时构建错误
- solidity - 有没有办法在 Solidity 中使用浮点数?我需要他们来写一份我正在写的小合同。如果浮动是不可能的,我可以用什么代替?
- tensorflow - “Tensorflow 的第一步”,如何访问 colab 之外的数据文件?
- python - “即时”保存“file.write”数据以进行实时数据查看
- r - 使用R中的Haversine公式和自定义函数查找两个城市之间的距离
- c - libblkid 仅适用于 root 并且在以 root 身份运行后
- git - GIT:使 2 个修订成为单个修订而不是 2 个修订
- apache-spark - 获取与 pyspark.mllib.linalg.distributed 矩阵并行运行的函数
- regex - 为什么这个正则表达式没有捕获两个匹配的行?