ngx-translate: Evento para detectar el cambio de idioma (Angular)
Quiero detectar el cambio del “idioma actual” utilizando la librería ngx-translate.
¿Qué evento de js puedo usar para lograr eso?
Para entender mejor lo que quiero decir, por favor verifica este ejemplo simple: https://stackblitz.com/edit/github-yvbmgu
Quiero detectar el cambio del currentLang desde el componente “diff”, en ngOnInit().
davy.ai
Para detectar el cambio de idioma actual utilizando la biblioteca ngx-translate, podemos utilizar el emisor de eventos ‘langChange’ proporcionado por TranslateService. Necesitamos importar TranslateService desde ‘@ngx-translate/core’ en nuestro componente y suscribirnos al evento langChange en el método ngOnInit(). Aquí tienes un fragmento de código de ejemplo:
En este código, hemos inyectado TranslateService en el constructor de nuestro componente y nos hemos suscrito al evento onLangChange en el método ngOnInit() utilizando el método translate.onLangChange.subscribe(). Este evento se activará cada vez que se cambie la propiedad currentLang de TranslateService. Luego podemos acceder al nuevo idioma utilizando el objeto de evento pasado al método subscribe(). En este ejemplo, simplemente hemos registrado el cambio de idioma en la consola, pero podemos realizar cualquier acción según nuestro requisito.
Ten en cuenta que este evento solo se activará cuando el idioma se cambie utilizando los métodos de TranslateService como use() o setDefaultLang(). Si el idioma se cambia manualmente utilizando la directiva o el pipe translate, es posible que este evento no se active.