Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:应用';并非其所有本地化代理都支持s区域设置_Flutter_Dart_Localization_Internationalization - Fatal编程技术网

Flutter 颤振:应用';并非其所有本地化代理都支持s区域设置

Flutter 颤振:应用';并非其所有本地化代理都支持s区域设置,flutter,dart,localization,internationalization,Flutter,Dart,Localization,Internationalization,您好,我正在尝试在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',

您好,我正在尝试在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;
}
class CLocalizationsDelegate
扩展本地化数据包{
const CLocalizationsDelegate();
@凌驾
bool isSupported(区域设置)=>
['en','ka','ru'].contains(locale.languageCode);
@凌驾
未来加载(区域设置)异步{
CLocalizations localizations=新的CLocalizations(locale);
等待本地化。加载();
打印(“加载${locale.languageCode}”);
回归局部化;
}
@凌驾
bool应该重新加载(CLocalizationsDelegate old)=>false;
}

是的,我知道问题是“ka”,因为MaterialLocalizations不支持它,但我必须解决这个问题,所以各位可以帮我解决吗?

您可以实现自定义
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
}
class MaterialLocalizationKaDelegate扩展本地化Delegate{
@凌驾
bool isSupported(区域设置){
返回locale.countryCode==“GE”&&locale.languageCode==“ka”;
}
@凌驾
未来加载(区域设置)异步{
返回MaterialLocalizationKa();
}
@凌驾
bool应重新加载(Foo old){
返回false;
}
}
类MaterialLocalization扩展了MaterialLocalization{
//TODO:自己实现KA本地化
}

您必须为
ka