load method
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);
});
}
}