ngx-translate找不到网址

时间:2017-10-10 21:32:40

标签: asp.net angular ngx-translate

我想在我的应用中翻译我的静态文字。运行应用程序后的输出在我的示例TEST中。喜欢我变量的名字。我想,问题是网址。只有像这个例子的完整网址才有效,我不知道为什么。

我在asp.core 2上的Angular App中使用了ngx-translate。

我将createTranslateLoader函数放在app.module.shared.ts中。它由app.module.browser.ts和app.module.server.ts加载。

imports: [
        ...,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [Http]
            }
        }),...]

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

我的默认语言是德语'de'。我把我的de.json放在wwwroot / i18n / de.json。

最后一步我修改了我的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');
        }

}

和我的app.component.html

<p style="color:wheat">{{ 'TEST' | translate }}</p>

我的de.json看起来像

{
  "TEST": "Deutscher Test"
}

2 个答案:

答案 0 :(得分:0)

将i18n文件夹移动到资源可能会解决您的问题。 然后还修改了createTranslateLoader:

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

答案 1 :(得分:0)

通过ASPNET.Core和ngx-translate

,以下工作正常
export function translateLoaderFactory(http: Http) {
    return new TranslateStaticLoader(http, './i18n/', '.json');
}

我的资源文件位于与您相同的wwwroot / i18n /文件夹中。