易于本地化:找不到本地化键[...]

21

我在使用 easy_localization: ^2.3.3 在 Flutter 项目中使用 CSV 加载器。 当我构建时,它无法找到键,并显示“Easy Localization:本地化密钥[...]未找到”。 有任何想法为什么会发生这种情况吗?


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),
  ));
}


可能与此错误相关:https://github.com/aissat/easy_localization/issues/205 - avafab
你完成了其他的安装步骤吗?
  • 创建文件夹并添加翻译文件
  • 在pubspec.yaml中声明你的资产本地化目录
  • 等等。 https://pub.dev/packages/easy_localization
- Er1
我已经找到了解决方案。现在正在回答。 - avafab
3个回答

38

同时,出现这个错误也可能是由于没有设置Material App引起的;我的意思是,我因为忘记在我的Material App中添加这些代码而遇到了相同的错误;


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

我的问题已经解决!


3
这应该是一个被接受的答案。非常感谢! - Slava Medvediev
需要注意的是,如果您将EasyLocalization小部件包装在MaterialApp小部件周围,则还需要使用Builder小部件将MaterialApp进行包装,以便上下文正确地更新为易于本地化数据。 - Christian X

5

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

并在您的MaterialApp中添加:

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

1
我在查看此错误时找到了一个解决方案: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个关键字和它们的翻译。谢谢。 - Kamlesh
你上面提出的解决方案有效。我之前尝试使用 Locale('en_US'),因为我在旧项目中使用过它,但可能是这个包的新版本只支持 Locale('en')。谢谢你啊。 - Kamlesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接