No MaterialLocalizations found. AppBar widgets require MaterialLocalizations to be provided by a Loc

解决Flutter应用中因自定义多语言简写不匹配系统支持列表导致的NoMaterialLocalizationsFound错误。文章详细介绍了如何正确配置多语言文件,确保与fluttersdk系统多语言简写一致,避免本地化问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

No MaterialLocalizations found.

AppBar widgets require MaterialLocalizations to be provided by a Localizations widget ancestor.

错误很明显,抓住重点(红色的位置)。意思是什么呢?是说系统的本地化多语言找不到对应的多语言缩写。

如果你的应用刚好也是有多语言适配,那么问题就出在多语言简写的问题上。

找到flutter sdk系统对应的多语言简写文件:generated_material_localizations.dart,你会发现多语言简写的列表:

注意,不同sdk版本的这个多语言肯定是不一样的,因为sdk在不断完善中。新版本所支持的多语言要更丰富。

所以,系统既然只支持这么多明文的简写,那么我们如果自己命名的简写不符合这个列表,那么问题就产生了。

所以我们的*.arb文件(en.arb,zh.arb,nb.arb...)的命名要严格遵守这个规格。

 

举个例子,我自己的项目就是碰到这个问题,自己首先没有参考任何文档,将挪威语(Norwegian)对应简写成no.arb,或者nn.arb,结果查了1天,搞到晚上才明白这个问题出在系统多语言支持上。。。,后来改成nb.arb,问题解决

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值