当我在本地使用npm start运行Range12应用程序时,Transloco翻译工作得很好。
但是,在ng build --configuration production之后,当我使用http-server dist/my-project运行应用程序时,翻译不起作用--我看到了原始值。
这是我的transloco-root.module.ts
import { HttpClient } from "@angular/common/http";
import {
Translation,
TRANSLOCO_CONFIG,
TRANSLOCO_LOADER,
translocoConfig,
TranslocoLoader,
TranslocoModule
} from "@ngneat/transloco";
import { Injectable, NgModule } from "@angular/core";
import { environment } from "../../environments/environment";
@Injectable({ providedIn: "root" })
export class TranslocoHttpLoader implements TranslocoLoader {
constructor(private http: HttpClient) {
}
getTranslation(lang: string) {
return this.http.get<Translation>(`/assets/i18n/${lang}.json`);
}
}
@NgModule({
exports: [TranslocoModule],
providers: [
{
provide: TRANSLOCO_CONFIG,
useValue: translocoConfig({
availableLangs: ["hin", "eng", "tel"],
defaultLang: "eng",
reRenderOnLangChange: true,
prodMode: environment.production,
fallbackLang: "hin",
failedRetries: 1,
missingHandler: {
allowEmpty: true,
useFallbackTranslation: true
},
flatten: {
aot: environment.production
}
})
},
{ provide: TRANSLOCO_LOADER, useClass: TranslocoHttpLoader }
]
})
export class TranslocoRootModule {
}这是我的transloco.config.js
module.exports = {
rootTranslationsPath: 'src/assets/i18n/',
langs: ['hin', 'eng', 'tel'],
keysManager: {}
};发布于 2021-10-15 01:34:33
奇怪..。但这对我有用:
从提供者中删除条目将使翻译工作在Prod模式下进行。
flatten: {
aot: environment.production,
},知道为什么吗?
https://stackoverflow.com/questions/69565867
复制相似问题