i18n: update i18n references on menu labels, update chinese translation

This commit is contained in:
ericwyn
2024-07-25 15:16:47 +08:00
parent d264f15422
commit 6ab3b20a90
9 changed files with 58 additions and 37 deletions
+5 -2
View File
@@ -212,6 +212,9 @@
"Search": "Search", "Search": "Search",
"Owner": "Owner", "Owner": "Owner",
"To server": "To server", "To server": "To server",
"Time": "Time", "Fav.": "Fav.",
"Fav.": "Fav." "Set favorite": "Set favorite",
"Unset favorite": "Unset favorite",
"Remove from queue": "Remove from queue",
"Play song radio": "Play song radio"
} }
+7 -2
View File
@@ -120,7 +120,7 @@
"Play Artist Radio": "播放艺术家电台", "Play Artist Radio": "播放艺术家电台",
"Play count": "播放次数", "Play count": "播放次数",
"Play Discography": "播放唱片集", "Play Discography": "播放唱片集",
"Play next": "播放下一个", "Play next": "下一首播放",
"Play Queue": "播放队列", "Play Queue": "播放队列",
"Play random": "随机播放", "Play random": "随机播放",
"Playback": "播放", "Playback": "播放",
@@ -211,5 +211,10 @@
"Owner": "拥有者", "Owner": "拥有者",
"Locally": "到本地", "Locally": "到本地",
"Time": "时长", "Time": "时长",
"Fav.": "收藏" "Fav.": "收藏",
"Set favorite": "设为收藏",
"Unset favorite": "取消收藏",
"Remove from queue": "从队列中移除",
"Size": "大小",
"Play song radio": "播放歌曲电台"
} }
+7 -2
View File
@@ -120,7 +120,7 @@
"Play Artist Radio": "播放艺术家电台", "Play Artist Radio": "播放艺术家电台",
"Play count": "播放次数", "Play count": "播放次数",
"Play Discography": "播放唱片集", "Play Discography": "播放唱片集",
"Play next": "播放下一个", "Play next": "下一首播放",
"Play Queue": "播放队列", "Play Queue": "播放队列",
"Play random": "随机播放", "Play random": "随机播放",
"Playback": "播放", "Playback": "播放",
@@ -211,5 +211,10 @@
"Owner": "拥有者", "Owner": "拥有者",
"To server": "到服务器", "To server": "到服务器",
"Time": "时长", "Time": "时长",
"Fav.": "收藏" "Fav.": "收藏",
"Set favorite": "设为收藏",
"Unset favorite": "取消收藏",
"Remove from queue": "从队列中移除",
"Size": "大小",
"Play song radio": "播放歌曲电台"
} }
+7 -2
View File
@@ -120,7 +120,7 @@
"Play Artist Radio": "播放藝術家電台", "Play Artist Radio": "播放藝術家電台",
"Play count": "播放次數", "Play count": "播放次數",
"Play Discography": "播放唱片集", "Play Discography": "播放唱片集",
"Play next": "播放下一個", "Play next": "下一首播放",
"Play Queue": "播放佇列", "Play Queue": "播放佇列",
"Play random": "隨機播放", "Play random": "隨機播放",
"Playback": "播放", "Playback": "播放",
@@ -211,5 +211,10 @@
"Owner": "擁有者", "Owner": "擁有者",
"To server": "到伺服器", "To server": "到伺服器",
"Time": "時长", "Time": "時长",
"Fav.": "收藏" "Fav.": "收藏",
"Set favorite": "“設為收藏",
"Unset favorite": "取消收藏",
"Remove from queue": "從隊列中移除",
"Size": "大小",
"Play song radio": "播放歌曲電台"
} }
+1 -1
View File
@@ -39,7 +39,7 @@ func (t *TrackInfoDialog) CreateRenderer() fyne.WidgetRenderer {
addFormRow(c, lang.L("Title"), t.track.Title) addFormRow(c, lang.L("Title"), t.track.Title)
c.Add(newFormText("Album", true)) c.Add(newFormText(lang.L("Album"), true))
album := widget.NewHyperlink(t.track.Album, nil) album := widget.NewHyperlink(t.track.Album, nil)
album.OnTapped = func() { album.OnTapped = func() {
if t.OnNavigateToAlbum != nil { if t.OnNavigateToAlbum != nil {
+2 -2
View File
@@ -3,6 +3,7 @@ package widgets
import ( import (
"context" "context"
"fmt" "fmt"
"fyne.io/fyne/v2/lang"
"strconv" "strconv"
"sync" "sync"
@@ -13,7 +14,6 @@ import (
"fyne.io/fyne/v2" "fyne.io/fyne/v2"
"fyne.io/fyne/v2/container" "fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/lang"
"fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget" "fyne.io/fyne/v2/widget"
) )
@@ -410,7 +410,7 @@ func (g *GridView) cancelFetch() {
func (g *GridView) showContextMenu(card *GridViewItem, pos fyne.Position) { func (g *GridView) showContextMenu(card *GridViewItem, pos fyne.Position) {
g.menuGridViewItemId = card.ItemID() g.menuGridViewItemId = card.ItemID()
if g.menu == nil { if g.menu == nil {
play := fyne.NewMenuItem(lang.l("Play"), func() { g.onPlay(g.menuGridViewItemId, false) }) play := fyne.NewMenuItem(lang.L("Play"), func() { g.onPlay(g.menuGridViewItemId, false) })
play.Icon = theme.MediaPlayIcon() play.Icon = theme.MediaPlayIcon()
shuffle := fyne.NewMenuItem(lang.L("Shuffle"), func() { g.onPlay(g.menuGridViewItemId, true) }) shuffle := fyne.NewMenuItem(lang.L("Shuffle"), func() { g.onPlay(g.menuGridViewItemId, true) })
shuffle.Icon = myTheme.ShuffleIcon shuffle.Icon = myTheme.ShuffleIcon
+5 -4
View File
@@ -1,6 +1,7 @@
package widgets package widgets
import ( import (
"fyne.io/fyne/v2/lang"
"image" "image"
"github.com/dweymouth/supersonic/backend/mediaprovider" "github.com/dweymouth/supersonic/backend/mediaprovider"
@@ -157,13 +158,13 @@ func (n *NowPlayingCard) SetImage(cover image.Image) {
func (n *NowPlayingCard) showMenu(btnPos fyne.Position) { func (n *NowPlayingCard) showMenu(btnPos fyne.Position) {
if n.menu == nil { if n.menu == nil {
n.ratingMenu = util.NewRatingSubmenu(n.onSetRating) n.ratingMenu = util.NewRatingSubmenu(n.onSetRating)
favorite := fyne.NewMenuItem("Set favorite", func() { n.onSetFavorite(true) }) favorite := fyne.NewMenuItem(lang.L("Set favorite"), func() { n.onSetFavorite(true) })
favorite.Icon = myTheme.FavoriteIcon favorite.Icon = myTheme.FavoriteIcon
unfavorite := fyne.NewMenuItem("Unset favorite", func() { n.onSetFavorite(false) }) unfavorite := fyne.NewMenuItem(lang.L("Unset favorite"), func() { n.onSetFavorite(false) })
unfavorite.Icon = myTheme.NotFavoriteIcon unfavorite.Icon = myTheme.NotFavoriteIcon
playlist := fyne.NewMenuItem("Add to playlist...", func() { n.onAddToPlaylist() }) playlist := fyne.NewMenuItem(lang.L("Add to playlist")+"...", func() { n.onAddToPlaylist() })
playlist.Icon = myTheme.PlaylistIcon playlist.Icon = myTheme.PlaylistIcon
share := fyne.NewMenuItem("Share...", func() { n.onShare() }) share := fyne.NewMenuItem(lang.L("Share")+"...", func() { n.onShare() })
share.Icon = myTheme.ShareIcon share.Icon = myTheme.ShareIcon
m := fyne.NewMenu("", favorite, unfavorite, n.ratingMenu, playlist, share) m := fyne.NewMenu("", favorite, unfavorite, n.ratingMenu, playlist, share)
+12 -11
View File
@@ -1,6 +1,7 @@
package widgets package widgets
import ( import (
"fyne.io/fyne/v2/lang"
"image" "image"
"slices" "slices"
"strconv" "strconv"
@@ -277,31 +278,31 @@ func (p *PlayQueueList) ensureTracksMenu() {
menuItems = append(menuItems, fyne.NewMenuItemSeparator()) menuItems = append(menuItems, fyne.NewMenuItemSeparator())
} }
playlist := fyne.NewMenuItem("Add to playlist...", func() { playlist := fyne.NewMenuItem(lang.L("Add to playlist")+"...", func() {
if p.OnAddToPlaylist != nil { if p.OnAddToPlaylist != nil {
p.OnAddToPlaylist(p.selectedItemIDs()) p.OnAddToPlaylist(p.selectedItemIDs())
} }
}) })
playlist.Icon = myTheme.PlaylistIcon playlist.Icon = myTheme.PlaylistIcon
download := fyne.NewMenuItem("Download...", func() { download := fyne.NewMenuItem(lang.L("Download")+"...", func() {
if p.OnDownload != nil { if p.OnDownload != nil {
p.OnDownload(p.selectedTracks(), "Selected tracks") p.OnDownload(p.selectedTracks(), "Selected tracks")
} }
}) })
download.Icon = theme.DownloadIcon() download.Icon = theme.DownloadIcon()
p.shareMenuItem = fyne.NewMenuItem("Share...", func() { p.shareMenuItem = fyne.NewMenuItem(lang.L("Share")+"...", func() {
if p.OnShare != nil { if p.OnShare != nil {
p.OnShare(p.selectedTracks()) p.OnShare(p.selectedTracks())
} }
}) })
p.shareMenuItem.Icon = myTheme.ShareIcon p.shareMenuItem.Icon = myTheme.ShareIcon
favorite := fyne.NewMenuItem("Set favorite", func() { favorite := fyne.NewMenuItem(lang.L("Set favorite"), func() {
if p.OnSetFavorite != nil { if p.OnSetFavorite != nil {
p.OnSetFavorite(p.selectedItemIDs(), true) p.OnSetFavorite(p.selectedItemIDs(), true)
} }
}) })
favorite.Icon = myTheme.FavoriteIcon favorite.Icon = myTheme.FavoriteIcon
unfavorite := fyne.NewMenuItem("Unset favorite", func() { unfavorite := fyne.NewMenuItem(lang.L("Unset favorite"), func() {
if p.OnSetFavorite != nil { if p.OnSetFavorite != nil {
p.OnSetFavorite(p.selectedItemIDs(), false) p.OnSetFavorite(p.selectedItemIDs(), false)
} }
@@ -323,7 +324,7 @@ func (p *PlayQueueList) ensureTracksMenu() {
) )
if !p.useNonQueueMenu { if !p.useNonQueueMenu {
remove := fyne.NewMenuItem("Remove from queue", func() { remove := fyne.NewMenuItem(lang.L("Remove from queue"), func() {
if p.OnRemoveFromQueue != nil { if p.OnRemoveFromQueue != nil {
p.OnRemoveFromQueue(p.selectedIdxs()) p.OnRemoveFromQueue(p.selectedIdxs())
} }
@@ -344,7 +345,7 @@ func (p *PlayQueueList) ensureRadiosMenu() {
if p.radiosMenu != nil { if p.radiosMenu != nil {
return return
} }
remove := fyne.NewMenuItem("Remove from queue", func() { remove := fyne.NewMenuItem(lang.L("Remove from queue"), func() {
if p.OnRemoveFromQueue != nil { if p.OnRemoveFromQueue != nil {
p.OnRemoveFromQueue(p.selectedIdxs()) p.OnRemoveFromQueue(p.selectedIdxs())
} }
@@ -357,25 +358,25 @@ func (p *PlayQueueList) ensureRadiosMenu() {
} }
func (p *PlayQueueList) createQueueActionMenuItems() []*fyne.MenuItem { func (p *PlayQueueList) createQueueActionMenuItems() []*fyne.MenuItem {
play := fyne.NewMenuItem("Play", func() { play := fyne.NewMenuItem(lang.L("Play"), func() {
if p.OnPlaySelection != nil { if p.OnPlaySelection != nil {
p.OnPlaySelection(p.selectedItems(), false) p.OnPlaySelection(p.selectedItems(), false)
} }
}) })
play.Icon = theme.MediaPlayIcon() play.Icon = theme.MediaPlayIcon()
shuffle := fyne.NewMenuItem("Shuffle", func() { shuffle := fyne.NewMenuItem(lang.L("Shuffle"), func() {
if p.OnPlaySelection != nil { if p.OnPlaySelection != nil {
p.OnPlaySelection(p.selectedItems(), true) p.OnPlaySelection(p.selectedItems(), true)
} }
}) })
shuffle.Icon = myTheme.ShuffleIcon shuffle.Icon = myTheme.ShuffleIcon
playNext := fyne.NewMenuItem("Play next", func() { playNext := fyne.NewMenuItem(lang.L("Play next"), func() {
if p.OnPlaySelection != nil { if p.OnPlaySelection != nil {
p.OnPlaySelectionNext(p.selectedItems()) p.OnPlaySelectionNext(p.selectedItems())
} }
}) })
playNext.Icon = myTheme.PlayNextIcon playNext.Icon = myTheme.PlayNextIcon
add := fyne.NewMenuItem("Add to queue", func() { add := fyne.NewMenuItem(lang.L("Add to queue"), func() {
if p.OnPlaySelection != nil { if p.OnPlaySelection != nil {
p.OnAddToQueue(p.selectedItems()) p.OnAddToQueue(p.selectedItems())
} }
+12 -11
View File
@@ -1,6 +1,7 @@
package widgets package widgets
import ( import (
"fyne.io/fyne/v2/lang"
"log" "log"
"slices" "slices"
"sort" "sort"
@@ -521,64 +522,64 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
if t.ctxMenu == nil { if t.ctxMenu == nil {
t.ctxMenu = fyne.NewMenu("") t.ctxMenu = fyne.NewMenu("")
if !t.Options.DisablePlaybackMenu { if !t.Options.DisablePlaybackMenu {
play := fyne.NewMenuItem("Play", func() { play := fyne.NewMenuItem(lang.L("Play"), func() {
if t.OnPlaySelection != nil { if t.OnPlaySelection != nil {
t.OnPlaySelection(t.selectedTracks(), false) t.OnPlaySelection(t.selectedTracks(), false)
} }
}) })
play.Icon = theme.MediaPlayIcon() play.Icon = theme.MediaPlayIcon()
shuffle := fyne.NewMenuItem("Shuffle", func() { shuffle := fyne.NewMenuItem(lang.L("Shuffle"), func() {
if t.OnPlaySelection != nil { if t.OnPlaySelection != nil {
t.OnPlaySelection(t.selectedTracks(), true) t.OnPlaySelection(t.selectedTracks(), true)
} }
}) })
shuffle.Icon = myTheme.ShuffleIcon shuffle.Icon = myTheme.ShuffleIcon
playNext := fyne.NewMenuItem("Play next", func() { playNext := fyne.NewMenuItem(lang.L("Play next"), func() {
if t.OnPlaySelection != nil { if t.OnPlaySelection != nil {
t.OnPlaySelectionNext(t.selectedTracks()) t.OnPlaySelectionNext(t.selectedTracks())
} }
}) })
playNext.Icon = myTheme.PlayNextIcon playNext.Icon = myTheme.PlayNextIcon
add := fyne.NewMenuItem("Add to queue", func() { add := fyne.NewMenuItem(lang.L("Add to queue"), func() {
if t.OnPlaySelection != nil { if t.OnPlaySelection != nil {
t.OnAddToQueue(t.selectedTracks()) t.OnAddToQueue(t.selectedTracks())
} }
}) })
add.Icon = theme.ContentAddIcon() add.Icon = theme.ContentAddIcon()
t.songRadioMenuItem = fyne.NewMenuItem("Play song radio", func() { t.songRadioMenuItem = fyne.NewMenuItem(lang.L("Play song radio"), func() {
t.onPlaySongRadio(t.selectedTracks()) t.onPlaySongRadio(t.selectedTracks())
}) })
t.songRadioMenuItem.Icon = myTheme.RadioIcon t.songRadioMenuItem.Icon = myTheme.RadioIcon
t.ctxMenu.Items = append(t.ctxMenu.Items, t.ctxMenu.Items = append(t.ctxMenu.Items,
play, shuffle, playNext, add, t.songRadioMenuItem) play, shuffle, playNext, add, t.songRadioMenuItem)
} }
playlist := fyne.NewMenuItem("Add to playlist...", func() { playlist := fyne.NewMenuItem(lang.L("Add to playlist")+"...", func() {
if t.OnAddToPlaylist != nil { if t.OnAddToPlaylist != nil {
t.OnAddToPlaylist(t.SelectedTrackIDs()) t.OnAddToPlaylist(t.SelectedTrackIDs())
} }
}) })
playlist.Icon = myTheme.PlaylistIcon playlist.Icon = myTheme.PlaylistIcon
download := fyne.NewMenuItem("Download...", func() { download := fyne.NewMenuItem(lang.L("Download")+"...", func() {
t.onDownload(t.selectedTracks(), "Selected tracks") t.onDownload(t.selectedTracks(), "Selected tracks")
}) })
download.Icon = theme.DownloadIcon() download.Icon = theme.DownloadIcon()
t.infoMenuItem = fyne.NewMenuItem("Show info...", func() { t.infoMenuItem = fyne.NewMenuItem(lang.L("Show info")+"...", func() {
if t.OnShowTrackInfo != nil { if t.OnShowTrackInfo != nil {
t.OnShowTrackInfo(t.selectedTracks()[0]) t.OnShowTrackInfo(t.selectedTracks()[0])
} }
}) })
t.infoMenuItem.Icon = theme.InfoIcon() t.infoMenuItem.Icon = theme.InfoIcon()
favorite := fyne.NewMenuItem("Set favorite", func() { favorite := fyne.NewMenuItem(lang.L("Set favorite"), func() {
t.onSetFavorites(t.selectedTracks(), true, true) t.onSetFavorites(t.selectedTracks(), true, true)
}) })
favorite.Icon = myTheme.FavoriteIcon favorite.Icon = myTheme.FavoriteIcon
unfavorite := fyne.NewMenuItem("Unset favorite", func() { unfavorite := fyne.NewMenuItem(lang.L("Unset favorite"), func() {
t.onSetFavorites(t.selectedTracks(), false, true) t.onSetFavorites(t.selectedTracks(), false, true)
}) })
unfavorite.Icon = myTheme.NotFavoriteIcon unfavorite.Icon = myTheme.NotFavoriteIcon
t.ctxMenu.Items = append(t.ctxMenu.Items, fyne.NewMenuItemSeparator(), t.ctxMenu.Items = append(t.ctxMenu.Items, fyne.NewMenuItemSeparator(),
playlist, download, t.infoMenuItem) playlist, download, t.infoMenuItem)
t.shareMenuItem = fyne.NewMenuItem("Share...", func() { t.shareMenuItem = fyne.NewMenuItem(lang.L("Share")+"...", func() {
t.onShare(t.selectedTracks()) t.onShare(t.selectedTracks())
}) })
t.shareMenuItem.Icon = myTheme.ShareIcon t.shareMenuItem.Icon = myTheme.ShareIcon