ionic 多语言 JSON 问题

ionicMultilingual JSON issue

我在从一种语言翻译成另一种语言时遇到问题。当我使用代码

this.translate.use('en');  // for any language

我无法翻译,我从 JSON 文件中得到的是 -

"{\n  \"Status\": \"Task Status\"\n}\n"

问题是 json 文件。它以 stringify 格式读取,附加反斜杠和 \n.

如果我使用

setTranslation()

例如

this.translate.setTranslation('en', { "Status": "Task Status" });

语言翻译成功

截至目前,我正在使用印地语和英语进行翻译。所以 this.translate 结果是:

this.translate.use('hi');

hi: Object { _body: "{\n  \"Task Listing\": \"कार्य सूची\",\n  \"Task Type\": \"कार्य प्रकार\",\n  \"Task Status\": \"कार्य स्थिति\",\n  \"Mobile\": \"मोबाइल\",\n  \"Type\": \"प्रकार\",\n  \"Status\": \"स्थिति\"\n}\n", status: 200, ok: true, … }

你需要解析JSON

eg. JSON.parse(jsonString);

var tempJson="{\n  \"Status\": \"Task Status\"\n}\n"  //this is ur string
Eg. var data=JSON.parse(tempJson)
console.log(data)

通过在 app.module.ts 中添加 HttpClientModule 解决了我的问题。

之前我用的是Http,但是angular4+用的是HttpClient,所以我改了。

app.module.ts

imports: [ BrowserModule, HttpClientModule, HttpModule, IonicModule.forRoot(MyApp), IonicStorageModule.forRoot(), TranslateModule.forRoot({ loader : { provide: TranslateLoader, useFactory: (createTranslateLoader), deps: [HttpClient] } }) ],