我已经按照这个文档在我的项目中添加了本地化:
https://docs.microsoft.com/en-gb/aspnet/core/fundamentals/localization?view=aspnetcore-2.2
它按预期工作,但我面临一个问题。有时我需要显示模式窗口(例如确认注销请求),但我还没有找到处理语言资源的最好方法。
我尝试使用javascript来创建这些模态,但我没有找到一种干净的方法来与javascript共享资源文件。
我还尝试使用部分视图,但我找到的唯一解决方案是使用Ajax请求从服务器检索视图。乍一看,我以为我的问题已经解决了,但我意识到,如果不能从服务器检索我的视图,我将无法以正确的语言显示错误消息,因为我的javascript无法访问资源文件。
我想知道怎样做才是最好的方法。我希望我的解释和需要一样清楚。
谢谢你的帮助
发布于 2019-04-19 05:04:01
该框架提供了一种在视图中使用资源(this part of the documentation)的方法,因此您可以做的是在html中默认隐藏您的模式窗口,并在需要时使用javascript切换它们的可见性。
当呈现视图时,所有资源字符串都将被替换,因此不需要调用服务器来获取它们。
所以大概是这样的:
视图
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
// html of the view
<div id="error_modal" class="modals">
<span>@Localizer["The error message"]</span>
</div>使用css规则
.modals
{
visibility: hidden;
}然后使用javascript来显示或隐藏div (这只是一个例子,具体方法取决于您使用的javasript库)。
希望它是清晰的,这就是你需要的。
https://stackoverflow.com/questions/55735247
复制相似问题