Finalized i18n Draft Before Testing

This commit is contained in:
Maikiwi 2022-01-24 20:07:00 -08:00
parent 0359bffac5
commit 9c0dca8001
10 changed files with 96 additions and 81 deletions

View file

@ -12,7 +12,6 @@
"notification.updatingLibrarySongs": "Updating library songs...", "notification.updatingLibrarySongs": "Updating library songs...",
"notification.updatingLibraryAlbums": "Updating library albums...", "notification.updatingLibraryAlbums": "Updating library albums...",
"notification.updatingLibraryArtists": "Updating library artists...", "notification.updatingLibraryArtists": "Updating library artists...",
"notification.connectionError": "There was a problem connecting to Apple Music.",
// Terms // Terms
"term.appleMusic": "Apple Music", "term.appleMusic": "Apple Music",
@ -86,17 +85,22 @@
"term.defaultView": "Default View", "term.defaultView": "Default View",
"term.spacializedAudioSetting": "Spacialized Audio Setting", "term.spacializedAudioSetting": "Spacialized Audio Setting",
"term.clearAll": "Clear All", "term.clearAll": "Clear All",
"term.recentStations": "Recent Stations",
"term.language": "Language",
// Home // Home
"home.title": "Home", "home.title": "Home",
"home.recentlyPlayed": "Recently Played", "home.recentlyPlayed": "Recently Played",
"home.recentlyAdded": "Recently Added", "home.recentlyAdded": "Recently Added",
"home.artistsFeed": "Your Artists Feed", "home.artistsFeed": "Your Artists Feed",
"home.artistsFeed.noArtist": "Follow some artists first and their latest releases will be here",
"home.madeForYou": "Made For You", "home.madeForYou": "Made For You",
"home.friendsListeningTo": "Friends Listening To", "home.friendsListeningTo": "Friends Listening To",
"home.followedArtists": "Followed Artists", "home.followedArtists": "Followed Artists",
// Errors // Errors
"error.appleMusicSubRequired": "Apple Music requires a subscription.", "error.appleMusicSubRequired": "Apple Music requires a subscription.",
"error.connectionError": "There was a problem connecting to Apple Music.",
// Actions // Actions
"action.addToLibrary": "Add to Library", "action.addToLibrary": "Add to Library",
@ -160,9 +164,11 @@
"settings.header.visual.animatedArtworkQuality.low": "Low", "settings.header.visual.animatedArtworkQuality.low": "Low",
"settings.header.visual.animatedArtworkQuality.medium": "Medium", "settings.header.visual.animatedArtworkQuality.medium": "Medium",
"settings.header.visual.animatedArtworkQuality.high": "High", "settings.header.visual.animatedArtworkQuality.high": "High",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
"settings.header.visual.animatedArtworkQuality.extreme": "Extreme", "settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
"settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle "settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle
"settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown
"settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
"settings.header.visual.hardwareAcceleration.default": "Default", "settings.header.visual.hardwareAcceleration.default": "Default",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
// Refer to term.disabled for the disabled option // Refer to term.disabled for the disabled option
@ -186,7 +192,7 @@
// Refer to term.disabled for the disabled option // Refer to term.disabled for the disabled option
"settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
"settings.header.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
// Refer to term.connect for the connect button // Refer to term.connect for the connect button
@ -196,6 +202,9 @@
"settings.option.experimental.compactUI": "Compact UI", // Toggle "settings.option.experimental.compactUI": "Compact UI", // Toggle
// Refer to term.disabled & term.enabled // Refer to term.disabled & term.enabled
// Settings - Unfinished
"settings.header.unfinished": "Unfinished",
// Web Remote // Web Remote
"remote.web.title": "Cider Remote", "remote.web.title": "Cider Remote",
"remote.web.description": "Scan the QR code to pair your phone up with this Cider instance" "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance"

View file

