2016-03-21 4 views
0

Hallo ich den Befehl ausführeni18n Dart Bibliothek für die Übersetzung läuft nicht

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

aber ich nehme diese Fehlermeldung:

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

i folgen dieser Website https://www.dartdocs.org/documentation/intl/0.11.9/index.html und ich verwende api 1.15.1

Es gibt eine andere Möglichkeit, das zu tun?

+1

Die Fehlermeldung besagt, dass Sie Ihre Abhängigkeiten in 'pubspec.yaml' nicht' intl' hinzugefügt haben. Hast du? –

+0

okay. es löst mein Problem. aber die Ausgabedatei muss vor dem Start dieses Befehls erstellt werden? Ich nehme dies: FileSystemException: Datei kann nicht geöffnet werden, path = '--output-dir =/Volumen/Case Sensitive Part/Projects/text.dart' (Betriebssystemfehler: Nein Datei oder Verzeichnis, errno = 2) –

+0

Ist nur die Datei 'text.dart' nicht vorhanden oder existiert auch das Verzeichnis'/Volumes/Case Sensitive Part/Projects /' nicht? Ich habe die Nachrichtenextraktion noch nicht selbst benutzt. Probieren Sie ein relatives Verzeichnis anstelle eines absoluten Verzeichnisses aus. Ich nehme an, die Ausgabe sollte im selben Projekt erstellt werden? Sie müssen den Pfad auch in Anführungszeichen setzen, wenn er ein Leerzeichen enthält. –

Antwort

0

Schließlich habe ich eine Lösung:

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

eine Datei intl_messages.arb Diese erzeugen (ein Json für den Übersetzer). Vom Übersetzer können Sie einige Datei wie diese

  • intl_messages_fr.arb
  • intl_messages_de.arb
  • intl_messages_ {locale} .arb zu verallgemeinern erhalten.

Danach:

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 

Diese erzeugen eine Klasse dart genannt: "messages_all.dart" und Dart-Klasse mit dem Namen "messages_messages_de.dart", "messages_messages_fr.dart", „messages_messages_ {locale}. Pfeil".

Nur ein Problem übrig. Ich erhalte einige Informationen vom letzten Befehl generate_from_arb:

Kein @@ locale oder _locale Feld gefunden in intl_messages_it, wobei "messages_it" basierend auf dem Dateinamen angenommen wird. Kein @@ locale- oder _locale-Feld in intl_messages_de gefunden, wobei "messages_de" basierend auf dem Dateinamen angenommen wird.

Ich, was ich sollte dieses Tag setzen @@ locale (@@ it) innerhalb der Übersetzung ARB-Dateien.

Verwandte Themen