Skip to content

Instantly share code, notes, and snippets.

@rohan20
Last active September 3, 2018 13:51
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/01e8c1a8dbc0a49326183ffe0eab0098 to your computer and use it in GitHub Desktop.
Save rohan20/01e8c1a8dbc0a49326183ffe0eab0098 to your computer and use it in GitHub Desktop.
flutter-localizations
import 'dart:async';
import 'dart:convert';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
class AppTranslations {
Locale locale;
static Map<dynamic, dynamic> _localisedValues;
AppTranslations(Locale locale) {
this.locale = locale;
_localisedValues = null;
}
static AppTranslations of(BuildContext context) {
return Localizations.of<AppTranslations>(context, AppTranslations);
}
static Future<AppTranslations> load(Locale locale) async {
AppTranslations appTranslations = AppTranslations(locale);
String jsonContent =
await rootBundle.loadString("assets/locale/localization_${locale.languageCode}.json");
_localisedValues = json.decode(jsonContent);
return appTranslations;
}
get currentLanguage => locale.languageCode;
String text(String key) {
return _localisedValues[key] ?? "$key not found";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment