formatBookName method

String formatBookName(
  1. BibleBookEnum book
)

Returns the localized display name for book.

Implementation

String formatBookName(BibleBookEnum book) {
  if (language != BibleLanguageEnum.auto && language.isParsingSupported) {
    final registry = switch (bookNameStyle) {
      ReferenceBookNameStyle.long => bookNamesByLanguage,
      ReferenceBookNameStyle.short => bookAbbreviationsByLanguage,
    };
    final terms = registry[language.code]?[book];
    if (terms != null) {
      final nonEmptyTerms = terms.where((term) => term.trim().isNotEmpty);
      if (bookNameStyle == ReferenceBookNameStyle.long) {
        if (nonEmptyTerms.isNotEmpty) return nonEmptyTerms.first;
      } else {
        String? shortest;
        for (final term in nonEmptyTerms) {
          if (shortest == null || term.length < shortest.length) {
            shortest = term;
          }
        }
        if (shortest != null) return shortest;
      }
    }
  }

  return switch (bookNameStyle) {
    ReferenceBookNameStyle.long => book.fullName,
    ReferenceBookNameStyle.short => book.asStr(),
  };
}