Как изменить основной файл локализации во Flutter intl
Изначально основным файлом локализации является intl_en.arb Как и где поменять основной файл локализации на другой, например intl_ru.arb
1 ответ
можете добавить
languageCode
на
locale
MaterialApp(
.
.
.
locale : Locale.fromSubtags(languageCode: 'ru')
);
полный пример:
String lang = '';
_getLang() async {
try {
String data = await getLang();
setState(() {
lang = data;
});
} catch (e) {
print(e);
}
}
@override
void initState() {
super.initState();
_getLang();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
onGenerateRoute: RouteGenerator.generateRoute,
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
locale: lang == 'English'
? Locale.fromSubtags(languageCode: 'en')
: Locale.fromSubtags(languageCode: 'ru'),
);
}
Future<String> getLang() async {
Future<SharedPreferences> _langPrefs = SharedPreferences.getInstance();
SharedPreferences prefs = await _langPrefs;
var lang = prefs.getString("lang");
if (lang == null) {
return null;
}
return lang;
}