我已经学会了扑扑。我使用intl构建了一个国际化的应用程序 依赖性(遵循this)
flutter packages pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/main.dart
生成了3个文件:
我需要先创建 intl_ {locale} .arb文件,然后再运行下一个命令。
下一个命令:
flutter包pub运行intl_translation:generate_from_arb \ --output-dir = lib / l10n-不使用延迟加载\ 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.
如何运行第二条没有消息的命令,因为我认为它们是意外消息?
答案 0 :(得分:1)
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 :(得分:0)
在提到的步骤1.和2.之间,应将新字符串复制到intl * .arb。
答案 2 :(得分:0)
您应该在每个文件中写入以下内容。然后flutter将自动识别语言。
{
"@@locale": "en",
"title": "Flutter Example App",
"@title": {
"type": "text",
"placeholders": {}
}
}