使用组件设置动态更改reCaptcha语言

时间:2018-09-20 09:15:19

标签: angular recaptcha

我正在使用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中的提供程序?

0 个答案:

没有答案