在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", ...... }
保存后等插件自动运行,提示就不会出现了。