угловая локализация массива объектов

У меня есть массив объектов внутри моего углового компонента, например:

      export class Result implements OnInit {
    sortBy = [
        { id: 'total', name: 'Sort by Price' },
        { id: 'time', name: 'Fast tour' },
        { id: 'delDate', name: 'Sort by delivery date' },
        { id: 'readyDate', name: 'Sort by tour ready date' }
      ];

....rest of code
}

и в моем шаблоне я использую его в своем настраиваемом компоненте выбора, как показано ниже:

      <app-material-select
                formControlName="sortBy"
                defaultValue="total"
                labelName="Sort by"
                [options]="sortBy" >
              </app-material-select>

И я попытался сделать работу, чтобы сделать перевод с помощью angular-localize, но на самом деле не нашел, так что есть идеи, как?

1 ответ

Сегодня у меня была точно такая же проблема, и я нашел решение. Поскольку я новичок в семье Angular, пожалуйста, учтите, что мой подход может быть наивным.

Я предполагаю, что вы хотите перевести элементы в массив sortBy. Вы можете указать Angular извлечь каждый из них с помощью $ localize. Поскольку кажется, что $ localize возвращает строковый тип, вы не можете использовать его непосредственно в sortBy. Итак, в вашем случае вы получите что-то вроде этого (при условии, что вы не хотите переводить идентификатор):

      export class Result implements OnInit {
    sortBy = [
        { id: 'total', name: $localize`Sort by Price` },
        { id: 'time', name: $localize`Fast tour` },
        { id: 'delDate', name: $localize`Sort by delivery date` },
        { id: 'readyDate', name: $localize`Sort by tour ready date` }
      ];

....rest of code
}

Angular предоставит вам соответствующий преобразователь для каждого элемента вашего файла .xlf после извлечения.

Другие вопросы по тегам