c# - .NET Core 2.0 IViewLocalizer 编写密钥而不是文本
问题描述
我目前正在尝试在我的应用程序中构建本地化程序。阅读 Microsoft 文档后,我添加了所有必要的部分,因此理论上它应该可以工作。
但是在第一次启动和重新加载页面时,我只能看到键而不是文本。
这是我的 Startup.cs
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization()
.AddDataAnnotationsLocalization();
services.Configure<RequestLocalizationOptions>(options =>
{
var supported = new[]
{
new CultureInfo("en"),
new CultureInfo("de"),
new CultureInfo("fr")
};
options.DefaultRequestCulture = new RequestCulture(culture: "en", uiCulture: "en");
options.SupportedCultures = supported;
options.SupportedUICultures = supported;
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
/...
var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(locOptions.Value);
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
资源和观点:
在视图中:
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
...
@Localizer["Views_Contract_my_key_on_this_page"]
通过将参数 LanguageViewLocationExpanderFormat.SubFolder 添加到 AddViewLocalization 也不起作用
解决方案
我找到了一个解决方案:
- 查看 Microsoft 的示例:https ://github.com/aspnet/Entropy/tree/dev/samples/Localization.StarterWeb
- 清理你的 Nuget 包
快乐编码!
推荐阅读
- scala - 从 Akka Persistence Classic 迁移到 Akka Persistence Typed
- r - R中的逻辑布尔否定运算符:优先级和关联
- html - 绝对位置和溢出隐藏
- html - css 样式问题 - 图像不会向下滚动,而文本会向下滚动
- wpf - MvvmCross 中的键盘监听器
- bukkit - 有没有办法在 player.BedSpawnLocation 中存储偏航?
- javascript - 使用 JS 抓取 HTML 文本选择的 CSS
- java - 本地java程序无法连接到本地数据库
- c# - 没有引导程序的 Blazor 材料
- css - 样式表不再起作用,确实起作用了