Descripción del problema
El método global changeLocaleConfiguration se define en la aplicación rápida app.ux.Este método se utiliza para configurar el idioma de visualización de la aplicación. Se llama a changeLocaleConfiguration () en el onInit del ciclo de vida de la página de inicio. Este método se ha activado, pero el idioma de la aplicación no ha cambiado. el código se muestra a continuación:
En app.ux:
changeLocaleConfiguration() {
this.localeObject = configuration.getLocale()
if (this.localeObject.language === 'zh') {
configuration.setLocale({
language: 'en',
countryOrRegion: 'US'
})
}
else {
configuration.setLocale({
language: 'zh',
countryOrRegion: 'CN'
})
}
}
Página de inicio:
onInit() {
this.$app.$def.changeLocaleConfiguration()
}
análisis del problema
El tiempo de inicialización de la página enInit () es muy corto, configurar el idioma es una operación que requiere relativamente tiempo y la página es demasiado tarde para renderizar.
Solución
Agregue un retraso cuando la inicialización de la página llame a la configuración de la interfaz de idioma, el código es el siguiente:
onInit() {
setTimeout(() => {
this.$app.$def.changeLocaleConfiguration()
}, 100);
}
para resumir:
No se recomienda llamar a las operaciones que consumen mucho tiempo en la página onInit, si debe usarlo, debe agregar un retraso.
Para obtener más detalles, consulte:
Documento de orientación para el desarrollo de aplicaciones rápidas:https://developer.huawei.com/consumer/cn/doc/development/quickApp-Guides/quickapp-whitepaper
Documentos de guía de soporte multilingües:
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-multi-language#h1-1577956810051
Enlace original:
https://developer.huawei.com/consumer/cn/forum/topic/0204393662842000121?fid=18
Autor: Drum Chao