Динамическое изменение языка reCaptcha с помощью настройки компонента - PullRequest
0 голосов
/ 20 сентября 2018

Я использую ng-recaptcha компонент для реализации reCaptcha в угловом приложении.Я устанавливаю язык рекапчи следующим образом: в app.module.ts я импортирую «RECAPTCHA_LANGUAGE» из компонента:

import { RECAPTCHA_LANGUAGE } from 'ng-recaptcha';

, а в @NgModule я предоставляю нужный язык в «поставщиках», напримерthis:

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)
        );
}

Мой вопрос: как я могу использовать параметр «RECAPTCHA_LANGUAGE» из компонента ng-recaptcha и установить язык для компонента recaptcha при выборе языка из выпадающего спискасписок?Есть ли способ изменить провайдера в app.module из компонента входа?

...