Language Customisation
Below is the file structure to reach the file for adding or removing language.
├── docs └── FlutKit │ ├── android │ ├── assets └── images └── lang // Add any language json file here ├── ar.json ├── en.json ├── fr.json ... │ ├── ios │ ├── lib │ └── apps │ └── extensions │ └── homes │ └── localizations │ ├── app_localization_delegate.dart // Add this file for localization │ ├── language.dart // Add any language here │ ├── translator.dart
Modify Language
Add or Remove Language
class Language { ... static List<Language> languages = [ Language(Locale('en'), "English"), Language(Locale('hi'), "Hindi"), Language(Locale('ar'), "Arabic", true,), Language(Locale('fr'), "French"), Language(Locale('zh'), "Chinese"), ... // Add or remove any language here ]; }
For more changes, have a look at the file - 'lib/localizations/language.dart'
Language File
Modify Language file
Add this type of new json file in the above given file structure to use your newly added language.
{ "dark_mode" : "Mode sombre", "language" : "Langue", "light_mode": "Mode lumière", "settings": "Paramètres", "left_to_right": "De gauche à droite", "right_to_left": "De droite à gauche", "changelog" : "Journal des modifications", "documentation": "La documentation", "buy_now": "ACHETER MAINTENANT" }
This file contains map of string with different languages.
Any changes in this file modifies at all the places in the app when language is changed.
For more changes, have a look at the file - 'assets/lang/fr.json'
How to Translate
Using Translator
import 'package:flutter/material.dart'; import 'package:flutkit/localizations/translator.dart'; // Important to use translator Widget getTitle(){ return Text(Translator.translate('title')); // Translation using translate function }
Using Translator Extension (Created by FlutKit)
import 'package:flutter/material.dart'; import 'package:flutkit/extensions/string.dart'; // Important to use extension Widget getTitle(){ return Text('title'.tr()); // Translation using extension }
Localization
If you want to use localization directly in your app, you need to add following things in your Material App.
builder: (context, child) { return Directionality( textDirection: AppTheme.textDirection, child: child!, ); }, localizationsDelegates: [ AppLocalizationsDelegate(context), // Add this line and this file can be reached from the file structure above. GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: Language.getLocales()
For more changes, have a look at the file - 'lib/main.dart'