【问题标题】:Easy Localization: Localization key [...] not found轻松本地化:找不到本地化键 [...]
【发布时间】:2025-12-25 22:20:16
【问题描述】:

我在一个带有 CSV 加载器的颤振项目中使用 easy_localization: ^2.3.3。当我构建它时,它无法找到键,它给出了“轻松本地化:找不到本地化键 [...]”。任何想法为什么会发生这种情况?


runApp(EasyLocalization(
    supportedLocales: [
      Locale('en', ''),
      Locale('it', ''),
      Locale('es', ''),
      Locale('de', ''),
      Locale('fr', ''),
      Locale('pt', ''),
    ],
    path: 'resources/langs/langs.csv',
    fallbackLocale: Locale('en', ''),
    saveLocale: false,
    useOnlyLangCode: true,
    assetLoader: CsvAssetLoader(),
    child: MyApp(status),
  ));
}

【问题讨论】:

标签: android-studio flutter localization


【解决方案1】:

如果没有设置材质应用程序也可能会发生此错误;我的意思是,我忘记将这些行添加到我的材料应用程序中时遇到了同样的错误;

MaterialApp(
    locale: context.locale,
    supportedLocales: context.supportedLocales,
    localizationsDelegates: context.localizationDelegates,
  ),

我的问题解决了!

【讨论】:

  • 这应该是一个可以接受的答案。非常感谢!
【解决方案2】:

你需要导入import 'package:easy_localization/easy_localization.dart';

并添加你的 MaterialApp :

locale: context.locale,
supportedLocales: context.supportedLocales,
localizationsDelegates: context.localizationDelegates,

【讨论】:

    【解决方案3】:

    我找到了解决这个错误的方法:https://github.com/aissat/easy_localization/issues/190#

    我添加了以下内容:

    dependencies:
      easy_localization_loader:
        git:
          url: git://github.com/aissat/easy_localization_loader.git
          ref: overman-dev
    
    

    然后我做了一个

    flutter pub upgrade
    

    还把代码改成了这个

    runApp(EasyLocalization(
        supportedLocales: [
          Locale('en'),
          Locale('it'),
          Locale('es'),
          Locale('de'),
          Locale('fr'),
          Locale('pt'),
        ],
        path: 'resources/langs/langs.csv',
        fallbackLocale: Locale('en'),
        saveLocale: false,
        useOnlyLangCode: true,
        assetLoader: CsvAssetLoader(),
        child: MyApp(status),
      ));
    
    

    成功了。

    【讨论】:

    • 请分享您的 langs.csv 文件,该文件包含 2-3 个关键字和翻译后的单词。谢谢
    • 您上述建议的解决方案有效。我正在尝试使用Locale('en_US'),因为我在我的旧项目中使用过它,这可能是这个包的新版本只支持Locale('en')。谢谢亲爱的。