我在我的 angular 應用程式中使用 ngx-translate 進行翻譯。
在自定義管道中,我有一些需要翻譯的文本。
管道:
import { Pipe, PipeTransform } from '@angular/core';
import { Something} from '../domain';
@Pipe({
name: 'someDescription'
})
export class SomeDescriptionPipe implements PipeTransform {
transform(value: Something, args?: any): string {
switch (value) {
case Something.value1: return 'string 001';
case Something.value2: return 'string 002';
default: return value;
}
}
}
據我所知,自 angular 6 起不支持建構式。如何翻譯管道中的文本?
uj5u.com熱心網友回復:
在下面的示例中,“editProfile.timeZones.” timeZone?.key 首先傳入時區管道,然后傳入 ngx 轉換管道,您可以對客戶管道和 ngx 轉換管道執行相同操作
<option *ngFor="let timeZone of timeZones" [value]="(timeZone?.key)">
{{ "editProfile.timeZones." timeZone?.key | timezone | translate }}
</option>
uj5u.com熱心網友回復:
在 Angular 9 和 ngx-translate/core 12.1.x 中,我可以將 aTranslationService注入 aPipe并使用它。
為了能夠做到這一點,您需要在TranslateModule.forRoot({...})某處匯入,例如我在 mainAppModule的匯入中擁有它。
import { Pipe, PipeTransform } from '@angular/core';
import { Something} from '../domain';
import { TranslateService } from '@ngx-translate/core';
@Pipe({
name: 'someDescription'
})
export class SomeDescriptionPipe implements PipeTransform {
constructor(private _translateService: TranslateService) {
}
transform(value: Something, args?: any): string {
//use translateService.instant('some.translation.key') function here
switch (value) {
case Something.value1: return 'string 001';
case Something.value2: return 'string 002';
default: return value;
}
}
}
請注意,translate正如已經提到的那樣,您還可以從 ngx-translate獲得一個管道。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/381765.html
