Flutter使用EasyLocalization如何配置依赖包中的翻译文件路径
解决方案
你遇到的问题核心是引用第三方包内资源的路径配置错误,按以下步骤修改即可:
- 第一步:修正
EasyLocalization的path参数
你当前的翻译文件存放在jarvis_ui依赖包中,Flutter引用第三方包内资源的固定格式为packages/[包名]/[资源在包内的完整路径],所以把配置中的path改为:
path: 'packages/jarvis_ui/assets/languages',
修改后的EasyLocalization初始化代码示例:
EasyLocalization( supportedLocales: <Locale>[ Locale('es', 'CL'), Locale('es', 'CO'), Locale('es', 'PE'), ], fallbackLocale: Locale('es', 'CL'), // 替换为正确的包名路径 path: 'packages/jarvis_ui/assets/languages', assetLoader: RootBundleAssetLoader(), child: // 保留原有逻辑即可 )
- 第二步:确认翻译文件命名规范
检查jarvis_ui包中assets/languages目录下的翻译文件命名要和你声明的locale完全匹配,比如es-CL.json、es-CO.json、es-PE.json,命名不一致也会导致加载失败。 - 第三步:清除缓存重新编译
修改配置后执行以下命令清除缓存,避免旧的打包缓存影响结果:
flutter clean flutter pub get
然后重新运行项目即可正常加载跨包的翻译资源。
额外注意:主项目不需要在自己的pubspec.yaml中重复声明
jarvis_ui包内的翻译资源,只要主项目已经正确依赖jarvis_ui包即可。
内容的提问来源于stack exchange,提问作者jaimeduque17
相关产品推荐
相关产品推荐

