使用 ngx-translate 进行 ngx-cookie-consent 消息翻译
ngx-cookie-consent message translation with ngx-translate
我正在做我的项目,基本上想实现多语言 webapp。我为此使用 ngx-translate
。现在我在尝试使用 ngx-cookie-consent
实现 cookie 栏时遇到了问题。
我有 2 种语言:en|ru
,当我单击按钮更改语言时 - 除了 cookiebar 之外,整个应用程序都被翻译了。也许您遇到过这样的问题,请提供一些提示,说明您是如何处理它的。
感谢任何帮助。
这是我如何将翻译消息加载到 cookie-consent 中的代码:
this.translateService
.get(['FOOTER.COOKIES'])
.subscribe(data => {
console.log(data)
this.ccService.getConfig().content = this.ccService.getConfig().content || {} ;
// Override default messages with the translated ones
this.ccService.getConfig().content.message = data['FOOTER.COOKIES'];
this.ccService.destroy();//remove previous cookie bar (with default messages)
this.ccService.init(this.ccService.getConfig()); // update config with translated messages
});
}
您可以在语言更改时订阅并在每次发生时配置它,而不是仅在您首次加载应用程序时配置一次 cookie 同意(至少这似乎是您的代码中发生的事情):
export class MyComponent implements OnInit {
ngOnInit() {
this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {
this.configureCookieConsent();
});
this.configureCookieConsent();
}
configureCookieConsent() {
this.translateService
.get(['FOOTER.COOKIES'])
.subscribe(data => {
console.log(data)
this.ccService.getConfig().content = this.ccService.getConfig().content || {} ;
// Override default messages with the translated ones
this.ccService.getConfig().content.message = data['FOOTER.COOKIES'];
this.ccService.destroy();//remove previous cookie bar (with default messages)
this.ccService.init(this.ccService.getConfig()); // update config with translated messages
});
}
}
}
我使用了一个组件作为示例,但当然它应该放在您当前配置 cookie 同意的任何地方
我正在做我的项目,基本上想实现多语言 webapp。我为此使用 ngx-translate
。现在我在尝试使用 ngx-cookie-consent
实现 cookie 栏时遇到了问题。
我有 2 种语言:en|ru
,当我单击按钮更改语言时 - 除了 cookiebar 之外,整个应用程序都被翻译了。也许您遇到过这样的问题,请提供一些提示,说明您是如何处理它的。
感谢任何帮助。
这是我如何将翻译消息加载到 cookie-consent 中的代码:
this.translateService
.get(['FOOTER.COOKIES'])
.subscribe(data => {
console.log(data)
this.ccService.getConfig().content = this.ccService.getConfig().content || {} ;
// Override default messages with the translated ones
this.ccService.getConfig().content.message = data['FOOTER.COOKIES'];
this.ccService.destroy();//remove previous cookie bar (with default messages)
this.ccService.init(this.ccService.getConfig()); // update config with translated messages
});
}
您可以在语言更改时订阅并在每次发生时配置它,而不是仅在您首次加载应用程序时配置一次 cookie 同意(至少这似乎是您的代码中发生的事情):
export class MyComponent implements OnInit {
ngOnInit() {
this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {
this.configureCookieConsent();
});
this.configureCookieConsent();
}
configureCookieConsent() {
this.translateService
.get(['FOOTER.COOKIES'])
.subscribe(data => {
console.log(data)
this.ccService.getConfig().content = this.ccService.getConfig().content || {} ;
// Override default messages with the translated ones
this.ccService.getConfig().content.message = data['FOOTER.COOKIES'];
this.ccService.destroy();//remove previous cookie bar (with default messages)
this.ccService.init(this.ccService.getConfig()); // update config with translated messages
});
}
}
}
我使用了一个组件作为示例,但当然它应该放在您当前配置 cookie 同意的任何地方