在我的应用程序中,我根据this文档添加了多语言支持。
现在我面临一个问题:我还需要翻译一些javascript插件,因此我需要在.resx
逻辑中使用js
字符串:
要访问这些字符串,我可以在特定控制器中使用IStringLocalizer
,让我们假设上面的字符串是UserController
的一部分,我可以访问View
中的声明:
@inject IStringLocalizer<UserController> Localizer
然后:
<h2>@Localizer["LastName"]</h2>
假设现在我需要在类似LastName
的插件中传递JQuery
字符串
本土化。为此,我实际上找到了一种解决方法,该方法包括在所需的javascript
中声明一个View
变量:
@inject IStringLocalizer<UserController> Localizer
@section UserScript{
<script>
var Lang = {
PasswordEqual: '@Localizer["PasswordEqual"]',
PasswordMismatch: '@Localizer["PasswordMismatch"]',
}
</script>
}
因此我可以在javascript
代码内部访问Lang
对象并本地化插件,例如:
$('#birthDate').daterangepicker({
singleDatePicker: true,
locale: {
format: 'DD/MM/YYYY',
daysOfWeek: [
Lang.Sunday,
Lang.Monday,
这行得通,但由于以下原因,维护起来确实是巨大的:
.cshtml
本地化的script
对象的Lang
文件中声明IStringLocalizer
我在寻找什么
我正在寻找一种解决方案,该解决方案会自动使用当前Lang
中加载的.resx
文件中的所有可用属性填充View
对象。
我想最好的解决方法是_Layout
。
有人可以帮助我吗?