具有国际化的国际化颤动

时间:2019-04-03 11:12:09

标签: dart flutter intl

我已经学会了扑扑。我使用intl构建了一个国际化的应用程序 依赖性(遵循this

  1. 我很好地运行了第一个命令(没有错误消息):
flutter packages pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/main.dart

生成了3个文件:

enter image description here

  1. 我需要先创建 intl_ {locale} .arb文件,然后再运行下一个命令

  2. 下一个命令:

  

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.

如何运行第二条没有消息的命令,因为我认为它们是意外消息?

3 个答案:

答案 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": {}
  }
}