国际化 Flutter by intl

Mr *_*ial 3 intl dart flutter

我学会了颤振。我使用 intl 依赖构建了一个国际化的应用程序(按照这个

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

生成了3个文件:

在此处输入图片说明

  1. 我需要在运行下一个命令之前创建intl_{locale}.arb 文件

  2. 下一个命令:

颤振包 pub 运行 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.
Run Code Online (Sandbox Code Playgroud)

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

小智 8

您应该在每个文件中写入以下内容。然后flutter会自动识别语言。

{
  "@@locale": "en",
  "title": "Flutter Example App",
  "@title": {
    "type": "text",
    "placeholders": {}
  }
}
Run Code Online (Sandbox Code Playgroud)


Dur*_*rdu 0

在您提到的步骤 1. 和 2. 之间,您应该将新字符串复制到 intl*.arb。