[web] Simplify translations

This commit is contained in:
Alain Nussbaumer 2025-03-05 21:31:48 +01:00
parent 296dbe7a78
commit eecc915a6a
32 changed files with 233 additions and 550 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1644,14 +1644,14 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "8.25.0", "version": "8.26.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz",
"integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", "integrity": "sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.25.0", "@typescript-eslint/types": "8.26.0",
"@typescript-eslint/visitor-keys": "8.25.0" "@typescript-eslint/visitor-keys": "8.26.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -1662,9 +1662,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "8.25.0", "version": "8.26.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz",
"integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -1676,14 +1676,14 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "8.25.0", "version": "8.26.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz",
"integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.25.0", "@typescript-eslint/types": "8.26.0",
"@typescript-eslint/visitor-keys": "8.25.0", "@typescript-eslint/visitor-keys": "8.26.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.2", "fast-glob": "^3.3.2",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -1699,17 +1699,17 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": ">=4.8.4 <5.8.0" "typescript": ">=4.8.4 <5.9.0"
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "8.25.0", "version": "8.26.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz",
"integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.25.0", "@typescript-eslint/types": "8.26.0",
"eslint-visitor-keys": "^4.2.0" "eslint-visitor-keys": "^4.2.0"
}, },
"engines": { "engines": {
@ -1881,9 +1881,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.14.0", "version": "8.14.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
@ -2130,9 +2130,9 @@
} }
}, },
"node_modules/core-js": { "node_modules/core-js": {
"version": "3.40.0", "version": "3.41.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.41.0.tgz",
"integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"funding": { "funding": {
@ -2443,9 +2443,9 @@
} }
}, },
"node_modules/eslint-plugin-vue": { "node_modules/eslint-plugin-vue": {
"version": "9.32.0", "version": "9.33.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz",
"integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -3594,9 +3594,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.5.2", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
@ -3945,9 +3945,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.7.3", "version": "5.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
"devOptional": true, "devOptional": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true, "peer": true,

View File

@ -38,13 +38,9 @@ export default {
value: { required: true, type: [String, Number] } value: { required: true, type: [String, Number] }
}, },
emits: ['update:value'], emits: ['update:value'],
data() { data() {
return { return { active: false }
active: false
}
}, },
computed: { computed: {
option: { option: {
get() { get() {
@ -52,7 +48,6 @@ export default {
} }
} }
}, },
methods: { methods: {
deactivate() { deactivate() {
this.active = false this.active = false

View File

@ -40,9 +40,9 @@ export default {
return [{ key: 'dialog.add.rss.processing', icon: 'web' }] return [{ key: 'dialog.add.rss.processing', icon: 'web' }]
} }
return [ return [
{ key: 'dialog.add.rss.cancel', handler: this.cancel, icon: 'cancel' }, { key: 'actions.cancel', handler: this.cancel, icon: 'cancel' },
{ {
key: 'dialog.add.rss.add', key: 'actions.add',
disabled: this.disabled, disabled: this.disabled,
handler: this.add, handler: this.add,
icon: 'playlist-plus' icon: 'playlist-plus'

View File

@ -41,19 +41,15 @@ export default {
return [{ key: 'dialog.add.stream.processing', icon: 'web' }] return [{ key: 'dialog.add.stream.processing', icon: 'web' }]
} }
return [ return [
{ key: 'actions.cancel', handler: this.cancel, icon: 'cancel' },
{ {
key: 'dialog.add.stream.cancel', key: 'actions.add',
handler: this.cancel,
icon: 'cancel'
},
{
key: 'dialog.add.stream.add',
disabled: this.disabled, disabled: this.disabled,
handler: this.add, handler: this.add,
icon: 'playlist-plus' icon: 'playlist-plus'
}, },
{ {
key: 'dialog.add.stream.play', key: 'actions.play',
disabled: this.disabled, disabled: this.disabled,
handler: this.play, handler: this.play,
icon: 'play' icon: 'play'

View File

@ -25,13 +25,11 @@ export default {
if (this.media_kind_resolved === 'podcast') { if (this.media_kind_resolved === 'podcast') {
if (this.item.data_kind === 'url') { if (this.item.data_kind === 'url') {
return [ return [
{ key: 'dialog.album.mark-as-played', handler: this.mark_played }, { key: 'actions.mark-as-played', handler: this.mark_played },
{ key: 'dialog.album.remove-podcast', handler: this.remove_podcast } { key: 'actions.remove-podcast', handler: this.remove_podcast }
] ]
} }
return [ return [{ key: 'actions.mark-as-played', handler: this.mark_played }]
{ key: 'dialog.album.mark-as-played', handler: this.mark_played }
]
} }
return [] return []
}, },

View File

@ -34,17 +34,13 @@ export default {
computed: { computed: {
actions() { actions() {
return [ return [
{ key: 'actions.add', handler: this.queue_add, icon: 'playlist-plus' },
{ {
key: 'dialog.playable.add', key: 'actions.add-next',
handler: this.queue_add,
icon: 'playlist-plus'
},
{
key: 'dialog.playable.add-next',
handler: this.queue_add_next, handler: this.queue_add_next,
icon: 'playlist-play' icon: 'playlist-play'
}, },
{ key: 'dialog.playable.play', handler: this.play, icon: 'play' } { key: 'actions.play', handler: this.play, icon: 'play' }
] ]
} }
}, },

View File

@ -50,13 +50,9 @@ export default {
return [{ key: 'dialog.playlist.save.saving', icon: 'web' }] return [{ key: 'dialog.playlist.save.saving', icon: 'web' }]
} }
return [ return [
{ key: 'actions.cancel', handler: this.cancel, icon: 'cancel' },
{ {
key: 'dialog.playlist.save.cancel', key: 'actions.save',
handler: this.cancel,
icon: 'cancel'
},
{
key: 'dialog.playlist.save.save',
disabled: this.disabled, disabled: this.disabled,
handler: this.save, handler: this.save,
icon: 'download' icon: 'download'

View File

@ -29,16 +29,8 @@ export default {
computed: { computed: {
actions() { actions() {
return [ return [
{ { key: 'actions.remove', handler: this.remove, icon: 'delete' },
key: this.$t('dialog.queue-item.remove'), { key: 'actions.play', handler: this.play, icon: 'play' }
handler: this.remove,
icon: 'delete'
},
{
key: this.$t('dialog.queue-item.play'),
handler: this.play,
icon: 'play'
}
] ]
}, },
playable() { playable() {

View File

@ -46,16 +46,8 @@ export default {
computed: { computed: {
actions() { actions() {
return [ return [
{ { key: 'actions.cancel', handler: this.cancel, icon: 'cancel' },
key: 'dialog.remote-pairing.cancel', { key: 'actions.pair', handler: this.pair, icon: 'cellphone' }
handler: this.cancel,
icon: 'cancel'
},
{
key: 'dialog.remote-pairing.pair',
handler: this.pair,
icon: 'cellphone'
}
] ]
}, },
pairing() { pairing() {

View File

@ -22,8 +22,8 @@ export default {
return [] return []
} }
return this.item.play_count > 0 return this.item.play_count > 0
? [{ key: 'dialog.track.mark-as-new', handler: this.mark_new }] ? [{ key: 'actions.mark-as-new', handler: this.mark_new }]
: [{ key: 'dialog.track.mark-as-played', handler: this.mark_played }] : [{ key: 'actions.mark-as-played', handler: this.mark_played }]
}, },
playable() { playable() {
return { return {

View File

@ -67,15 +67,11 @@ export default {
computed: { computed: {
actions() { actions() {
const actions = [ const actions = [
{ { key: 'actions.cancel', handler: this.cancel, icon: 'cancel' }
key: 'dialog.update.cancel',
handler: this.cancel,
icon: 'cancel'
}
] ]
if (!this.libraryStore.updating) { if (!this.libraryStore.updating) {
actions.push({ actions.push({
key: 'dialog.update.rescan', key: 'actions.rescan',
handler: this.analyse, handler: this.analyse,
icon: 'check' icon: 'check'
}) })

View File

@ -1,4 +1,28 @@
{ {
"actions": {
"add": "Hinzufügen",
"add-next": "Als nächstes hinzufügen",
"add-stream": "Stream hinzufügen",
"cancel": "Abbrechen",
"clear": "Alle entfernen",
"edit": "Bearbeiten",
"filter": "Filter",
"login": "Einloggen",
"logout": "Ausloggen",
"hide-previous": "Vorherige verbergen",
"mark-all-played": "Alle abgespielten markieren",
"mark-as-new": "Markiere als neu",
"mark-as-played": "Markiere als gespielt",
"pair": "Remote paaren",
"play": "Spielen",
"remove": "Entfernen",
"remove-podcast": "Entferne podcast",
"rescan": "Neu einlesen",
"save": "Speichern",
"send": "Senden",
"show-more": "Zeige mehr",
"shuffle": "Zufallswiedergabe"
},
"count": { "count": {
"albums": "{count} Album|{count} Album|{count} Alben", "albums": "{count} Album|{count} Album|{count} Alben",
"artists": "{count} Künstler", "artists": "{count} Künstler",
@ -23,70 +47,43 @@
"dialog": { "dialog": {
"add": { "add": {
"rss": { "rss": {
"add": "Hinzufügen",
"cancel": "Abbrechen",
"help": "Hinzufügen eines Podcasts führt zur Anlage einer RSS-Playlist, so kann OwnTone das Podcast-Abo verwalten.", "help": "Hinzufügen eines Podcasts führt zur Anlage einer RSS-Playlist, so kann OwnTone das Podcast-Abo verwalten.",
"placeholder": "https://url-to-rss", "placeholder": "https://url-to-rss",
"processing": "Verarbeite…", "processing": "Verarbeite…",
"title": "Podcast hinzufügen" "title": "Podcast hinzufügen"
}, },
"stream": { "stream": {
"add": "Hinzufügen",
"cancel": "Abbrechen",
"loading": "Lade…", "loading": "Lade…",
"placeholder": "https://url-to-stream", "placeholder": "https://url-to-stream",
"play": "Spielen",
"processing": "Verarbeite…", "processing": "Verarbeite…",
"title": "Stream hinzufügen" "title": "Stream hinzufügen"
} }
}, },
"album": {
"mark-as-played": "Markiere als gespielt",
"remove-podcast": "Entferne podcast"
},
"playable": {
"add-next": "Als nächstes hinzufügen",
"add": "Hinzufügen",
"play": "Spielen"
},
"playlist": { "playlist": {
"add-next": "Als nächstes hinzufügen",
"add": "Hinzufügen",
"play": "Spielen",
"save": { "save": {
"cancel": "Abbrechen",
"playlist-name": "Playlistname", "playlist-name": "Playlistname",
"save": "Speichern",
"saving": "Speichere…", "saving": "Speichere…",
"title": "Warteschlange als Playlist speichern" "title": "Warteschlange als Playlist speichern"
} }
}, },
"queue-item": { "queue-item": {
"play": "Spielen", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "Entfernen"
}, },
"remote-pairing": { "remote-pairing": {
"cancel": "Abbrechen",
"pair": "Remote paaren",
"pairing-code": "Pairing-Code", "pairing-code": "Pairing-Code",
"title": "Remote-Paarungs-Anfrage" "title": "Remote-Paarungs-Anfrage"
}, },
"track": { "track": {
"mark-as-new": "Markiere als neu",
"mark-as-played": "Markiere als gespielt",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"rating-value": "{rating} / 10" "rating-value": "{rating} / 10"
}, },
"update": { "update": {
"all": "Alles neu einlesen", "all": "Alles neu einlesen",
"cancel": "Abbrechen",
"feeds": "Nur RSS-Feeds neu einlesen", "feeds": "Nur RSS-Feeds neu einlesen",
"info": "Suche nach neuen, gelöschten und veränderten Dateien", "info": "Suche nach neuen, gelöschten und veränderten Dateien",
"local": "Nur lokale Bibliothek neu einlesen", "local": "Nur lokale Bibliothek neu einlesen",
"progress": "Bibliothek wird neu eingelesen…", "progress": "Bibliothek wird neu eingelesen…",
"rescan-metadata": "Metadata von unveränderten Dateien neu einlesen", "rescan-metadata": "Metadata von unveränderten Dateien neu einlesen",
"rescan": "Neu einlesen",
"spotify": "Nur Spotify neu einlesen", "spotify": "Nur Spotify neu einlesen",
"title": "Bibliothek neu einlesen" "title": "Bibliothek neu einlesen"
} }
@ -100,9 +97,7 @@
}, },
"list": { "list": {
"albums": { "albums": {
"info": "Diesen Podcast dauerhaft aus der Bibliothek löschen?{separator}(Damit wird auch die RSS-Playliste {name} gelöscht)", "info": "Diesen Podcast dauerhaft aus der Bibliothek löschen?{separator}(Damit wird auch die RSS-Playliste {name} gelöscht)"
"remove": "Entfernen",
"remove-podcast": "Entferne podcast"
}, },
"spotify": { "spotify": {
"not-playable-track": "Track kann nicht gespielt werden", "not-playable-track": "Track kann nicht gespielt werden",
@ -146,11 +141,7 @@
"update": "Neu einlesen", "update": "Neu einlesen",
"version": "Version {version}" "version": "Version {version}"
}, },
"album": {
"shuffle": "Zufallswiedergabe"
},
"albums": { "albums": {
"filter": "Filter",
"hide-singles-help": "Nach Aktivierung werden keine Singles und Alben angezeigt, die nur in Playlisten enthalten sind.", "hide-singles-help": "Nach Aktivierung werden keine Singles und Alben angezeigt, die nur in Playlisten enthalten sind.",
"hide-singles": "Nach Aktivierung werden keine Singles angezeigt", "hide-singles": "Nach Aktivierung werden keine Singles angezeigt",
"hide-spotify-help": "Nach Aktivierung werden keine Alben angezeigt, die nur in der Spotify-Bibliothek enthalten sind.", "hide-spotify-help": "Nach Aktivierung werden keine Alben angezeigt, die nur in der Spotify-Bibliothek enthalten sind.",
@ -166,10 +157,8 @@
} }
}, },
"artist": { "artist": {
"filter": "Filter",
"hide-spotify-help": "Nach Aktivierung wird kein Inhalt angezeigt, der nur in der Spotify-Bibliothek enthalten ist.", "hide-spotify-help": "Nach Aktivierung wird kein Inhalt angezeigt, der nur in der Spotify-Bibliothek enthalten ist.",
"hide-spotify": "Verbirgt Spotify-Inhalt", "hide-spotify": "Verbirgt Spotify-Inhalt",
"shuffle": "Zufallswiedergabe",
"sort": { "sort": {
"title": "Sortieren", "title": "Sortieren",
"name": "Name", "name": "Name",
@ -178,7 +167,6 @@
} }
}, },
"artists": { "artists": {
"filter": "Filter",
"sort": { "sort": {
"title": "Sortieren", "title": "Sortieren",
"name": "Namen", "name": "Namen",
@ -191,15 +179,9 @@
"title": "Künstler" "title": "Künstler"
}, },
"audiobooks": { "audiobooks": {
"album": {
"play": "Spielen"
},
"albums": { "albums": {
"title": "Hörbücher" "title": "Hörbücher"
}, },
"artist": {
"play": "Spielen"
},
"artists": { "artists": {
"title": "Autoren" "title": "Autoren"
}, },
@ -210,7 +192,6 @@
} }
}, },
"composer": { "composer": {
"shuffle": "Zufallswiedergabe",
"sort": { "sort": {
"title": "Sortieren", "title": "Sortieren",
"name": "Name", "name": "Name",
@ -221,11 +202,9 @@
"title": "Komponisten" "title": "Komponisten"
}, },
"files": { "files": {
"play": "Spielen",
"title": "Dateien" "title": "Dateien"
}, },
"genre": { "genre": {
"shuffle": "Zufallswiedergabe",
"sort": { "sort": {
"title": "Sortieren", "title": "Sortieren",
"name": "Name", "name": "Name",
@ -236,7 +215,6 @@
"title": "Genres" "title": "Genres"
}, },
"music": { "music": {
"show-more": "Zeige mehr",
"recently-added": { "recently-added": {
"title": "Kürzlich hinzugefügt" "title": "Kürzlich hinzugefügt"
}, },
@ -257,33 +235,18 @@
"live": "Live", "live": "Live",
"title": "Deine Playliste ist leer." "title": "Deine Playliste ist leer."
}, },
"playlist": {
"length": "{length} Tracks",
"shuffle": "Zufallswiedergabe"
},
"playlists": { "playlists": {
"title": "Playlisten" "title": "Playlisten"
}, },
"podcast": { "podcast": {
"cancel": "Abbrechen", "remove-info": "Diesen Podcast dauerhaft aus der Bibliothek löschen?{separator}(Damit wird auch die RSS-Playliste {name} gelöscht)"
"play": "Spielen",
"remove": "Entfernen",
"remove-info": "Diesen Podcast dauerhaft aus der Bibliothek löschen?{separator}(Damit wird auch die RSS-Playliste {name} gelöscht)",
"remove-podcast": "Entferne podcast"
}, },
"podcasts": { "podcasts": {
"add": "Hinzufügen",
"mark-all-played": "Alle abgespielten markieren",
"new-episodes": "Neue Episoden", "new-episodes": "Neue Episoden",
"title": "Podcasts", "title": "Podcasts",
"update": "Neu einlesen" "update": "Neu einlesen"
}, },
"queue": { "queue": {
"add-stream": "Stream hinzufügen",
"clear": "Alle entfernen",
"edit": "Bearbeiten",
"hide-previous": "Vorherige verbergen",
"save": "Speichern",
"title": "Warteschlange" "title": "Warteschlange"
}, },
"radio": { "radio": {
@ -329,7 +292,6 @@
"pairing-code": "Pairing-Code", "pairing-code": "Pairing-Code",
"pairing-request": "Remote-Pairing-Anfrage von ", "pairing-request": "Remote-Pairing-Anfrage von ",
"pairing": "Pairing Remote", "pairing": "Pairing Remote",
"send": "Senden",
"speaker-pairing-info": "Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird.", "speaker-pairing-info": "Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird.",
"speaker-pairing": "Lautsprecher-Pairing und Geräteverifikation", "speaker-pairing": "Lautsprecher-Pairing und Geräteverifikation",
"verification-code": "Verifikationscode", "verification-code": "Verifikationscode",
@ -374,8 +336,6 @@
"reauthorize": "Bitte den Zugriff der Web-API durch setzen folgender Zugriffsrechte für OwnTone: ", "reauthorize": "Bitte den Zugriff der Web-API durch setzen folgender Zugriffsrechte für OwnTone: ",
"title": "Spotify" "title": "Spotify"
}, },
"login": "Einloggen",
"logout": "Ausloggen",
"password": "Passwort", "password": "Passwort",
"username": "Benutzername" "username": "Benutzername"
}, },
@ -387,19 +347,9 @@
} }
}, },
"spotify": { "spotify": {
"album": {
"shuffle": "Zufallswiedergabe"
},
"artist": {
"shuffle": "Zufallswiedergabe"
},
"music": { "music": {
"featured-playlists": "Ausgezeichnete Playlisten", "featured-playlists": "Ausgezeichnete Playlisten",
"new-releases": "Neuvorstellung", "new-releases": "Neuvorstellung"
"show-more": "Zeige mehr"
},
"playlist": {
"shuffle": "Zufallswiedergabe"
}, },
"search": { "search": {
"albums": "Alben", "albums": "Alben",

View File

@ -1,4 +1,28 @@
{ {
"actions": {
"add": "Add",
"add-next": "Add Next",
"add-stream": "Add stream",
"cancel": "Cancel",
"clear": "Clear",
"edit": "Edit",
"filter": "Filter",
"login": "Login",
"logout": "Logout",
"hide-previous": "Hide previous",
"mark-all-played": "Mark All Played",
"mark-as-new": "Mark as new",
"mark-as-played": "Mark as played",
"pair": "Pair Remote",
"play": "Play",
"remove": "Remove",
"remove-podcast": "Remove podcast",
"rescan": "Rescan",
"save": "Save",
"send": "Send",
"show-more": "Show more",
"shuffle": "Shuffle"
},
"count": { "count": {
"albums": "{count} album|{count} album|{count} albums", "albums": "{count} album|{count} album|{count} albums",
"artists": "{count} artist|{count} artist|{count} artists", "artists": "{count} artist|{count} artist|{count} artists",
@ -23,70 +47,43 @@
"dialog": { "dialog": {
"add": { "add": {
"rss": { "rss": {
"add": "Add",
"cancel": "Cancel",
"help": "Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription.", "help": "Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription.",
"placeholder": "https://url-to-rss", "placeholder": "https://url-to-rss",
"processing": "Processing…", "processing": "Processing…",
"title": "Add podcast" "title": "Add podcast"
}, },
"stream": { "stream": {
"add": "Add",
"cancel": "Cancel",
"loading": "Loading…", "loading": "Loading…",
"placeholder": "https://url-to-stream", "placeholder": "https://url-to-stream",
"play": "Play",
"processing": "Processing…", "processing": "Processing…",
"title": "Add stream" "title": "Add stream"
} }
}, },
"album": {
"mark-as-played": "Mark as played",
"remove-podcast": "Remove podcast"
},
"playable": {
"add-next": "Add Next",
"add": "Add",
"play": "Play"
},
"playlist": { "playlist": {
"add-next": "Add Next",
"add": "Add",
"play": "Play",
"save": { "save": {
"cancel": "Cancel",
"playlist-name": "Playlist name", "playlist-name": "Playlist name",
"save": "Save",
"saving": "Saving…", "saving": "Saving…",
"title": "Save queue to playlist" "title": "Save queue to playlist"
} }
}, },
"queue-item": { "queue-item": {
"play": "Play", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} @:count.channels {'|'} {bitrate} kbit/s"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} @:count.channels {'|'} {bitrate} kbit/s",
"remove": "Remove"
}, },
"remote-pairing": { "remote-pairing": {
"cancel": "Cancel",
"pair": "Pair Remote",
"pairing-code": "Pairing code", "pairing-code": "Pairing code",
"title": "Remote pairing request" "title": "Remote pairing request"
}, },
"track": { "track": {
"mark-as-new": "Mark as new",
"mark-as-played": "Mark as played",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} @:count.channels {'|'} {bitrate} kbit/s", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} @:count.channels {'|'} {bitrate} kbit/s",
"rating-value": "{rating} / 10" "rating-value": "{rating} / 10"
}, },
"update": { "update": {
"all": "Update everything", "all": "Update everything",
"cancel": "Cancel",
"feeds": "Only update RSS feeds", "feeds": "Only update RSS feeds",
"info": "Scan for new, deleted and modified files", "info": "Scan for new, deleted and modified files",
"local": "Only update local library", "local": "Only update local library",
"progress": "Library update in progress…", "progress": "Library update in progress…",
"rescan-metadata": "Rescan metadata of unmodified files", "rescan-metadata": "Rescan metadata of unmodified files",
"rescan": "Rescan",
"spotify": "Only update Spotify", "spotify": "Only update Spotify",
"title": "Update library" "title": "Update library"
} }
@ -100,9 +97,7 @@
}, },
"list": { "list": {
"albums": { "albums": {
"info": "Permanently remove this podcast from your library?{separator}(This will also remove the RSS playlist {name})", "info": "Permanently remove this podcast from your library?{separator}(This will also remove the RSS playlist {name})"
"remove": "Remove",
"remove-podcast": "Remove podcast"
}, },
"spotify": { "spotify": {
"not-playable-track": "Track is not playable", "not-playable-track": "Track is not playable",
@ -146,11 +141,7 @@
"update": "Update", "update": "Update",
"version": "Version {version}" "version": "Version {version}"
}, },
"album": {
"shuffle": "Shuffle"
},
"albums": { "albums": {
"filter": "Filter",
"hide-singles-help": "If active, hides singles and albums with tracks that only appear in playlists.", "hide-singles-help": "If active, hides singles and albums with tracks that only appear in playlists.",
"hide-singles": "Hide singles", "hide-singles": "Hide singles",
"hide-spotify-help": "If active, hides albums that only appear in your Spotify library.", "hide-spotify-help": "If active, hides albums that only appear in your Spotify library.",
@ -166,10 +157,8 @@
} }
}, },
"artist": { "artist": {
"filter": "Filter",
"hide-spotify-help": "If active, hides the content only appearing in your Spotify library.", "hide-spotify-help": "If active, hides the content only appearing in your Spotify library.",
"hide-spotify": "Hide the content from Spotify", "hide-spotify": "Hide the content from Spotify",
"shuffle": "Shuffle",
"sort": { "sort": {
"title": "Sort", "title": "Sort",
"name": "Name", "name": "Name",
@ -178,7 +167,6 @@
} }
}, },
"artists": { "artists": {
"filter": "Filter",
"sort": { "sort": {
"title": "Sort", "title": "Sort",
"name": "Name", "name": "Name",
@ -191,15 +179,9 @@
"title": "Artists" "title": "Artists"
}, },
"audiobooks": { "audiobooks": {
"album": {
"play": "Play"
},
"albums": { "albums": {
"title": "Audiobooks" "title": "Audiobooks"
}, },
"artist": {
"play": "Play"
},
"artists": { "artists": {
"title": "Authors" "title": "Authors"
}, },
@ -210,7 +192,6 @@
} }
}, },
"composer": { "composer": {
"shuffle": "Shuffle",
"sort": { "sort": {
"title": "Sort", "title": "Sort",
"name": "Name", "name": "Name",
@ -221,11 +202,9 @@
"title": "Composers" "title": "Composers"
}, },
"files": { "files": {
"play": "Play",
"title": "Files" "title": "Files"
}, },
"genre": { "genre": {
"shuffle": "Shuffle",
"sort": { "sort": {
"title": "Sort", "title": "Sort",
"name": "Name", "name": "Name",
@ -236,7 +215,6 @@
"title": "Genres" "title": "Genres"
}, },
"music": { "music": {
"show-more": "Show more",
"recently-added": { "recently-added": {
"title": "Recently added" "title": "Recently added"
}, },
@ -257,33 +235,18 @@
"live": "Live", "live": "Live",
"title": "Your play queue is empty" "title": "Your play queue is empty"
}, },
"playlist": {
"length": "{length} tracks",
"shuffle": "Shuffle"
},
"playlists": { "playlists": {
"title": "Playlists" "title": "Playlists"
}, },
"podcast": { "podcast": {
"cancel": "Cancel", "remove-info": "Permanently remove this podcast from your library?{separator}(This will also remove the RSS playlist {name})"
"play": "Play",
"remove": "Remove",
"remove-info": "Permanently remove this podcast from your library?{separator}(This will also remove the RSS playlist {name})",
"remove-podcast": "Remove podcast"
}, },
"podcasts": { "podcasts": {
"add": "Add",
"mark-all-played": "Mark All Played",
"new-episodes": "New Episodes", "new-episodes": "New Episodes",
"title": "Podcasts", "title": "Podcasts",
"update": "Update" "update": "Update"
}, },
"queue": { "queue": {
"add-stream": "Add stream",
"clear": "Clear",
"edit": "Edit",
"hide-previous": "Hide previous",
"save": "Save",
"title": "Queue" "title": "Queue"
}, },
"radio": { "radio": {
@ -329,7 +292,6 @@
"pairing-code": "Pairing code", "pairing-code": "Pairing code",
"pairing-request": "Remote pairing request from ", "pairing-request": "Remote pairing request from ",
"pairing": "Remote Pairing", "pairing": "Remote Pairing",
"send": "Send",
"speaker-pairing-info": "If your speaker requires pairing then activate it below and enter the PIN that it displays.", "speaker-pairing-info": "If your speaker requires pairing then activate it below and enter the PIN that it displays.",
"speaker-pairing": "Speaker pairing and device verification", "speaker-pairing": "Speaker pairing and device verification",
"verification-code": "Verification code", "verification-code": "Verification code",
@ -374,8 +336,6 @@
"reauthorize": "Please reauthorize Web API access to grant OwnTone the following additional access rights: ", "reauthorize": "Please reauthorize Web API access to grant OwnTone the following additional access rights: ",
"title": "Spotify" "title": "Spotify"
}, },
"login": "Login",
"logout": "Logout",
"password": "Password", "password": "Password",
"username": "Username" "username": "Username"
}, },
@ -387,19 +347,9 @@
} }
}, },
"spotify": { "spotify": {
"album": {
"shuffle": "Shuffle"
},
"artist": {
"shuffle": "Shuffle"
},
"music": { "music": {
"featured-playlists": "Featured Playlists", "featured-playlists": "Featured Playlists",
"new-releases": "New Releases", "new-releases": "New Releases"
"show-more": "Show More"
},
"playlist": {
"shuffle": "Shuffle"
}, },
"search": { "search": {
"albums": "Albums", "albums": "Albums",

View File

@ -1,4 +1,28 @@
{ {
"actions": {
"add": "Ajouter",
"add-next": "Ajouter ensuite",
"add-stream": "Ajouter un flux",
"cancel": "Annuler",
"clear": "Effacer",
"edit": "Éditer",
"filter": "Filtrer",
"login": "Se connecter",
"logout": "Se déconnecter",
"hide-previous": "Masquer lhistorique",
"mark-all-played": "Marquer comme lus",
"mark-as-new": "Marquer comme nouveau",
"mark-as-played": "Marquer comme lu",
"pair": "Jumeler la télécommande",
"play": "Lire",
"remove": "Supprimer",
"remove-podcast": "Supprimer le podcast",
"rescan": "Analyser",
"save": "Enregistrer",
"send": "Envoyer",
"show-more": "Afficher plus",
"shuffle": "Lecture aléatoire"
},
"count": { "count": {
"albums": "{count} album|{count} album|{count} albums", "albums": "{count} album|{count} album|{count} albums",
"artists": "{count} artiste|{count} artiste|{count} artistes", "artists": "{count} artiste|{count} artiste|{count} artistes",
@ -23,70 +47,43 @@
"dialog": { "dialog": {
"add": { "add": {
"rss": { "rss": {
"add": "Ajouter",
"cancel": "Annuler",
"help": "Lajout dun podcast inclut la création dune liste de lecture RSS, qui permettra à OwnTone de gérer labonnement au podcast.", "help": "Lajout dun podcast inclut la création dune liste de lecture RSS, qui permettra à OwnTone de gérer labonnement au podcast.",
"placeholder": "https://url-du-flux-rss", "placeholder": "https://url-du-flux-rss",
"processing": "Traitement en cours…", "processing": "Traitement en cours…",
"title": "Ajouter un podcast" "title": "Ajouter un podcast"
}, },
"stream": { "stream": {
"add": "Ajouter",
"cancel": "Annuler",
"loading": "Chargement…", "loading": "Chargement…",
"placeholder": "https://url-du-flux", "placeholder": "https://url-du-flux",
"play": "Lire",
"processing": "Traitement en cours…", "processing": "Traitement en cours…",
"title": "Ajouter un flux" "title": "Ajouter un flux"
} }
}, },
"album": {
"mark-as-played": "Marquer comme lu",
"remove-podcast": "Supprimer le podcast"
},
"playable": {
"add-next": "Ajouter ensuite",
"add": "Ajouter",
"play": "Lire"
},
"playlist": { "playlist": {
"add-next": "Ajouter ensuite",
"add": "Ajouter",
"play": "Lire",
"save": { "save": {
"cancel": "Annuler",
"playlist-name": "Nom de la liste de lecture", "playlist-name": "Nom de la liste de lecture",
"save": "Enregistrer",
"saving": "Enregistrement en cours…", "saving": "Enregistrement en cours…",
"title": "Enregistrer la file dattente dans une liste de lecture" "title": "Enregistrer la file dattente dans une liste de lecture"
} }
}, },
"queue-item": { "queue-item": {
"play": "Lire", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "Supprimer"
}, },
"remote-pairing": { "remote-pairing": {
"cancel": "Annuler",
"pair": "Jumeler la télécommande",
"pairing-code": "Code de jumelage", "pairing-code": "Code de jumelage",
"title": "Demande de jumelage de télécommande" "title": "Demande de jumelage de télécommande"
}, },
"track": { "track": {
"mark-as-new": "Marquer comme nouveau",
"mark-as-played": "Marquer comme lu",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"rating-value": "{rating} / 10" "rating-value": "{rating} / 10"
}, },
"update": { "update": {
"all": "Tout actualiser", "all": "Tout actualiser",
"cancel": "Annuler",
"feeds": "Actualiser uniquement les flux RSS", "feeds": "Actualiser uniquement les flux RSS",
"info": "Recherche les fichiers ajoutés, supprimés et modifiés", "info": "Recherche les fichiers ajoutés, supprimés et modifiés",
"local": "Actualiser uniquement la bibliothèque locale", "local": "Actualiser uniquement la bibliothèque locale",
"progress": "Actualisation de la bibliothèque en cours…", "progress": "Actualisation de la bibliothèque en cours…",
"rescan-metadata": "Analyser les métadonnées des fichiers non modifiés", "rescan-metadata": "Analyser les métadonnées des fichiers non modifiés",
"rescan": "Analyser",
"spotify": "Actualiser uniquement Spotify", "spotify": "Actualiser uniquement Spotify",
"title": "Actualiser la bibliothèque" "title": "Actualiser la bibliothèque"
} }
@ -100,9 +97,7 @@
}, },
"list": { "list": {
"albums": { "albums": {
"info": "Supprimer définitivement ce podcast de votre bibliothèque ?{separator}(Cela supprimera également la liste de lecture RSS {name})", "info": "Supprimer définitivement ce podcast de votre bibliothèque ?{separator}(Cela supprimera également la liste de lecture RSS {name})"
"remove": "Supprimer",
"remove-podcast": "Supprimer le podcast"
}, },
"spotify": { "spotify": {
"not-playable-track": "La piste ne peut pas être lue", "not-playable-track": "La piste ne peut pas être lue",
@ -146,11 +141,7 @@
"update": "Actualiser", "update": "Actualiser",
"version": "Version {version}" "version": "Version {version}"
}, },
"album": {
"shuffle": "Lecture aléatoire"
},
"albums": { "albums": {
"filter": "Filtrer",
"hide-singles-help": "Si actif, masque les singles et les albums dont les pistes napparaissent que dans les listes de lecture.", "hide-singles-help": "Si actif, masque les singles et les albums dont les pistes napparaissent que dans les listes de lecture.",
"hide-singles": "Masquer les singles", "hide-singles": "Masquer les singles",
"hide-spotify-help": "Si actif, masque les albums qui napparaissent que dans votre bibliothèque Spotify.", "hide-spotify-help": "Si actif, masque les albums qui napparaissent que dans votre bibliothèque Spotify.",
@ -166,10 +157,8 @@
} }
}, },
"artist": { "artist": {
"filter": "Filtrer",
"hide-spotify-help": "Si actif, masque le contenu qui napparaît que dans votre bibliothèque Spotify.", "hide-spotify-help": "Si actif, masque le contenu qui napparaît que dans votre bibliothèque Spotify.",
"hide-spotify": "Masquer le contenu de Spotify", "hide-spotify": "Masquer le contenu de Spotify",
"shuffle": "Lecture aléatoire",
"sort": { "sort": {
"title": "Trier", "title": "Trier",
"name": "Nom", "name": "Nom",
@ -178,7 +167,6 @@
} }
}, },
"artists": { "artists": {
"filter": "Filtrer",
"sort": { "sort": {
"title": "Trier", "title": "Trier",
"name": "Nom", "name": "Nom",
@ -191,15 +179,9 @@
"title": "Artistes" "title": "Artistes"
}, },
"audiobooks": { "audiobooks": {
"album": {
"play": "Lire"
},
"albums": { "albums": {
"title": "Livres audio" "title": "Livres audio"
}, },
"artist": {
"play": "Lire"
},
"artists": { "artists": {
"title": "Auteurs" "title": "Auteurs"
}, },
@ -210,7 +192,6 @@
} }
}, },
"composer": { "composer": {
"shuffle": "Lecture aléatoire",
"sort": { "sort": {
"title": "Trier", "title": "Trier",
"name": "Nom", "name": "Nom",
@ -221,11 +202,9 @@
"title": "Compositeurs" "title": "Compositeurs"
}, },
"files": { "files": {
"play": "Lire",
"title": "Fichiers" "title": "Fichiers"
}, },
"genre": { "genre": {
"shuffle": "Lecture aléatoire",
"sort": { "sort": {
"title": "Trier", "title": "Trier",
"name": "Nom", "name": "Nom",
@ -236,7 +215,6 @@
"title": "Genres" "title": "Genres"
}, },
"music": { "music": {
"show-more": "Afficher plus",
"recently-added": { "recently-added": {
"title": "Ajouts récents" "title": "Ajouts récents"
}, },
@ -257,33 +235,18 @@
"live": "En direct", "live": "En direct",
"title": "La file dattente est vide" "title": "La file dattente est vide"
}, },
"playlist": {
"length": "{length} pistes",
"shuffle": "Lecture aléatoire"
},
"playlists": { "playlists": {
"title": "Listes de lecture" "title": "Listes de lecture"
}, },
"podcast": { "podcast": {
"cancel": "Annuler", "remove-info": "Supprimer ce podcast de manière permanente de la bibliothèque ?{separator}(Cela supprimera également la liste de lecture RSS {name})"
"play": "Lire",
"remove": "Supprimer",
"remove-info": "Supprimer ce podcast de manière permanente de la bibliothèque ?{separator}(Cela supprimera également la liste de lecture RSS {name})",
"remove-podcast": "Supprimer le podcast"
}, },
"podcasts": { "podcasts": {
"add": "Ajouter",
"mark-all-played": "Marquer comme lus",
"new-episodes": "Nouveaux épisodes", "new-episodes": "Nouveaux épisodes",
"title": "Podcasts", "title": "Podcasts",
"update": "Actualiser" "update": "Actualiser"
}, },
"queue": { "queue": {
"add-stream": "Ajouter un flux",
"clear": "Effacer",
"edit": "Éditer",
"hide-previous": "Masquer lhistorique",
"save": "Enregistrer",
"title": "File dattente" "title": "File dattente"
}, },
"radio": { "radio": {
@ -329,7 +292,6 @@
"pairing-code": "Code de jumelage", "pairing-code": "Code de jumelage",
"pairing-request": "Demande de jumelage de télécommande ", "pairing-request": "Demande de jumelage de télécommande ",
"pairing": "Jumelage de télécommande", "pairing": "Jumelage de télécommande",
"send": "Envoyer",
"speaker-pairing-info": "Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN quelle affiche.", "speaker-pairing-info": "Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN quelle affiche.",
"speaker-pairing": "Jumelage denceinte et vérification dappareil", "speaker-pairing": "Jumelage denceinte et vérification dappareil",
"verification-code": "Code de vérification", "verification-code": "Code de vérification",
@ -374,8 +336,6 @@
"reauthorize": "Veuillez autoriser à nouveau laccès à lAPI pour accorder à OwnTone les droits daccès supplémentaires suivants :", "reauthorize": "Veuillez autoriser à nouveau laccès à lAPI pour accorder à OwnTone les droits daccès supplémentaires suivants :",
"title": "Spotify" "title": "Spotify"
}, },
"login": "Se connecter",
"logout": "Se déconnecter",
"password": "Mot de passe", "password": "Mot de passe",
"username": "Nom dutilisateur" "username": "Nom dutilisateur"
}, },
@ -387,19 +347,9 @@
} }
}, },
"spotify": { "spotify": {
"album": {
"shuffle": "Lecture aléatoire"
},
"artist": {
"shuffle": "Lecture aléatoire"
},
"music": { "music": {
"featured-playlists": "Listes de lecture en vedette", "featured-playlists": "Listes de lecture en vedette",
"new-releases": "Nouvelle sorties", "new-releases": "Nouvelle sorties"
"show-more": "Afficher plus"
},
"playlist": {
"shuffle": "Lecture aléatoire"
}, },
"search": { "search": {
"albums": "Albums", "albums": "Albums",

View File

@ -1,4 +1,28 @@
{ {
"actions": {
"add": "添加",
"add-next": "插播",
"add-stream": "添加流",
"cancel": "取消",
"clear": "清除",
"edit": "编辑",
"filter": "筛选",
"login": "登入",
"logout": "退出",
"hide-previous": "隐藏历史",
"mark-all-played": "全部标记为已播放",
"mark-as-new": "标记为最新",
"mark-as-played": "标记为已播放",
"pair": "遥控配对",
"play": "播放",
"remove": "移除",
"remove-podcast": "移除播客",
"rescan": "重新扫描",
"save": "保存",
"send": "发送",
"show-more": "显示更多",
"shuffle": "随机播放"
},
"count": { "count": {
"albums": "{count} 张专辑|{count} 张专辑", "albums": "{count} 张专辑|{count} 张专辑",
"artists": "{count} 位艺人|{count} 位艺人", "artists": "{count} 位艺人|{count} 位艺人",
@ -23,70 +47,43 @@
"dialog": { "dialog": {
"add": { "add": {
"rss": { "rss": {
"add": "添加",
"cancel": "取消",
"help": "添加一个可生成播放列表的播客RSS链接这将允许OwnTone管理订阅", "help": "添加一个可生成播放列表的播客RSS链接这将允许OwnTone管理订阅",
"placeholder": "https://url-to-rss", "placeholder": "https://url-to-rss",
"processing": "处理中…", "processing": "处理中…",
"title": "添加播客" "title": "添加播客"
}, },
"stream": { "stream": {
"add": "添加",
"cancel": "取消",
"loading": "加载中…", "loading": "加载中…",
"placeholder": "https://url-to-stream", "placeholder": "https://url-to-stream",
"play": "播放",
"processing": "处理中…", "processing": "处理中…",
"title": "添加流" "title": "添加流"
} }
}, },
"album": {
"mark-as-played": "标记为已播",
"remove-podcast": "移除播客"
},
"playable": {
"add-next": "插播",
"add": "添加",
"play": "播放"
},
"playlist": { "playlist": {
"add-next": "插播",
"add": "添加",
"play": "播放",
"save": { "save": {
"cancel": "取消",
"playlist-name": "播放列表名称", "playlist-name": "播放列表名称",
"save": "保存",
"saving": "保存中…", "saving": "保存中…",
"title": "保存播放清单到列表" "title": "保存播放清单到列表"
} }
}, },
"queue-item": { "queue-item": {
"play": "播放", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "移除"
}, },
"remote-pairing": { "remote-pairing": {
"cancel": "取消",
"pair": "遥控配对",
"pairing-code": "配对码", "pairing-code": "配对码",
"title": "请求遥控配对" "title": "请求遥控配对"
}, },
"track": { "track": {
"mark-as-new": "标记为最新",
"mark-as-played": "标记为已播放",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"rating-value": "{rating} / 10" "rating-value": "{rating} / 10"
}, },
"update": { "update": {
"all": "更新所有内容", "all": "更新所有内容",
"cancel": "取消",
"feeds": "仅更新RSS订阅内容", "feeds": "仅更新RSS订阅内容",
"info": "扫描新的、删除的和修改的文件", "info": "扫描新的、删除的和修改的文件",
"local": "仅更新本地资料库", "local": "仅更新本地资料库",
"progress": "正在更新本地资料库…", "progress": "正在更新本地资料库…",
"rescan-metadata": "重新扫描未修改文件的元数据", "rescan-metadata": "重新扫描未修改文件的元数据",
"rescan": "重新扫描",
"spotify": "仅更新Spotify", "spotify": "仅更新Spotify",
"title": "更新资料库" "title": "更新资料库"
} }
@ -100,9 +97,7 @@
}, },
"list": { "list": {
"albums": { "albums": {
"info": "从资料库中永久移除该播客吗?{separator}(这也将移除RSS播放列表 {name})", "info": "从资料库中永久移除该播客吗?{separator}(这也将移除RSS播放列表 {name})"
"remove": "移除",
"remove-podcast": "移除播客"
}, },
"spotify": { "spotify": {
"not-playable-track": "曲目无法播放", "not-playable-track": "曲目无法播放",
@ -146,11 +141,7 @@
"update": "更新", "update": "更新",
"version": "版本 {version}" "version": "版本 {version}"
}, },
"album": {
"shuffle": "随机播放"
},
"albums": { "albums": {
"filter": "筛选",
"hide-singles-help": "如果激活,将隐藏仅在播放列表出现的单曲和专辑", "hide-singles-help": "如果激活,将隐藏仅在播放列表出现的单曲和专辑",
"hide-singles": "隐藏单曲", "hide-singles": "隐藏单曲",
"hide-spotify-help": "如果激活将隐藏仅在Spotify资料库出现的专辑", "hide-spotify-help": "如果激活将隐藏仅在Spotify资料库出现的专辑",
@ -166,10 +157,8 @@
} }
}, },
"artist": { "artist": {
"filter": "筛选",
"hide-spotify-help": "如果激活将隐藏只出现在Spotify库中的内容", "hide-spotify-help": "如果激活将隐藏只出现在Spotify库中的内容",
"hide-spotify": "隐藏来自Spotify的内容", "hide-spotify": "隐藏来自Spotify的内容",
"shuffle": "随机播放",
"sort": { "sort": {
"title": "分类", "title": "分类",
"name": "名称", "name": "名称",
@ -178,7 +167,6 @@
} }
}, },
"artists": { "artists": {
"filter": "筛选",
"sort": { "sort": {
"title": "分类", "title": "分类",
"name": "名称", "name": "名称",
@ -191,15 +179,9 @@
"title": "艺人" "title": "艺人"
}, },
"audiobooks": { "audiobooks": {
"album": {
"play": "播放"
},
"albums": { "albums": {
"title": "有声读物" "title": "有声读物"
}, },
"artist": {
"play": "播放"
},
"artists": { "artists": {
"title": "作者" "title": "作者"
}, },
@ -210,7 +192,6 @@
} }
}, },
"composer": { "composer": {
"shuffle": "随机播放",
"sort": { "sort": {
"title": "分类", "title": "分类",
"name": "名称", "name": "名称",
@ -221,11 +202,9 @@
"title": "作曲家" "title": "作曲家"
}, },
"files": { "files": {
"play": "播放",
"title": "文件" "title": "文件"
}, },
"genre": { "genre": {
"shuffle": "随机播放",
"sort": { "sort": {
"title": "分类", "title": "分类",
"name": "名称", "name": "名称",
@ -236,7 +215,6 @@
"title": "流派" "title": "流派"
}, },
"music": { "music": {
"show-more": "显示更多",
"recently-added": { "recently-added": {
"title": "最近添加" "title": "最近添加"
}, },
@ -257,33 +235,18 @@
"live": "直播", "live": "直播",
"title": "播放清单是空的" "title": "播放清单是空的"
}, },
"playlist": {
"length": "{length} 曲目",
"shuffle": "随机播放"
},
"playlists": { "playlists": {
"title": "播放列表" "title": "播放列表"
}, },
"podcast": { "podcast": {
"cancel": "取消", "remove-info": "从资料库中永久移除该播客?{separator}(这也将移除该播客RSS列表 {name})"
"play": "播放",
"remove": "移除",
"remove-info": "从资料库中永久移除该播客?{separator}(这也将移除该播客RSS列表 {name})",
"remove-podcast": "移除播客"
}, },
"podcasts": { "podcasts": {
"add": "添加",
"mark-all-played": "全部标记为已播放",
"new-episodes": "最新单集", "new-episodes": "最新单集",
"title": "播客", "title": "播客",
"update": "更新" "update": "更新"
}, },
"queue": { "queue": {
"add-stream": "添加流",
"clear": "清除",
"edit": "编辑",
"hide-previous": "隐藏历史",
"save": "保存",
"title": "清单" "title": "清单"
}, },
"radio": { "radio": {
@ -329,7 +292,6 @@
"pairing-code": "配对代码", "pairing-code": "配对代码",
"pairing-request": "远程配对请求来自于 ", "pairing-request": "远程配对请求来自于 ",
"pairing": "遥控配对", "pairing": "遥控配对",
"send": "发送",
"speaker-pairing-info": "如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活", "speaker-pairing-info": "如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活",
"speaker-pairing": "扬声器配对和设备验证", "speaker-pairing": "扬声器配对和设备验证",
"verification-code": "验证码", "verification-code": "验证码",
@ -374,8 +336,6 @@
"reauthorize": "请重新授权 Web API 访问权限,以授予 OwnTone 以下附加访问权限:", "reauthorize": "请重新授权 Web API 访问权限,以授予 OwnTone 以下附加访问权限:",
"title": "Spotify" "title": "Spotify"
}, },
"login": "登入",
"logout": "退出",
"password": "密码", "password": "密码",
"username": "用户名" "username": "用户名"
}, },
@ -387,19 +347,9 @@
} }
}, },
"spotify": { "spotify": {
"album": {
"shuffle": "随机播放"
},
"artist": {
"shuffle": "随机播放"
},
"music": { "music": {
"featured-playlists": "特色列表", "featured-playlists": "特色列表",
"new-releases": "最新发行", "new-releases": "最新发行"
"show-more": "显示更多"
},
"playlist": {
"shuffle": "随机播放"
}, },
"search": { "search": {
"albums": "专辑", "albums": "专辑",

View File

@ -1,4 +1,28 @@
{ {
"actions": {
"add": "新增",
"add-next": "插播",
"add-stream": "新增串流",
"cancel": "取消",
"clear": "清除",
"edit": "編輯",
"filter": "篩選",
"login": "登入",
"logout": "退出",
"hide-previous": "隱藏歷史",
"mark-all-played": "全部標記為已播放",
"mark-as-new": "標記為最新",
"mark-as-played": "標記為已播放",
"pair": "遙控配對",
"play": "播放",
"remove": "移除",
"remove-podcast": "移除Podcast",
"rescan": "重新掃描",
"save": "儲存",
"send": "發送",
"show-more": "顯示更多",
"shuffle": "隨機播放"
},
"count": { "count": {
"albums": "{count} 張專輯|{count} 張專輯", "albums": "{count} 張專輯|{count} 張專輯",
"artists": "{count} 位藝人|{count} 位藝人", "artists": "{count} 位藝人|{count} 位藝人",
@ -23,70 +47,43 @@
"dialog": { "dialog": {
"add": { "add": {
"rss": { "rss": {
"add": "新增",
"cancel": "取消",
"help": "新增一個可生成播放列表的Podcast RSS鏈接這將允許OwnTone管理訂閱", "help": "新增一個可生成播放列表的Podcast RSS鏈接這將允許OwnTone管理訂閱",
"placeholder": "https://url-to-rss", "placeholder": "https://url-to-rss",
"processing": "處理中…", "processing": "處理中…",
"title": "新增Podcast" "title": "新增Podcast"
}, },
"stream": { "stream": {
"add": "新增",
"cancel": "取消",
"loading": "載入中…", "loading": "載入中…",
"placeholder": "https://url-to-stream", "placeholder": "https://url-to-stream",
"play": "播放",
"processing": "處理中…", "processing": "處理中…",
"title": "新增串流" "title": "新增串流"
} }
}, },
"album": {
"mark-as-played": "標記為已播",
"remove-podcast": "移除Podcast"
},
"playable": {
"add-next": "插播",
"add": "新增",
"play": "播放"
},
"playlist": { "playlist": {
"add-next": "插播",
"add": "新增",
"play": "播放",
"save": { "save": {
"cancel": "取消",
"playlist-name": "播放列表名稱", "playlist-name": "播放列表名稱",
"save": "儲存",
"saving": "儲存中…", "saving": "儲存中…",
"title": "儲存播放清單到列表" "title": "儲存播放清單到列表"
} }
}, },
"queue-item": { "queue-item": {
"play": "播放", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "移除"
}, },
"remote-pairing": { "remote-pairing": {
"cancel": "取消",
"pair": "遙控配對",
"pairing-code": "配對碼", "pairing-code": "配對碼",
"title": "請求遙控配對" "title": "請求遙控配對"
}, },
"track": { "track": {
"mark-as-new": "標記為最新",
"mark-as-played": "標記為已播放",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s", "quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"rating-value": "{rating} / 10" "rating-value": "{rating} / 10"
}, },
"update": { "update": {
"all": "更新所有內容", "all": "更新所有內容",
"cancel": "取消",
"feeds": "僅更新RSS訂閱內容", "feeds": "僅更新RSS訂閱內容",
"info": "掃描新的、刪除的和修改的文件", "info": "掃描新的、刪除的和修改的文件",
"local": "僅更新本地資料庫", "local": "僅更新本地資料庫",
"progress": "正在更新本地資料庫…", "progress": "正在更新本地資料庫…",
"rescan-metadata": "重新掃描未修改文件的中繼資料", "rescan-metadata": "重新掃描未修改文件的中繼資料",
"rescan": "重新掃描",
"spotify": "僅更新Spotify", "spotify": "僅更新Spotify",
"title": "更新資料庫" "title": "更新資料庫"
} }
@ -100,9 +97,7 @@
}, },
"list": { "list": {
"albums": { "albums": {
"info": "從資料庫中永久移除該Podcast嗎{separator}(這也將移除RSS播放列表 {name})", "info": "從資料庫中永久移除該Podcast嗎{separator}(這也將移除RSS播放列表 {name})"
"remove": "移除",
"remove-podcast": "移除Podcast"
}, },
"spotify": { "spotify": {
"not-playable-track": "曲目無法播放", "not-playable-track": "曲目無法播放",
@ -146,11 +141,7 @@
"update": "更新", "update": "更新",
"version": "版本 {version}" "version": "版本 {version}"
}, },
"album": {
"shuffle": "隨機播放"
},
"albums": { "albums": {
"filter": "篩選",
"hide-singles-help": "如果啓用,將隱藏僅在播放列表出現的單曲和專輯", "hide-singles-help": "如果啓用,將隱藏僅在播放列表出現的單曲和專輯",
"hide-singles": "隱藏單曲", "hide-singles": "隱藏單曲",
"hide-spotify-help": "如果啓用將隱藏僅在Spotify資料庫出現的專輯", "hide-spotify-help": "如果啓用將隱藏僅在Spotify資料庫出現的專輯",
@ -166,10 +157,8 @@
} }
}, },
"artist": { "artist": {
"filter": "篩選",
"hide-spotify-help": "如果啓用將隱藏只出現在Spotify庫中的內容", "hide-spotify-help": "如果啓用將隱藏只出現在Spotify庫中的內容",
"hide-spotify": "隱藏來自Spotify的內容", "hide-spotify": "隱藏來自Spotify的內容",
"shuffle": "隨機播放",
"sort": { "sort": {
"title": "分類", "title": "分類",
"name": "名稱", "name": "名稱",
@ -178,7 +167,6 @@
} }
}, },
"artists": { "artists": {
"filter": "篩選",
"sort": { "sort": {
"title": "分類", "title": "分類",
"name": "名稱", "name": "名稱",
@ -191,15 +179,9 @@
"title": "藝人" "title": "藝人"
}, },
"audiobooks": { "audiobooks": {
"album": {
"play": "播放"
},
"albums": { "albums": {
"title": "有聲書" "title": "有聲書"
}, },
"artist": {
"play": "播放"
},
"artists": { "artists": {
"title": "作者" "title": "作者"
}, },
@ -210,7 +192,6 @@
} }
}, },
"composer": { "composer": {
"shuffle": "隨機播放",
"sort": { "sort": {
"title": "分類", "title": "分類",
"name": "名稱", "name": "名稱",
@ -221,11 +202,9 @@
"title": "作曲家" "title": "作曲家"
}, },
"files": { "files": {
"play": "播放",
"title": "文件" "title": "文件"
}, },
"genre": { "genre": {
"shuffle": "隨機播放",
"sort": { "sort": {
"title": "分類", "title": "分類",
"name": "名稱", "name": "名稱",
@ -236,7 +215,6 @@
"title": "音樂類型" "title": "音樂類型"
}, },
"music": { "music": {
"show-more": "顯示更多",
"recently-added": { "recently-added": {
"title": "最近新增" "title": "最近新增"
}, },
@ -257,33 +235,18 @@
"live": "直播", "live": "直播",
"title": "播放清單是空的" "title": "播放清單是空的"
}, },
"playlist": {
"length": "{length} 曲目",
"shuffle": "隨機播放"
},
"playlists": { "playlists": {
"title": "播放列表" "title": "播放列表"
}, },
"podcast": { "podcast": {
"cancel": "取消", "remove-info": "從資料庫中永久移除該Podcast{separator}(這也將移除該PodcastRSS列表 {name})"
"play": "播放",
"remove": "移除",
"remove-info": "從資料庫中永久移除該Podcast{separator}(這也將移除該PodcastRSS列表 {name})",
"remove-podcast": "移除Podcast"
}, },
"podcasts": { "podcasts": {
"add": "新增",
"mark-all-played": "全部標記為已播放",
"new-episodes": "最新單集", "new-episodes": "最新單集",
"title": "Podcast", "title": "Podcast",
"update": "更新" "update": "更新"
}, },
"queue": { "queue": {
"add-stream": "新增串流",
"clear": "清除",
"edit": "編輯",
"hide-previous": "隱藏歷史",
"save": "儲存",
"title": "清單" "title": "清單"
}, },
"radio": { "radio": {
@ -329,7 +292,6 @@
"pairing-code": "配對代碼", "pairing-code": "配對代碼",
"pairing-request": "遠程配對請求來自於 ", "pairing-request": "遠程配對請求來自於 ",
"pairing": "遙控配對", "pairing": "遙控配對",
"send": "發送",
"speaker-pairing-info": "如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用", "speaker-pairing-info": "如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用",
"speaker-pairing": "揚聲器配對和設備驗證", "speaker-pairing": "揚聲器配對和設備驗證",
"verification-code": "驗證碼", "verification-code": "驗證碼",
@ -374,8 +336,6 @@
"reauthorize": "請重新授權 Web API 訪問權限,以授予 OwnTone 以下附加訪問權限:", "reauthorize": "請重新授權 Web API 訪問權限,以授予 OwnTone 以下附加訪問權限:",
"title": "Spotify" "title": "Spotify"
}, },
"login": "登入",
"logout": "退出",
"password": "密碼", "password": "密碼",
"username": "用戶名" "username": "用戶名"
}, },
@ -387,19 +347,9 @@
} }
}, },
"spotify": { "spotify": {
"album": {
"shuffle": "隨機播放"
},
"artist": {
"shuffle": "隨機播放"
},
"music": { "music": {
"featured-playlists": "特色列表", "featured-playlists": "特色列表",
"new-releases": "最新發行", "new-releases": "最新發行"
"show-more": "顯示更多"
},
"playlist": {
"shuffle": "隨機播放"
}, },
"search": { "search": {
"albums": "專輯", "albums": "專輯",

View File

@ -12,11 +12,7 @@
/> />
<div class="buttons is-centered-mobile mt-5"> <div class="buttons is-centered-mobile mt-5">
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.album.shuffle'
}"
/> />
<control-button <control-button
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"

View File

@ -12,11 +12,7 @@
/> />
<div class="buttons is-centered-mobile mt-5"> <div class="buttons is-centered-mobile mt-5">
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.spotify.album.shuffle'
}"
/> />
<control-button <control-button
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"

View File

@ -40,11 +40,7 @@
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"
/> />
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.artist.shuffle'
}"
/> />
</template> </template>
<template #content> <template #content>

View File

@ -9,11 +9,7 @@
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"
/> />
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.spotify.artist.shuffle'
}"
/> />
</template> </template>
<template #content> <template #content>

View File

@ -41,11 +41,7 @@
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"
/> />
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.artist.shuffle'
}"
/> />
</template> </template>
<template #content> <template #content>

View File

@ -9,7 +9,7 @@
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"
/> />
<control-button <control-button
:button="{ handler: play, icon: 'play', key: 'page.files.play' }" :button="{ handler: play, icon: 'play', key: 'actions.play' }"
/> />
</template> </template>
<template #content> <template #content>

View File

@ -12,11 +12,7 @@
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"
/> />
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.genre.shuffle'
}"
/> />
</template> </template>
<template #content> <template #content>

View File

@ -24,11 +24,7 @@
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"
/> />
<control-button <control-button
:button="{ :button="{ handler: play, icon: 'shuffle', key: 'actions.shuffle' }"
handler: play,
icon: 'shuffle',
key: 'page.genre.shuffle'
}"
/> />
</template> </template>
<template #content> <template #content>

View File

@ -12,7 +12,7 @@
:button="{ :button="{
handler: play, handler: play,
icon: 'shuffle', icon: 'shuffle',
key: 'page.playlist.shuffle' key: 'actions.shuffle'
}" }"
:disabled="tracks.count === 0" :disabled="tracks.count === 0"
/> />

View File

@ -12,7 +12,7 @@
:button="{ :button="{
handler: play, handler: play,
icon: 'shuffle', icon: 'shuffle',
key: 'page.spotify.playlist.shuffle' key: 'actions.shuffle'
}" }"
:disabled="playlist.tracks.total === 0" :disabled="playlist.tracks.total === 0"
/> />

View File

@ -12,7 +12,7 @@
/> />
<div class="buttons is-centered-mobile mt-5"> <div class="buttons is-centered-mobile mt-5">
<control-button <control-button
:button="{ handler: play, icon: 'play', key: 'page.podcast.play' }" :button="{ handler: play, icon: 'play', key: 'actions.play' }"
/> />
<control-button <control-button
:button="{ handler: showDetails, icon: 'dots-horizontal' }" :button="{ handler: showDetails, icon: 'dots-horizontal' }"

View File

@ -9,7 +9,7 @@
:button="{ :button="{
handler: markAllAsPlayed, handler: markAllAsPlayed,
icon: 'pencil', icon: 'pencil',
key: 'page.podcasts.mark-all-played' key: 'actions.mark-all-played'
}" }"
/> />
</template> </template>
@ -31,14 +31,14 @@
:button="{ :button="{
handler: updateRss, handler: updateRss,
icon: 'refresh', icon: 'refresh',
key: 'page.podcasts.update' key: 'actions.update'
}" }"
/> />
<control-button <control-button
:button="{ :button="{
handler: 'openAddPodcastDialog', handler: 'openAddPodcastDialog',
icon: 'rss', icon: 'rss',
key: 'page.podcasts.add' key: 'actions.add'
}" }"
/> />
</template> </template>

View File

@ -9,7 +9,7 @@
:button="{ :button="{
handler: update_show_next_items, handler: update_show_next_items,
icon: 'eye-off-outline', icon: 'eye-off-outline',
key: 'page.queue.hide-previous' key: 'actions.hide-previous'
}" }"
:class="{ 'is-dark': uiStore.show_only_next_items }" :class="{ 'is-dark': uiStore.show_only_next_items }"
/> />
@ -17,23 +17,23 @@
:button="{ :button="{
handler: open_add_stream_dialog, handler: open_add_stream_dialog,
icon: 'web', icon: 'web',
key: 'page.queue.add-stream' key: 'actions.add-stream'
}" }"
/> />
<control-button <control-button
:button="{ :button="{
handler: toggleEdit, handler: toggleEdit,
icon: 'pencil', icon: 'pencil',
key: 'page.queue.edit', key: 'actions.edit'
disabled: queue_items.length === 0
}" }"
:class="{ 'is-dark': edit_mode }" :class="{ 'is-dark': edit_mode }"
:disabled="queue_items.length === 0"
/> />
<control-button <control-button
:button="{ :button="{
handler: queue_clear, handler: queue_clear,
icon: 'delete-empty', icon: 'delete-empty',
key: 'page.queue.clear' key: 'actions.clear'
}" }"
:disabled="queue_items.length === 0" :disabled="queue_items.length === 0"
/> />
@ -42,7 +42,7 @@
:button="{ :button="{
handler: save_dialog, handler: save_dialog,
icon: 'download', icon: 'download',
key: 'page.queue.save' key: 'actions.save'
}" }"
:disabled="queue_items.length === 0" :disabled="queue_items.length === 0"
/> />

View File

@ -28,7 +28,7 @@
<button <button
class="button" class="button"
type="submit" type="submit"
v-text="$t('page.settings.devices.send')" v-text="$t('actions.send')"
/> />
</div> </div>
</div> </div>