@ -12,7 +12,6 @@
"notification.updatingLibrarySongs": "ライブラリの更新中...", "notification.updatingLibrarySongs": "ライブラリの更新中...",
"notification.updatingLibraryAlbums": "ライブラリの更新中...", "notification.updatingLibraryAlbums": "ライブラリの更新中...",
"notification.updatingLibraryArtists": "ライブラリの更新中...", "notification.updatingLibraryArtists": "ライブラリの更新中...",
"notification.connectionError": "Apple Musicに接続できません。",
// Terms // Terms
"term.appleMusic": "Apple Music", // Follows brand term "term.appleMusic": "Apple Music", // Follows brand term
@ -61,6 +60,7 @@
"term.viewAs": "表示", "term.viewAs": "表示",
"term.viewAs.coverArt": "カバーアート", "term.viewAs.coverArt": "カバーアート",
"term.viewAs.list": "リスト", "term.viewAs.list": "リスト",
"term.size": "サイズ",
"term.size.normal": "普通", "term.size.normal": "普通",
"term.size.compact": "コンパクト", "term.size.compact": "コンパクト",
"term.enable": "ON", "term.enable": "ON",
@ -73,7 +73,7 @@
"term.less": "減らす", "term.less": "減らす",
"term.showMore": "もっと見る", "term.showMore": "もっと見る",
"term.showLess": "表示数を少なくする", "term.showLess": "表示数を少なくする",
"term.topSongs" : "人気曲", "term.topSongs" : "トップソング",
"term.latestReleases": "ニューリリース", "term.latestReleases": "ニューリリース",
"term.time.added": "追加日", "term.time.added": "追加日",
"term.time.released": "配信開始日", "term.time.released": "配信開始日",
@ -93,6 +93,8 @@
"home.followedArtists": "フォローしているアーティスト", "home.followedArtists": "フォローしているアーティスト",
// Errors // Errors
"error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。", "error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。",
"error.connectionError": "Apple Musicに接続できません。",
// Actions // Actions
"action.addToLibrary": "ライブラリに追加", "action.addToLibrary": "ライブラリに追加",
"action.addToLibrary.success": "ライブラリに追加されました", "action.addToLibrary.success": "ライブラリに追加されました",

View file

@ -12,7 +12,6 @@
"notification.updatingLibrarySongs": "正在更新资料库的歌曲信息...", "notification.updatingLibrarySongs": "正在更新资料库的歌曲信息...",
"notification.updatingLibraryAlbums": "正在更新资料库的专辑信息...", "notification.updatingLibraryAlbums": "正在更新资料库的专辑信息...",
"notification.updatingLibraryArtists": "正在更新资料库的艺人信息...", "notification.updatingLibraryArtists": "正在更新资料库的艺人信息...",
"notification.connectionError": "无法连接到 Apple Music。",
// Terms // Terms
"term.appleMusic": "Apple Music", // Follows brand term "term.appleMusic": "Apple Music", // Follows brand term
@ -61,6 +60,7 @@
"term.viewAs": "显示模式", "term.viewAs": "显示模式",
"term.viewAs.coverArt": "专辑封面", "term.viewAs.coverArt": "专辑封面",
"term.viewAs.list": "列表", "term.viewAs.list": "列表",
"term.size": "大小",
"term.size.normal": "正常", "term.size.normal": "正常",
"term.size.compact": "紧凑", "term.size.compact": "紧凑",
"term.enable": "启用", "term.enable": "启用",
@ -94,6 +94,7 @@
// Errors // Errors
"error.appleMusicSubRequired": "需要订阅 Apple Music 以使用 Cider", "error.appleMusicSubRequired": "需要订阅 Apple Music 以使用 Cider",
"error.connectionError": "无法连接到 Apple Music。",
// Actions // Actions
"action.addToLibrary": "加入资料库", "action.addToLibrary": "加入资料库",

View file

