Ionic3アプリでは、ngx-translate用のJSONをロードする方法は何ですか? githubにある現在のアプローチは、各言語のJSONファイルをassetsフォルダに保存することについて言及しています。このアプローチの問題は、新しい言語サポートを追加するたびに新しいバージョンのアプリをリリースする必要があることです。 FirebaseからJSONをロードする方法はありますか?ngx-translate:ionic3のfirebaseからi18n jsonをロード
3
A
答えて
1
Firebaseからフェッチする新しいTranslateLoaderを作成することができました。ここでは、コードは次のとおりです。
import {AngularFireDatabase} from 'angularfire2/database';
import {TranslateLoader} from "@ngx-translate/core";
export class TranslateFirebaseLoader implements TranslateLoader {
constructor(public db : AngularFireDatabase) {}
/**
* Gets the translations from firebase
* @param lang
* @returns {any}
*/
public getTranslation(lang: string): any {
return this.db.list('/translations/'+lang)
.map(data => {
let fields={};
data.forEach(field =>{
fields[field.$key]=field.$value;
});
return fields;
});
}
}
1
OK私はそれがこのように動作させるために管理:
app.module.ts
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
// Should work with "AngularFireDatabase" too. But I want it to work offline
import { AngularFireOfflineDatabase } from 'angularfire2-offline/database';
import { TranslateFirebaseLoader } from './TranslateFirebaseLoader';
export function createTranslateLoader(db: AngularFireOfflineDatabase) {
return new TranslateFirebaseLoader(db, '/my/firebase/path');
}
@NgModule({
imports: [
// ...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [ AngularFireOfflineDatabase ]
}
}),
// ...
],
// ...
})
export class AppModule {}
TranslateFirebaseLoader.ts
明らか
、それはあなたが(その中に言語コードなし)Firebaseに使用しているパスを変更動作させるために。 たとえば、この場合、言語コード「en」がアクティブな場合、アプリは/my/firebase/path/en
からデータをフェッチしようとします。
関連する問題
- 1. AngularJS + i18nローカリゼーション別のサーバーからJSONをロード
- 2. はFireBase JSONから迅速
- 3. ExtJS MVC、動的ロードとi18n
- 4. FirebaseからExpandableListにデータをロード
- 5. Jsonファブリックからロードする
- 6. senchaのjsonからデータをロード
- 7. バックボーンのJSONからモデルをロード
- 8. Firebaseからハンドルバーテンプレートを作成するJSON
- 9. JSONでFirebaseからデータを取得 - Swift
- 10. C++ Builder(i18n)からのgettext
- 11. jsonファイルからのスプリングブートプロパティのロード
- 12. LogstashからElasticsearchへのJSONストリームのロード
- 13. jsonファイルから角モジュールにデータをロード
- 14. ファイルからjsonデータをPostgresにロード
- 15. JSONファイルからPythonに変数をロード
- 16. JSONからjsTree子をロードする
- 17. jsonをテキストファイルからユニットテストにロードする
- 18. json phpからgoogleマップにマーカーをロード
- 19. ファブリックjs JSONからキャンバスをロード
- 20. ExtJS5 JSONをTreeStoreからTreePanelにロード
- 21. パイプからJSONをロードするには?
- 22. JSONからGoogle Cloud Datastoreにデータをロード
- 23. SAP/Open UI 5 JSONからオブジェクトデータをロード
- 24. リソースからjsonファイルをロードする
- 25. ファイルからのLUAロードJSON設定
- 26. Vue/Vuex - JSONファイルからのロード状態
- 27. Firebaseから大規模なjsonをロードすると、Androidアプリからjava.lang.OutOfMemoryErrorが返されます
- 28. json配列からjson配列を1つずつロードする
- 29. ロード時にFirebaseから配列をソートしていますか?
- 30. AndroidでRecyclerViewのJsonからさらにデータをロード
ありがとうございました。このコードをどのように使用しているかのスニペットを提供できますか?私はエラーが発生しました "未定義のプロパティ 'getTranslation'を読み取ることができません。どうもありがとう – Maslow