richnologies/ngx-stripe

Change language dynamically

benjaminmilcic opened this issue · 2 comments

I want to change language of the payment ui dynamically. I use ngx-translate.

I used the provided example on your website to integrate stripe. It works fine.

Now I have:

<ngx-stripe-elements [stripe]="stripe" [elementsOptions]="elementsOptions"> <ngx-stripe-payment [options]="paymentElementOptions" /> </ngx-stripe-elements>

`elementsOptions: StripeElementsOptions = {
locale: this.translate.currentLang,
clientSecret: null,
appearance: {
theme: 'flat',
},
};

paymentElementOptions: StripePaymentElementOptions = {
layout: {
type: 'tabs',
defaultCollapsed: false,
radios: false,
spacedAccordionItems: false,
},
};

stripe = injectStripe(
{{api_Key}}
);

constructor(
private translate: TranslateService,
) {} `

I try the following:

ngOnInit() { this.translate.onLangChange.subscribe((res) => { this.elementsOptions.locale = <StripeElementLocale>res.lang; ); }); }

But the language of the payment layout do not change.

You have any suggestion how to do that?

Oh my god, sorry for starting an issue so fast.
I get it to work now.

I added

@ViewChild(StripeElementsDirective) elements!: StripeElementsDirective;

and then

this.translate.onLangChange.subscribe((lang) => { this.elementsOptions.locale = <StripeElementLocale>lang.lang; this.elements.update(this.elementsOptions); });

Sorry again, for starting this issue!!!

No worries. Congrats on finding the answer