你好,我正在尝试在flutter应用程序中添加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')
这是Custom LocalizationsDelegate:
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',因为MaterialLocalizations不支持它,但是我必须解决该问题,所以伙计们可以帮我吗?
答案 0 :(得分:1)
您可以实现自定义的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
}