Угловой + Электрон с ngx-translate - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение Angular, и теперь также требуется его настольная версия. Мне удалось запустить приложение в электронном виде, и все работает как положено.

Но локализация не работает. В электронном приложении я вижу только ключи локализации, которые указывают на фактический перевод в файлах локализации.

Я в основном перевожу текст на Angular так:

{{ "localization-key" | translate }}

А переводы в виде json-файлов основаны на assets / i18n /

У кого-нибудь есть идеи, как заставить работать локализацию?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

У меня тоже была эта проблема. Я нашел решение в официальной документации ngx-translate.

Если вы хотите настроить собственный TranslateLoader при использовании AoT компиляция, ионная или электрон , вы должны использовать экспортированную функцию вместо встроенной функции.

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

0 голосов
/ 04 сентября 2018

Работает сейчас. Проблема была в том, что я использовал Http-загрузчик для ngx-translate, который не работал в электроне.

Итак, я реализовал TranslateUniversalLoader , как и в последнем сообщении этой темы: https://github.com/ngx-translate/core/issues/754

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...