解决使用flutter_intl出现警告No @@locale or _locale field found in intl_en

在Flutter应用中使用flutter_intl插件进行国际化时,遇到修改arb文件后出现提示信息的问题。解决方法是为arb文件添加@@locale字段,如在intl_en.arb中添加@@locale:en,表示该文件的语言环境为英文。完成此步骤后,提示将不再显示。

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

在Flutter中使用flutter_intl插件做国际化时,每次修改arb文件后,就会在Message窗口出现以下提示。对于强迫症患者非常难受,必须解决掉!

/Users/ado/Developer/develop_env/flutter_2.10.5/bin/flutter --no-color pub global run intl_utils:generate
INFO: No @@locale or _locale field found in intl_en, assuming 'en' based on the file name.
Process finished with exit code 0

解决方案

ARB介绍

首先我们需要了解arb文件是什么
ARB详细说明:https://github.com/google/app-resource-bundle

ARB全称Application Resource Bundle 是一种基于JSON的本地化格式文件。

根据Google的介绍,@@开头的字段属于Global attributes,必须加在arb文件json格式的最上面。
@@locale用于标记存储在当前arb文件中的字符串属于哪种语言环境。

添加@@locale

通过查看谷歌的说明,我们已经知道了只需要在Json的顶部加上一个字段即可。@@locale或者__locale都可以。推荐使用@@locale,更加符合标准。

值为对应的语言简称。因为我修改的是intl_en.arb文件,所以值为en。
如果是intl_zh.arb,那对应的值就是zh。

{
  "@@locale": "en",
  "appName": "Flutter App",
  ......
}

保存后等插件自动运行,提示就不会出现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值