用于翻译的i18n dart库将无法运行

时间:2016-03-21 23:11:19

标签: internationalization dart angular

您好我运行命令

pub run intl:extract_to_arb --output-dir=target/directory

但我收到此错误消息:

Package "intl" is not an immediate dependency.
Cannot run executables in transitive dependencies.

我关注此网站https://www.dartdocs.org/documentation/intl/0.11.9/index.html并使用api 1.15.1

还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

最后我有一个解决方案:

pub run intl:extract_to_arb --output-dir="/Volumes/Case Sensitive Part/Projects/MyProjectFolder/" web/dart/**/*.dart

这会生成一个文件intl_messages.arb(一个用于翻译的Json)。 从翻译器,您可以收到一些像这样的文件

  • intl_messages_fr.arb
  • intl_messages_de.arb
  • intl_messages_ {locale} .arb to generalize。

之后:

  pub run intl:generate_from_arb --generated-file-prefix=notneeded web/dart/**/*.dart  ./intl_messages_fr.arb ./intl_messages_de.arb ./intl_messages_{locale}.arb 

这会生成一个名为:" messages_all.dart"的类dart;和dart类名为" messages_messages_de.dart"," messages_messages_fr.dart"," messages_messages_ {locale} .dart"。

只留下一个问题。我从上一个命令generate_from_arb收到了一些信息:

在intl_messages_it中找不到@@ locale或_locale字段,假设' messages_it'基于文件名。 在intl_messages_de中找不到@@ locale或_locale字段,假设' messages_de'基于文件名。

我想把这个标签@@ locale(@@ it)放在翻译arb文件中。