Je veux traduire mon texte statique dans mon application. la sortie après l'exécution de l'application est dans mon exemple TEST. comme le nom de ma variable. Je pense que le problème est l'URL. Seule l'URL complète comme cet exemple fonctionne, et je ne sais pas pourquoi.ngx-traduire ne trouve pas l'URL
J'ai utilisé NGX-translate dans mon application angulaire sur asp.core 2.
Je mets ma la fonction createTranslateLoader dans mes app.module.shared.ts. Il est chargé par app.module.browser.ts et app.module.server.ts.
imports: [
...,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [Http]
}
}),...]
et
export function createTranslateLoader(http: Http) {
console.log(http);
return new TranslateHttpLoader(http, 'http://localhost:56601/i18n/', '.json');
}
Ma langue par défaut est l'allemand 'de'. J'ai mis mon de.json dans wwwroot/i18n/de.json.
Enfin pas modifier mon app.component.ts
export class AppComponent {
constructor(private translate: TranslateService
) {
translate.addLangs(['en', 'de']);
translate.setDefaultLang('de');
translate.use('de');
//let browserlang = translate.getBrowserLang();
//translate.use(browserlang.match(/en|de/) ? browserlang : 'de');
}
}
et mon app.component.html
<p style="color:wheat">{{ 'TEST' | translate }}</p>
Mon de.json ressemble
{
"TEST": "Deutscher Test"
}
Je l'ai essayé. Maintenant, je reçois une exception: Les URL demandées via Http sur le serveur doivent être absolues. URL: ./assets/i18n/de.json. Le fullpath du wwwroot est/assets/i18n/de.json – Taladan
Essayez de factoriser et utiliser HttpClient au lieu de Http comme ceci: 'HttpLoaderFactory (http: HttpClient)' et puis aussi dans votre chargeur: '{.. ., deps: [HttpClient]} ' fourni avec les instructions d'importation suivantes dans app.module: ' import {HttpClientModule, HttpClient} à partir de '@ angular/common/http'; ' – Andresson