[web] Simplify property translations

This commit is contained in:
Alain Nussbaumer 2025-02-12 18:50:22 +01:00
parent aae2904a57
commit 97d0e90408
17 changed files with 223 additions and 544 deletions

View File

@ -25,15 +25,15 @@ export default {
if (this.media_kind_resolved === 'podcast') {
if (this.item.data_kind === 'url') {
return [
{ label: 'dialog.album.mark-as-played', action: this.mark_played },
{ label: 'dialog.album.mark-as-played', handler: this.mark_played },
{
label: 'dialog.album.remove-podcast',
action: this.remove_podcast
handler: this.remove_podcast
}
]
}
return [
{ label: 'dialog.album.mark-as-played', action: this.mark_played }
{ label: 'dialog.album.mark-as-played', handler: this.mark_played }
]
}
return []
@ -44,32 +44,32 @@ export default {
playable() {
return {
name: this.item.name,
action: this.open,
handler: this.open,
image: this.item.artwork_url,
artist: this.item.artist,
album: this.item.name,
properties: [
{
label: 'dialog.album.artist',
label: 'property.artist',
value: this.item.artist,
action: this.open_artist
handler: this.open_artist
},
{
label: 'dialog.album.release-date',
label: 'property.release-date',
value: this.$filters.date(this.item.date_released)
},
{ label: 'dialog.album.year', value: this.item.year },
{ label: 'dialog.album.tracks', value: this.item.track_count },
{ label: 'property.year', value: this.item.year },
{ label: 'property.tracks', value: this.item.track_count },
{
label: 'dialog.album.duration',
label: 'property.duration',
value: this.$filters.durationInHours(this.item.length_ms)
},
{
label: 'dialog.album.type',
label: 'property.type',
value: `${this.$t(`media.kind.${this.item.media_kind}`)} - ${this.$t(`data.kind.${this.item.data_kind}`)}`
},
{
label: 'dialog.album.added-on',
label: 'property.added-on',
value: this.$filters.datetime(this.item.time_added)
}
]

View File

@ -21,19 +21,19 @@ export default {
image: this.item?.images?.[0]?.url || '',
artist: this.item.artist || '',
album: this.item.name || '',
action: this.open,
handler: this.open,
properties: [
{
label: 'dialog.spotify.album.album-artist',
label: 'property.album-artist',
value: this.item?.artists?.[0]?.name,
action: this.open_artist
handler: this.open_artist
},
{
label: 'dialog.spotify.album.release-date',
label: 'property.release-date',
value: this.$filters.date(this.item.release_date)
},
{
label: 'dialog.spotify.album.type',
label: 'property.type',
value: this.item.album_type
}
]

View File

@ -18,16 +18,16 @@ export default {
playable() {
return {
name: this.item.name,
action: this.open,
handler: this.open,
properties: [
{ label: 'dialog.artist.albums', value: this.item.album_count },
{ label: 'dialog.artist.tracks', value: this.item.track_count },
{ label: 'property.albums', value: this.item.album_count },
{ label: 'property.tracks', value: this.item.track_count },
{
label: 'dialog.artist.type',
label: 'property.type',
value: this.$t(`data.kind.${this.item.data_kind}`)
},
{
label: 'dialog.artist.added-on',
label: 'property.added-on',
value: this.$filters.datetime(this.item.time_added)
}
]

View File

@ -18,16 +18,16 @@ export default {
playable() {
return {
name: this.item.name,
action: this.open,
handler: this.open,
properties: [
{
label: 'dialog.spotify.artist.popularity',
label: 'property.popularity',
value: [this.item.popularity, this.item.followers?.total].join(
' / '
)
},
{
label: 'dialog.spotify.artist.genres',
label: 'property.genres',
value: this.item.genres?.join(', ')
}
]

View File

@ -17,22 +17,22 @@ export default {
computed: {
playable() {
return {
action: this.open_albums,
name: this.item.name,
handler: this.open_albums,
expression: `composer is "${this.item.name}" and media_kind is music`,
properties: [
{
label: 'dialog.composer.albums',
label: 'property.albums',
value: this.item.album_count,
action: this.open_albums
handler: this.open_albums
},
{
label: 'dialog.composer.tracks',
label: 'property.tracks',
value: this.item.track_count,
action: this.open_tracks
handler: this.open_tracks
},
{
label: 'dialog.composer.duration',
label: 'property.duration',
value: this.$filters.durationInHours(this.item.length_ms)
}
]

View File

@ -22,19 +22,19 @@ export default {
playable() {
return {
name: this.item.name,
action: this.open,
handler: this.open,
expression: `genre is "${this.item.name}" and media_kind is ${this.media_kind}`,
properties: [
{
label: 'dialog.genre.albums',
label: 'property.albums',
value: this.item.album_count
},
{
label: 'dialog.genre.tracks',
label: 'property.tracks',
value: this.item.track_count
},
{
label: 'dialog.genre.duration',
label: 'property.duration',
value: this.$filters.durationInHours(this.item.length_ms)
}
]

View File

@ -2,7 +2,7 @@
<modal-dialog :actions="actions" :show="show" @close="$emit('close')">
<template #content>
<div class="title is-4">
<a v-if="item.action" @click="item.action" v-text="item.name"></a>
<a v-if="item.handler" @click="item.handler" v-text="item.name"></a>
<span v-else v-text="item.name" />
</div>
<cover-artwork
@ -18,7 +18,7 @@
:key="button.label"
v-t="button.label"
class="button is-small"
@click="button.action"
@click="button.handler"
/>
</div>
<div
@ -29,8 +29,8 @@
<div v-t="property.label" class="is-size-7 is-uppercase" />
<div class="title is-6">
<a
v-if="property.action"
@click="property.action"
v-if="property.handler"
@click="property.handler"
v-text="property.value"
/>
<span v-else class="title is-6" v-text="property.value" />

View File

@ -22,15 +22,15 @@ export default {
playable() {
return {
name: this.item.name,
action: this.open,
handler: this.open,
uris: this.uris,
properties: [
{ label: 'dialog.playlist.tracks', value: this.item.item_count },
{ label: 'property.tracks', value: this.item.item_count },
{
label: 'dialog.playlist.type',
label: 'property.type',
value: this.$t(`playlist.type.${this.item.type}`)
},
{ label: 'dialog.playlist.path', value: this.item.path }
{ label: 'property.path', value: this.item.path }
]
}
}

View File

@ -18,17 +18,17 @@ export default {
playable() {
return {
name: this.item.name,
action: this.open,
handler: this.open,
properties: [
{
label: 'dialog.spotify.playlist.owner',
label: 'property.owner',
value: this.item.owner?.display_name
},
{
label: 'dialog.spotify.playlist.tracks',
label: 'property.tracks',
value: this.item.tracks?.total
},
{ label: 'dialog.spotify.playlist.path', value: this.item.uri }
{ label: 'property.path', value: this.item.uri }
]
}
}

View File

@ -4,10 +4,7 @@
<div class="title is-4" v-text="item.title" />
<div class="subtitle" v-text="item.artist" />
<div v-if="item.album" class="mb-3">
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.album')"
/>
<div v-t="'property.album'" class="is-size-7 is-uppercase" />
<div class="title is-6">
<a @click="open_album" v-text="item.album" />
</div>
@ -15,7 +12,7 @@
<div v-if="item.album_artist" class="mb-3">
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.album-artist')"
v-text="$t('property.album-artist')"
/>
<div class="title is-6">
<a @click="open_album_artist" v-text="item.album_artist" />
@ -45,73 +42,45 @@
</div>
</div>
<div v-if="item.disc_number" class="mb-3">
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.position')"
/>
<div class="is-size-7 is-uppercase" v-text="$t('property.position')" />
<div
class="title is-6"
v-text="[item.disc_number, item.track_number].join(' / ')"
/>
</div>
<div v-if="item.length_ms" class="mb-3">
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.duration')"
/>
<div class="is-size-7 is-uppercase" v-text="$t('property.duration')" />
<div
class="title is-6"
v-text="$filters.durationInHours(item.length_ms)"
/>
</div>
<div class="mb-3">
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.path')"
/>
<div class="is-size-7 is-uppercase" v-text="$t('property.path')" />
<div class="title is-6" v-text="item.path" />
</div>
<div class="mb-3">
<div class="is-size-7 is-uppercase" v-text="$t('property.type')" />
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.type')"
/>
<div class="title is-6">
<span
class="title is-6"
v-text="
`${$t(`media.kind.${item.media_kind}`)} - ${$t(`data.kind.${item.data_kind}`)}`
"
/>
</div>
</div>
<div v-if="item.samplerate" class="mb-3">
<div class="is-size-7 is-uppercase" v-text="$t('property.quality')" />
<div
class="is-size-7 is-uppercase"
v-text="$t('dialog.queue-item.quality')"
/>
<div class="title is-6">
<span v-text="item.type" />
<span
v-if="item.samplerate"
class="title is-6"
v-text="
$t('dialog.queue-item.samplerate', {
rate: item.samplerate
$t('dialog.track.quality-value', {
format: item.type,
bitrate: item.bitrate,
channels: $filters.channels(item.channels),
samplerate: item.samplerate
})
"
/>
<span
v-if="item.channels"
v-text="
$t('dialog.queue-item.channels', {
channels: $filters.channels(item.channels)
})
"
/>
<span
v-if="item.bitrate"
v-text="$t('dialog.queue-item.bitrate', { rate: item.bitrate })"
/>
</div>
</div>
</template>
</modal-dialog>

View File

@ -30,11 +30,11 @@ export default {
buttons() {
if (this.item.media_kind === 'podcast') {
if (this.item.play_count > 0) {
return [{ label: 'dialog.track.mark-as-new', action: this.mark_new }]
return [{ label: 'dialog.track.mark-as-new', handler: this.mark_new }]
}
if (this.item.play_count === 0) {
return [
{ label: 'dialog.track.mark-as-played', action: this.mark_played }
{ label: 'dialog.track.mark-as-played', handler: this.mark_played }
]
}
}
@ -45,36 +45,36 @@ export default {
name: this.item.title,
properties: [
{
label: 'dialog.track.album',
label: 'property.album',
value: this.item.album,
action: this.open_album
handler: this.open_album
},
{
label: 'dialog.track.album-artist',
label: 'property.album-artist',
value: this.item.album_artist,
action: this.open_artist
handler: this.open_artist
},
{ label: 'dialog.track.composer', value: this.item.composer },
{ label: 'property.composer', value: this.item.composer },
{
label: 'dialog.track.release-date',
label: 'property.release-date',
value: this.$filters.date(this.item.date_released)
},
{ label: 'dialog.track.year', value: this.item.year },
{ label: 'dialog.track.genre', value: this.item.genre },
{ label: 'property.year', value: this.item.year },
{ label: 'property.genre', value: this.item.genre },
{
label: 'dialog.track.position',
label: 'property.position',
value: [this.item.disc_number, this.item.track_number].join(' / ')
},
{
label: 'dialog.track.duration',
label: 'property.duration',
value: this.$filters.durationInHours(this.item.length_ms)
},
{
label: 'dialog.track.type',
label: 'property.type',
value: `${this.$t(`media.kind.${this.item.media_kind}`)} - ${this.$t(`data.kind.${this.item.data_kind}`)}`
},
{
label: 'dialog.track.quality',
label: 'property.quality',
value: this.$t('dialog.track.quality-value', {
format: this.item.type,
bitrate: this.item.bitrate,
@ -83,17 +83,17 @@ export default {
})
},
{
label: 'dialog.track.added-on',
label: 'property.added-on',
value: this.$filters.datetime(this.item.time_added)
},
{
label: 'dialog.track.rating',
label: 'property.rating',
value: this.$t('dialog.track.rating-value', {
rating: Math.floor(this.item.rating / 10)
})
},
{ label: 'dialog.track.comment', value: this.item.comment },
{ label: 'dialog.track.path', value: this.item.path }
{ label: 'property.comment', value: this.item.comment },
{ label: 'property.path', value: this.item.path }
]
}
}

View File

@ -21,28 +21,28 @@ export default {
subtitle: this.item.artists[0].name,
properties: [
{
label: 'dialog.spotify.track.album',
label: 'property.album',
value: this.item.album.name,
action: this.open_album
handler: this.open_album
},
{
label: 'dialog.spotify.track.album-artist',
label: 'property.album-artist',
value: this.item.artists[0].name,
action: this.open_artist
handler: this.open_artist
},
{
label: 'dialog.spotify.track.release-date',
label: 'property.release-date',
value: this.$filters.date(item.album.release_date)
},
{
label: 'dialog.spotify.track.position',
label: 'property.position',
value: [item.disc_number, item.track_number].join(' / ')
},
{
label: 'dialog.spotify.track.duration',
label: 'property.duration',
value: this.$filters.durationInHours(item.duration_ms)
},
{ label: 'dialog.spotify.track.path', value: this.item.uri }
{ label: 'property.path', value: this.item.uri }
]
}
}

View File

@ -27,31 +27,8 @@
}
},
"album": {
"added-on": "Hinzugefügt am",
"artist": "Album Künstler",
"duration": "Dauer",
"mark-as-played": "Markiere als gespielt",
"release-date": "Erscheinungsdatum",
"remove-podcast": "Entferne podcast",
"tracks": "Track Nummer",
"type": "Art",
"year": "Jahr"
},
"artist": {
"added-on": "Hinzugefügt am",
"albums": "Alben",
"tracks": "Tracks",
"type": "Art"
},
"composer": {
"albums": "Alben",
"duration": "Dauer",
"tracks": "Tracks"
},
"genre": {
"albums": "Alben",
"duration": "Dauer",
"tracks": "Tracks"
"remove-podcast": "Entferne podcast"
},
"playable": {
"add-next": "Als nächstes hinzufügen",
@ -61,10 +38,7 @@
"playlist": {
"add-next": "Als nächstes hinzufügen",
"add": "Hinzufügen",
"path": "Pfad",
"play": "Spielen",
"tracks": "Tracks",
"type": "Art",
"save": {
"cancel": "Abbrechen",
"playlist-name": "Playlistname",
@ -74,23 +48,9 @@
}
},
"queue-item": {
"album-artist": "Album-Künstler",
"album": "Album",
"bitrate": "{'|'} {rate} kbit/s",
"channels": "{'|'} {channels}",
"composer": "Komponist",
"duration": "Dauer",
"genre": "Genre",
"path": "Pfad",
"play": "Spielen",
"position": "Disc / Track",
"quality": "Qualität",
"remove": "Entfernen",
"samplerate": "{'|'} {rate} Hz",
"spotify-album": "Album",
"spotify-artist": "Künstler",
"type": "Art",
"year": "Jahr"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "Entfernen"
},
"remote-pairing": {
"cancel": "Abbrechen",
@ -98,51 +58,11 @@
"pairing-code": "Pairing-Code",
"title": "Remote-Paarungs-Anfrage"
},
"spotify": {
"album": {
"album-artist": "Album-Künstler",
"release-date": "Erscheinungsdatum",
"type": "Art"
},
"artist": {
"genres": "Genres",
"popularity": "Popularität / Followers"
},
"playlist": {
"owner": "Besitzer",
"path": "Pfad",
"tracks": "Tracks"
},
"track": {
"album-artist": "Album-Künstler",
"album": "Album",
"duration": "Dauer",
"path": "Pfad",
"position": "Disc / Track",
"release-date": "Erscheinungsdatum"
}
},
"track": {
"added-on": "Hinzugefügt am",
"album-artist": "Album-Künstler",
"album": "Album",
"comment": "Kommentar",
"composer": "Komponist",
"duration": "Dauer",
"genre": "Genre",
"mark-as-new": "Markiere als neu",
"mark-as-played": "Markiere als gespielt",
"path": "Pfad",
"position": "Disc / Track",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"quality": "Qualität",
"rating-value": "{rating} / 10",
"rating": "Bewertung",
"release-date": "Erscheinungsdatum",
"spotify-album": "Album",
"spotify-artist": "Künstler",
"type": "Art",
"year": "Jahr"
"rating-value": "{rating} / 10"
},
"update": {
"all": "Alles neu einlesen",
@ -538,6 +458,28 @@
"toggle-lyrics": "Liedtexte anzeigen/verbergen"
}
},
"property": {
"added-on": "Hinzugefügt am",
"album": "Album",
"albums": "Alben",
"album-artist": "Album-Künstler",
"artist": "Album Künstler",
"comment": "Kommentar",
"composer": "Komponist",
"duration": "Dauer",
"genre": "Genre",
"genres": "Genres",
"owner": "Besitzer",
"path": "Pfad",
"popularity": "Popularität / Followers",
"position": "Disc / Track",
"quality": "Qualität",
"rating": "Bewertung",
"release-date": "Erscheinungsdatum",
"tracks": "Tracks",
"type": "Art",
"year": "Jahr"
},
"server": {
"connection-failed": "Fehler bei Verbindung zum OwnTone-Server",
"request-failed": "Anfrage gescheitert (Status: {status} {cause} {url})",

View File

@ -27,31 +27,8 @@
}
},
"album": {
"added-on": "Added on",
"artist": "Album artist",
"duration": "Duration",
"mark-as-played": "Mark as played",
"release-date": "Release date",
"remove-podcast": "Remove podcast",
"tracks": "Tracks",
"type": "Type",
"year": "Year"
},
"artist": {
"added-on": "Added On",
"albums": "Albums",
"tracks": "Tracks",
"type": "Type"
},
"composer": {
"albums": "Albums",
"duration": "Duration",
"tracks": "Tracks"
},
"genre": {
"albums": "Albums",
"duration": "Duration",
"tracks": "Tracks"
"remove-podcast": "Remove podcast"
},
"playable": {
"add-next": "Add Next",
@ -62,9 +39,6 @@
"add-next": "Add Next",
"add": "Add",
"play": "Play",
"path": "Path",
"tracks": "Tracks",
"type": "Type",
"save": {
"cancel": "Cancel",
"playlist-name": "Playlist name",
@ -74,23 +48,9 @@
}
},
"queue-item": {
"album-artist": "Album Artist",
"album": "Album",
"bitrate": " {'|'} {rate} kbit/s",
"channels": " {'|'} {channels}",
"composer": "Composer",
"duration": "Duration",
"genre": "Genre",
"path": "Path",
"play": "Play",
"position": "Disc / Track",
"quality": "Quality",
"remove": "Remove",
"samplerate": " {'|'} {rate} Hz",
"spotify-album": "album",
"spotify-artist": "artist",
"type": "Type",
"year": "Year"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "Remove"
},
"remote-pairing": {
"cancel": "Cancel",
@ -98,51 +58,11 @@
"pairing-code": "Pairing code",
"title": "Remote pairing request"
},
"spotify": {
"album": {
"album-artist": "Album Artist",
"release-date": "Release Date",
"type": "Type"
},
"artist": {
"genres": "Genres",
"popularity": "Popularity / Followers"
},
"playlist": {
"owner": "Owner",
"path": "Path",
"tracks": "Tracks"
},
"track": {
"album-artist": "Album Artist",
"album": "Album",
"duration": "Duration",
"path": "Path",
"position": "Disc / Track",
"release-date": "Release Date"
}
},
"track": {
"added-on": "Added On",
"album-artist": "Album Artist",
"album": "Album",
"comment": "Comment",
"composer": "Composer",
"duration": "Duration",
"genre": "Genre",
"mark-as-new": "Mark as new",
"mark-as-played": "Mark as played",
"path": "Path",
"position": "Disc / Track",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"quality": "Quality",
"rating-value": "{rating} / 10",
"rating": "Rating",
"release-date": "Release Date",
"spotify-album": "album",
"spotify-artist": "artist",
"type": "Type",
"year": "Year"
"rating-value": "{rating} / 10"
},
"update": {
"all": "Update everything",
@ -538,6 +458,28 @@
"toggle-lyrics": "Toggle lyrics"
}
},
"property": {
"added-on": "Added On",
"album": "Album",
"albums": "Albums",
"album-artist": "Album Artist",
"artist": "Artist",
"comment": "Comment",
"composer": "Composer",
"duration": "Duration",
"genre": "Genre",
"genres": "Genres",
"owner": "Owner",
"path": "Path",
"popularity": "Popularity / Followers",
"position": "Disc / Track",
"quality": "Quality",
"rating": "Rating",
"release-date": "Release Date",
"tracks": "Tracks",
"type": "Type",
"year": "Year"
},
"server": {
"connection-failed": "Failed to connect to OwnTone server",
"request-failed": "Request failed (status: {status} {cause} {url})",

View File

@ -27,31 +27,8 @@
}
},
"album": {
"added-on": "Ajouté le",
"artist": "Artiste de lalbum",
"duration": "Durée",
"mark-as-played": "Marquer comme lu",
"release-date": "Date de sortie",
"remove-podcast": "Supprimer le podcast",
"tracks": "Pistes",
"type": "Type",
"year": "Année"
},
"artist": {
"added-on": "Ajouté le",
"albums": "Albums",
"tracks": "Pistes",
"type": "Type"
},
"composer": {
"albums": "Albums",
"duration": "Durée",
"tracks": "Pistes"
},
"genre": {
"albums": "Albums",
"duration": "Durée",
"tracks": "Pistes"
"remove-podcast": "Supprimer le podcast"
},
"playable": {
"add-next": "Ajouter ensuite",
@ -62,9 +39,6 @@
"add-next": "Ajouter ensuite",
"add": "Ajouter",
"play": "Lire",
"path": "Emplacement",
"tracks": "Pistes",
"type": "Type",
"save": {
"cancel": "Annuler",
"playlist-name": "Nom de la liste de lecture",
@ -74,23 +48,9 @@
}
},
"queue-item": {
"album-artist": "Artiste de lalbum",
"album": "Album",
"bitrate": " {'|'} {rate} kbit/s",
"channels": " {'|'} {channels}",
"composer": "Compositeur",
"duration": "Durée",
"genre": "Genre",
"path": "Emplacement",
"play": "Lire",
"position": "Disque / Piste",
"quality": "Qualité",
"remove": "Supprimer",
"samplerate": " {'|'} {rate} Hz",
"spotify-album": "album",
"spotify-artist": "artiste",
"type": "Type",
"year": "Année"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "Supprimer"
},
"remote-pairing": {
"cancel": "Annuler",
@ -98,51 +58,11 @@
"pairing-code": "Code de jumelage",
"title": "Demande de jumelage de télécommande"
},
"spotify": {
"album": {
"album-artist": "Artiste de lalbum",
"release-date": "Date de sortie",
"type": "Type"
},
"artist": {
"genres": "Genres",
"popularity": "Popularité / Abonnements"
},
"playlist": {
"owner": "Propriétaire",
"path": "Emplacement",
"tracks": "Pistes"
},
"track": {
"album-artist": "Artiste de lalbum",
"album": "Album",
"duration": "Durée",
"path": "Emplacement",
"position": "Disque / Piste",
"release-date": "Date de sortie"
}
},
"track": {
"added-on": "Ajouté le",
"album-artist": "Artiste de lalbum",
"album": "Album",
"comment": "Commentaire",
"composer": "Compositeur",
"duration": "Durée",
"genre": "Genre",
"mark-as-new": "Marquer comme nouveau",
"mark-as-played": "Marquer comme lu",
"path": "Emplacement",
"position": "Disque / Piste",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"quality": "Qualité",
"rating-value": "{rating} / 10",
"rating": "Classement",
"release-date": "Date de sortie",
"spotify-album": "album",
"spotify-artist": "artiste",
"type": "Type",
"year": "Année"
"rating-value": "{rating} / 10"
},
"update": {
"all": "Tout actualiser",
@ -538,6 +458,28 @@
"toggle-lyrics": "Voir/Cacher les paroles"
}
},
"property": {
"added-on": "Ajouté le",
"album": "Album",
"albums": "Albums",
"album-artist": "Artiste de lalbum",
"artist": "Artiste",
"comment": "Commentaire",
"composer": "Compositeur",
"duration": "Durée",
"genre": "Genre",
"genres": "Genres",
"owner": "Propriétaire",
"path": "Emplacement",
"popularity": "Popularité / Abonnements",
"position": "Disque / Piste",
"quality": "Qualité",
"rating": "Classement",
"release-date": "Date de sortie",
"tracks": "Pistes",
"type": "Type",
"year": "Année"
},
"server": {
"connection-failed": "Échec de connexion au serveur",
"request-failed": "La requête a échoué (status: {status} {cause} {url})",

View File

@ -27,31 +27,8 @@
}
},
"album": {
"added-on": "添加时间",
"artist": "专辑艺人",
"duration": "时长",
"mark-as-played": "标记为已播",
"release-date": "发行日期",
"remove-podcast": "移除播客",
"tracks": "只曲目",
"type": "类型",
"year": "年份"
},
"artist": {
"added-on": "添加时间",
"albums": "张专辑",
"tracks": "只曲目",
"type": "类型"
},
"composer": {
"albums": "张专辑",
"duration": "时长",
"tracks": "只曲目"
},
"genre": {
"albums": "张专辑",
"duration": "时长",
"tracks": "只曲目"
"remove-podcast": "移除播客"
},
"playable": {
"add-next": "插播",
@ -62,9 +39,6 @@
"add-next": "插播",
"add": "添加",
"play": "播放",
"path": "路径",
"tracks": "只曲目",
"type": "类型",
"save": {
"cancel": "取消",
"playlist-name": "播放列表名称",
@ -74,23 +48,9 @@
}
},
"queue-item": {
"album-artist": "专辑艺人",
"album": "专辑",
"bitrate": " {'|'} {rate} kbit/s",
"channels": " {'|'} {channels}",
"composer": "作曲家",
"duration": "时长",
"genre": "流派",
"path": "路径",
"play": "播放",
"position": "盘符 / 曲目",
"quality": "质量",
"remove": "移除",
"samplerate": " {'|'} {rate} Hz",
"spotify-album": "专辑",
"spotify-artist": "艺人",
"type": "类型",
"year": "年份"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "移除"
},
"remote-pairing": {
"cancel": "取消",
@ -98,51 +58,11 @@
"pairing-code": "配对码",
"title": "请求遥控配对"
},
"spotify": {
"album": {
"album-artist": "专辑艺人",
"release-date": "发行日期",
"type": "类型"
},
"artist": {
"genres": "流派",
"popularity": "流行度 / 粉丝数"
},
"playlist": {
"owner": "所有者",
"path": "路径",
"tracks": "曲目"
},
"track": {
"album-artist": "专辑艺人",
"album": "专辑",
"duration": "时长",
"path": "路径",
"position": "盘符 / 曲目",
"release-date": "发行日期"
}
},
"track": {
"added-on": "添加时间",
"album-artist": "专辑艺人",
"album": "专辑",
"comment": "评论",
"composer": "作曲家",
"duration": "时长",
"genre": "流派",
"mark-as-new": "标记为最新",
"mark-as-played": "标记为已播放",
"path": "路径",
"position": "盘符 / 曲目",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"quality": "质量",
"rating-value": "{rating} / 10",
"rating": "评级",
"release-date": "发行日期",
"spotify-album": "专辑",
"spotify-artist": "艺人",
"type": "类型",
"year": "年份"
"rating-value": "{rating} / 10"
},
"update": {
"all": "更新所有内容",
@ -538,6 +458,28 @@
"toggle-lyrics": "显示/隐藏歌词"
}
},
"property": {
"added-on": "添加时间",
"album": "专辑",
"albums": "张专辑",
"album-artist": "专辑艺人",
"artist": "专辑艺人",
"comment": "评论",
"composer": "作曲家",
"duration": "时长",
"genre": "流派",
"genres": "流派",
"owner": "所有者",
"path": "路径",
"popularity": "流行度 / 粉丝数",
"position": "盘符 / 曲目",
"quality": "质量",
"rating": "评级",
"release-date": "发行日期",
"tracks": "只曲目",
"type": "类型",
"year": "年份"
},
"server": {
"connection-failed": "无法连接到 OwnTone 服务器",
"request-failed": "请求失败 (状态:{status} {cause} {url})",

View File

@ -27,31 +27,8 @@
}
},
"album": {
"added-on": "新增時間",
"artist": "專輯藝人",
"duration": "時長",
"mark-as-played": "標記為已播",
"release-date": "發行日期",
"remove-podcast": "移除Podcast",
"tracks": "首曲目",
"type": "類型",
"year": "年份"
},
"artist": {
"added-on": "新增時間",
"albums": "張專輯",
"tracks": "首曲目",
"type": "類型"
},
"composer": {
"albums": "張專輯",
"duration": "時長",
"tracks": "首曲目"
},
"genre": {
"albums": "張專輯",
"duration": "時長",
"tracks": "首曲目"
"remove-podcast": "移除Podcast"
},
"playable": {
"add-next": "插播",
@ -62,9 +39,6 @@
"add-next": "插播",
"add": "新增",
"play": "播放",
"path": "路徑",
"tracks": "首曲目",
"type": "類型",
"save": {
"cancel": "取消",
"playlist-name": "播放列表名稱",
@ -74,23 +48,9 @@
}
},
"queue-item": {
"album-artist": "專輯藝人",
"album": "專輯",
"bitrate": " {'|'} {rate} kbit/s",
"channels": " {'|'} {channels}",
"composer": "作曲",
"duration": "時長",
"genre": "音樂類型",
"path": "路徑",
"play": "播放",
"position": "盤符 / 曲目",
"quality": "品質",
"remove": "移除",
"samplerate": " {'|'} {rate} Hz",
"spotify-album": "專輯",
"spotify-artist": "藝人",
"type": "類型",
"year": "年份"
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"remove": "移除"
},
"remote-pairing": {
"cancel": "取消",
@ -98,51 +58,11 @@
"pairing-code": "配對碼",
"title": "請求遙控配對"
},
"spotify": {
"album": {
"album-artist": "專輯藝人",
"release-date": "發行日期",
"type": "類型"
},
"artist": {
"genres": "音樂類型",
"popularity": "流行度 / 粉絲數"
},
"playlist": {
"owner": "所有者",
"path": "路徑",
"tracks": "曲目"
},
"track": {
"album-artist": "專輯藝人",
"album": "專輯",
"duration": "時長",
"path": "路徑",
"position": "盤符 / 曲目",
"release-date": "發行日期"
}
},
"track": {
"added-on": "新增時間",
"album-artist": "專輯藝人",
"album": "專輯",
"comment": "評論",
"composer": "作曲家",
"duration": "時長",
"genre": "音樂類型",
"mark-as-new": "標記為最新",
"mark-as-played": "標記為已播放",
"path": "路徑",
"position": "盤符 / 曲目",
"quality-value": "{format} {'|'} {samplerate} Hz {'|'} {channels} {'|'} {bitrate} kbit/s",
"quality": "品質",
"rating-value": "{rating} / 10",
"rating": "評級",
"release-date": "發行日期",
"spotify-album": "專輯",
"spotify-artist": "藝人",
"type": "類型",
"year": "年份"
"rating-value": "{rating} / 10"
},
"update": {
"all": "更新所有內容",
@ -538,6 +458,28 @@
"toggle-lyrics": "顯示/隱藏歌詞"
}
},
"property": {
"added-on": "新增時間",
"album": "專輯",
"albums": "張專輯",
"album-artist": "專輯藝人",
"artist": "專輯藝人",
"comment": "評論",
"composer": "作曲家",
"duration": "時長",
"genre": "音樂類型",
"genres": "音樂類型",
"owner": "所有者",
"path": "路徑",
"popularity": "流行度 / 粉絲數",
"position": "盤符 / 曲目",
"quality": "品質",
"rating": "評級",
"release-date": "發行日期",
"tracks": "曲目",
"type": "類型",
"year": "年份"
},
"server": {
"connection-failed": "無法連接到 OwnTone 伺服器",
"request-failed": "請求失敗 (狀態:{status} {cause} {url})",