handle i18n plurality references with context instead of direct key access (#1591)

This commit is contained in:
jeffvli
2026-01-24 17:20:11 -08:00
parent 26284e2412
commit c310ad65ef
+79 -79
View File
@@ -1,18 +1,18 @@
{ {
"action": { "action": {
"addToFavorites": "add to $t(entity.favorite_other)", "addToFavorites": "add to $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "add to $t(entity.playlist_one)", "addToPlaylist": "add to $t(entity.playlist, {\"count\": 1})",
"addOrRemoveFromSelection": "add or remove from selection", "addOrRemoveFromSelection": "add or remove from selection",
"selectRangeOfItems": "select a range of items", "selectRangeOfItems": "select a range of items",
"clearQueue": "clear queue", "clearQueue": "clear queue",
"createPlaylist": "create $t(entity.playlist_one)", "createPlaylist": "create $t(entity.playlist, {\"count\": 1})",
"createRadioStation": "create $t(entity.radioStation_one)", "createRadioStation": "create $t(entity.radioStation, {\"count\": 1})",
"deletePlaylist": "delete $t(entity.playlist_one)", "deletePlaylist": "delete $t(entity.playlist, {\"count\": 1})",
"deleteRadioStation": "delete $t(entity.radioStation_one)", "deleteRadioStation": "delete $t(entity.radioStation, {\"count\": 1})",
"selectAll": "select all", "selectAll": "select all",
"deselectAll": "deselect all", "deselectAll": "deselect all",
"downloadStarted": "started download of {{count}} items", "downloadStarted": "started download of {{count}} items",
"editPlaylist": "edit $t(entity.playlist_one)", "editPlaylist": "edit $t(entity.playlist, {\"count\": 1})",
"goToPage": "go to page", "goToPage": "go to page",
"moveToNext": "move to next", "moveToNext": "move to next",
"moveToBottom": "move to bottom", "moveToBottom": "move to bottom",
@@ -26,12 +26,12 @@
"shuffleAll": "shuffle all", "shuffleAll": "shuffle all",
"shuffleSelected": "shuffle selected", "shuffleSelected": "shuffle selected",
"refresh": "$t(common.refresh)", "refresh": "$t(common.refresh)",
"removeFromFavorites": "remove from $t(entity.favorite_other)", "removeFromFavorites": "remove from $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "remove from $t(entity.playlist_one)", "removeFromPlaylist": "remove from $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "remove from queue", "removeFromQueue": "remove from queue",
"setRating": "set rating", "setRating": "set rating",
"toggleSmartPlaylistEditor": "toggle $t(entity.smartPlaylist) editor", "toggleSmartPlaylistEditor": "toggle $t(entity.smartPlaylist) editor",
"viewPlaylists": "view $t(entity.playlist_other)", "viewPlaylists": "view $t(entity.playlist, {\"count\": 2})",
"viewMore": "view more", "viewMore": "view more",
"openApplicationDirectory": "open application directory", "openApplicationDirectory": "open application directory",
"openIn": { "openIn": {
@@ -69,7 +69,7 @@
"configure": "configure", "configure": "configure",
"confirm": "confirm", "confirm": "confirm",
"create": "create", "create": "create",
"currentSong": "current $t(entity.track_one)", "currentSong": "current $t(entity.track, {\"count\": 1})",
"decrease": "decrease", "decrease": "decrease",
"delete": "delete", "delete": "delete",
"descending": "descending", "descending": "descending",
@@ -117,7 +117,7 @@
"path": "path", "path": "path",
"playerMustBePaused": "player must be paused", "playerMustBePaused": "player must be paused",
"preview": "preview", "preview": "preview",
"previousSong": "previous $t(entity.track_one)", "previousSong": "previous $t(entity.track, {\"count\": 1})",
"private": "private", "private": "private",
"public": "public", "public": "public",
"quit": "quit", "quit": "quit",
@@ -194,7 +194,7 @@
"play_other": "{{count}} plays", "play_other": "{{count}} plays",
"playlistWithCount_one": "{{count}} playlist", "playlistWithCount_one": "{{count}} playlist",
"playlistWithCount_other": "{{count}} playlists", "playlistWithCount_other": "{{count}} playlists",
"smartPlaylist": "smart $t(entity.playlist_one)", "smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"track_one": "track", "track_one": "track",
"track_other": "tracks", "track_other": "tracks",
"song_one": "song", "song_one": "song",
@@ -234,14 +234,14 @@
"settingsSyncError": "discrepancies were found between the settings in the renderer and the main process. restart the application to apply the changes" "settingsSyncError": "discrepancies were found between the settings in the renderer and the main process. restart the application to apply the changes"
}, },
"filter": { "filter": {
"album": "$t(entity.album_one)", "album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist_one)", "albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "$t(entity.album_other) count", "albumCount": "$t(entity.album, {\"count\": 2}) count",
"artist": "$t(entity.artist_one)", "artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biography", "biography": "biography",
"bitrate": "bitrate", "bitrate": "bitrate",
"bpm": "bpm", "bpm": "bpm",
"channels": "$t(common.channel_other)", "channels": "$t(common.channel, {\"count\": 2})",
"comment": "comment", "comment": "comment",
"communityRating": "community rating", "communityRating": "community rating",
"criticRating": "critic rating", "criticRating": "critic rating",
@@ -250,7 +250,7 @@
"duration": "duration", "duration": "duration",
"favorited": "favorited", "favorited": "favorited",
"fromYear": "from year", "fromYear": "from year",
"genre": "$t(entity.genre_one)", "genre": "$t(entity.genre, {\"count\": 1})",
"id": "id", "id": "id",
"isCompilation": "is compilation", "isCompilation": "is compilation",
"isFavorited": "is favorited", "isFavorited": "is favorited",
@@ -329,20 +329,20 @@
"description": "This action will add all items in the current filtered view" "description": "This action will add all items in the current filtered view"
}, },
"addToPlaylist": { "addToPlaylist": {
"create": "create $t(entity.playlist_one) {{playlist}}", "create": "create $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"input_playlists": "$t(entity.playlist_other)", "input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "skip duplicates", "input_skipDuplicates": "skip duplicates",
"searchOrCreate": "search $t(entity.playlist_other) or type to create a new one", "searchOrCreate": "search $t(entity.playlist, {\"count\": 2}) or type to create a new one",
"success": "added $t(entity.trackWithCount, {\"count\": {{message}} }) to $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })", "success": "added $t(entity.trackWithCount, {\"count\": {{message}} }) to $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "add to $t(entity.playlist_one)" "title": "add to $t(entity.playlist, {\"count\": 1})"
}, },
"createPlaylist": { "createPlaylist": {
"input_description": "$t(common.description)", "input_description": "$t(common.description)",
"input_name": "$t(common.name)", "input_name": "$t(common.name)",
"input_owner": "$t(common.owner)", "input_owner": "$t(common.owner)",
"input_public": "public", "input_public": "public",
"success": "$t(entity.playlist_one) created successfully", "success": "$t(entity.playlist, {\"count\": 1}) created successfully",
"title": "create $t(entity.playlist_one)" "title": "create $t(entity.playlist, {\"count\": 1})"
}, },
"createRadioStation": { "createRadioStation": {
"success": "radio station created successfully", "success": "radio station created successfully",
@@ -352,15 +352,15 @@
"input_streamUrl": "stream url" "input_streamUrl": "stream url"
}, },
"deletePlaylist": { "deletePlaylist": {
"input_confirm": "type the name of the $t(entity.playlist_one) to confirm", "input_confirm": "type the name of the $t(entity.playlist, {\"count\": 1}) to confirm",
"success": "$t(entity.playlist_one) deleted successfully", "success": "$t(entity.playlist, {\"count\": 1}) deleted successfully",
"title": "delete $t(entity.playlist_one)" "title": "delete $t(entity.playlist, {\"count\": 1})"
}, },
"editPlaylist": { "editPlaylist": {
"publicJellyfinNote": "Jellyfin for some reason does not expose whether a playlist is public or not. If you wish for this to remain public, please have the following input selected", "publicJellyfinNote": "Jellyfin for some reason does not expose whether a playlist is public or not. If you wish for this to remain public, please have the following input selected",
"editNote": "manual edits are not recommended for large playlists. are you sure you accept the risk of data loss incurred by overwriting the existing playlist?", "editNote": "manual edits are not recommended for large playlists. are you sure you accept the risk of data loss incurred by overwriting the existing playlist?",
"success": "$t(entity.playlist_one) updated successfully", "success": "$t(entity.playlist, {\"count\": 1}) updated successfully",
"title": "edit $t(entity.playlist_one)" "title": "edit $t(entity.playlist, {\"count\": 1})"
}, },
"lyricsExport": { "lyricsExport": {
"export": "export lyrics", "export": "export lyrics",
@@ -368,7 +368,7 @@
"input_offset": "$t(setting.lyricOffset)" "input_offset": "$t(setting.lyricOffset)"
}, },
"lyricSearch": { "lyricSearch": {
"input_artist": "$t(entity.artist_one)", "input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)", "input_name": "$t(common.name)",
"title": "lyric search" "title": "lyric search"
}, },
@@ -394,7 +394,7 @@
}, },
"shuffleAll": { "shuffleAll": {
"title": "play random", "title": "play random",
"input_genre": "$t(entity.genre_one)", "input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "how many songs?", "input_limit": "how many songs?",
"input_minYear": "from year", "input_minYear": "from year",
"input_maxYear": "to year", "input_maxYear": "to year",
@@ -421,30 +421,30 @@
"groupingTypePrimary": "primary release types", "groupingTypePrimary": "primary release types",
"recentReleases": "recent releases", "recentReleases": "recent releases",
"viewDiscography": "view discography", "viewDiscography": "view discography",
"relatedArtists": "related $t(entity.artist_other)", "relatedArtists": "related $t(entity.artist, {\"count\": 2})",
"topSongs": "top songs", "topSongs": "top songs",
"topSongsFrom": "top songs from {{title}}", "topSongsFrom": "top songs from {{title}}",
"viewAll": "view all", "viewAll": "view all",
"viewAllTracks": "view all $t(entity.track_other)" "viewAllTracks": "view all $t(entity.track, {\"count\": 2})"
}, },
"albumArtistList": { "albumArtistList": {
"title": "$t(entity.albumArtist_other)" "title": "$t(entity.albumArtist, {\"count\": 2})"
}, },
"albumDetail": { "albumDetail": {
"moreFromArtist": "more from this $t(entity.artist_one)", "moreFromArtist": "more from this $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "more from {{item}}", "moreFromGeneric": "more from {{item}}",
"released": "released" "released": "released"
}, },
"albumList": { "albumList": {
"artistAlbums": "albums by {{artist}}", "artistAlbums": "albums by {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)", "genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album_other)" "title": "$t(entity.album, {\"count\": 2})"
}, },
"radioList": { "radioList": {
"title": "radio stations" "title": "radio stations"
}, },
"favorites": { "favorites": {
"title": "$t(entity.favorite_other)" "title": "$t(entity.favorite, {\"count\": 2})"
}, },
"appMenu": { "appMenu": {
"collapseSidebar": "collapse sidebar", "collapseSidebar": "collapse sidebar",
@@ -461,7 +461,7 @@
"selectMusicFolder": "select music folder", "selectMusicFolder": "select music folder",
"noMusicFolder": "no music folder selected", "noMusicFolder": "no music folder selected",
"multipleMusicFolders": "{{count}} music folders selected", "multipleMusicFolders": "{{count}} music folders selected",
"settings": "$t(common.setting_other)", "settings": "$t(common.setting, {\"count\": 2})",
"version": "version {{version}}" "version": "version {{version}}"
}, },
"manageServers": { "manageServers": {
@@ -496,8 +496,8 @@
"playShuffled": "$t(player.shuffle)", "playShuffled": "$t(player.shuffle)",
"shareItem": "share item", "shareItem": "share item",
"goTo": "go to", "goTo": "go to",
"goToAlbum": "go to $t(entity.album_one)", "goToAlbum": "go to $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "go to $t(entity.albumArtist_one)", "goToAlbumArtist": "go to $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "get info" "showDetails": "get info"
}, },
"fullscreenPlayer": { "fullscreenPlayer": {
@@ -524,12 +524,12 @@
"noLyrics": "no lyrics found" "noLyrics": "no lyrics found"
}, },
"genreList": { "genreList": {
"showAlbums": "show $t(entity.genre_one) $t(entity.album_other)", "showAlbums": "show $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "show $t(entity.genre_one) $t(entity.track_other)", "showTracks": "show $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre_other)" "title": "$t(entity.genre, {\"count\": 2})"
}, },
"folderList": { "folderList": {
"title": "$t(entity.folder_other)" "title": "$t(entity.folder, {\"count\": 2})"
}, },
"globalSearch": { "globalSearch": {
"commands": { "commands": {
@@ -541,7 +541,7 @@
}, },
"home": { "home": {
"explore": "explore from your library", "explore": "explore from your library",
"genres": "$t(entity.genre_other)", "genres": "$t(entity.genre, {\"count\": 2})",
"mostPlayed": "most played", "mostPlayed": "most played",
"newlyAdded": "newly added releases", "newlyAdded": "newly added releases",
"recentlyPlayed": "recently played", "recentlyPlayed": "recently played",
@@ -557,7 +557,7 @@
"reorder": "reordering only enabled when sorting by id" "reorder": "reordering only enabled when sorting by id"
}, },
"playlistList": { "playlistList": {
"title": "$t(entity.playlist_other)" "title": "$t(entity.playlist, {\"count\": 2})"
}, },
"setting": { "setting": {
"advanced": "advanced", "advanced": "advanced",
@@ -585,26 +585,26 @@
"playerFilters": "player filters" "playerFilters": "player filters"
}, },
"sidebar": { "sidebar": {
"albumArtists": "$t(entity.albumArtist_other)", "albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album_other)", "albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist_other)", "artists": "$t(entity.artist, {\"count\": 2})",
"favorites": "$t(entity.favorite_other)", "favorites": "$t(entity.favorite, {\"count\": 2})",
"folders": "$t(entity.folder_other)", "folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre_other)", "genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)", "home": "$t(common.home)",
"radio": "$t(entity.radioStation_other)", "radio": "$t(entity.radioStation, {\"count\": 2})",
"myLibrary": "my library", "myLibrary": "my library",
"nowPlaying": "now playing", "nowPlaying": "now playing",
"playlists": "$t(entity.playlist_other)", "playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)", "search": "$t(common.search)",
"settings": "$t(common.setting_other)", "settings": "$t(common.setting, {\"count\": 2})",
"shared": "shared $t(entity.playlist_other)", "shared": "shared $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track_other)" "tracks": "$t(entity.track, {\"count\": 2})"
}, },
"trackList": { "trackList": {
"artistTracks": "tracks by {{artist}}", "artistTracks": "tracks by {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)", "genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track_other)" "title": "$t(entity.track, {\"count\": 2})"
} }
}, },
"player": { "player": {
@@ -654,9 +654,9 @@
"standardTags": "standard tags", "standardTags": "standard tags",
"customTags": "custom tags" "customTags": "custom tags"
}, },
"releaseType": { "releaseType": {
"primary": { "primary": {
"album": "$t(entity.album_one)", "album": "$t(entity.album, {\"count\": 1})",
"broadcast": "broadcast", "broadcast": "broadcast",
"ep": "ep", "ep": "ep",
"other": "other", "other": "other",
@@ -943,9 +943,9 @@
"replayGainFallback_description": "gain in db to apply if the file has no {{ReplayGain}} tags", "replayGainFallback_description": "gain in db to apply if the file has no {{ReplayGain}} tags",
"replayGainFallback": "{{ReplayGain}} fallback", "replayGainFallback": "{{ReplayGain}} fallback",
"replayGainMode_description": "adjust volume gain according to {{ReplayGain}} values stored in the file metadata", "replayGainMode_description": "adjust volume gain according to {{ReplayGain}} values stored in the file metadata",
"replayGainMode_optionAlbum": "$t(entity.album_one)", "replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)", "replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)", "replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainMode": "{{ReplayGain}} mode", "replayGainMode": "{{ReplayGain}} mode",
"replayGainPreamp_description": "adjust the preamp gain applied to the {{ReplayGain}} values", "replayGainPreamp_description": "adjust the preamp gain applied to the {{ReplayGain}} values",
"replayGainPreamp": "{{ReplayGain}} preamp (dB)", "replayGainPreamp": "{{ReplayGain}} preamp (dB)",
@@ -1019,19 +1019,19 @@
"column": { "column": {
"album": "album", "album": "album",
"albumArtist": "album artist", "albumArtist": "album artist",
"albumCount": "$t(entity.album_other)", "albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist_one)", "artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biography", "biography": "biography",
"bitDepth": "$t(common.bitDepth)", "bitDepth": "$t(common.bitDepth)",
"bitrate": "bitrate", "bitrate": "bitrate",
"bpm": "bpm", "bpm": "bpm",
"channels": "$t(common.channel_other)", "channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)", "codec": "$t(common.codec)",
"comment": "comment", "comment": "comment",
"dateAdded": "date added", "dateAdded": "date added",
"discNumber": "disc", "discNumber": "disc",
"favorite": "favorite", "favorite": "favorite",
"genre": "$t(entity.genre_one)", "genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "last played", "lastPlayed": "last played",
"path": "path", "path": "path",
"playCount": "plays", "playCount": "plays",
@@ -1040,7 +1040,7 @@
"releaseYear": "year", "releaseYear": "year",
"sampleRate": "$t(common.sampleRate)", "sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)", "size": "$t(common.size)",
"songCount": "$t(entity.track_other)", "songCount": "$t(entity.track, {\"count\": 2})",
"title": "title", "title": "title",
"trackNumber": "track", "trackNumber": "track",
"owner": "owner" "owner": "owner"
@@ -1078,24 +1078,24 @@
"verticalBorders": "column borders" "verticalBorders": "column borders"
}, },
"label": { "label": {
"actions": "$t(common.action_other)", "actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album_one)", "album": "$t(entity.album, {\"count\": 1})",
"albumCount": "$t(entity.album_other)", "albumCount": "$t(entity.album, {\"count\": 2})",
"albumArtist": "$t(entity.albumArtist_one)", "albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist_one)", "artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)", "biography": "$t(common.biography)",
"bitDepth": "$t(common.bitDepth)", "bitDepth": "$t(common.bitDepth)",
"bitrate": "$t(common.bitrate)", "bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)", "bpm": "$t(common.bpm)",
"channels": "$t(common.channel_other)", "channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)", "codec": "$t(common.codec)",
"composer": "composer", "composer": "composer",
"dateAdded": "date added", "dateAdded": "date added",
"discNumber": "disc number", "discNumber": "disc number",
"duration": "$t(common.duration)", "duration": "$t(common.duration)",
"favorite": "$t(common.favorite)", "favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)", "genre": "$t(entity.genre, {\"count\": 1})",
"genreBadge": "$t(entity.genre_one) (badges)", "genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "image", "image": "image",
"lastPlayed": "last played", "lastPlayed": "last played",
"note": "$t(common.note)", "note": "$t(common.note)",
@@ -1107,7 +1107,7 @@
"rowIndex": "row index", "rowIndex": "row index",
"sampleRate": "$t(common.sampleRate)", "sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)", "size": "$t(common.size)",
"songCount": "$t(entity.track_other)", "songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)", "title": "$t(common.title)",
"titleArtist": "$t(common.title) (artist)", "titleArtist": "$t(common.title) (artist)",
"titleCombined": "$t(common.title) (combined)", "titleCombined": "$t(common.title) (combined)",