当我运行takefocus
时,生成器会跳过仅包含字符串的所有Intl.message文件,并进行打印:
False
doc for the internationalization package说flutter pub pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/localizations.dart
,但在我看来,在这种情况下,我的消息没有参数!
我误解了Dart开发人员的参数含义吗?
答案 0 :(得分:1)
将其从构造函数中移出到单独的函数中。您可以从构造函数中调用该函数,但在函数中它必须仅是一条消息。
原因是支持带有参数的消息。至少在概念上,翻译是作为单独的函数生成的。所以我们有
foo(String name) => Intl.message('Hello $name', name: 'foo', args: [name]);
在某个地方的递归库fr_FR中
foo(String name) => 'Bonjour $name'
并且Intl.message的实现在概念上是
currentLanguage.lookup('foo').call(args)
所以在一个函数中只能有一条消息,因为我们将用其他东西替换该函数。它不能是构造函数,因为我们不能仅仅委托给它。