您好,我正在try 在Flatter应用程序中添加BottomNavigationBar,但运行项目时出现错误:

A MaterialLocalizations delegate that supports the ka_GE locale was not found

这是我的应用程序代理:

  supportedLocales: [
    const Locale('en', 'US'),
    const Locale('ka', 'GE'),
    const Locale('ru', 'RU'),
  ],
  localizationsDelegates: [
    const InfosLocalizationsDelegate(),
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate
  ],
  locale: Locale('ka')

这是自定义本地化委派:

class CLocalizationsDelegate
    extends LocalizationsDelegate<CLocalizations> {
  const CLocalizationsDelegate();

  @override
  bool isSupported(Locale locale) =>
      ['en', 'ka', 'ru'].contains(locale.languageCode);

  @override
  Future<CLocalizations> load(Locale locale) async {
    CLocalizations localizations = new CLocalizations(locale);
    await localizations.load();
    print("Load ${locale.languageCode}");
    return localizations;
  }

  @override
  bool shouldReload(CLocalizationsDelegate old) => false;
}

是的,我知道问题是‘ka’,因为MaterialLocalations不支持它,但我必须解决这个问题,所以伙计们,你们能帮我吗?

推荐答案

您可以实现自定义的MaterialLocalizations个委派

class MaterialLocalizationKaDelegate extends LocalizationsDelegate<MaterialLocalizations> {
  @override
  bool isSupported(Locale locale) {
    return locale.countryCode == "GE" && locale.languageCode == "ka";
  }

  @override
  Future<MaterialLocalizations> load(Locale locale) async {
    return MaterialLocalizationKa();
  }

  @override
  bool shouldReload(Foo old) {
    return false;
  }
}

class MaterialLocalizationKa extends MaterialLocalizations {
  // TODO: implement KA localization yourself
}

Dart相关问答推荐

Dart中的运算符(){…}做什么?

Futures 和异步代码如何在 Dart 中工作?

如何在flutter中加载数据之前显示进度对话框?

什么用例有 FirebaseUser 的 reload() 功能?

如何在 Dart 中设置文本框的值?

'T'、'f'、'E'、'e'、'→' 在 dart/flutter 文档中代表什么?

如何在 Flutter 中找出 URL 的有效性?

如何在 Flutter 包/插件开发中添加assets?

如何在Flutter应用程序中使用套接字?

Flutter列表视图底部溢出

如何在 Flutter 中匹配密码和确认密码?

无法使用 Flutter 调用 Localhost,将随机端口分配给 HTTP GET 调用

Flutter DataTable - 点击行

用 Dart 模式替换静态继承

如何在 Dart 中以正确的方式重定向和重新加载?

Dart 中的函数重载

如何停止 Dart 的 .forEach()?

Dart 中的函数类型定义(typedefs)/函数类型别名(function-type aliases)是什么?

如何删除dart列表中的重复项? list.distinct()?

列出dart中双点(.)的使用?