轻松本地化:未找到本地化密钥 [...]

ava*_*fab 8 localization android-studio flutter

我在带有 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),
  ));
}

Run Code Online (Sandbox Code Playgroud)

小智 7

未设置材料应用程序也可能发生此错误;我的意思是,由于忘记将这些行添加到我的材料应用程序中,我遇到了同样的错误;

MaterialApp(
    locale: context.locale,
    supportedLocales: context.supportedLocales,
    localizationsDelegates: context.localizationDelegates,
  ),
Run Code Online (Sandbox Code Playgroud)

我的问题解决了!

  • 这应该是一个可以接受的答案。多谢! (3认同)

Art*_*tur 5

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

并添加到您的 MaterialApp 中:

locale: context.locale,
supportedLocales: context.supportedLocales,
localizationsDelegates: context.localizationDelegates,
Run Code Online (Sandbox Code Playgroud)


ava*_*fab 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

Run Code Online (Sandbox Code Playgroud)

然后我做了一个

flutter pub upgrade
Run Code Online (Sandbox Code Playgroud)

并将代码更改为这样

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

Run Code Online (Sandbox Code Playgroud)

有效。