41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
part of lib_trans;
|
|
|
|
class TranslationLoader {
|
|
|
|
static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh';
|
|
static bool get isEn => Get.locale?.languageCode.toLowerCase() == 'en';
|
|
|
|
static Map<String,String>
|
|
_zhMap = {},
|
|
_enMap = {},
|
|
_keyMap = {};
|
|
|
|
static Map<String,String> get zhDic => _zhMap;
|
|
static Map<String,String> get enDic => _enMap;
|
|
|
|
static LanKeyEntity? _lanKeyEntity;
|
|
static LanKeyEntity? get lanKeys => _lanKeyEntity;
|
|
|
|
static Future loadTranslation({
|
|
String? zhSource,
|
|
String? enSource,
|
|
String? keySource,}) async {
|
|
_zhMap = await _loadJsonFile(zhSource!);
|
|
_enMap = await _loadJsonFile(enSource!);
|
|
_keyMap = await _loadJsonFile(keySource!);
|
|
_lanKeyEntity = LanKeyEntity.fromJson(_keyMap);
|
|
}
|
|
|
|
static Future<Map<String,String>> _loadJsonFile(String filePath) async => rootBundle.loadString(filePath).then((jsonString){
|
|
Map<String,dynamic> enJson = jsonDecode(jsonString);
|
|
Map<String,String> map = {};
|
|
enJson.forEach((key, value) {
|
|
map[key] = value.toString();
|
|
});
|
|
return map;
|
|
}).onError((error, stackTrace){
|
|
return Future.value({});
|
|
});
|
|
|
|
}
|