pen*_*e89 0 typescript angular
我需要编辑库@ngx-translate/core 的管道,以了解哪些词没有被翻译并保存以将它们发送到单独的服务中
export class MyMissingTranslationHandler implements MissingTranslationHandler {
handle (params: MissingTranslationHandlerParams) {
if (params.translateService.currentLang === params.translateService.defaultLang) {
return 'not translate';
}
}
}
@NgModule ({
imports: [
BrowserModule,
HttpClientModule,
BrowserAnimationsModule,
RouterModule.forRoot (appRoutes),
SharedModule,
FuseMainModule,
TranslateModule.forRoot ({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
},
missingTranslationHandler: {provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler}
}),Run Code Online (Sandbox Code Playgroud)
目前,这导致在没有翻译的单词中,将它们替换为“未翻译”一词,而我需要的是捕获无法翻译的单词。
我试图修改文件 translate.pipe.d.ts,但我不知道如何获得该值。真的非常感谢能帮助我的人
好的,它来了。MissingTranslationHandler按照评论中的说明使用。
@Injectable()
export class MyMissingTranslationHandler implements MissingTranslationHandler {
handle(params: MissingTranslationHandlerParams) {
this.nts.notTranslated(params.key);
return '[MISSING]' + params.key;
}
constructor(private nts: NotTranslatedService) {}
}
Run Code Online (Sandbox Code Playgroud)
初始化TranslateModule为:
TranslateModule.forRoot ({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
},
missingTranslationHandler: {
provide: MissingTranslationHandler,
useClass: MyMissingTranslationHandler,
deps: [NotTranslatedService]
}
})
Run Code Online (Sandbox Code Playgroud)
...和服务:
@Injectable({
providedIn: 'root'
})
export class NotTranslatedService {
...
notTranslated(key: string) {
console.log('Not translated', key);
// do whatever you want...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3481 次 |
| 最近记录: |