带有ngx-translate的角+电子

时间:2018-09-04 10:38:26

标签: angular typescript electron angular-cli ngx-translate

我有一个Angular应用程序,现在还需要它的桌面版本。我设法通过它在电子中运行该应用程序,并且一切正常。

但是本地化不起作用。在电子应用程序中,我只看到定位键,它指向本地化文件中的实际翻译。

我主要是这样在Angular中翻译文本:

{{ "localization-key" | translate }}

作为json文件的翻译基于 assets / i18n /

有人知道如何进行本地化工作吗?

2 个答案:

答案 0 :(得分:1)

它现在正在工作。问题是我使用Http-Loader进行ngx-translate,但该电子程序无法在电子中工作。

因此,我实现了 TranslateUniversalLoader ,就像该线程的最后一篇文章提到的:https://github.com/ngx-translate/core/issues/754

答案 1 :(得分:1)

我也有这个问题。我在offical documentation of ngx-translate.

中找到了解决方案
  

如果要在使用AoT时配置自定义的TranslateLoader   编译,离子或电子,则必须使用导出的功能   而不是内联函数。

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

@NgModule({
    imports: [
        BrowserModule,
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [HttpClient]
            }
        })
    ],
    bootstrap: [AppComponent]
})
export class AppModule { }

如果您对TranslateHttpLoader使用默认的loader.useFactory,则会看到此错误:i18n for wrong configuration of loader.factory for electron