getLanguageList static method

Future<List<Map<String, String>>> getLanguageList({
  1. String langPath = 'lang',
})

Get language list

Implementation

static Future<List<Map<String, String>>> getLanguageList(
    {String langPath = 'lang'}) async {
  List<Map<String, String>> list = [];
  try {
    final assetManifest = await AssetManifest.loadFromAssetBundle(rootBundle);
    final assets = assetManifest.listAssets();
    List<String> langFiles =
        assets.where((String key) => key.startsWith("lang/")).toList();

    for (var langFile in langFiles) {
      if (".DS_Store" == langFile) continue;
      RegExp regex = RegExp(langPath + r'/(.*).json');
      Match? match = regex.firstMatch(langFile);

      if (match == null) continue;

      String? extractedString = match.group(1);
      if (extractedString == null) continue;

      Map<String, String>? langData = getLanguageData(extractedString);
      if (langData == null) continue;

      list.add(langData);
    }
  } on Exception catch (e) {
    NyLogger.debug(e.toString());
  }
  return list;
}