app_translations.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import 'dart:async';
  2. import 'dart:convert';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/services.dart' show rootBundle;
  5. class AppTranslations {
  6. Locale locale;
  7. static Map<dynamic, dynamic>? _localisedValues;
  8. AppTranslations(this.locale);
  9. static AppTranslations? of(BuildContext context) {
  10. return Localizations.of<AppTranslations>(context, AppTranslations);
  11. }
  12. static Future<AppTranslations> load(Locale locale) async {
  13. late AppTranslations appTranslations = AppTranslations(locale);
  14. // String path = 'packages/general_package/assets/user_state.json';
  15. // String jobsString = await rootBundle.loadString(path);
  16. // List<dynamic> users = await jsonDecode(jobsString);
  17. String jsonContent = await rootBundle.loadString(
  18. "packages/general_package/assets/locale/localization_${locale.languageCode}.json");
  19. _localisedValues = json.decode(jsonContent);
  20. return appTranslations;
  21. }
  22. get currentLanguage => locale.languageCode;
  23. String text(String key) {
  24. if (_localisedValues != null) {
  25. return _localisedValues![key] ?? "$key not found";
  26. } else {
  27. return "";
  28. }
  29. }
  30. }