我有一个颤振项目,刚刚将其更新为 nullsafety。而且我发现 intl_translation 插件不支持 nullsafety。所以我把它去掉,想用intl自带的flutter框架。
根据官方文档,我添加了 2 行:intl: ^0.17.0 #
,generate: true
并新建了一个名为l10n.yaml
.
l10n.yaml 的内容如下:
arb-dir: lib/l10n
template-arb-file: intl_en.arb
output-localization-file: lib/generated/intl/l10n.dart
然后我的文件树如下:
lib
├── data
│ ├── ......
├── generated
│ ├── intl
│ │ ├── messages_all.dart
│ │ ├── messages_en.dart
│ │ └── messages_zh.dart
│ └── l10n.dart
├── l10n
│ ├── intl_en.arb
│ └── intl_zh.arb
├── ......
├── ......
├── ui
│ ├── ......
└── utilities.dart
然后我flutter run
的项目。错误表明
Invalid ARB resource name "UPCredit" in LocalFile: '.../lib/l10n/intl_en.arb'.
Resources names must be valid Dart method names: they have to be camel case, cannot start with a number or underscore, and cannot contain non-alphanumeric characters.
Generating synthetic localizations package has failed.
错误位置在我intl_en.arb
的如下:
"UPxxt": "Uxxx Cxxxit",
"UPxit": "Unxxx Dxxxt",
"UPSxit": "Uxxx Sxxxed xxxit",
我的问题:NoBody 告诉我不要这样做(也许我找不到关于它的东西)。任何人都可以帮我解决它吗?关于文档的一些东西(如何找到这个?)。