Flutter使用easy_localization切换中文无效问题排查
问题排查与解决
大概率是语言/国家代码配置和翻译文件命名不匹配导致的,按以下步骤排查:
1. 修正Locale构造方式
Locale的构造参数是(语言代码, 国家代码),你当前写的Locale('zh-CN', 'CN')是错误的,正确写法应该是:
// main.dart 中 supportedLocales 配置 supportedLocales: [ Locale('en', 'US'), Locale('zh', 'CN'), // 语言代码为zh,国家代码为CN ],
2. 匹配翻译文件命名
easy_localization默认要求翻译文件命名格式为{languageCode}-{countryCode}.json,所以你的中文翻译文件名必须是zh-CN.json(和上面的Locale参数对应),确保文件放在assets/translations/目录下。
3. 检查切换语言的代码
切换语言时必须使用正确的Locale实例,比如:
// 切换到中文 context.setLocale(Locale('zh', 'CN'));
4. 验证资源配置
确保pubspec.yaml中正确声明了翻译资源:
flutter: assets: - assets/translations/
配置完成后执行flutter pub get刷新资源。
额外验证
如果以上步骤都正确,建议重启应用(热重载可能不生效),或者清除应用缓存后再测试。
内容的提问来源于stack exchange,提问作者Hoo
相关产品推荐
相关产品推荐

