diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc index 85a61abd..81864554 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.jsonc @@ -54,6 +54,7 @@ "term.mute": "靜音", "term.unmute": "取消靜音", "term.share": "分享", + "term.share.success": "已複製至剪貼簿", "term.settings": "設定", "term.seeAll": "顯示全部", "term.sortBy": "排序", @@ -71,7 +72,7 @@ "term.viewAs.list": "列表", "term.size": "大小", "term.size.normal": "正常", - "term.size.compact": "緊凑", + "term.size.compact": "緊密", "term.enable": "啟用", "term.disable": "停用", "term.enabled": "已啟用", @@ -106,14 +107,14 @@ "term.noLyrics": "正在載入。。/ 無歌詞結果 / 純音樂", "term.copyright": "版權聲明", "term.rightsReserved": "保留所有權利。", - "term.sponsor": "贊助", - "term.socials": "社群", + "term.sponsor": "贊助我們", + "term.socials": "社群平台", "term.ciderTeam": "Cider 團隊", "term.developer": "開發者", "term.socialTeam": "公關團隊", "term.contributors": "貢獻者", "term.equalizer": "等化器", - "term.reset": "重置", + "term.reset": "重設", "term.tracks": "首歌曲", // Assume x amount of tracks. e.g. 50 tracks "term.videos": "影片", "term.menu": "選單", @@ -191,8 +192,13 @@ "action.tray.show": "顯示", "action.update": "更新", "action.copy": "複製", - "action.newpreset": "新預設", // Equalizer Preset - "action.deletepreset": "刪除預設", // Equalizer Preset + "action.newpreset": "新增預設", // Equalizer Preset + "action.deletepreset": "刪除預設", // Equalizer Preset + + // Language optgroups + "settings.option.general.language.main": "語言", + "settings.option.general.language.fun": "特殊語言", + "settings.option.general.language.unsorted": "未分類", // Settings - Audio "settings.header.audio": "音訊", @@ -207,14 +213,14 @@ "settings.header.audio.quality.standard": "高效率", "settings.header.audio.quality.auto": "自動", "settings.option.audio.seamlessTransition": "無間斷播放", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "進階機能", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "進階音訊功能", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將開啟類似音訊平衡和等化器的進階設定。但這並不一定適合每部電腦,可能會發生音樂卡頓。", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數位增強音訊處理™️", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將欺騙您的大腦使其感受近似保真壓縮的音質。| 由 Maikiwi 設計", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將欺騙您的大腦讓您感受到近似保真壓縮的音質。| 由 Maikiwi 設計", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進/振奮程度(增強選項有可能會引起雜訊)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "增强", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "增強", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音訊平衡", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一舒適的聆聽體驗。", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle @@ -226,6 +232,7 @@ "settings.option.visual.windowBackgroundStyle": "視窗背景樣式", // Toggle "settings.header.visual.windowBackgroundStyle.none": "空白", "settings.header.visual.windowBackgroundStyle.artwork": "專輯封面", + "settings.header.visual.windowBackgroundStyle.image": "圖片", "settings.option.visual.animatedArtwork": "動態專輯封面", // Dropdown "settings.header.visual.animatedArtwork.always": "總是顯示", "settings.header.visual.animatedArtwork.limited": "只在藝人頁面和專輯封面顯示", @@ -242,6 +249,9 @@ "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "主題", + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "暗黑模式", // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle @@ -261,7 +271,7 @@ "settings.header.connectivity": "外部連接", "settings.header.connectivity.description": "調整 Cider 與外部的連接", "settings.option.connectivity.discordRPC": "Discord 動態", // Dropdown - "settings.option.connectivity.playbackNotifications": "播放通知", // Toggle + "settings.option.connectivity.playbackNotifications": "歌曲播放通知", // Toggle // Refer to term.disabled for the disabled option "settings.header.connectivity.discordRPC.cider": "顯示正在玩 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "顯示正在玩 'Apple Music'", @@ -275,34 +285,35 @@ // Settings - Experimental "settings.header.experimental": "實驗性功能", "settings.header.experimental.description": "調整 Cider 的實驗性功能", - "settings.option.experimental.compactUI": "緊凑的介面", // Toggle + "settings.option.experimental.compactUI": "使用緊密的介面設計", // Toggle "settings.option.experimental.closeButtonBehaviour": "關閉按鈕操作", // Dropdown "settings.option.experimental.close_button_hide": "關閉按鈕將 Cider 隱藏至系統列", - "settings.option.experimental.copy_log": "複製執行紀錄檔剪貼簿", + "settings.option.experimental.copy_log": "複製執行紀錄檔至剪貼簿", "settings.option.experimental.inline_playlists": "將播放列表做為行内元素顯示", "settings.option.experimental.updateCider": "更新 Cider", // Button // Refer to term.disabled & term.enabled // Spatialization Menu - "spatial.spatialProperties": "空間音訊屬性設定", - "spatial.width": "寬度", - "spatial.height": "高度", - "spatial.depth": "深度", - "spatial.gain": "增益", - "spatial.roomMaterials": "空間材質", - "spatial.roomDimensions": "空間尺寸", - "spatial.roomPositions": "空間位置", - "spatial.setDimensions": "設定尺寸", - "spatial.setPositions": "套用設定", - "spatial.up": "上", - "spatial.front": "前", - "spatial.left": "左", - "spatial.right": "右", - "spatial.back": "後", - "spatial.down": "下", - "spatial.listener": "聽衆", - "spatial.audioSource": "音訊來源", - + "spatial.notTurnedOn": "空間音訊目前是關閉狀態,請先啟用再使用。", + "spatial.spatialProperties" : "空間音訊屬性設定", + "spatial.width" : "寬度", + "spatial.height" : "高度", + "spatial.depth" : "深度", + "spatial.gain" : "增益", + "spatial.roomMaterials" : "空間材質", + "spatial.roomDimensions" : "空間尺寸", + "spatial.roomPositions" : "空間位置", + "spatial.setDimensions" : "設定尺寸", + "spatial.setPositions" : "套用設定", + "spatial.up" : "上", + "spatial.front" : "前", + "spatial.left" : "左", + "spatial.right" : "右", + "spatial.back" : "後", + "spatial.down" : "下", + "spatial.listener" : "聽衆", + "spatial.audioSource" : "音訊來源", + // Settings - Unfinished "settings.header.unfinished": "未開發完成的功能", diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 53a0d8d2..5cb897e9 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -27,6 +27,7 @@ export class Store { }, "audio": { "volume": 1, + "volumeStep": 0.02, "lastVolume": 1, "muted": false, "quality": "HIGH", @@ -35,10 +36,6 @@ export class Store { "ciderPPE": false, "ciderPPE_value": 0.5, "spatial": false, - "maxVolume": 1, - "volumePrecision": 0.1, - "volumeRoundMax": 0.9, - "volumeRoundMin": 0.1, "spatial_properties": { "presets": [], "gain": 0.8, diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index 5d729a8b..ec484b40 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -95,6 +95,37 @@ export default class Thumbar { } ] }, + { + label: 'Controls', + submenu: [ + { + label: 'Pause / Play', + accelerator: 'Space', + click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.playPause()`) + }, + { + label: 'Next', + accelerator: 'CommandOrControl+Right', + click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.next()`) + }, + { + label: 'Previous', + accelerator: 'CommandOrControl+Left', + click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`) + }, + { type: 'separator' }, + { + label: 'Volume Up', + accelerator: 'CommandOrControl+Up', + click: () => this._win.webContents.executeJavaScript(`app.volumeUp()`) + }, + { + label: 'Volume Down', + accelerator: 'CommandOrControl+Down', + click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`) + } + ] + }, { label: 'Account', submenu: [ diff --git a/src/renderer/index.js b/src/renderer/index.js index 2f47f823..5b39de03 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3307,29 +3307,32 @@ const app = new Vue({ } }) }, + checkScrollDirectionIsUp(event) { + if (event.wheelDelta) { + return event.wheelDelta > 0; + } + return event.deltaY < 0; + }, + volumeUp() { + if ((app.mk.volume + app.cfg.audio.volumeStep) > 1) { + app.mk.volume = 1; + console.log('setting to 1') + } else { + console.log('volume up') + app.mk.volume += app.cfg.audio.volumeStep; + } + }, + volumeDown() { + if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) { + app.mk.volume = 0; + console.log('settings to 0') + } else { + console.log('volume down') + app.mk.volume -= app.cfg.audio.volumeStep; + } + }, volumeWheel(event) { - if (this.cfg.audio.maxVolume < 1.0 && this.cfg.audio.maxVolume > 0.01) { - this.cfg.audio.volumePrecision = 0.01 - this.cfg.audio.volumeRoundMax = this.cfg.audio.maxVolume - 0.01 - this.cfg.audio.volumeRoundMin = 0.01 - } - if (event.deltaY < 0) { - if (this.mk.volume < this.cfg.audio.maxVolume) { - if (this.mk.volume <= this.cfg.audio.volumeRoundMax) { - this.mk.volume += this.cfg.audio.volumePrecision - } else { - this.mk.volume = this.cfg.audio.maxVolume - } - } - } else if (event.deltaY > 0) { - if (this.mk.volume > 0) { - if (this.mk.volume >= this.cfg.audio.volumeRoundMin) { - this.mk.volume -= this.cfg.audio.volumePrecision - } else { - this.mk.volume = 0 - } - } - } + app.checkScrollDirectionIsUp(event) ? app.volumeUp() : app.volumeDown() }, muteButtonPressed() { if (this.cfg.audio.muted) { diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index d9d946fd..15fa6f2f 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -108,7 +108,7 @@
-