Skip to content

Instantly share code, notes, and snippets.

@rohan20
Last active September 3, 2018 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rohan20/2a0cb955ca4ed84b62997aee0e0bbece to your computer and use it in GitHub Desktop.
Save rohan20/2a0cb955ca4ed84b62997aee0e0bbece to your computer and use it in GitHub Desktop.
flutter-localizations
import 'package:your_app_package/application.dart';
import 'package:your_app_package/services/localization/app_translations.dart';
import 'package:flutter/material.dart';
class LanguageSelectorPage extends StatefulWidget {
@override
_LanguageSelectorPageState createState() => _LanguageSelectorPageState();
}
class _LanguageSelectorPageState extends State<LanguageSelectorPage> {
//languagesList also moved to the Application class just like the languageCodesList
static final List<String> languagesList = application.supportedLanguages;
static final List<String> languageCodesList =
application.supportedLanguagesCodes;
final Map<dynamic, dynamic> languagesMap = {
languagesList[0]: languageCodesList[0],
languagesList[1]: languageCodesList[1],
};
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
"Select language",
),
),
body: _buildLanguagesList(),
);
}
_buildLanguagesList() {
return ListView.builder(
itemCount: languagesList.length,
itemBuilder: (context, index) {
return _buildLanguageItem(languagesList[index]);
},
);
}
_buildLanguageItem(String language) {
return InkWell(
onTap: () {
print(language);
application.onLocaleChanged(Locale(languagesMap[language]));
},
child: Center(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 20.0),
child: Text(
language,
style: TextStyle(
fontSize: 24.0,
),
),
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment