formatBookName method
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(),
};
}