我正在尝试将i18n文件加载到服务器上,因此当有人访问该网站时,所有i18n变量都将已加载到我的ssr Web应用程序中。
这是我的 app.server.module.ts :
df = pd.DataFrame( {'Code':[80.02, 82.13,80.,82.06,82.06],'Loc':['A','B','C','D','E'],'Price':[11,21,25,36,43]})
df1= pd.DataFrame({'Code':[82.06,82.06,82.13,80.02]},'Loc':['E','D','B','D'])
这是 translate-server-loader.service.ts :
Code Loc Price
0 82.06 E 43.0
1 82.06 D 36.0
2 82.13 B 21.0
3 80.02 D Nan
问题在于 getTranslation()不会import { NgModule } from '@angular/core';
import { ServerModule, ServerTransferStateModule } from '@angular/platform-server';
import { BrowserModule, TransferState } from '@angular/platform-browser';
import { AppModule } from './app.module';
import { AppComponent } from './app.component';
import { TranslateServerLoader } from './translate-server-loader.service';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
export function translateFactory(transferState: TransferState) {
console.log(new TranslateServerLoader('/assets/i18n','.json', transferState));
return new TranslateServerLoader('/assets/i18n','.json', transferState);
}
@NgModule({
imports: [
AppModule,
ServerModule,
ServerTransferStateModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: translateFactory,
deps: [TransferState]
}
}),
BrowserModule.withServerTransition({ appId: 'autorent' }),
],
bootstrap: [AppComponent],
})
export class AppServerModule { }
进行任何操作,所以我认为它不起作用吗?
此行功能为console.logged:
import { Observable } from "rxjs";
import { TranslateLoader } from '@ngx-translate/core';
declare var require: any;
import { join } from 'path';
import { makeStateKey, StateKey, TransferState } from '@angular/platform-browser';
const fs = require('fs');
export class TranslateServerLoader implements TranslateLoader {
constructor(private prefix: string = 'i18n',
private suffix: string = '.json',
private transferState: TransferState) {
console.log('Translation module loaded...');
}
public getTranslation(lang: string): Observable<any> {
console.log('translating in server....');
return Observable.create(observer => {
console.log('THIS TEXT WONT CONSOLE LOG');
const assets_folder = join(process.cwd(), 'dist', 'autorent', 'browser', 'assets', this.prefix);
const jsonData = JSON.parse(fs.readFileSync(`${assets_folder}/${lang}${this.suffix}?v2`, 'utf8'));
// Here we save the translations in the transfer-state
const key: StateKey<number> = makeStateKey<number>('transfer-translate-' + lang);
this.transferState.set(key, jsonData);
observer.next(jsonData);
observer.complete();
});
}
}
函数中的这一行不是:
console.log
我在做什么错了?
浏览器中视图源的结果提供了这些信息:
console.log('translating in server....');