BASE: Switch From EasyLocalization To GetX Localization.
This commit is contained in:
@@ -1,20 +1,37 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import '../lang/app_en.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class LocalizationService extends Translations {
|
||||
// Default locale
|
||||
static const locale = Locale('en', 'US');
|
||||
static Map<String, Map<String, String>> _keys = {};
|
||||
|
||||
static final locales = [const Locale('en')];
|
||||
static const fallbackLocale = Locale('en', 'US');
|
||||
|
||||
static const supportedLocales = [
|
||||
Locale('en', 'US'),
|
||||
Locale('uz', 'UZ'),
|
||||
Locale('ru', 'RU'),
|
||||
];
|
||||
|
||||
// Keys and their translations
|
||||
// Translations are separated maps in `lang` file
|
||||
@override
|
||||
Map<String, Map<String, String>> get keys => {'en_US': enUS};
|
||||
Map<String, Map<String, String>> get keys => _keys;
|
||||
|
||||
// Gets locale from language, and updates the locale
|
||||
void changeLocale(String lang) {
|
||||
Get.updateLocale(Locale(lang));
|
||||
// Load JSONs before starting the app
|
||||
static Future<void> init() async {
|
||||
_keys = {
|
||||
"en_US": await _loadJson("assets/translations/en.json"),
|
||||
"uz_UZ": await _loadJson("assets/translations/uz.json"),
|
||||
"ru_RU": await _loadJson("assets/translations/ru.json"),
|
||||
};
|
||||
}
|
||||
|
||||
static Future<Map<String, String>> _loadJson(String path) async {
|
||||
final data = await rootBundle.loadString(path);
|
||||
return Map<String, String>.from(json.decode(data));
|
||||
}
|
||||
|
||||
static void changeLocale(Locale locale) {
|
||||
Get.updateLocale(locale);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user