Desarrollo de proyectos full stack 3: internacionalización de aplicaciones y procesamiento de permisos
1. Introducir los paquetes necesarios para la internacionalización.
2. Agregue generar en el nodo Flutter para actualizar el archivo de traducción en tiempo real durante el reinicio o la actualización en caliente.
3. Agregue el archivo l10n.yaml en el directorio raíz para configurar el contenido de actualización en tiempo real.
4. Agregue la siguiente configuración a MaterialApp del widget raíz. La mayoría de las configuraciones se actualizarán automáticamente en el tercer paso. Si el compilador no puede reconocerlo automáticamente, puede importar manualmente el siguiente paquete: import 'package:flute_gen/gen_l10n/app_localization.dart';
5 Compile el archivo de traducción en lib/I10n Agregue dos archivos nuevos. app_zh.arb y app_en.arb en el directorio (si desea especificar el código de país, puede crearlo como app_zh_CN.arb y app_en_US.arb). El archivo utiliza la sintaxis Json y los editores como Vscode también tienen los complementos de sintaxis correspondientes. En cuanto a la sintaxis de traducción,
Nota: app representa el nombre de la variable y puedes usar AppLocalizations.of(context) más adelante. . aplicación, al cambiar, el idioma se mostrará de acuerdo con el archivo de traducción correspondiente.
@app representa la descripción de la variable app, que es para traductores y no tiene nada que ver con la ejecución del código.
Oración de plantilla, a veces es necesario implementar una oración como "Cuenta regresiva para 20 segundos" cambiando solo los números. En este momento, se forma una oración de interpolación de plantilla e inserta números en la plantilla. El hit6 anterior implementa dicha sintaxis y eventualmente se traducirá en una función. Los lectores pueden probarlo ellos mismos.
Acerca de la plataforma iOS
Los lectores que hayan probado la internacionalización pueden encontrar que el cambio no se puede completar con éxito en la plataforma iOS (el método de variable global anterior es esencialmente el mismo que el método de implementación). utilizando la gestión del estado global) Diferencia, preste atención a la diferencia). Esto se debe a que las aplicaciones de iOS tienen su propio mecanismo de gestión del entorno lingüístico, por lo que es ineficaz que las aplicaciones de iOS adopten el método anterior para adaptarse a la internacionalización. Para que una aplicación iOS admita la internacionalización, se requiere una configuración adicional en el proyecto iOS nativo. Use Xcode para abrir el proyecto iOS nativo del proyecto Flutter, cambie al panel del proyecto y luego agregue soporte chino en la configuración de opciones de localización.
El procesamiento de permisos en la plataforma Android/ios es inevitable. Como aplicación de demostración, esta aplicación solicitará tantos permisos como sea posible, pero está diseñada para solicitarlos solo una vez cuando el usuario la abre por primera vez después de la instalación. No los solicitará activamente después de eso, y solo guiará. Dar permiso al usuario cuando necesite utilizar funciones relacionadas. La implementación de la gestión de permisos es relativamente sencilla. Puede consultar el paquete permiso_handler, agregar el siguiente código y llamar a la función requestAllPermission una vez cuando se inicia la APLICACIÓN.
Próximo capítulo: cambio de tema, página de bienvenida, página de guía,
Un pequeño sitio web con el mismo nombre, artículos sincronizados y transmisiones en vivo programadas. Si está interesado, puede moverse. aquí.