我正在使用ng-recaptcha组件将reCaptcha实施到有角度的应用程序中。我设置Recaptcha语言的方式如下:在app.module.ts中,我从组件导入“ RECAPTCHA_LANGUAGE”:
import { RECAPTCHA_LANGUAGE } from 'ng-recaptcha';
在@NgModule中,我在“提供者”下提供所需的语言,如下所示:
providers: [
{
provide: RECAPTCHA_LANGUAGE,
useValue: 'en'
}
这样,reCaptcha将始终设置为英语。但是,该应用程序已实现本地化,您可以从位于login.component.html的下拉菜单列表中选择一种语言:
<ul class="dropdown-menu" role="menu">
<li><a href="javascript:void(0)" (click)="changeLanguage('hr-HR')" translate="yes">croatianLanguage</a></li>
<li><a href="javascript:void(0)" (click)="changeLanguage('en-US')" translate="yes">englishLanguage</a></li>
<li><a href="javascript:void(0)" (click)="changeLanguage('ru-RU')" translate="yes">russianLanguage</a></li>
</ul>
单击所需的语言后,将调用“ changeLanguage”函数,该函数为该函数提供语言字符串。
//Method for change language
changeLanguage(language: string) {
var lang = language.substring(0, 2);
this.dataService
.getItem<any>('api/changelanguage/ ' + language)
.subscribe(
res => this.sharedService.localization.updateTranslation(lang),
err => this.sharedService.handleError(err)
);
}
我的问题是,当从下拉列表中选择一种语言时,如何使用ng-recaptcha组件中的“ RECAPTCHA_LANGUAGE”设置并设置Recaptcha组件的语言?有没有办法从登录组件更改app.module中的提供程序?