json - 如何在 ionic 3 中使用 ngx-translate 解决 "ERROR SyntaxError: Unexpected token/in JSON at position 0"?

标签 json html typescript ionic3 angular5

我在使用 ngx-translate 更改语言时出现上述错误 在 ionic 3 中。

enter image description here

我的代码是: 1.我已经安装了

**npm install @ngx-translate/core @ngx-translate/http-loader --save** 

2。然后我在 app.module.ts 中导入了以下 3:

要使用 ngx-translate,必须先将其导入并添加到 在应用程序的 NgModule 中导入数组。这是一个例子 如何做到这一点:

import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpModule, Http } from '@angular/http';

3.然后导出函数:

  export function createTranslateLoader(http: Http) {
   return new TranslateHttpLoader(http, './assets/i18n/', '.json');
  }

4.然后在@ngModule中导入模块

 @NgModule({
   declarations: [
    MyApp,
    MainPage,
    SearchPipe,
    // SortPipe
   ],
   imports: [
    BrowserModule,
    HttpModule,
    TranslateModule.forRoot({
     loader: {
      provide: TranslateLoader,
      useFactory: (createTranslateLoader),
      deps: [Http]
    }
  }),
 ]
})

5.然后在app.component.ts文件中导入TranslateService:

import { TranslateService, LangChangeEvent } from '@ngx-translate/core';

放了

this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
  console.log("onLangChange", event.translations)
})
this.translate.onDefaultLangChange.subscribe((event: LangChangeEvent) 
 => {
  console.log("onDefaultLangChange", event.translations)
}) 

在构造函数中

6. then in home.ts

 import { TranslateService, LangChangeEvent } from '@ngx- translate/core';

在构造函数中:

  translate.setDefaultLang('en');

外部构造函数:

  public changeLanguage(language)
  {
    console.log("language", language);
    this.translate.use(language);
  }

7.在home.html

   <ion-title>{{ 'title' | translate }}</ion-title>
   <div *ngIf="forUserContent"></div>
   <div *ngIf="forSupplierContent">
   <button ion-button full class="review-btn"(click)="showreviewlist()">{{ 'review' | translate }}</button>
   </div>
   <div *ngIf="forBothContent">
   <button ion-button full class="review-btn" (click)="showreviewlist()">{{ 'review' | translate }}</button>
   </div>

   <button ion-button (click)="changeLanguage('de')">{{ 'german' | translate }}</button>
   <button ion-button (click)="changeLanguage('en')">{{ 'english' | translate }}</button>

8.在 home.module.ts 中:

 import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
 import { TranslateHttpLoader } from '@ngx-translate/http-loader';
 import { HttpClientModule, HttpClient } from '@angular/common/http';

 export function createTranslateLoader(http: Http) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
 }

 @NgModule({
   declarations: [
    HomeappPage,
   ],
   imports: [
     IonicPageModule.forChild(HomeappPage),
     HeaderComponentModule,
     FooterComponentModule,
     TranslateModule.forChild({
      loader: {
       provide: TranslateLoader,
       useFactory: (createTranslateLoader),
       deps: [Http]
     }
   })
  ],
  exports: [
   HomeappPage,
   TranslateModule
  ]
})

9.创建了两个具有特定语言的 json 文件: 将语言数据存储在 .json 文件中。

1.zh.json

   {
     "title": "HOME",
     "german": "German",
     "english": "English",
     "review": "Review List"
   }

2.de.json

    {
     "title": "ZUHAUSE",
     "german": "Deutsch",
     "english": "Englisch",
     "review": "Überprüfungsliste",
    }

当我更改时,我想要解决方案并从特定的 json 文件中获取字符串 应用中的语言

最佳答案

创建演示项目

ionic start DemoProject super

检查 app.module.ts 文件。他们使用 HttpClient 而不是 Http。我的正在使用此配置。

如果你的 Angular 版本是 5,这是配置。 您可以从此处获取并安装正确的 @ngx-translate/core@ngx-translate/http-loader 版本。 https://github.com/ngx-translate/core

关于json - 如何在 ionic 3 中使用 ngx-translate 解决 "ERROR SyntaxError: Unexpected token/in JSON at position 0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51278636/

相关文章:

html - 无法将图像叠加在另一个图像上

php - 将静态导航菜单更改为wordpress动态菜单

javascript - 在 TypeScript 中,定义可以返回 Promise<T> 或 Promise<T[]> 的函数的最佳方法是什么?

typescript - 从泛型类获取方法的参数 - TypeScript

javascript - 对 JSON 数组进行过滤和排序

java - 从 Facebook 的 JSON 响应中获取奇怪的字符

html - 使 li 元素水平堆叠

javascript - 是否等待 .catch 完成

javascript JSON 响应格式

java - 从 json 响应中解析一个值,其中大部分负载都是冗余的