You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Easy Localization提示Firebase初始化失败键不存在问题求助

解决Easy Localization提示Localization键不存在的问题

运行Flutter应用时,日志抛出[🌎 Easy Localization] [WARNING] Localization key [Failed to initialise firebase!] not found警告,该键已存在于assets/translations下的en.json和ar.json中,且屏幕显示对应错误,已确认键的拼写和大小写一致但问题仍存在,可按以下步骤排查:

  • 检查Easy Localization初始化配置
    确保main.dart中的初始化代码正确加载翻译文件路径与支持语言,示例代码:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await EasyLocalization.ensureInitialized();
      
      runApp(
        EasyLocalization(
          supportedLocales: const [Locale('en'), Locale('ar')],
          path: 'assets/translations', // 确认路径与实际文件位置完全匹配
          fallbackLocale: const Locale('en'),
          child: const MyApp(),
        ),
      );
    }
    

    重点核对path参数,避免路径层级多写、少写或拼写错误。

  • 检查pubspec.yaml资源配置
    确认已正确声明翻译文件资源,且执行过flutter pub get:

    flutter:
      assets:
        - assets/translations/ # 用通配符匹配所有翻译文件
        # 或逐个声明:
        # - assets/translations/en.json
        # - assets/translations/ar.json
    
  • 检查JSON文件的键结构与语法
    确认目标键是顶级键,若为嵌套结构,调用时需带上完整层级(比如tr('errors.Failed to initialise firebase!'));同时用JSON校验工具检查文件是否存在语法错误(如多余逗号、引号不闭合)。示例正确的顶级键JSON:

    {
      "Failed to initialise firebase!": "Failed to initialise firebase!"
    }
    
  • 清理缓存并重启应用
    执行以下命令清理Flutter缓存,避免旧资源残留导致加载异常:

    flutter clean
    flutter pub get
    flutter run
    
  • 检查调用tr方法的上下文
    确保在EasyLocalization的子组件中调用tr方法,或通过EasyLocalization.of(context)获取实例后调用,示例:

    Text(tr('Failed to initialise firebase!'))
    // 或
    Text(EasyLocalization.of(context)!.tr('Failed to initialise firebase!'))
    
  • 验证设备语言设置
    确认当前设备/模拟器语言为en或ar,可临时强制设置测试语言排查:

    EasyLocalization.of(context)?.setLocale(const Locale('en'));
    

内容的提问来源于stack exchange,提问作者Thomas c freeman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:22:09