ASP.Net核心不完全本地化-已解决的语言



在ASP.Net Core web应用程序中,本地化文件不是所有页面都可用的,我如何知道最终解析的语言

我想本地化我的ASP.Net核心web应用程序的某些部分,而将其他部分保留为默认语言或语言的子集。当我提供翻译时,.Net Core只翻译页面,而当我不提供翻译时。Net Core只提供默认语言,这是我需要的行为。

我需要知道已解决的语言来填写Razor Pages中的HTML5lang属性时,我的问题就出现了,这样我生成的网页格式就正确了。

我找到了这个解决方案:

lang="@System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName">

但在我的场景中不起作用,因为线程语言将是";正确解决";到Startup.cs中定义的受支持的本地化,但由于我缺少本地化文件,使用的最终本地化将是默认的,而不是更新线程的CurrentUICulture

使用CCD_ 5,我错误地提供具有CCD_;支持的";语言。

如果没有可用的本地化文件,我如何知道解析的语言

非常感谢。

尝试从查询添加到路由数据信息:

var routeData = new Dictionary<string, string>();
foreach (var r in ViewContext.RouteData.Values)
{
routeData.Add(r.Key, r.Value.ToString());
}
foreach (var qs in Context.Request.Query)
{
routeData.Add(qs.Key, qs.Value);
}

然后在交换机中使用它作为asp所有路由数据:

<a class="dropdown-item small"
asp-all-route-data="@routeData">
@culture.Text
</a>

每当你需要文化信息时,你可以从路线数据中请求

您还可以添加asp路由区域性="@c":

<a class="nav-link text-dark" asp-area="Accounts" asp-page="/Index" asp-route-culture="@c" 
>yourlocalizedtext</a>

其中c是var c = System.Globalization.CultureInfo.CurrentCulture.Name;

最新更新