fetchTranslate method
شرح: جلب الترجمة Explanation: Fetch translation
Implementation
Future<void> fetchTranslate() async {
try {
Directory databasePath = await getApplicationDocumentsDirectory();
String path = radioValue.value == 5
? 'packages/quran_library/assets/en.json'
: join(databasePath.path, '${translationLangCode.value}.json');
isLoading.value = true;
String jsonString;
if (radioValue.value == 5) {
jsonString = await rootBundle
.loadString('packages/quran_library/assets/en.json');
} else {
if (await File(path).exists()) {
jsonString = await File(path).readAsString();
} else {
throw Exception('File not found');
}
}
Map<String, dynamic> showData = json.decode(jsonString);
translationList.value = (showData['translations'] as List)
.map((item) => TranslationModel.fromJson(item))
.toList();
} catch (e) {
log('Error loading translation file: $e', name: 'TafsirCtrl');
} finally {
isLoading.value = false;
}
update(['change_tafsir']);
}