Caricamento dei bundle per un nuovo modulo funzione
Per supportare la localizzazione e l'internazionalizzazione, caricare il JSON dei bundle di traduzione per un modulo. Il codice di configurazione per il caricamento dei bundle di traduzione e l'impostazione della lingua viene generato automaticamente quando il modulo viene creato dal seguente comando:
yarn new-extension-feature
Procedura
- I bundle di conversione specifici della funzione e i bundle comuni utilizzati dalla libreria di componenti principali e comuni vengono caricati nel modulo root dell'applicazione dell'applicazione angolare Spa singola. La lingua che deve essere utilizzata dal servizio di conversione è impostata nel costruttore.Nota: il seguente codice di esempio è solo per la tua comprensione. Assicurarsi di non modificare il codice generato automaticamente per caricare la traduzione.Il seguente frammento di codice illustra il file
<store-temp>/extensions/features/<feature-name>/src/app/app.module.ts:export class BackroomPickBundlesModule { static bundles: Array<any> = [ { prefix: './assets/backroom-pick/i18n/', suffix: '.json' } ].concat(CommonBundlesModule.bundles); } export function BackroomPickBundlesModuleHttpLoaderFactory(http: HttpClient) { return new MultiTranslateHttpLoader(http, [].concat(BackroomPickBundlesModule.bundles)); } @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, AppRoutingModule, CoreModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: BackroomPickBundlesModuleHttpLoaderFactory, deps: [HttpClient] }, compiler: { provide: TranslateCompiler, useClass: TranslateMessageFormatCompiler }, }) ], providers: [], bootstrap: [AppComponent] }) export class AppModule implements OnDestroy{ private langSubscription: Subscription; constructor(private translateService: TranslateService,@Inject('STORE_LOCALE_CODE') private _locale: string) { this.translateService.setDefaultLang(LocalizationService.getFallbackLanguage()); this.langSubscription = LocalizationService.lang$.subscribe(lang => { this.translateService.use(lang); }); LocalizationService.setLocale(_locale); } ngOnDestroy() { if (UIUtil.isNotVoid(this.langSubscription)) { this.langSubscription.unsubscribe(); } } } - Il modulo con caricamento lento inizializza
TranslationModulerichiamando il metodoforChild()e passando anche una configurazioneextend:trueaggiuntiva. Questa configurazione unisce le traduzioni caricate lente con le traduzioni caricate inizialmente nel modulo root dell'applicazione.Il seguente frammento di codice illustra il file<store-temp>/extensions/features/<feature-name>/src/app/features/<module-name>/<module-name>.module.ts:@NgModule({ imports: [ BackroomPickRoutingModule, CommonModule, CommonComponentsModule, FunctionalComponentsModule, FormsModule, NgbModule, TranslateModule.forChild({ extend: true, }) ] }) export class BackroomPickModule {}