3
1

More than 5 years have passed since last update.

flutter l10n で No @@locale or _locale field found in intl_en, assuming 'en' based on the file name.

Last updated at Posted at 2018-05-23
flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/l10n/l10n.dart lib/l10n/intl_*.arb

上記コマンドでdartファイルのジェネレートをしようとしたところ、次のようなメッセージが出力された。

No @@locale or _locale field found in intl_en, assuming 'en' based on the file name.
No @@locale or _locale field found in intl_ja, assuming 'ja' based on the file name.
No @@locale or _locale field found in intl_messages, assuming 'messages' based on the file name.

コマンドの終了コードは0で、翻訳リソースの取得自体もできているので、特に問題なさそうだが気になって調べた。

どうやらarbファイルのフィールドに @@localeがないよってことで出力されているらしい。
@@localeフィールドを手動で追加(ja,en)することで表示されなくなった。

intl_messages.arb@@localeにはmessagesを指定したが、intl_messages.arbの生成のたびに消えてしまう。さらにしらべると --localeオプションが使えることがわかり、arbの生成コマンドは次のようにすることで、再生成しても@@localeがある状態になった。

flutter pub pub run intl_translation:extract_to_arb --locale=messages --output-dir=lib/l10n lib/l10n/l10n.dart

参考

https://github.com/dart-lang/intl/issues/133
https://github.com/dart-lang/intl_translation/pull/16

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1