load method

Future load({
  1. bool isAPI = false,
})

Implementation

Future load({bool isAPI = false}) async {
  if (isAPI) {
    // Load the JSON file based on the locale
    // Map<String, dynamic> jsonMap =
    //     _locale.languageCode == "en" ? english : khmer;

    // // Convert the JSON map values to string
    // _localizedStrings = jsonMap.map((key, value) {
    //   return MapEntry(key, value as String);
    // });
    final dio = Dio();
    dio.options = BaseOptions(
      receiveTimeout: const Duration(
        seconds: Constants.defaultSubmitTimeout,
      ),
      connectTimeout: const Duration(
        seconds: Constants.defaultSubmitTimeout,
      ),
      followRedirects: true,
    );
    try {
      final response = await dio.get(
          "${ApiConstant.posBFF}6dapps/configs/dealer-language-sdk.json");
      ConditionalLogs().customLog("${response.data}");
      Map<String, dynamic> data = response.data;
      // Convert the JSON map values to string
      if (response.data != null) {
        Map<String, dynamic> selectedEn =
            _locale.languageCode == "en" ? data["en_US"] : data["km_KH"];
        _localizedStrings = selectedEn.map((key, value) {
          return MapEntry(key, value as String);
        });
        data.forEach((key, value) {
          String encodeData = json.encode(value);
          ConditionalLogs().customLog(key);
          storage.write(key, encodeData);
        });
      }
    } catch (e) {
      Map<String, dynamic> jsonMap =
          _locale.languageCode == "en" ? english : khmer;

      _localizedStrings = jsonMap.map((key, value) {
        return MapEntry(key, value as String);
      });
      String encodeData = json.encode(english);
      String encodeDataKhmer = json.encode(khmer);
      storage.write("en_US", encodeData);
      storage.write("km_KH", encodeDataKhmer);
      ConditionalLogs()
          .customLog("error in dealer-language-sdk.json file reading $e");
    }
  } else {
    Map<String, String> data = {};
    Map<String, String> dataKH = {};
    String? encodedString = storage.read("en_US");
    String? encodedStringKH = storage.read("km_KH");
    if (encodedString != null) {
      data = Map<String, String>.from(json.decode(encodedString));
    }
    if (encodedStringKH != null) {
      dataKH = Map<String, String>.from(json.decode(encodedStringKH));
    }
    Map<String, String> selectedEn =
        _locale.languageCode == "en" ? data : dataKH;
    _localizedStrings = selectedEn.map((key, value) {
      return MapEntry(key, value);
    });
  }
}