language_config_manager.dart 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import 'dart:convert';
  2. import 'dart:ui';
  3. import 'package:fis_common/index.dart';
  4. import 'package:fis_common/logger/logger.dart';
  5. import 'package:fis_jsonrpc/rpc.dart';
  6. import 'package:fis_ui/index.dart';
  7. import 'package:flutter/material.dart';
  8. import 'package:flutter/services.dart';
  9. import 'package:get/get.dart';
  10. import 'interfaces/base_manager.dart';
  11. import 'interfaces/language.dart';
  12. class LanguageConfigManager extends BaseManager
  13. implements ILanguageConfigManager {
  14. /// 中文
  15. static const Locale CHINESE_LOCALE = const Locale("zh", "CN");
  16. /// 英文
  17. static const Locale ENGLISH_LOCALE = const Locale("en", "US");
  18. List<dynamic> _cache = [];
  19. /// 检查翻译
  20. /// [code] 翻译key
  21. @override
  22. String getExamLanguageValue(String code) {
  23. try {
  24. // var value = languageService.findLanguageValueByCode('exam', code);
  25. // return value;
  26. } catch (e) {
  27. print(e);
  28. }
  29. return code;
  30. }
  31. /// 诊断相关翻译
  32. /// [code] 翻译key
  33. @override
  34. String getConsultationLanguageValue(String code) {
  35. try {
  36. // var value = languageService.findLanguageValueByCode('consultation', code);
  37. // return value;
  38. } catch (e) {
  39. print(e);
  40. }
  41. return code;
  42. }
  43. /// 器官部位相关翻译
  44. /// [code] 翻译key
  45. @override
  46. String getApplicationLanguageValue(String code) {
  47. try {
  48. // var value = languageService.findLanguageValueByCode('application', code);
  49. // return value;
  50. } catch (e) {
  51. print(e);
  52. }
  53. return code;
  54. }
  55. @override
  56. Future<bool> swithLanguageByCode(String languageCode) async {
  57. Locale locale;
  58. bool result = false;
  59. return result;
  60. }
  61. Future<void> initCache() async {
  62. if (_cache.isNotEmpty) {
  63. return;
  64. }
  65. final json =
  66. await rootBundle.loadString("assets/data/measure_language.json");
  67. _cache = jsonDecode(json);
  68. }
  69. /// 检查根据不同语言模块的父级Code获取集合
  70. ///
  71. /// [module] 当前模块
  72. /// [module] 翻译Code
  73. String findLanguageValueByCode(String module, String code) {
  74. try {
  75. String? examLanguage = _cache.firstWhere(
  76. (element) => element['LangugeModule'] == module)['Content'];
  77. if (examLanguage != null) {
  78. final String? children = jsonDecode(examLanguage)["Language"][code];
  79. return children ?? code;
  80. }
  81. return code;
  82. } catch (e) {
  83. return code;
  84. }
  85. }
  86. }