最後我有一個解決辦法:
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_ {}現場向.arb概括。
在此之後:
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」 和飛鏢類名爲 「messages_messages_de.dart」, 「messages_messages_fr.dart」,「messages_messages_ {}的語言環境。鏢」。
只剩下一個問題。我從last命令generate_from_arb收到一些信息:
在intl_messages_it中找不到@@ locale或_locale字段,假定基於文件名的'messages_it'。 在intl_messages_de中找不到@@ locale或_locale字段,假定基於文件名的'messages_de'。
我應該把這個標籤@@ locale(@@ it)放在翻譯arb文件中。
錯誤消息表明您沒有在'pubspec.yaml'中將'intl'添加到您的依賴項中。你是否? –
好的。它解決了我的問題。但輸出文件必須在啓動此命令之前創建?我拿這個:FileSystemException:無法打開文件,路徑='--output-dir = /卷/大小寫敏感部分/項目/ text.dart'(操作系統錯誤:沒有這樣文件或目錄,errno = 2) –
它是否只存在不存在的文件「text.dart」,或者是否存在/ Volumes/Case Sensitive Part/Projects /目錄?我還沒有使用過消息提取。嘗試一個相對目錄而不是絕對的目錄。我假設輸出應該在同一個項目中創建?如果路徑包含空格,則還需要將路徑換成引號。 –