es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se accede a los datos traducidos antes de la función runApp?

Me gustaría utilizar la traducción en una NotificationLayer creada antes de runApp en mi archivo principal.

Pero EasyLocation se inicializa después, en la función runApp.

¿Cómo puedo acceder a los datos traducidos antes de la función runApp?

Aquí está mi función principal:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Inicializar traducciones de la aplicación
  await EasyLocalization.ensureInitialized();

  // Inicializar la capa de aplicación de ble
  NotificationLayer().load();

  // Forzar orientación
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

  SystemChrome.setSystemUIChangeCallback((systemOverlaysAreVisible) async {
    SystemChrome.setSystemUIOverlayStyle(AppTheme.systemUIOverlayStyle);
  });

  runApp(EasyLocalization(
      supportedLocales: [Locale('en'), Locale('fr')],
      path: 'assets/translations',
      fallbackLocale: Locale('en'),
      child: MyApp()));
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para acceder a los datos traducidos antes de la función runApp, puedes usar EasyLocalization.delegate para obtener la configuración regional actual de la aplicación y así traducir las cadenas correspondientemente.

    Aquí hay un ejemplo:

    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
    
      // Inicializar las traducciones de la aplicación
      await EasyLocalization.ensureInitialized();
    
      // Obtener el delegado
      final EasyLocalizationDelegate delegate = EasyLocalization.of(context);
    
      // Traducir una cadena
      final String translatedString =
          delegate.currentLocale == Locale('en') ? 'Hello' : 'Bonjour';
    
      // Init ble Application Layer.
      NotificationLayer().load();
    
      // Forzar orientación
      SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
    
      SystemChrome.setSystemUIChangeCallback((systemOverlaysAreVisible) async {
        SystemChrome.setSystemUIOverlayStyle(AppTheme.systemUIOverlayStyle);
      });
    
      runApp(EasyLocalization(
          supportedLocales: [Locale('en'), Locale('fr')],
          path: 'assets/translations',
          fallbackLocale: Locale('en'),
          child: MyApp()));
    }
    

    En este ejemplo, usamos delegate.currentLocale para verificar la configuración regional actual de la aplicación y luego traducir la cadena en función de eso. Puedes usar este enfoque para traducir cualquier cadena que necesites usar antes de la función runApp.

Comments are closed.