J'ai appris le flottement. J'ai créé une application internationalisée en utilisant l'intl dépendance (suivez ceci )
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 fichiers ont été générés:
Je dois créer un fichier intl_ {locale} .arb avant d'exécuter la commande suivante .
Commande suivante:
paquets flutter pub exécutent intl_translation: generate_from_arb \ --output-dir = lib / l10n --no-use-deferred-loading \ lib / main.dart lib / l10n / intl _ *. arb
Il renvoie toujours un message bien que le fichier correspondant (messages_en.dart) soit généré:
flutter packages pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/main.dart
Comment puis-je exécuter la 2ème commande sans le messages, parce que je pense que ce sont des messages inattendus?
3 Réponses :
Entre les étapes que vous avez mentionnées 1. et 2. vous devez copier les nouvelles chaînes dans intl * .arb.
Il n'y a qu'un fichier intl_messages.arb qui est généré après l'exécution de la 1ère commande. le contenu du fichier est déjà le même avec le code source des lignes directrices. Que voulez-vous dire ?
hmm, la création du fichier intl_ {locale} .arb est manquante. J'ai déjà mis à jour ma question. Comment puis-je exécuter le 2ème sans erreur comme: Aucun champ @@ locale ou _locale trouvé dans intl_en, en supposant 'en' basé sur le nom du fichier. Merci!!!
1.
flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading ****lib/DemoLocalizations.dart**** lib/l10n/intl_*.arb
doit être remplacé par:
flutter pub pub run intl_translation:extract_to_arb --output-dir=lib/l10n ****lib/DemoLocalizations.dart****
(où **** lib / DemoLocalizations.dart *** * devrait être mis à jour dans le fichier où vous avez créé ce fichier à partir des étapes que vous avez créées.
2.
vous aurez les chaînes générées. celles-ci doivent être copiées dans intl * .arb
3.
alors vous devriez exécuter:
flutter packages pub run intl_translation:generate_from_arb \ --output-dir=lib/l10n --no-use-deferred-loading \ lib/main.dart lib/l10n/intl_*.arb
ça ne marche pas. 1er: J'ai mis à jour: flutter pub pub run intl_translation: extract_to_arb --output-dir = lib / l10n lib / main_internationalization.dart --- il n'y a qu'un fichier généré (intl_messages.arb) 2ème commande non exécutée: flutter pub pub run intl_translation: generate_from_arb --output-dir = lib / l10n --no-use-deferred-loading lib / main_internationalization.dart lib / l10n / intl _ *. arb retourne erreur: pastebin.com/90snxBhc
bro, je pense que c'est simplement un message de réponse bcz j'ai téléchargé + exécuté les commandes avec le code source de la directive ( flutter.dev/docs/development/accessibility-and-localization /… ). Il a renvoyé les mêmes messages.
Vous devez écrire dans chaque fichier ce qui suit. Ensuite, flutter identifiera automatiquement la langue.
{
"@@locale": "en",
"title": "Flutter Example App",
"@title": {
"type": "text",
"placeholders": {}
}
}
avez-vous mentionné supportedLocales? supportedLocales: [const Locale ('en', 'US'), // English const Locale ('he', 'IL'), // Hebrew // ... autres paramètres régionaux pris en charge par l'application],
oui, je les ai mentionnés dans main.dart. peut-être que ce ne sont pas des messages d'erreur
vous devez obtenir un ensemble de fichiers similaires à ceux-ci (en + es dans ce cas): intl_es.arb intl_en.arb intl_messages.arb messages_all.dart messages_es.dart messages_en.dart messages_messages.dart
oui, déjà. J'ai les fichiers, mais je vois toujours le message No @@ locale ou _locale field found in intl_messages, en supposant des «messages» basés sur le nom du fichier. c'est ma question maintenant.