I18nPlus
I18nPlus est un package de internationalisation avancé pour les applications Flutter. Il offre une solution simple et flexible pour gérer les traductions, le formatage des dates et des devises, ainsi que la pluralisation dans vos applications Flutter.
Fonctionnalités
- Gestion facile des traductions avec support pour les clés imbriquées
- Pluralisation
- Formatage des dates
- Formatage des devises
- Changement dynamique de langue
- Support pour les arguments dans les traductions
Installation
Ajoutez I18nPlus à votre fichier pubspec.yaml :
dependencies:
flutter_i18n_plus: ^1.0.0
Ensuite, exécutez :
flutter pub get
Configuration
- Créez un dossier
assets/translations/dans votre projet. - Ajoutez vos fichiers de traduction JSON dans ce dossier (par exemple,
en.json,fr.json). - Mettez à jour votre
pubspec.yamlpour inclure les assets :
flutter:
assets:
- assets/translations/
Utilisation
Initialisation
Enveloppez votre MaterialApp (ou CupertinoApp) avec I18nPlusProvider :
void main() {
runApp(
I18nPlusProvider(
supportedLocales: [Locale('en', 'US'), Locale('fr', 'FR')],
defaultLocale: Locale('en', 'US'),
translationsPath: 'assets/translations',
child: MyApp(),
),
);
}
Traductions simples
Utilisez l'extension t sur BuildContext pour accéder aux traductions :
Text(context.t('greeting'))
Traductions avec arguments
Text(context.t('welcome', args: {'name': 'John'}))
Pluralisation
Utilisez l'extension p sur BuildContext pour la pluralisation :
Text(context.p('items', itemCount, args: {'count': itemCount.toString()}))
Formatage de date
Text(I18nPlus().formatDate(DateTime.now()))
Formatage de devise
Text(I18nPlus().formatCurrency(1234.56))
Changement de langue
ElevatedButton(
onPressed: () {
final newLocale = I18nPlus().currentLocale.languageCode == 'en'
? Locale('fr', 'FR')
: Locale('en', 'US');
I18nPlusProvider.of(context).setLocale(newLocale);
},
child: Text('Changer de langue'),
)
Exemple de fichier de traduction
en.json:
{
"greeting": "Hello",
"welcome": "Welcome, {name}!",
"items": {
"one": "{count} item",
"other": "{count} items"
}
}
Contributeurs
Nous remercions chaleureusement tous nos contributeurs qui ont aidé à faire de I18nPlus ce qu'il est aujourd'hui !
Un grand merci va à ces merveilleux contributeurs (😍✌🏿):
Dogbo Ezechiel |
mohamed sangare |
Gael Yad Eugene SASSAN |
Ce projet suit la spécification all-contributors. Les contributions de toute nature sont les bienvenues !
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request sur GitHub.
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.