JHipster项目中无法将gettext i18n与ngx-translate-po-http-loader一起使用

时间:2018-12-20 10:28:38

标签: angular internationalization jhipster gettext ngx-translate

我正在尝试使用JHipster生成的Angular应用程序中的i18n使用gettext po文件,但是我无法使其工作。由于它已经使用了ngx-translate,因此我已经向项目添加了ngx-translate-extractngx-translate-po-http-loader

作为示例,我具有以下用于注销按钮的html代码:

<button mat-menu-item (click)="logout();" id="logout">
    <mat-icon>power_settings_new </mat-icon>
    <span>{{'Log out' | translate}}</span>
</button>

将i18n密钥提取到Pot模板文件中可以正常工作。在模板之外,我创建了一个德语翻译文件,并将其放在src/main/webapp/i18n/po/de.po

在我的app.module.ts(完整文件:https://pastebin.com/T4Bi11Vg)中,我添加了以下代码段

@NgModule({
  imports: [
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: createTranslateLoader,
                deps: [HttpClient]
            }
        })
 ]
 ...
 export function createTranslateLoader(http: HttpClient) {
     return new TranslatePoHttpLoader(http, 'src/main/webapp/i18n/po', '.po');
}

此外,我还删除了de下的现有src/main/webapp/i18n文件夹,以确保它不会从json文件中提取旧的翻译。

当我调试生成的language.helper.ts时,我可以看到它正确注册了TranslatePoHttpLoader,但仍然没有显示德语翻译。

debug output

0 个答案:

没有答案