diff --git a/src/i18n/README.md b/src/i18n/README.md
index 72e15e8b..d6927ea8 100644
--- a/src/i18n/README.md
+++ b/src/i18n/README.md
@@ -124,7 +124,51 @@ Update 16/02/2022 21:45 UTC
* `settings.option.audio.maxVolume`: Added for `en_US`.`
Update 17/02/2022 10:00 UTC
+
+ `settings.header.debug`: Added for `en_US`.
+ `settings.option.debug.copy_log`: Replaces `settings.option.experimental.copy_log`.
+ `settings.option.debug.openAppData`: Added for `en_US`
-+ `action.open`: Added for `en_US`
\ No newline at end of file
++ `action.open`: Added for `en_US`
+
+Update 19/2/2022 21:00 UTC
+
+* `term.noVideos`: Added for `en_US`
+* `term.plugin`: Added for `en_US`
+* `term.pluginMenu`: Added for `en_US`
+* `term.replay`: Added for `en_US`
+* `term.uniqueAlbums`: Added for `en_US`
+* `term.uniqueArtists`: Added for `en_US`
+* `term.uniqueSongs`: Added for `en_US`
+* `term.topArtists`: Added for `en_US`
+* `term.listenedTo`: Added for `en_US`
+* `term.times`: Added for `en_US`
+* `term.topAlbums`: Added for `en_US`
+* `term.plays`: Added for `en_US`
+* `term.topGenres`: Added for `en_US`
+* `action.install`: Added for `en_US`
+* `settings.option.general.resumebehavior`: Added for `en_US`
+* `settings.option.general.resumebehavior.description`: Added for `en_US`
+* `settings.option.general.resumebehavior.locally`: Added for `en_US`
+* `settings.option.general.resumebehavior.locally.description`: Added for `en_US`
+* `settings.option.general.resumebehavior.history`: Added for `en_US`
+* `settings.option.general.resumebehavior.history.description`: Added for `en_US`
+* `settings.option.audio.audioLab`: Added for `en_US`
+* `settings.option.audio.audioLab.description`: Added for `en_US`
+* `settings.warn.audioLab.withoutAF`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmth`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmth.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile`: Added for `en_US`
+* `settings.header.visual.theme.github.page`: Added for `en_US`
+* `settings.option.visual.theme.github.explore`: Added for `en_US`
+* `settings.option.visual.theme.github.install.confirm`: Added for `en_US`
+* `settings.option.experimental.unknownPlugin`: Added for `en_US`
+* `settings.option.experimental.unknownPlugin.description`: Added for `en_US`
\ No newline at end of file
diff --git a/src/i18n/en_US.jsonc b/src/i18n/en_US.jsonc
index a14377d8..59153b43 100644
--- a/src/i18n/en_US.jsonc
+++ b/src/i18n/en_US.jsonc
@@ -156,6 +156,18 @@
"term.top": "Top",
"term.version": "Version",
"term.noVideos": "No videos found.",
+ "term.plugin": "Plug-in",
+ "term.pluginMenu": "Plug-in Menu",
+ "term.replay": "Replay", //Apple Music Replay
+ "term.uniqueAlbums": "Unique Albums",
+ "term.uniqueArtists": "Unique Artists",
+ "term.uniqueSongs": "Unique Songs",
+ "term.topArtists": "Top Artists",
+ "term.listenedTo": "Listened to:",
+ "term.times": "times",
+ "term.topAlbums": "Top Albums",
+ "term.plays": "Plays",
+ "term.topGenres": "Top Genres",
// Home
"home.title": "Home",
@@ -228,14 +240,23 @@
"action.tray.quit": "Quit",
"action.tray.show": "Show",
"action.update": "Update",
+ "action.install": "Install",
"action.copy": "Copy",
"action.newpreset": "New Preset...", // Equalizer Preset
"action.deletepreset": "Delete Preset",
"action.open": "Open",
+
// Settings - General
"settings.header.general": "General",
"settings.header.general.description": "Adjust the general settings for Cider.",
"settings.option.general.language": "Language",
+ "settings.option.general.resumebehavior": "Resume behavior",
+ "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.",
+ "settings.option.general.resumebehavior.locally": "Locally",
+ "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.",
+ "settings.option.general.resumebehavior.history": "History",
+ "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.",
+
// Language optgroups
"settings.option.general.language.main": "Languages",
@@ -266,6 +287,15 @@
"settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle
"settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.",
+ "settings.option.audio.audioLab": "Cider Audio Lab",
+ "settings.option.audio.audioLab.description": "Contains an assortment of Audio Tweaks made by the Cider Dev Team",
+ "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.",
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
@@ -277,6 +307,12 @@
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile",
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.",
// Settings - Visual
@@ -304,6 +340,7 @@
"settings.header.visual.theme": "Theme",
"settings.option.visual.theme.github.download": "Install from GitHub URL",
"settings.option.visual.theme.github.explore": "Explore GitHub Themes",
+ "settings.header.visual.theme.github.page": "Themes from GitHub",
"settings.option.visual.theme.github.install.confirm": "Are you sure you want to install {{ repo }}?",
"settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install",
"settings.notyf.visual.theme.install.success": "Theme installed successfully",
@@ -345,13 +382,13 @@
"settings.option.debug.copy_log": "Copy logs to clipboard",
"settings.option.debug.openAppData": "Open Cider Folder",
-
// Settings - Experimental
"settings.header.experimental": "Experimental",
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
+ "settings.option.experimental.unknownPlugin": "Unknown Sources",
+ "settings.option.experimental.unknownPlugin.description": "Allow installion of plugins from repos other than the Cider Plugin Repository",
"settings.option.experimental.compactUI": "Compact UI", // Toggle
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
-
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
// Refer to term.disabled & term.enabled
diff --git a/src/i18n/zh_HK.jsonc b/src/i18n/zh_HK.jsonc
index b63ef199..8647837c 100644
--- a/src/i18n/zh_HK.jsonc
+++ b/src/i18n/zh_HK.jsonc
@@ -109,6 +109,7 @@
"term.fullscreenView": "全螢幕檢視",
"term.defaultView": "一般檢視",
"term.audioSettings": "音訊設定",
+ "term.audioControls": "音量控制",
"term.clearAll": "清空",
"term.recentStations": "最近播放的頻道",
"term.language": "語言",
@@ -154,6 +155,9 @@
"term.videoExtras": "影片特輯",
//"term.top": "Top",
"term.version": "版本",
+ "term.noVideos": "沒有影片",
+ "term.plugin": "外掛程式",
+ "term.pluginMenu": "外掛程式選單",
// Home
"home.title": "主頁",
@@ -229,6 +233,7 @@
"action.copy": "複製",
"action.newpreset": "新增範本", // Equallizer preset
"action.deletepreset": "刪除範本",
+ "action.open": "開啟",
// Settings - General
"settings.header.general": "一般",
@@ -250,6 +255,8 @@
// Settings - Audio
"settings.header.audio": "音訊",
"settings.header.audio.description": "調整Cider的音訊設定",
+ "settings.option.audio.volumeStep": "音量改變量",
+ "settings.option.audio.maxVolume": "最高音量",
"settings.option.audio.quality": "音訊音質", // Dropdown
"settings.header.audio.quality.hireslossless": "高清無損壓縮",
"settings.header.audio.quality.hireslossless.description": "(高達 24-bit/192 kHz)",
@@ -298,8 +305,10 @@
"settings.header.visual.hardwareAcceleration.default": "預設",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
"settings.header.visual.theme": "主題",
- "settings.option.visual.theme.github.download": "從 Github 安裝",
- "settings.prompt.visual.theme.github.URL": "請輸入你想要安裝的主題的連結",
+ "settings.option.visual.theme.github.download": "使用 Github 網址安裝",
+ "settings.option.visual.theme.github.explore": "探索更多主題",
+ "settings.option.visual.theme.github.install.confirm": "你確認要安裝 {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "請輸入你想要安裝的主題的網址",
"settings.notyf.visual.theme.install.success": "成功安裝主題",
"settings.notyf.visual.theme.install.error": "主題安裝失敗",
@@ -334,15 +343,19 @@
"settings.option.connectivity.lastfmScrobble.filterLoop": "不記錄單曲循環(Last.fm)",
// Refer to term.connect for the connect button
+ // Settings - Debug
+ "settings.header.debug": "除錯",
+ "settings.option.debug.copy_log": "複製運行記錄檔至剪貼簿",
+ "settings.option.debug.openAppData": "開啟 Cider 程式資料夾",
+
// Settings - Experimental
"settings.header.experimental": "實驗性功能",
"settings.header.experimental.description": "調整Cider的實驗性功能",
"settings.option.experimental.compactUI": "緊凑型 UI", // Toggle
"settings.option.experimental.close_button_hide": "以關閉按鈕來隱藏 Cider",
- "settings.option.experimental.copy_log": "複製運行記錄檔至剪貼簿",
//"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
- // Refer to term.disabled & term.enabled
+ // Refer to term.disabled & term.enabled
// Spatialization Menu
"spatial.notTurnedOn": "請先在設定中啟用空間音訊。",
"spatial.spatialProperties": "空間音訊屬性",
diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts
index 1e35caa7..fbd5ccbe 100644
--- a/src/main/base/browserwindow.ts
+++ b/src/main/base/browserwindow.ts
@@ -55,6 +55,7 @@ export class BrowserWindow {
"components/sidebar-playlist",
"components/spatial-properties",
"components/audio-settings",
+ "components/plugin-menu",
"components/audio-controls",
"components/qrcode-modal",
"components/equalizer",
diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts
index f044edc1..ea070645 100644
--- a/src/main/plugins/menubar.ts
+++ b/src/main/plugins/menubar.ts
@@ -106,6 +106,11 @@ export default class Thumbar {
accelerator: 'CommandOrControl+Shift+A',
click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`)
},
+ {
+ label: 'Plug-in Menu',
+ accelerator: 'CommandOrControl+Shift+P',
+ click: () => this._win.webContents.executeJavaScript(`app.modals.pluginMenu = true`)
+ }
]
},
diff --git a/src/renderer/index.js b/src/renderer/index.js
index dc7a064e..4e5e7e05 100644
--- a/src/renderer/index.js
+++ b/src/renderer/index.js
@@ -25,6 +25,7 @@ const CiderFrontAPI = {
},
AddMenuEntry(entry) {
app.pluginMenuEntries.push(entry)
+ app.pluginInstalled = true
}
}
@@ -76,6 +77,7 @@ const app = new Vue({
platform: "",
mk: {},
quickPlayQuery: "",
+ pluginInstalled: false,
pluginMenuEntries: [],
lz: ipcRenderer.sendSync("get-i18n", "en_US"),
lzListing: ipcRenderer.sendSync("get-i18n-listing"),
@@ -247,6 +249,7 @@ const app = new Vue({
qrcode: false,
equalizer: false,
audioSettings: false,
+ pluginMenu: false,
audioControls: false,
showPlaylist: false,
},
diff --git a/src/renderer/less/helpers.less b/src/renderer/less/helpers.less
index cdd1584f..3a2eec8d 100644
--- a/src/renderer/less/helpers.less
+++ b/src/renderer/less/helpers.less
@@ -226,6 +226,7 @@
}
.name {
+ position: relative;
}
&:hover {
diff --git a/src/renderer/views/app/panels.ejs b/src/renderer/views/app/panels.ejs
index 85227a31..65768149 100644
--- a/src/renderer/views/app/panels.ejs
+++ b/src/renderer/views/app/panels.ejs
@@ -22,6 +22,9 @@