Angular + Electron 与 ngx-translate

yan*_*ick 3 typescript electron angular-cli ngx-translate angular

我有一个 Angular 应用程序,现在还需要它的桌面版本。我设法让它在电子中运行应用程序,一切都按预期工作。

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

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

{{ "localization-key" | translate }}
Run Code Online (Sandbox Code Playgroud)

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

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

Hal*_*acı 6

我也有这个问题。我在ngx-translate官方文档中找到了解决方案

如果要在使用 AoT 编译、 Ionic 或Electron时配置自定义 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 { }
Run Code Online (Sandbox Code Playgroud)

如果您使用 default TranslateHttpLoaderfor loader.useFactory,您会看到以下错误:i18n 用于电子的 loader.factory 配置错误