Лучший способ сохранить строку .resx в объекте? - PullRequest
0 голосов
/ 16 октября 2018

В своем приложении я добавил поддержку мультиязычности, следуя этой документации.

Теперь я столкнулся с проблемой: мне нужно перевести также некоторые плагины javascript, поэтому мне нужно использовать.resx строка внутри логики js:

enter image description here

Для доступа к этим строкам я могу использовать IStringLocalizer в конкретном контроллере, давайтеПредположим, что приведенная выше строка является частью UserController, я могу получить доступ к объявлению в View this:

@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.

Кто-то может мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...