如何在 javascript 文件中使用 resx 文件。.net core 3.1 mvc

Raş*_*hin 5 javascript c# localization .net-core asp.net-core

我正在使用 .net core mvc 开发多语言网站。我使用了 Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer。

这段代码对我来说在 .cshtml 中工作得很好

@inject Microsoft.AspNetCore.Mvc.Localization.IHtmlLocalizer<ExampleProject.WEB.Controllers.HomeController> localizer

@localizer["NotificationManage"]
Run Code Online (Sandbox Code Playgroud)

也适用于_Layout 页面中的< script > 标记之间

 alert('@localizer["NotificationManage"]');
Run Code Online (Sandbox Code Playgroud)

但不要在 js 文件中工作。

如何在javascript文件中使用Resx文件?

还有什么最好的方法可以使多语言转为 javascript?

alert('@localizer["NotificationManage"]');
Run Code Online (Sandbox Code Playgroud)

不为我工作。

警报结果为:@localizer["NotificationManage"];

Joc*_*pen 10

一种可能的解决方案是将翻译定义为脚本外部窗口上的全局变量

<script>
var translations = {
   notification: '@localizer["NotificationManage"]'
}
</script>
<script type="text/javascript" src="pathtoscript.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后在你的脚本中你去

alert(window.translations.notification);
Run Code Online (Sandbox Code Playgroud)

如果这里给出任何更好的解决方案,我很高兴听到,因为我们在生产中使用这种方式