41 lines
1.3 KiB
Dart
Executable File
41 lines
1.3 KiB
Dart
Executable File
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 = <String, String>{},
|
|
_enMap = <String, String>{},
|
|
_keyMap = <String, String>{};
|
|
|
|
static Map<String,String> get zhDic => _zhMap;
|
|
static Map<String,String> get enDic => _enMap;
|
|
|
|
static LanKeyEntity? _lanKeyEntity;
|
|
static LanKeyEntity? get lanKeys => _lanKeyEntity;
|
|
|
|
static Future<void> 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((String jsonString){
|
|
final Map<String,dynamic> enJson = jsonDecode(jsonString);
|
|
final Map<String,String> map = <String, String>{};
|
|
enJson.forEach((String key,dynamic value) {
|
|
map[key] = value.toString();
|
|
});
|
|
return map;
|
|
}).onError((Object? error, StackTrace stackTrace){
|
|
return Future<Map<String,String>>.value(<String, String>{});
|
|
});
|
|
|
|
}
|