Que fait flutter-localizing-apps ?
Configure une application Flutter pour prendre en charge plusieurs langues et régions. À utiliser lors de la préparation d'une application pour les marchés internationaux et les paramètres régionaux diversifiés.
Pourquoi utiliser ce skill ?
- Portée mondiale : Atteignez des utilisateurs de différentes langues et régions.
- Expérience utilisateur : Fournissez des traductions et des formats (dates, devises) adaptés au paramètre régional de chaque utilisateur.
- Maintenabilité : Structurez vos traductions dans des fichiers ARB standardisés, faciles à gérer et à mettre à jour.
Comment ça fonctionne
- Ajout de dépendances : Le skill ajoute
flutter_localizations(de la SDK Flutter) et optionnellementintlau fichierpubspec.yaml. - Configuration régionale : Modifie la méthode
buildduMaterialApppour inclurelocalizationsDelegatesetsupportedLocales. - Fichiers de traduction : Crée un dossier
lib/l10navec des fichiers ARB (par exempleapp_en.arb,app_fr.arb). - Génération de code : Utilise le générateur de localisation de Flutter (
flutter gen-l10n) pour créer des classes Dart typées à partir des fichiers ARB.
Exemple d'utilisation
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'generated/l10n.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
// ...
);
}
}
Fichier ARB d'exemple (lib/l10n/app_fr.arb)
{
"@@locale": "fr",
"title": "Bienvenue",
"message": "Bonjour le monde !"
}
Utilisation dans l'interface utilisateur
text: S.of(context).title,
Commandes
flutter gen-l10n: Génère les classes Dart de localisation.- Ajoutez
--arb-dir=lib/l10nsi vos fichiers ARB sont dans un dossier personnalisé.
Ressources
Dépannage
- Traductions non chargées : Vérifiez que
localizationsDelegatesetsupportedLocalessont correctement configurés dansMaterialApp. - Clé manquante : Assurez-vous que toutes les clés utilisées dans le code sont définies dans chaque fichier ARB.