Estoy usando ionic 2 y revisé este documento:
http://ionicframework.com/docs/resources/ng2-translate/Hice todos los cambios necesarios para que la traducción funcione. Sin embargo, cuando escribo esto en un archivo html:
{{ 'HELLO' | translate }}en la pagina que veo
HELLOEsto, aunque tengo un archivo en /assets/i18n/en.json que contiene:
{ "HELLO": "Hello there" }En app.ts agregué estas importaciones:
import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { Http } from '@angular/http';Y luego, después de las importaciones, tengo esto:
export function createTranslateLoader(http: Http) { return new TranslateHttpLoader(http, './assets/i18n/', '.json'); }Y también esto en @NgModule->matriz de importación:
TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: (createTranslateLoader), deps: [Http] } })Lo que me di cuenta es que mi aplicación tenía desde antes de esta importación:
import { HttpModule } from '@angular/http';No estoy seguro de por qué lo importé, pero si lo elimino, la aplicación se rompe en otros lugares. ¿Es ese el problema? ¿Importando angular/http dos veces con dos nombres diferentes? Intenté usar solo el original, pero en la función de exportación no le gusta el argumento
http: HttpModuleen lugar del que está en la documentación
http: Http¿Puedo ver si el en.json se ha cargado? ¿O cuál es el problema aquí?
Puede ver en.json usando Inspector Web (F12). ¿Utiliza estos métodos en algún lugar de su fuente de código?
this.translate.setDefaultLang('en'); this.translate.use('en');En la vista, solo ves 'HOLA' porque (creo que sí) no configuraste el idioma a usar.