1
votes

Internationalisation Fluter avec intl

J'ai appris le flottement. J'ai créé une application internationalisée en utilisant l'intl dépendance (suivez ceci )

  1. J'ai bien exécuté la première commande (pas de message d'erreur):
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:

entrez la description de l'image ici

  1. Je dois créer un fichier intl_ {locale} .arb avant d'exécuter la commande suivante .

  2. 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?


4 commentaires

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.


3 Réponses :


0
votes

Entre les étapes que vous avez mentionnées 1. et 2. vous devez copier les nouvelles chaînes dans intl * .arb.


2 commentaires

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!!!



2
votes

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


2 commentaires

ç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.



6
votes

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": {}
  }
}


0 commentaires