@ -12,7 +12,6 @@
"notification.updatingLibrarySongs": "正在更新資料庫的歌曲...", "notification.updatingLibrarySongs": "正在更新資料庫的歌曲...",
"notification.updatingLibraryAlbums": "正在更新資料庫的專輯...", "notification.updatingLibraryAlbums": "正在更新資料庫的專輯...",
"notification.updatingLibraryArtists": "正在更新資料庫的藝人...", "notification.updatingLibraryArtists": "正在更新資料庫的藝人...",
"notification.connectionError": "無法連接到 Apple Music。",
// Terms // Terms
"term.appleMusic": "Apple Music", // Follows brand term "term.appleMusic": "Apple Music", // Follows brand term
"term.applePodcasts": "Apple Podcasts", // Follows brand term "term.applePodcasts": "Apple Podcasts", // Follows brand term
@ -60,6 +59,7 @@
"term.viewAs": "顯示模式", "term.viewAs": "顯示模式",
"term.viewAs.coverArt": "專輯封面", "term.viewAs.coverArt": "專輯封面",
"term.viewAs.list": "列表", "term.viewAs.list": "列表",
"term.size": "大小",
"term.size.normal": "正常", "term.size.normal": "正常",
"term.size.compact": "緊凑", "term.size.compact": "緊凑",
"term.enable": "啟用", "term.enable": "啟用",
@ -92,6 +92,7 @@
"home.followedArtists": "追蹤的藝人", "home.followedArtists": "追蹤的藝人",
// Errors // Errors
"error.appleMusicSubRequired": "需要訂閱Apple Music以使用Cider", "error.appleMusicSubRequired": "需要訂閱Apple Music以使用Cider",
"error.connectionError": "無法連接到 Apple Music。",
// Actions // Actions
"action.addToLibrary": "加入資料庫", "action.addToLibrary": "加入資料庫",
"action.addToLibrary.success": "成功加入資料庫", "action.addToLibrary.success": "成功加入資料庫",

View file

