Flutter使用easy_localization实现单按钮切换应用多语言
Flutter 单按钮多语言切换实现方案
你现有项目的easy_localization配置不需要做任何修改,只需要把原来的两个独立ElevatedButton替换为下面的单按钮组件即可,组件会自动读取当前应用的locale状态完成文本渲染和切换逻辑:
ElevatedButton( onPressed: () async { final isArabic = context.locale.languageCode == 'ar'; await context.setLocale( isArabic ? const Locale('en') : const Locale('ar') ); }, child: Text( context.locale.languageCode == 'ar' ? 'English' : 'عربي' ), )
实现说明
- 核心通过
context.locale(easy_localization提供的上下文扩展)直接获取当前应用的语言状态,不需要额外维护状态变量 - 逻辑完全匹配需求:当前为阿拉伯语环境时按钮显示
English,点击切换为英语;当前为英语环境时按钮显示عربي,点击切换为阿拉伯语 - 按钮放置在你现有
HomeScreen中即可正常生效,该位置的上下文已经处于EasyLocalization的子树范围内,能正确读取和修改全局locale配置
内容的提问来源于stack exchange,提问作者Mado
相关产品推荐
相关产品推荐

