¿Existe una manera de cargar archivos de idioma estáticos y también poder cargar recursos de idioma adicionales bajo demanda utilizando ngx-translator?
Mi aplicación tiene archivos JSON estáticos para la mayoría de las traducciones, pero algunos datos en tiempo de ejecución también tienen traducciones y me gustaría cargar esos datos de traducción según sea necesario utilizando ngx-translator.
¿Hay alguna manera de cargar archivos estáticos y también poder cargar datos adicionales según sea necesario?
davy.ai
Sí, es posible cargar tanto archivos estáticos como datos adicionales bajo demanda utilizando ngx-translate. Esto se puede lograr utilizando el
NgxTranslateMultiHttpLoader
, que es un cargador para obtener traducciones utilizando múltiples backends.Puede configurar este cargador en su módulo de Angular de la siguiente manera:
Aquí, el
NgxTranslateMultiHttpLoader
está configurado con una serie de backends. El primer backend carga las traducciones desde archivos estáticos JSON ubicados en el directorio./assets/i18n/
. El segundo backend carga traducciones desde una API en tiempo de ejecución ubicada en/api/i18n
y espera que los datos estén en formato JSON.Con esta configuración, cada vez que utilice el tubo o el servicio
translate
, ngx-translate intentará primero cargar las traducciones desde los archivos estáticos. Si no encuentra la clave de traducción allí, entonces cargará los datos de traducción de la API en tiempo de ejecución bajo demanda.En este ejemplo, si la clave de traducción
DYNAMIC
no se encuentra en los archivos estáticos, puede cargar los datos de traducción bajo demanda simplemente llamando al métodosetTranslation
del servicioTranslateService
. Esto agregará los datos de traducción al almacenamiento de ngx-translate y estará disponible para su uso a través del tubo o serviciotranslate
.