detectTranslationLanguages function

List<String> detectTranslationLanguages(
  1. Directory projectDirectory
)

Implementation

List<String> detectTranslationLanguages(Directory projectDirectory) {
  final manifestLanguages = readFlkitManifestLanguages(projectDirectory);
  if (manifestLanguages.isNotEmpty) return manifestLanguages;

  final libDirectory = Directory(p.join(projectDirectory.path, 'lib'));
  if (!libDirectory.existsSync()) return const [];

  final languages = <String>{};

  for (final file in libDirectory.listSync(recursive: true)) {
    if (file is! File) continue;

    final match = translationLocalePattern.firstMatch(p.basename(file.path));
    if (match != null) {
      languages.add(match.group(1)!);
    }
  }

  return languages.toList()..sort();
}