loadARBFolder function

Future<ARBLanguageInfo> loadARBFolder(
  1. String path, {
  2. required String configurationFile,
})

Implementation

Future<ARBLanguageInfo> loadARBFolder(String path,
    {required String configurationFile}) async {
  final configPath = p.join(path, configurationFile);
  final configuration = await File(configPath).readAsString();
  final configJSON = jsonDecode(configuration);

  final languagesJSON = <String, Map<String, dynamic>>{};

  await for (final file in Directory(path).list()) {
    if (p.extension(file.path) != '.arb') continue;
    final fileName = p.basenameWithoutExtension(file.path);
    final localeSeparatorIndex = fileName.indexOf('_');
    // we gonna ignore any arb files which does not have a locale suffix
    if (localeSeparatorIndex == -1) continue;

    final locale = await File(file.path).readAsString();
    final localeJSON = jsonDecode(locale);
    final localeName = fileName.substring(localeSeparatorIndex + 1);
    languagesJSON[localeName] = localeJSON;
  }

  return _getInfoFromContent(configJSON, languagesJSON);
}