<div class="row"><h6>{{item.ageList}}</h6></div>
<div class="row"><h6>{{item.amenities}}</h6></div>
注意:我想在获取Firestore之后转换数据,例如
<div class="row"><h6>{{'item.ageList' | translate}}</h6></div>
<div class="row"><h6>{{'item.amenities' | translate}}</h6></div>
答案 0 :(得分:0)
在ngx-translate
的仓库中,确实有Firebase的示例。
https://github.com/ngx-translate/core/blob/master/FIREBASE_EXAMPLE.md
编辑。
完成一些工作后,我可以为您提供工作示例。
1。将您的Firebase的配置放入envrionment.ts
export const environment = {
production: false,
firebase: {
apiKey: '',
authDomain: '',
databaseURL: '',
projectId: '',
storageBucket: '',
messagingSenderId: ''
},
};
您可以从项目的Firebase控制台获取它。
2。在firestore-trans-loader.ts
目录旁边的shared
目录中创建app
import { TranslateLoader } from '@ngx-translate/core';
import { AngularFirestore } from '@angular/fire/firestore';
import { Observable } from 'rxjs';
export class FirestoreTransLoader implements TranslateLoader {
constructor(private db: AngularFirestore) {
}
getTranslation(lang: string, prefix: string = 'translates'): Observable<any> {
return this.db.doc(`${prefix}/${lang}`).valueChanges();
}
}
3。准备您的app.module.ts
。
export function FirestoreTranslationsLoaderFactory(db: AngularFirestore) {
return new FirestoreTransLoader(db);
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule,
TranslateModule.forRoot({
loader: {provide: TranslateLoader, useFactory: FirestoreTranslationsLoaderFactory, deps: [AngularFirestore]}
})
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
4。最后在您的组件中使用它
import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-root',
template: `
<p>{{ helloKey | translate }}</p>
<select (change)="onLangChange($event)">
<option value="en">English</option>
<option value="pl">Polish</option>
</select>
`,
})
export class AppComponent {
helloKey = 'HELLO';
constructor(private translate: TranslateService) {
translate.setDefaultLang('en');
translate.use('en');
}
onLangChange(event) {
this.translate.use(event.target.value);
}
}
这里确实有没有配置的完整仓库,您可以在其中找到详细信息(如果我忘记了某些内容)。
https://github.com/Mr-Eluzive/angularfire-ngx-translate-example
另外,我为此做了一些工作,所以也许我会尝试将其推入ngx-translate
回购中。