我学会了扑动。我使用intl依赖构建了一个国际化的应用程序(关注this)
flutter packages pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/main.dart
生成了3个文件:
flutter包pub run intl_translation:generate_from_arb \ --output-dir = lib / l10n --no-use -deferred-loading \ lib / main.dart lib / l10n / intl _ * .arb
尽管生成了相应的消息(messages_en.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_messages, assuming 'messages' based on the file name.
如何在没有消息的情况下运行第二个命令,因为我认为它们是意外的消息?
1.
flutter packages pub run intl_translation:generate_from_arb \ --output-dir=lib/l10n --no-use-deferred-loading \ lib/main.dart lib/l10n/intl_*.arb
应改为:
flutter pub pub run intl_translation:extract_to_arb --output-dir=lib/l10n ****lib/DemoLocalizations.dart****
(其中**** lib / DemoLocalizations.dart ****应该从您创建的步骤更新到您创建此文件的文件。
2.
你将生成字符串。这些需要复制到intl * .arb
3.
然后你应该运行:
flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading ****lib/DemoLocalizations.dart**** lib/l10n/intl_*.arb
在您提到的步骤1.和2.之间,您应该将新字符串复制到intl * .arb。