@ -178,12 +178,12 @@ const app = new Vue({
}, },
songs: { songs: {
sortingOptions: { sortingOptions: {
"albumName": "Album", "albumName": app.getLz('term.sortBy.album'),
"artistName": "Artist", "artistName": app.getLz('term.sortBy.artist'),
"name": "Name", "name": app.getLz('term.sortBy.name'),
"genre": "Genre", "genre": app.getLz('term.sortBy.genre'),
"releaseDate": "Release Date", "releaseDate": app.getLz('term.sortBy.releaseDate'),
"durationInMillis": "Duration" "durationInMillis": app.getLz('term.sortBy.duration')
}, },
sorting: "name", sorting: "name",
sortOrder: "asc", sortOrder: "asc",
@ -195,10 +195,10 @@ const app = new Vue({
}, },
albums: { albums: {
sortingOptions: { sortingOptions: {
"artistName": "Artist", "albumName": app.getLz('term.sortBy.album'),
"name": "Name", "artistName": app.getLz('term.sortBy.artist'),
"genre": "Genre", "name": app.getLz('term.sortBy.name'),
"releaseDate": "Release Date" "genre": app.getLz('term.sortBy.genre')
}, },
viewAs: 'covers', viewAs: 'covers',
sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page
@ -211,10 +211,10 @@ const app = new Vue({
}, },
artists: { artists: {
sortingOptions: { sortingOptions: {
"artistName": "Artist", "artistName": app.getLz('term.sortBy.artist'),
"name": "Name", "name": app.getLz('term.sortBy.name'),
"genre": "Genre", "genre": app.getLz('term.sortBy.genre'),
"releaseDate": "Release Date" "releaseDate": app.getLz('term.sortBy.releaseDate')
}, },
viewAs: 'covers', viewAs: 'covers',
sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page

View file

@ -21,7 +21,7 @@
ref="searchInput" ref="searchInput"
style="width:100%;" style="width:100%;"
spellcheck="false" spellcheck="false"
placeholder="Search..." :placeholder="app.getLz('term.search') + '...'"
v-model="searchQuery" v-model="searchQuery"
@input="search()" @input="search()"
class="search-input"> class="search-input">

View file

@ -466,7 +466,7 @@
<div><input type="text" v-model="quickPlayQuery"> <div><input type="text" v-model="quickPlayQuery">
<button @click="quickPlay(quickPlayQuery)">Play</button> <button @click="quickPlay(quickPlayQuery)">Play</button>
</div> </div>
<h1 class="header-text">Browse</h1> <h1 class="header-text">{{$root.getLz('term.browse')}}</h1>
<p> <p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu
tincidunt tincidunt
@ -485,7 +485,7 @@
</div> </div>
<br> <br>
<br> <br>
<h1 class="header-text">Listen Now</h1> <h1 class="header-text">{{$root.getLz('term.listenNow')}}</h1>
<div class="winbox"> <div class="winbox">
<div class="fancy">990kbps</div> <div class="fancy">990kbps</div>
<div class=""> <div class="">
@ -509,8 +509,8 @@
<transition v-on:enter="getRadioStations()" name="wpfade"> <transition v-on:enter="getRadioStations()" name="wpfade">
<template v-if="page == 'radio'" @created="console.log('radio')"> <template v-if="page == 'radio'" @created="console.log('radio')">
<div class="content-inner"> <div class="content-inner">
<h1 class="header-text">Radio</h1> <h1 class="header-text">{{$root.getLz('term.radio')}}</h1>
<h3>Recent Stations</h3> <h3>{{$root.getLz('term.recentStations')}}</h3>
<mediaitem-square :item="item" v-for="item in radio.personal"></mediaitem-square> <mediaitem-square :item="item" v-for="item in radio.personal"></mediaitem-square>
</div> </div>
</template> </template>

View file

@ -3,7 +3,7 @@
<div v-if="page == 'main'"> <div v-if="page == 'main'">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h3>Recently Played</h3> <h3>{{$root.getLz('home.recentlyPlayed')}}</h3>
<div class="well artistfeed-well"> <div class="well artistfeed-well">
<template v-if="isSectionReady('recentlyPlayed')"> <template v-if="isSectionReady('recentlyPlayed')">
<mediaitem-list-item v-for="item in recentlyPlayed.limit(6)" <mediaitem-list-item v-for="item in recentlyPlayed.limit(6)"
@ -15,7 +15,7 @@
<div class="col"> <div class="col">
<div class="row nopadding"> <div class="row nopadding">
<div class="col nopadding"> <div class="col nopadding">
<h3>Your Artists Feed</h3> <h3>{{$root.getLz('home.artistsFeed')}}</h3>
</div> </div>
<div class="col-auto nopadding flex-center"> <div class="col-auto nopadding flex-center">
<button class="cd-btn-seeall" @click="app.appRoute('artist-feed')">{{app.getLz('term.seeAll')}}</button> <button class="cd-btn-seeall" @click="app.appRoute('artist-feed')">{{app.getLz('term.seeAll')}}</button>
@ -26,7 +26,7 @@
<mediaitem-list-item v-for="item in artistFeed.limit(6)" :item="item"></mediaitem-list-item> <mediaitem-list-item v-for="item in artistFeed.limit(6)" :item="item"></mediaitem-list-item>
</template> </template>
<div class="spinner" v-else-if="followedArtists.length > 0"></div> <div class="spinner" v-else-if="followedArtists.length > 0"></div>
<div class="no-artist" v-else> Follow some artists first and their latest releases will be here</div> <div class="no-artist" v-else> {{$root.getLz('home.artistsFeed.noArtist')}}</div>
</div> </div>
</div> </div>
</div> </div>
@ -44,7 +44,7 @@
<!-- </div>--> <!-- </div>-->
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h3>Made For You</h3> <h3>{{$root.getLz('home.madeForYou')}}</h3>
<div class="well"> <div class="well">
<template v-if="isSectionReady('madeForYou')"> <template v-if="isSectionReady('madeForYou')">
<mediaitem-square kind="small" v-for="item in madeForYou" :item="item"></mediaitem-square> <mediaitem-square kind="small" v-for="item in madeForYou" :item="item"></mediaitem-square>
@ -57,7 +57,7 @@
<div class="col"> <div class="col">
<div class="row"> <div class="row">
<div class="col nopadding"> <div class="col nopadding">
<h3>Friends Listening To</h3> <h3>{{$root.getLz('home.friendsListeningTo')}}</h3>
</div> </div>
<div class="col-auto nopadding flex-center"> <div class="col-auto nopadding flex-center">
<button class="cd-btn-seeall" @click="app.showSocialListeningTo()">{{app.getLz('term.seeAll')}}</button> <button class="cd-btn-seeall" @click="app.showSocialListeningTo()">{{app.getLz('term.seeAll')}}</button>

View file

@ -7,7 +7,7 @@
<input type="search" <input type="search"
style="width:100%;" style="width:100%;"
spellcheck="false" spellcheck="false"
placeholder="Search..." :placeholder="app.getLz('term.search') + '...'"
@change="searchPodcasts();librarySearch()" @change="searchPodcasts();librarySearch()"
v-model="search.term" class="search-input"> v-model="search.term" class="search-input">
</div> </div>

View file

@ -2,25 +2,25 @@
<div class="content-inner settings-page"> <div class="content-inner settings-page">
<div class="md-option-container"> <div class="md-option-container">
<div class="md-option-header"> <div class="md-option-header">
<span>Audio</span> <span>{{$root.getLz('settings.header.audio')}}</span>
</div> </div>
<div class="settings-option-body"> <div class="settings-option-body">
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Audio Quality {{$root.getLz('settings.option.audio.quality')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" style="width:180px;" v-model="app.cfg.audio.quality" v-on:change="changeAudioQuality"> <select class="md-select" style="width:180px;" v-model="app.cfg.audio.quality" v-on:change="changeAudioQuality">
<!-- // <option value="990">Extreme</option> --> <!-- // <option value="990">Extreme</option> -->
<option value="256">High</option> <option value="256">{{$root.getLz('settings.header.audio.quality.high')}}</option>
<option value="64">Low</option> <option value="64">{{$root.getLz('settings.header.audio.quality.low')}}</option>
<option value="auto">Auto</option> <option value="auto">{{$root.getLz('settings.header.audio.quality.auto')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Seamless Audio Transitions {{$root.getLz('settings.header.audio.seamlessTransition')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.seamless_audio" switch/> <input type="checkbox" v-model="app.cfg.audio.seamless_audio" switch/>
@ -28,9 +28,9 @@
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Enable Advanced Functionality {{$root.getLz('settings.header.audio.enableAdvancedFunctionality')}}
<br> <br>
<small>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.</small> <small>{{$root.getLz('settings.header.audio.enableAdvancedFunctionality.description')}}</small>
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.advanced.AudioContext" v-on:change="toggleAudioContext" switch/> <input type="checkbox" v-model="app.cfg.advanced.AudioContext" v-on:change="toggleAudioContext" switch/>
@ -38,7 +38,9 @@
</div> </div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext"> <div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
<div class="md-option-segment" > <div class="md-option-segment" >
Audio Normalization {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization')}}
<br>
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}}</small>
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" switch/> <input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" switch/>
@ -46,9 +48,9 @@
</div> </div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext"> <div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
<div class="md-option-segment" > <div class="md-option-segment" >
Audio Spatialization {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization')}}
<br> <br>
<small>Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)</small> <small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')}}</small>
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.spatial" v-on:change="toggleSpatial" switch/> <input type="checkbox" v-model="app.cfg.audio.spatial" v-on:change="toggleSpatial" switch/>
@ -56,49 +58,49 @@
</div> </div>
</div> </div>
<div class="md-option-header"> <div class="md-option-header">
<span>Visual</span> <span>{{$root.getLz('settings.header.visual')}}</span>
</div> </div>
<div class="settings-option-body"> <div class="settings-option-body">
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Window Background Style {{$root.getLz('settings.option.visual.windowBackgroundStyle')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" @change="$root.getNowPlayingArtworkBG(undefined, true)" v-model="app.cfg.visual.window_background_style"> <select class="md-select" @change="$root.getNowPlayingArtworkBG(undefined, true)" v-model="app.cfg.visual.window_background_style">
<option value="none">None</option> <option value="none">{{$root.getLz('settings.header.visual.windowBackgroundStyle.none')}}</option>
<option value="artwork">Artwork</option> <option value="artwork">{{$root.getLz('settings.header.visual.windowBackgroundStyle.artwork')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Animated Artwork {{$root.getLz('settings.option.visual.animatedArtwork')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.visual.animated_artwork"> <select class="md-select" v-model="app.cfg.visual.animated_artwork">
<option value="always">Always</option> <option value="always">{{$root.getLz('settings.header.visual.animatedArtwork.always')}}</option>
<option value="limited">Limit to pages and special entries</option> <option value="limited">{{$root.getLz('settings.header.visual.animatedArtwork.limited')}}</option>
<option value="disabled">Disable Everywhere</option> <option value="disabled">{{$root.getLz('settings.header.visual.animatedArtwork.disable')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line" v-if="app.cfg.visual.animated_artwork == 'always' || app.cfg.visual.animated_artwork == 'limited'"> <div class="md-option-line" v-if="app.cfg.visual.animated_artwork == 'always' || app.cfg.visual.animated_artwork == 'limited'">
<div class="md-option-segment"> <div class="md-option-segment">
Animated Artwork Quality {{$root.getLz('settings.option.visual.animatedArtworkQuality')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.visual.animated_artwork_qualityLevel"> <select class="md-select" v-model="app.cfg.visual.animated_artwork_qualityLevel">
<option value="0">Low</option> <option value="0">{{$root.getLz('settings.header.visual.animatedArtworkQuality.low')}}</option>
<option value="1">Medium</option> <option value="1">{{$root.getLz('settings.header.visual.animatedArtworkQuality.medium')}}</option>
<option value="2">High</option> <option value="2">{{$root.getLz('settings.header.visual.animatedArtworkQuality.high')}}</option>
<option value="3">Very High</option> <option value="3">{{$root.getLz('settings.header.visual.animatedArtworkQuality.veryHigh')}}</option>
<option value="4">Extreme</option> <option value="4">{{$root.getLz('settings.header.visual.animatedArtworkQuality.extreme')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Animated Window Background {{$root.getLz('settings.option.visual.animatedWindowBackground')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" switch v-model="app.cfg.visual.bg_artwork_rotation"/> <input type="checkbox" switch v-model="app.cfg.visual.bg_artwork_rotation"/>
@ -106,20 +108,20 @@
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Hardware Acceleration<br> {{$root.getLz('settings.option.visual.hardwareAcceleration')}}<br>
<small>(Requires relaunch)</small> <small>({{$root.getLz('settings.option.visual.hardwareAcceleration.description')}})</small>
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" style="width:180px;" v-model="app.cfg.visual.hw_acceleration" > <select class="md-select" style="width:180px;" v-model="app.cfg.visual.hw_acceleration" >
<option value="default">Default</option> <option value="default">{{$root.getLz('settings.header.visual.hardwareAcceleration.default')}}</option>
<option value="webgpu">WebGPU</option> <option value="webgpu">{{$root.getLz('settings.header.visual.hardwareAcceleration.webGPU')}}</option>
<option value="disabled">Disabled</option> <option value="disabled">{{$root.getLz('term.disabled')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Show Personal Info {{$root.getLz('settings.option.visual.showPersonalInfo')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.visual.showuserinfo" v-on:change="toggleUserInfo" switch/> <input type="checkbox" v-model="app.cfg.visual.showuserinfo" v-on:change="toggleUserInfo" switch/>
@ -128,12 +130,12 @@
</div> </div>
<div class="md-option-header"> <div class="md-option-header">
<span>Lyrics</span> <span>{{$root.getLz('settings.header.lyrics')}}</span>
</div> </div>
<div class="settings-option-body"> <div class="settings-option-body">
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Enable Musixmatch Lyrics {{$root.getLz('settings.option.lyrics.enableMusixmatch')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.lyrics.enable_mxm" switch/> <input type="checkbox" v-model="app.cfg.lyrics.enable_mxm" switch/>
@ -141,7 +143,7 @@
</div> </div>
<div class="md-option-line" v-if="app.cfg.lyrics.enable_mxm"> <div class="md-option-line" v-if="app.cfg.lyrics.enable_mxm">
<div class="md-option-segment"> <div class="md-option-segment">
Enable Karaoke Mode (Musixmatch only) {{$root.getLz('settings.option.lyrics.enableMusixmatchKaraoke')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.lyrics.mxm_karaoke" switch/> <input type="checkbox" v-model="app.cfg.lyrics.mxm_karaoke" switch/>
@ -149,7 +151,7 @@
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Musixmatch Translation Preferred Language {{$root.getLz('settings.option.lyrics.musixmatchPreferredLanguage')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.lyrics.mxm_language"> <select class="md-select" v-model="app.cfg.lyrics.mxm_language">
@ -424,7 +426,7 @@
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Enable Youtube Lyrics for Music Videos {{$root.getLz('settings.option.lyrics.enableYoutubeLyrics')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.lyrics.enable_yt" switch/> <input type="checkbox" v-model="app.cfg.lyrics.enable_yt" switch/>
@ -432,36 +434,36 @@
</div> </div>
</div> </div>
<div class="md-option-header"> <div class="md-option-header">
<span>Connectivity</span> <span>{{$root.getLz('settings.header.connectivity')}}</span>
</div> </div>
<div class="settings-option-body"> <div class="settings-option-body">
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Discord Rich Presence {{$root.getLz('settings.option.connectivity.discordRPC')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.general.discord_rpc"> <select class="md-select" v-model="app.cfg.general.discord_rpc">
<option value="0">Disabled</option> <option value="0">{{$root.getLz('term.disabled')}}</option>
<option value="1">Display as 'Cider'</option> <option value="1">{{$root.getLz('settings.header.connectivity.discordRPC.cider')}}</option>
<option value="2">Display as 'Apple Music'</option> <option value="2">{{$root.getLz('settings.header.connectivity.discordRPC.appleMusic')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc != 0"> <div class="md-option-line" v-show="app.cfg.general.discord_rpc != 0">
<div class="md-option-segment"> <div class="md-option-segment">
Clear Discord RPC on Pause {{$root.getLz('settings.option.connectivity.discordRPC.clearOnPause')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.general.discordClearActivityOnPause"> <select class="md-select" v-model="app.cfg.general.discordClearActivityOnPause">
<option value="0">Disabled</option> <option value="0">{{$root.getLz('term.disabled')}}</option>
<option value="1">Enabled</option> <option value="1">{{$root.getLz('term.enabled')}}</option>
</select> </select>
</div> </div>
</div> </div>
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
LastFM Scrobbling {{$root.getLz('settings.option.connectivity.lastfmScrobble')}}
</div> </div>
<div class="md-option-segment md-btn md-option-segment_auto"> <div class="md-option-segment md-btn md-option-segment_auto">
<label class="list-button list-element" id="lfmConnect" ref="lfmConnect" <label class="list-button list-element" id="lfmConnect" ref="lfmConnect"
@ -494,13 +496,13 @@
</div> </div>
</div> </div>
<div class="md-option-header"> <div class="md-option-header">
<span>Experimental</span> <span>{{$root.getLz('settings.header.experimental')}}</span>
</div> </div>
<div class="settings-option-body"> <div class="settings-option-body">
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Compact UI {{$root.getLz('settings.option.experimental.compactUI')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto" > <div class="md-option-segment md-option-segment_auto" >
<button class="md-btn" :class="{'md-btn-primary': app.cfg.advanced.experiments.includes('compactui')}" @click="app.cfg.advanced.experiments.includes('compactui') ? removeExperiment('compactui') : addExperiment('compactui')"> <button class="md-btn" :class="{'md-btn-primary': app.cfg.advanced.experiments.includes('compactui')}" @click="app.cfg.advanced.experiments.includes('compactui') ? removeExperiment('compactui') : addExperiment('compactui')">
@ -511,7 +513,7 @@
<div class="md-option-line"> <div class="md-option-line">
<div class="md-option-segment"> <div class="md-option-segment">
Language {{$root.getLz('term.language')}}
</div> </div>
<div class="md-option-segment md-option-segment_auto"> <div class="md-option-segment md-option-segment_auto">
<select class="md-select" @change="$root.setLz('')" v-model="app.cfg.general.language"> <select class="md-select" @change="$root.setLz('')" v-model="app.cfg.general.language">
@ -527,7 +529,7 @@
</div> </div>
<div style="opacity: 0.5; pointer-events: none"> <div style="opacity: 0.5; pointer-events: none">
<div class="md-option-header"> <div class="md-option-header">
<span>Unfinished / Non Functional</span> <span>{{$root.getLz('settings.header.unfinished')}}</span>
</div> </div>
<div class="settings-option-body"> <div class="settings-option-body">
<div class="md-option-line"> <div class="md-option-line">