0

我有一个颤振项目,刚刚将其更新为 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 告诉我不要这样做(也许我找不到关于它的东西)。任何人都可以帮我解决它吗?关于文档的一些东西(如何找到这个?)。

4

1 回答 1

0

基本上,这意味着camelCase要使用这种命名约定,因此您需要坚持使用upCredit而不是UpCredit.

于 2021-08-31T12:06:44.233 回答