Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits: d5b100b8 by Claudio Cambra at 2026-03-29T12:47:17+02:00 macosx: Use existing convenience vlc_ngettext for plural form data type detail strings Signed-off-by: Claudio Cambra <[email protected]> - - - - - b65aab19 by Claudio Cambra at 2026-03-29T12:47:17+02:00 macosx: Also use vlc_ngettext in all audio groups media library item Signed-off-by: Claudio Cambra <[email protected]> - - - - - a41101a4 by Claudio Cambra at 2026-03-29T12:47:17+02:00 macosx: Simplify plural string creation with new _NPS macro Signed-off-by: Claudio Cambra <[email protected]> - - - - - 3 changed files: - modules/gui/macosx/extensions/NSString+Helpers.h - modules/gui/macosx/library/VLCLibraryDataTypes.m - modules/gui/macosx/library/audio-library/VLCLibraryAllAudioGroupsMediaLibraryItem.m Changes: ===================================== modules/gui/macosx/extensions/NSString+Helpers.h ===================================== @@ -35,6 +35,11 @@ */ #define _NS(s) NSTR(s) +/** + * Get a pluralized translation string + */ +#define _NPS(s, p, n) [NSString stringWithFormat:toNSStr(vlc_ngettext(s, p, n)), (n)] + /** * Get a contextualized translation string * ===================================== modules/gui/macosx/library/VLCLibraryDataTypes.m ===================================== @@ -524,19 +524,9 @@ static NSString *genreArrayDisplayString(NSArray<VLCMediaLibraryGenre *> * const - (NSString *)durationString { - NSString *countMetadataString; - if (_numberOfAlbums > 1) { - countMetadataString = [NSString stringWithFormat:_NS("%u albums"), _numberOfAlbums]; - } else { - countMetadataString = _NS("1 album"); - } - if (_numberOfTracks > 1) { - countMetadataString = [countMetadataString stringByAppendingFormat:@", %@", [NSString stringWithFormat:_NS("%u songs"), _numberOfTracks]]; - } else { - countMetadataString = [countMetadataString stringByAppendingFormat:@", %@", _NS("1 song")]; - } - - return countMetadataString; + NSString * const albumString = _NPS("%u album", "%u albums", _numberOfAlbums); + NSString * const songString = _NPS("%u song", "%u songs", _numberOfTracks); + return [NSString stringWithFormat:@"%@, %@", albumString, songString]; } - (NSString *)genreString @@ -766,11 +756,7 @@ static NSString *genreArrayDisplayString(NSArray<VLCMediaLibraryGenre *> * const - (NSString *)durationString { - if (_numberOfTracks > 1) { - return [NSString stringWithFormat:_NS("%u songs"), _numberOfTracks]; - } else { - return _NS("1 song"); - } + return _NPS("%u song", "%u songs", _numberOfTracks); } - (NSArray<VLCMediaLibraryAlbum *> *)albums @@ -1766,8 +1752,9 @@ static NSString *genreArrayDisplayString(NSArray<VLCMediaLibraryGenre *> * const self.smallArtworkMRL = p_show->psz_artwork_mrl ? toNSStr(p_show->psz_artwork_mrl) : @""; self.smallArtworkGenerated = self.smallArtworkMRL.length > 0; self.displayString = self.name; - self.primaryDetailString = - [NSString stringWithFormat:_NS("%u seasons, %u episodes"), _seasonCount, _episodeCount]; + NSString * const seasonString = _NPS("%u season", "%u seasons", _seasonCount); + NSString * const episodeString = _NPS("%u episode", "%u episodes", _episodeCount); + self.primaryDetailString = [NSString stringWithFormat:@"%@, %@", seasonString, episodeString]; self.secondaryDetailString = [NSString stringWithFormat:_NS("Released in %u"), _releaseYear]; self.durationString = self.secondaryDetailString; } @@ -1896,12 +1883,7 @@ static NSString *genreArrayDisplayString(NSArray<VLCMediaLibraryGenre *> * const withMediaItems:(NSArray<VLCMediaLibraryMediaItem *> *)mediaItems { - NSString *detailString; - if (mediaItems.count == 1) { - detailString = _NS("1 item"); - } else { - detailString = [NSString stringWithFormat:_NS("%lu items"), (unsigned long)mediaItems.count]; - } + NSString * const detailString = _NPS("%lu item", "%lu items", (unsigned long)mediaItems.count); self = [self initWithDisplayString:displayString withPrimaryDetailString:detailString ===================================== modules/gui/macosx/library/audio-library/VLCLibraryAllAudioGroupsMediaLibraryItem.m ===================================== @@ -55,9 +55,9 @@ _numberOfTracks = _mediaItems.count; const NSUInteger numberOfAlbums = libraryModel.numberOfAlbums; - NSString * const primaryDetailString = [NSString stringWithFormat:_NS("%li albums, %li songs"), - numberOfAlbums, - _numberOfTracks]; + NSString * const albumString = _NPS("%li album", "%li albums", numberOfAlbums); + NSString * const songString = _NPS("%li song", "%li songs", _numberOfTracks); + NSString * const primaryDetailString = [NSString stringWithFormat:@"%@, %@", albumString, songString]; return [super initWithDisplayString:displayString withPrimaryDetailString:primaryDetailString View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/42e66c82bd7e2180af846773ff6fcefcc41e2fd9...a41101a4965187e16a399251825564eea8a775b6 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/42e66c82bd7e2180af846773ff6fcefcc41e2fd9...a41101a4965187e16a399251825564eea8a775b6 You're receiving this email because of your account on code.videolan.org.
_______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
