import 'dart:convert'; import 'dart:ui'; import 'package:fis_common/index.dart'; import 'package:fis_common/logger/logger.dart'; import 'package:fis_jsonrpc/rpc.dart'; import 'package:fis_ui/index.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'interfaces/base_manager.dart'; import 'interfaces/language.dart'; class LanguageConfigManager extends BaseManager implements ILanguageConfigManager { /// 中文 static const Locale CHINESE_LOCALE = const Locale("zh", "CN"); /// 英文 static const Locale ENGLISH_LOCALE = const Locale("en", "US"); List _cache = []; /// 检查翻译 /// [code] 翻译key @override String getExamLanguageValue(String code) { try { // var value = languageService.findLanguageValueByCode('exam', code); // return value; } catch (e) { print(e); } return code; } /// 诊断相关翻译 /// [code] 翻译key @override String getConsultationLanguageValue(String code) { try { // var value = languageService.findLanguageValueByCode('consultation', code); // return value; } catch (e) { print(e); } return code; } /// 器官部位相关翻译 /// [code] 翻译key @override String getApplicationLanguageValue(String code) { try { // var value = languageService.findLanguageValueByCode('application', code); // return value; } catch (e) { print(e); } return code; } @override Future swithLanguageByCode(String languageCode) async { Locale locale; bool result = false; return result; } Future initCache() async { if (_cache.isNotEmpty) { return; } final json = await rootBundle.loadString("assets/data/measure_language.json"); _cache = jsonDecode(json); } /// 检查根据不同语言模块的父级Code获取集合 /// /// [module] 当前模块 /// [module] 翻译Code String findLanguageValueByCode(String module, String code) { try { String? examLanguage = _cache.firstWhere( (element) => element['LangugeModule'] == module)['Content']; if (examLanguage != null) { final String? children = jsonDecode(examLanguage)["Language"][code]; return children ?? code; } return code; } catch (e) { return code; } } }