mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-06 20:10:12 +02:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 960427fce8 | |||
| 118a9f3257 | |||
| 971bfe3823 | |||
| 7765f14110 | |||
| 36b465504f | |||
| 7b639b45f7 | |||
| 85d9162b12 | |||
| 36670b330f | |||
| 9c380a8241 | |||
| c26820ee82 | |||
| dccd6afc3d | |||
| c6a520b0d7 | |||
| 1f4f3a5497 | |||
| 58d04b3126 | |||
| fcac4a5547 | |||
| c05b474827 | |||
| a8814d3e8a | |||
| 3f9cdab450 |
@@ -37,3 +37,17 @@ jobs:
|
||||
npm run build
|
||||
npm exec electron-builder -- --publish always --linux
|
||||
on_retry_command: npm cache clean --force
|
||||
|
||||
- name: Publish releases (arm64)
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
retry_on: error
|
||||
command: |
|
||||
npm run postinstall
|
||||
npm run build
|
||||
npm exec electron-builder -- --publish always --linux
|
||||
on_retry_command: npm cache clean --force
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "feishin",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.3",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "feishin",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.3",
|
||||
"hasInstallScript": true,
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
|
||||
+2
-1
@@ -2,7 +2,7 @@
|
||||
"name": "feishin",
|
||||
"productName": "Feishin",
|
||||
"description": "Feishin music server",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.3",
|
||||
"scripts": {
|
||||
"build": "concurrently \"npm run build:main\" \"npm run build:renderer\" \"npm run build:remote\"",
|
||||
"build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.prod.ts",
|
||||
@@ -129,6 +129,7 @@
|
||||
"linux": {
|
||||
"target": [
|
||||
"AppImage",
|
||||
"rpm",
|
||||
"tar.xz"
|
||||
],
|
||||
"icon": "assets/icons/icon.png",
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "feishin",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.3",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "feishin",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.3",
|
||||
"hasInstallScript": true,
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "feishin",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.3",
|
||||
"description": "",
|
||||
"main": "./dist/main/main.js",
|
||||
"author": {
|
||||
|
||||
+15
-2
@@ -14,6 +14,8 @@ import ptBr from './locales/pt-BR.json';
|
||||
import sr from './locales/sr.json';
|
||||
import sv from './locales/sv.json';
|
||||
import cs from './locales/cs.json';
|
||||
import nbNO from './locales/nb-NO.json';
|
||||
import nl from './locales/nl.json';
|
||||
|
||||
const resources = {
|
||||
en: { translation: en },
|
||||
@@ -29,6 +31,8 @@ const resources = {
|
||||
sr: { translation: sr },
|
||||
sv: { translation: sv },
|
||||
cs: { translation: cs },
|
||||
nl: { translation: nl },
|
||||
'nb-NO': { translation: nbNO },
|
||||
};
|
||||
|
||||
export const languages = [
|
||||
@@ -61,9 +65,14 @@ export const languages = [
|
||||
value: 'ja',
|
||||
},
|
||||
{
|
||||
label: 'Русский',
|
||||
value: 'ru',
|
||||
label: 'Nederlands',
|
||||
value: 'nl',
|
||||
},
|
||||
{
|
||||
label: 'Norsk (Bokmål)',
|
||||
value: 'nb-NO',
|
||||
},
|
||||
|
||||
{
|
||||
label: 'Português (Brasil)',
|
||||
value: 'pt-BR',
|
||||
@@ -72,6 +81,10 @@ export const languages = [
|
||||
label: 'Polski',
|
||||
value: 'pl',
|
||||
},
|
||||
{
|
||||
label: 'Русский',
|
||||
value: 'ru',
|
||||
},
|
||||
{
|
||||
label: 'Srpski',
|
||||
value: 'sr',
|
||||
|
||||
@@ -584,16 +584,16 @@
|
||||
"entity": {
|
||||
"genre_one": "žánr",
|
||||
"genre_few": "žánry",
|
||||
"genre_other": "žánrů",
|
||||
"genre_other": "žánry",
|
||||
"playlistWithCount_one": "{{count}} playlist",
|
||||
"playlistWithCount_few": "{{count}} playlisty",
|
||||
"playlistWithCount_other": "{{count}} playlistů",
|
||||
"playlist_one": "playlist",
|
||||
"playlist_few": "playlisty",
|
||||
"playlist_other": "playlistů",
|
||||
"playlist_other": "playlisty",
|
||||
"artist_one": "umělec",
|
||||
"artist_few": "umělci",
|
||||
"artist_other": "umělců",
|
||||
"artist_other": "umělci",
|
||||
"folderWithCount_one": "{{count}} složka",
|
||||
"folderWithCount_few": "{{count}} složky",
|
||||
"folderWithCount_other": "{{count}} složek",
|
||||
@@ -602,7 +602,7 @@
|
||||
"albumArtist_other": "umělců alba",
|
||||
"track_one": "skladba",
|
||||
"track_few": "skladby",
|
||||
"track_other": "skladeb",
|
||||
"track_other": "skladby",
|
||||
"albumArtistCount_one": "{{count}} umělec alba",
|
||||
"albumArtistCount_few": "{{count}} umělci alba",
|
||||
"albumArtistCount_other": "{{count}} umělců alba",
|
||||
@@ -621,7 +621,7 @@
|
||||
"smartPlaylist": "chytrý $t(entity.playlist_one)",
|
||||
"album_one": "album",
|
||||
"album_few": "alba",
|
||||
"album_other": "alb",
|
||||
"album_other": "alba",
|
||||
"genreWithCount_one": "{{count}} žánr",
|
||||
"genreWithCount_few": "{{count}} žánry",
|
||||
"genreWithCount_other": "{{count}} žánrů",
|
||||
|
||||
@@ -250,7 +250,18 @@
|
||||
"config": {
|
||||
"view": {
|
||||
"table": "Tabelle"
|
||||
},
|
||||
"general": {
|
||||
"tableColumns": "Tabellenspalten"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
"releaseYear": "Jahr",
|
||||
"biography": "Biografie",
|
||||
"releaseDate": "Veröffentlichungsdatum",
|
||||
"bitrate": "Bitrate",
|
||||
"title": "Titel",
|
||||
"path": "Pfad"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
@@ -537,6 +548,9 @@
|
||||
"fontType": "Schriftartenquelle",
|
||||
"followLyric": "Songtext synchronisieren",
|
||||
"floatingQueueArea_description": "Zeige ein Icon auf der rechten Seite, um beim Darüberfahren die Wartschlange anzuzeigen",
|
||||
"font_description": "Wähle die Schriftart für die Anwendung"
|
||||
"font_description": "Wähle die Schriftart für die Anwendung",
|
||||
"themeLight": "Thema (hell)",
|
||||
"sidePlayQueueStyle_optionDetached": "lösgelöst",
|
||||
"windowBarStyle_description": "Wähle den Stil der Windows-Leiste"
|
||||
}
|
||||
}
|
||||
|
||||
+25
-13
@@ -62,7 +62,7 @@
|
||||
"left": "gauche",
|
||||
"save": "sauvegarder",
|
||||
"right": "droite",
|
||||
"currentSong": "actuelle $t(entity.track_one)",
|
||||
"currentSong": "$t(entity.track_one) actuelle",
|
||||
"collapse": "réduire",
|
||||
"trackNumber": "piste",
|
||||
"descending": "décroisant",
|
||||
@@ -225,7 +225,7 @@
|
||||
"lyricSize": "Taille des paroles",
|
||||
"lyricGap": "espacement des lettres"
|
||||
},
|
||||
"upNext": "suivant",
|
||||
"upNext": "à suivre",
|
||||
"lyrics": "paroles",
|
||||
"related": "similaire"
|
||||
},
|
||||
@@ -332,7 +332,7 @@
|
||||
"mpvExecutablePath_description": "définit le chemin vers l'exécutable mpv",
|
||||
"hotkey_favoriteCurrentSong": "favori $t(common.currentSong)",
|
||||
"sampleRate": "taux d'échantillonnage",
|
||||
"sampleRate_description": "sélectionnez le taux d'échantillonnage de sortie utilisé si la fréquence d'échantillonnage sélectionnée est différente du média actuel",
|
||||
"sampleRate_description": "sélectionnez le taux d'échantillonnage de sortie utilisé si la fréquence d'échantillonnage sélectionnée est différente de celle du média actuel",
|
||||
"hotkey_zoomIn": "zoom avant",
|
||||
"scrobble_description": "scrobble les lectures à votre serveur multimédia",
|
||||
"hotkey_browserForward": "avancer",
|
||||
@@ -341,7 +341,7 @@
|
||||
"hotkey_playbackPlayPause": "lecture / pause",
|
||||
"hotkey_rate1": "noter 1 étoile",
|
||||
"hotkey_skipForward": "avancer",
|
||||
"disableLibraryUpdateOnStartup": "désactive la vérification de mise à jour au démarrage",
|
||||
"disableLibraryUpdateOnStartup": "désactive la recherche de mise à jour au démarrage",
|
||||
"gaplessAudio": "audio sans interruption",
|
||||
"minimizeToTray_description": "réduit l'application vers la barre des tâches",
|
||||
"hotkey_playbackPlay": "lecture",
|
||||
@@ -402,10 +402,10 @@
|
||||
"followLyric": "suivre les paroles actuelles",
|
||||
"discordIdleStatus": "afficher l'état d'inactivité dans le status de l'activité",
|
||||
"hotkey_zoomOut": "zoom arrière",
|
||||
"hotkey_unfavoriteCurrentSong": "défavorisé $t(common.currentSong)",
|
||||
"hotkey_unfavoriteCurrentSong": "retirer des favoris la $t(common.currentSong)",
|
||||
"hotkey_rate0": "supprimer la note",
|
||||
"hotkey_volumeMute": "couper le son",
|
||||
"hotkey_toggleCurrentSongFavorite": "basculer $t(common.currentSong) favori",
|
||||
"hotkey_toggleCurrentSongFavorite": "basculer favori de la $t(common.currentSong)",
|
||||
"remoteUsername": "nom d'utilisateur du serveur de contrôle à distance",
|
||||
"hotkey_browserBack": "retour arrière",
|
||||
"showSkipButton": "affiche les boutons suivants et précédents",
|
||||
@@ -414,21 +414,21 @@
|
||||
"minimumScrobbleSeconds": "scrobble minimum (secondes)",
|
||||
"hotkey_playbackStop": "stop",
|
||||
"font_description": "définit la police à utiliser pour l'application",
|
||||
"savePlayQueue_description": "sauvegarde la liste de lecture quand l'application est fermée et restaure là quand l'application est ouverte",
|
||||
"savePlayQueue_description": "sauvegarde la liste de lecture quand l'application est fermée et la restaure quand l'application est ouverte",
|
||||
"sidebarCollapsedNavigation_description": "affiche ou cache la navigation dans la barre latérale réduite",
|
||||
"sidebarConfiguration": "configuration de la barre latérale",
|
||||
"sidebarConfiguration_description": "sélectionnez les items et l'ordre dans lesquels ils seront affichaient dans la barre latérale",
|
||||
"sidebarPlaylistList": "liste de playlist de la barre latérale",
|
||||
"sidebarCollapsedNavigation": "navigation de la barre latéral (réduite)",
|
||||
"skipDuration": "temps de l'avance rapide",
|
||||
"skipDuration": "durée de l'avance rapide",
|
||||
"sidePlayQueueStyle_optionAttached": "attaché",
|
||||
"sidePlayQueueStyle": "style de la liste de lecture latérale",
|
||||
"sidebarPlaylistList_description": "affiche ou cache la liste de playlist de la barre latérale",
|
||||
"sidePlayQueueStyle_description": "définit le style de la liste de lecture latérale",
|
||||
"sidePlayQueueStyle_optionDetached": "détaché",
|
||||
"volumeWheelStep_description": "la quantité de volume à modifier lors du défilement de la molette de la souris sur le curseur de volume",
|
||||
"volumeWheelStep_description": "la valeur de volume à modifier lors du défilement de la molette de la souris sur le curseur de volume",
|
||||
"theme_description": "définit le thème à utiliser pour l'application",
|
||||
"skipDuration_description": "définit le durée de l'avance rapide, lors de l'utilisation des boutons skip dans la barre de lecture",
|
||||
"skipDuration_description": "définit le durée du saut rapide, lors de l'utilisation des boutons avancer/reculer de la barre de lecture",
|
||||
"themeLight": "thème (clair)",
|
||||
"zoom": "pourcentage de zoom",
|
||||
"themeDark_description": "définit le thème sombre à utiliser pour l'application",
|
||||
@@ -436,7 +436,7 @@
|
||||
"zoom_description": "définit le pourcentage de zoom de l'application",
|
||||
"theme": "thème",
|
||||
"skipPlaylistPage_description": "lors de la navigation dans une playlist, aller directement vers le liste des morceaux, au lieu de la page par défaut",
|
||||
"volumeWheelStep": "marche du curseur de volume",
|
||||
"volumeWheelStep": "valeur du pas de volume",
|
||||
"windowBarStyle": "style de la barre de la fenêtre",
|
||||
"useSystemTheme_description": "suivre les préférence du système (sombre ou clair)",
|
||||
"skipPlaylistPage": "sauter la page de playlist",
|
||||
@@ -453,7 +453,15 @@
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)"
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"replayGainMode_description": "ajuste le gain de volume accordement à la valeur de {{ReplayGain}} sauvegardé dans les métadonnées du fichier",
|
||||
"replayGainFallback": "{{ReplayGain}} fallback",
|
||||
"replayGainClipping_description": "Préviens le clipping causé par {{ReplayGain}} en baissant automatiquement le gain",
|
||||
"replayGainPreamp": "préamplificateur (dB) de {{ReplayGain}}",
|
||||
"replayGainClipping": "{{ReplayGain}} clipping",
|
||||
"replayGainMode": "mode de {{ReplayGain}}",
|
||||
"replayGainFallback_description": "gain en dB à appliquer si le fichier n'a pas de tag {{ReplayGain}}",
|
||||
"replayGainPreamp_description": "ajuste le gain de préampli appliqué a la valeur de {{ReplayGain}}"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
@@ -589,7 +597,11 @@
|
||||
"rating": "$t(common.rating)",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)"
|
||||
"path": "$t(common.path)",
|
||||
"title": "$t(common.title)",
|
||||
"size": "$t(common.size)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"year": "$t(common.year)"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
|
||||
+29
-14
@@ -46,7 +46,7 @@
|
||||
"left": "sinistra",
|
||||
"save": "salva",
|
||||
"right": "destra",
|
||||
"currentSong": "$t(entity.track_one) corrent",
|
||||
"currentSong": "$t(entity.track_one) corrente",
|
||||
"trackNumber": "traccia",
|
||||
"descending": "decrescente",
|
||||
"gap": "gap",
|
||||
@@ -102,9 +102,9 @@
|
||||
"note": "nota"
|
||||
},
|
||||
"player": {
|
||||
"repeat_all": "ripeti tutto",
|
||||
"repeat_all": "ripeti coda",
|
||||
"stop": "ferma",
|
||||
"repeat": "ripeti",
|
||||
"repeat": "ripeti traccia",
|
||||
"queue_remove": "rimuovi selezionati",
|
||||
"playRandom": "riproduci casuale",
|
||||
"skip": "salta",
|
||||
@@ -113,21 +113,21 @@
|
||||
"skip_back": "salta indietro",
|
||||
"favorite": "preferito",
|
||||
"next": "successivo",
|
||||
"shuffle": "mischia",
|
||||
"shuffle": "mescola",
|
||||
"playbackFetchNoResults": "nessuna canzone trovata",
|
||||
"playbackFetchInProgress": "caricamento canzoni…",
|
||||
"addNext": "aggiungi successivo",
|
||||
"playbackSpeed": "velocità riproduzione",
|
||||
"playbackSpeed": "velocità di riproduzione",
|
||||
"playbackFetchCancel": "ci sta mettendo un po'... chiudi la notifica per annullare",
|
||||
"play": "riproduci",
|
||||
"repeat_off": "ripeti disabilitato",
|
||||
"repeat_off": "non ripetere",
|
||||
"pause": "pausa",
|
||||
"queue_clear": "cancella coda",
|
||||
"muted": "silenziato",
|
||||
"unfavorite": "togli dai preferiti",
|
||||
"queue_moveToTop": "sposta selezionati in fondo",
|
||||
"queue_moveToBottom": "sposta selezionati in cima",
|
||||
"shuffle_off": "mischia disabilitato",
|
||||
"shuffle_off": "non mescolare",
|
||||
"addLast": "aggiungi in coda",
|
||||
"mute": "silenzia",
|
||||
"skip_forward": "salta avanti"
|
||||
@@ -156,8 +156,8 @@
|
||||
"crossfadeStyle": "stile dissolvenza",
|
||||
"sidebarConfiguration": "configurazione barra laterale",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"hotkey_zoomIn": "ingrandisci",
|
||||
"scrobble_description": "esegui scrobble delle riproduzioni al tuo media server",
|
||||
"hotkey_zoomIn": "ingrandisci layout",
|
||||
"scrobble_description": "invia lo scrobble delle riproduzioni al tuo media server",
|
||||
"audioExclusiveMode_description": "abilità modalità output esclusiva. In questa modalità il sistema è di solito chiuso fuori, e solo mpv potrà riprodurre audio",
|
||||
"discordUpdateInterval": "intervallo aggiornamento stato attività {{discord}}",
|
||||
"themeLight": "tema (chiaro)",
|
||||
@@ -207,7 +207,7 @@
|
||||
"crossfadeDuration_description": "imposta la durata dell'effetto di dissolvenza",
|
||||
"language": "lingua",
|
||||
"playbackStyle": "stile riproduzione",
|
||||
"hotkey_toggleShuffle": "attiva/disattiva mischia",
|
||||
"hotkey_toggleShuffle": "attiva/disattiva mescolamento",
|
||||
"theme": "tema",
|
||||
"playbackStyle_description": "selezione lo stile di riproduzione da usare per il player audio",
|
||||
"discordRichPresence_description": "abilita lo status del playback nello stato attività di {{discord}}. Le chiavi immagine sono: {{icon}}, {{playing}} e {{paused}} ",
|
||||
@@ -247,7 +247,7 @@
|
||||
"crossfadeDuration": "durata dissolvenza",
|
||||
"discordIdleStatus": "visualizza lo stato attività in stato inattivo",
|
||||
"audioPlayer": "player audio",
|
||||
"hotkey_zoomOut": "rimpicciolisci",
|
||||
"hotkey_zoomOut": "rimpicciolisci layout",
|
||||
"hotkey_rate0": "rimuovi voto",
|
||||
"discordApplicationId": "application id {{discord}}",
|
||||
"applicationHotkeys_description": "configura tasti a scelta rapida dell'applicazione. attiva/disattiva la casella per impostare un tasto a scelta rapida globale (solo desktop)",
|
||||
@@ -275,7 +275,21 @@
|
||||
"showSkipButton_description": "mostra o nascondi i pulsanti per saltare nella barra del player",
|
||||
"hotkey_unfavoriteCurrentSong": "rimuovi $t(common.currentSong) dai preferiti",
|
||||
"hotkey_toggleCurrentSongFavorite": "imposta/rimuovi $t(common.currentSong) favorito",
|
||||
"showSkipButton": "mostra pulsanti per saltare"
|
||||
"showSkipButton": "mostra pulsanti per saltare",
|
||||
"hotkey_browserForward": "Vai avanti di una pagina",
|
||||
"hotkey_browserBack": "Torna indietro di una pagina",
|
||||
"sidebarCollapsedNavigation_description": "mostra o nascondi la navigazione nella barra laterale collassata",
|
||||
"replayGainClipping_description": "Previeni il clipping causato da {{ReplayGain}} abbassando automaticamente il gain",
|
||||
"replayGainPreamp": "preamplificazione {{ReplayGain}} (dB)",
|
||||
"sidePlayQueueStyle": "stile della coda di riproduzione laterale",
|
||||
"showSkipButtons_description": "mostra o nascondi i pulsanti per saltare dalla barra di riproduzione",
|
||||
"skipPlaylistPage_description": "quando si naviga in una playlist, si va alla pagina dell'elenco dei brani della playlist invece che alla pagina predefinita",
|
||||
"sidePlayQueueStyle_description": "imposta lo stile della coda di riproduzione laterale",
|
||||
"replayGainMode": "modalità {{ReplayGain}}",
|
||||
"replayGainFallback_description": "gain in db da applicare se il file non possiede tag {{ReplayGain}}",
|
||||
"replayGainPreamp_description": "aggiusta la preamplificazione del gain applicato sui valori {{ReplayGain}}",
|
||||
"skipPlaylistPage": "Salta la pagina playlist",
|
||||
"sidebarCollapsedNavigation": "navigazione con barra laterale (collassata)"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "riavvia il server per applicare la nuova porta",
|
||||
@@ -378,7 +392,7 @@
|
||||
"selectServer": "seleziona server",
|
||||
"version": "versione {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"manageServers": "gestisci sever",
|
||||
"manageServers": "gestisci server",
|
||||
"expandSidebar": "espandi barra laterale",
|
||||
"collapseSidebar": "collassa barra laterale",
|
||||
"openBrowserDevtools": "apri devtools browser",
|
||||
@@ -505,7 +519,8 @@
|
||||
"size": "$t(common.size)"
|
||||
},
|
||||
"view": {
|
||||
"table": "tabella"
|
||||
"table": "tabella",
|
||||
"card": "Scheda"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "data rilascio",
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "pas $t(entity.playlist_one) aan",
|
||||
"goToPage": "ga naar pagina",
|
||||
"moveToTop": "verplaats naar top",
|
||||
"addToFavorites": "toevoegen aan $t(entity.favorite_other)",
|
||||
"addToPlaylist": "toevoegen aan $t(entity.playlist_one)",
|
||||
"createPlaylist": "maak $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "verwijder van $t(entity.playlist_one)",
|
||||
"viewPlaylists": "bekijk $t(entity.playlist_other)",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "verwijder $t(entity.playlist_one)",
|
||||
"removeFromQueue": "verwijder van lijst",
|
||||
"deselectAll": "deselecteer alles",
|
||||
"moveToBottom": "verplaats naar bodem",
|
||||
"setRating": "selecteer rating",
|
||||
"toggleSmartPlaylistEditor": "editor $t(entity.smartPlaylist) schakelen",
|
||||
"removeFromFavorites": "verwijder van $t(entity.favorite_other)",
|
||||
"clearQueue": "lijst leegmaken"
|
||||
},
|
||||
"common": {
|
||||
"backward": "achteruit",
|
||||
"increase": "verhogen",
|
||||
"rating": "rating",
|
||||
"bpm": "bpm",
|
||||
"areYouSure": "weet je het zeker?",
|
||||
"edit": "aanpassen",
|
||||
"favorite": "favoriet",
|
||||
"left": "links",
|
||||
"currentSong": "huidig $t(entity.track_one)",
|
||||
"collapse": "samenvouwen",
|
||||
"descending": "aflopend",
|
||||
"add": "toevoegen",
|
||||
"gap": "gat",
|
||||
"ascending": "oplopend",
|
||||
"dismiss": "negeren",
|
||||
"manage": "beheren",
|
||||
"limit": "limiet",
|
||||
"minimize": "minimaliseren",
|
||||
"modified": "aangepast",
|
||||
"duration": "duur",
|
||||
"name": "naam",
|
||||
"maximize": "maximaliseren",
|
||||
"decrease": "verminder",
|
||||
"ok": "ok",
|
||||
"description": "beschrijving",
|
||||
"configure": "configureren",
|
||||
"path": "pad",
|
||||
"center": "centreren",
|
||||
"no": "nee",
|
||||
"owner": "eigenaar",
|
||||
"enable": "activeren",
|
||||
"clear": "opschonen",
|
||||
"forward": "vooruit",
|
||||
"delete": "verwijder",
|
||||
"cancel": "annuleer",
|
||||
"forceRestartRequired": "herstart om aanpassingen toe te passen... wanneer de notificatie gesloten wordt zal de applicatie herstarten",
|
||||
"filter_one": "filter",
|
||||
"filter_other": "filters",
|
||||
"filters": "filters",
|
||||
"create": "aanmaken",
|
||||
"bitrate": "bitrate",
|
||||
"action_one": "actie",
|
||||
"action_other": "acties",
|
||||
"playerMustBePaused": "player moet gepauzeerd zijn",
|
||||
"confirm": "bevestig",
|
||||
"home": "home",
|
||||
"comingSoon": "komt binnenkort…",
|
||||
"channel_one": "kanaal",
|
||||
"channel_other": "kanalen",
|
||||
"disable": "deactiveren",
|
||||
"none": "geen",
|
||||
"menu": "menu",
|
||||
"previousSong": "vorige $t(entity.track_one)",
|
||||
"noResultsFromQuery": "de zoekopdracht leverde geen resultaten op",
|
||||
"quit": "sluiten",
|
||||
"expand": "vergroten",
|
||||
"disc": "disk",
|
||||
"random": "willekeurig",
|
||||
"biography": "biografie",
|
||||
"note": "Opmerking",
|
||||
"refresh": "verversen",
|
||||
"unknown": "onbekend",
|
||||
"save": "opslaan",
|
||||
"right": "rechts",
|
||||
"trackNumber": "track",
|
||||
"year": "jaar",
|
||||
"version": "versie",
|
||||
"title": "titel",
|
||||
"saveAndReplace": "opslaan en vervangen",
|
||||
"resetToDefault": "herstellen naar standaard",
|
||||
"reset": "terugzetten",
|
||||
"sortOrder": "volgorde",
|
||||
"restartRequired": "herstart is nodig",
|
||||
"search": "zoeken",
|
||||
"saveAs": "opslaan als",
|
||||
"yes": "ja",
|
||||
"size": "grootte"
|
||||
},
|
||||
"filter": {
|
||||
"rating": "rating",
|
||||
"communityRating": "community rating",
|
||||
"criticRating": "criticus rating",
|
||||
"mostPlayed": "meest gespeeld",
|
||||
"comment": "commentaar",
|
||||
"playCount": "aantal keer afgespeeld",
|
||||
"recentlyUpdated": "recentelijk geüpdate",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"isCompilation": "is compilatie",
|
||||
"recentlyPlayed": "recentelijk afgespeeld",
|
||||
"isRated": "is rated",
|
||||
"owner": "$t(common.owner)",
|
||||
"bitrate": "bitrate",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"recentlyAdded": "recentelijk toegevoegd",
|
||||
"note": "notitie",
|
||||
"name": "naam",
|
||||
"dateAdded": "datum toegevoegd",
|
||||
"albumCount": "$t(entity.album_other) totaal",
|
||||
"path": "pad",
|
||||
"favorited": "favoriet",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"isRecentlyPlayed": "is recentelijk afgespeeld",
|
||||
"isFavorited": "is favoriet",
|
||||
"bpm": "bpm",
|
||||
"id": "id",
|
||||
"disc": "disk",
|
||||
"biography": "biografie",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"duration": "duratie",
|
||||
"isPublic": "is publiek",
|
||||
"random": "willekeurig",
|
||||
"lastPlayed": "laatst gespeeld",
|
||||
"fromYear": "van jaar",
|
||||
"album": "$t(entity.album_one)",
|
||||
"title": "titel",
|
||||
"search": "zoeken",
|
||||
"releaseDate": "releasedatum",
|
||||
"releaseYear": "release jaar",
|
||||
"songCount": "aantal nummers",
|
||||
"toYear": "tot jaar",
|
||||
"trackNumber": "track"
|
||||
},
|
||||
"page": {
|
||||
"contextMenu": {
|
||||
"setRating": "$t(action.setRating)"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "herstart de server om de nieuwe poort in te stellen",
|
||||
"systemFontError": "er is iets fout gegaan tijdens het verkrijgen van systeem fonts",
|
||||
"playbackError": "er is iets fout gegaan bij het afspelen van de media",
|
||||
"endpointNotImplementedError": "endpoint {{endpoint}} is niet geïmplementeerd voor {{serverType}}",
|
||||
"remotePortError": "er is iets fout gegaan tijdens het selecteren van de remote server",
|
||||
"serverRequired": "server vereist",
|
||||
"authenticationFailed": "authenticatie mislukt",
|
||||
"apiRouteError": "verzoek kan niet doorgestuurd worden",
|
||||
"genericError": "er is iets fout gegaan",
|
||||
"credentialsRequired": "inloggegevens vereist",
|
||||
"sessionExpiredError": "jouw sessie is verlopen",
|
||||
"remoteEnableError": "er is iets fout gegaan tijdens het $t(common.enable) van de remote server",
|
||||
"localFontAccessDenied": "toegang geweigerd tot lokale fonts",
|
||||
"serverNotSelectedError": "geen server geselecteerd",
|
||||
"remoteDisableError": "er is iets fout gegaan tijdens het $t(common.disable) van de remote server",
|
||||
"mpvRequired": "MPV vereist",
|
||||
"audioDeviceFetchError": "er is iets mis gegaan met het ophalen van de audioapparaten",
|
||||
"invalidServer": "ongeldige server",
|
||||
"loginRateError": "te veel login pogingen, probeer het opnieuw in een paar seconde"
|
||||
},
|
||||
"entity": {
|
||||
"genre_one": "genre",
|
||||
"genre_other": "genres",
|
||||
"playlistWithCount_one": "{{count}} afspeellijst",
|
||||
"playlistWithCount_other": "{{count}} afspeellijsten",
|
||||
"playlist_one": "afspeellijst",
|
||||
"playlist_other": "afspeellijsten",
|
||||
"artist_one": "artiest",
|
||||
"artist_other": "artiesten",
|
||||
"folderWithCount_one": "{{count}} folder",
|
||||
"folderWithCount_other": "{{count}} folders",
|
||||
"albumArtist_one": "album artiest",
|
||||
"albumArtist_other": "album artiesten",
|
||||
"track_one": "track",
|
||||
"track_other": "tracks",
|
||||
"albumArtistCount_one": "{{count}} album artiest",
|
||||
"albumArtistCount_other": "{{count}} album artiesten",
|
||||
"albumWithCount_one": "{{count}} album",
|
||||
"albumWithCount_other": "{{count}} albums",
|
||||
"favorite_one": "favoriet",
|
||||
"favorite_other": "favorieten",
|
||||
"artistWithCount_one": "{{count}} artiest",
|
||||
"artistWithCount_other": "{{count}} artiesten",
|
||||
"folder_one": "folder",
|
||||
"folder_other": "folders",
|
||||
"smartPlaylist": "smart $t(entity.playlist_one)",
|
||||
"album_one": "album",
|
||||
"album_other": "albums",
|
||||
"genreWithCount_one": "{{count}} genre",
|
||||
"genreWithCount_other": "{{count}} genres",
|
||||
"trackWithCount_one": "{{count}} track",
|
||||
"trackWithCount_other": "{{count}} tracks"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"rating": "rating"
|
||||
},
|
||||
"config": {
|
||||
"label": {
|
||||
"rating": "$t(common.rating)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"setting": {
|
||||
"hotkey_rate5": "rating 5 sterren",
|
||||
"hotkey_rate4": "rating 4 sterren"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
"title": "server toevoegen",
|
||||
"input_username": "gebruikersnaam",
|
||||
"input_url": "url",
|
||||
"input_password": "wachtwoord",
|
||||
"input_legacyAuthentication": "activeer legacy authenticatie",
|
||||
"input_name": "server naam",
|
||||
"success": "server met succes toegevoegd",
|
||||
"input_savePassword": "wachtwoord opslaan",
|
||||
"ignoreSsl": "negeer ssl $t(common.restartRequired)",
|
||||
"ignoreCors": "negeer cors $t(common.restartRequired)",
|
||||
"error_savePassword": "er is iets mis gegaan met het opslaan van het wachtwoord"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -501,18 +501,18 @@
|
||||
"mpvExecutablePath": "ścieżka pliku wykonywalnego mpv",
|
||||
"playButtonBehavior_description": "ustaw domyślne zachowanie dla przycisku odtwarzania kiedy piosenka zostanie dodana do kolejki",
|
||||
"minimumScrobblePercentage_description": "minimalny czas odtwarzania piosenki który musi upłynąć aby uznać ją za scrobble",
|
||||
"minimumScrobbleSeconds_description": "minimalny czas odtwarzania piosenki w sekundach jaki musi upłynąć aby uznać ją za scrobble",
|
||||
"minimumScrobbleSeconds_description": "minimalny czas odtwarzania piosenki w sekundach jaki musi upłynąć aby uznać ją za scrobbling",
|
||||
"playButtonBehavior": "zachowanie przycisku odtwarzania",
|
||||
"playbackStyle_optionNormal": "normalny",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"minimumScrobbleSeconds": "minimalne scrobble (sekund)",
|
||||
"minimumScrobbleSeconds": "minimalne scrobble (w sekundach)",
|
||||
"remotePort_description": "ustaw port dla serwera zdalnej kontroli",
|
||||
"replayGainMode_description": "dostosuj wzmocnienie dźwięku zgodnie z wartościami {{ReplayGain}} przechowywanymi w metadanych do pliku",
|
||||
"replayGainFallback": "rezerwowy {{ReplayGain}}",
|
||||
"sidebarCollapsedNavigation_description": "pokaż lub ukryj nawigację na zwiniętym pasku bocznym",
|
||||
"skipDuration": "czas trwania pominięcia",
|
||||
"showSkipButtons": "pokaż przyciski pomijania",
|
||||
"scrobble": "scrobble",
|
||||
"scrobble": "scrobbling",
|
||||
"skipDuration_description": "ustaw czas pominięcia kiedy zostanie użyty przycisk pominięcia na pasku odtwarzania",
|
||||
"replayGainClipping_description": "Zapobiegaj wzmocnieniu spowodowanemu przez {{ReplayGain}} na automatyczne obniżanie wzmocnienia",
|
||||
"replayGainPreamp": "przedwzmacniacz {{ReplayGain}} (db)",
|
||||
|
||||
+47
-11
@@ -9,7 +9,7 @@
|
||||
"bitrate": "taxa de bits",
|
||||
"action_one": "ação",
|
||||
"action_many": "ações",
|
||||
"action_other": "(n == 0 || n == 1) ? ação : ações",
|
||||
"action_other": "ações",
|
||||
"biography": "biografia",
|
||||
"bpm": "bpm",
|
||||
"edit": "editar",
|
||||
@@ -31,7 +31,7 @@
|
||||
"comingSoon": "em breve…",
|
||||
"channel_one": "canal",
|
||||
"channel_many": "canais",
|
||||
"channel_other": "(n == 0 || n == 1) ? canal : canais",
|
||||
"channel_other": "canais",
|
||||
"disable": "desabilitar",
|
||||
"expand": "expandir",
|
||||
"disc": "disco",
|
||||
@@ -62,7 +62,7 @@
|
||||
"version": "versão",
|
||||
"filter_one": "filtro",
|
||||
"filter_many": "filtros",
|
||||
"filter_other": "(n == 0 || n == 1) ? filtro : filtros",
|
||||
"filter_other": "filtros",
|
||||
"filters": "filtros",
|
||||
"saveAndReplace": "salvar e substituir",
|
||||
"playerMustBePaused": "o player deve estar pausado",
|
||||
@@ -184,27 +184,63 @@
|
||||
"entity": {
|
||||
"albumArtist_one": "artista do álbum",
|
||||
"albumArtist_many": "artistas do álbum",
|
||||
"albumArtist_other": "(n == 0 || n == 1) ? artista do álbum : artistas do álbum",
|
||||
"albumArtist_other": "artistas do álbum",
|
||||
"albumArtistCount_one": "{{count}} artista do álbum",
|
||||
"albumArtistCount_many": "{{count}} artistas do álbum",
|
||||
"albumArtistCount_other": "(n == 0 || n == 1) ? {{count}} artista do álbum : {{count}} artistas do álbum",
|
||||
"albumArtistCount_other": "{{count}} artistas do álbum",
|
||||
"album_one": "álbum",
|
||||
"album_many": "álbuns",
|
||||
"album_other": "(n == 0 || n == 1) ? álbum : álbuns",
|
||||
"album_other": "álbuns",
|
||||
"artist_one": "artista",
|
||||
"artist_many": "artistas",
|
||||
"artist_other": "(n == 0 || n == 1) ? artista : artistas",
|
||||
"artist_other": "artistas",
|
||||
"albumWithCount_one": "{{count}} álbum",
|
||||
"albumWithCount_many": "{{count}} álbuns",
|
||||
"albumWithCount_other": "(n == 0 || n == 1) ? {{count}} álbum : {{count}} álbuns",
|
||||
"albumWithCount_other": "{{count}} álbuns",
|
||||
"favorite_one": "favorito",
|
||||
"favorite_many": "favoritos",
|
||||
"favorite_other": "(n == 0 || n == 1) ? favorito : favoritos",
|
||||
"favorite_other": "favoritos",
|
||||
"artistWithCount_one": "{{count}} artista",
|
||||
"artistWithCount_many": "{{count}} artistas",
|
||||
"artistWithCount_other": "(n == 0 || n == 1) ? artista : artistas",
|
||||
"artistWithCount_other": "{{count}} artistas",
|
||||
"folder_one": "pasta",
|
||||
"folder_many": "pastas",
|
||||
"folder_other": "(n == 0 || n == 1) ? pasta : pastas"
|
||||
"folder_other": "pastas",
|
||||
"genre_one": "gênero",
|
||||
"genre_many": "gêneros",
|
||||
"genre_other": "gêneros",
|
||||
"playlistWithCount_one": "{{count}} playlist",
|
||||
"playlistWithCount_many": "{{count}} playlists",
|
||||
"playlistWithCount_other": "{{count}} playlists",
|
||||
"playlist_one": "playlist",
|
||||
"playlist_many": "playlists",
|
||||
"playlist_other": "playlists",
|
||||
"folderWithCount_one": "{{count}} pasta",
|
||||
"folderWithCount_many": "{{count}} pastas",
|
||||
"folderWithCount_other": "{{count}} pastas",
|
||||
"genreWithCount_one": "{{count}} gênero",
|
||||
"genreWithCount_many": "{{count}} gêneros",
|
||||
"genreWithCount_other": "{{count}} gêneros"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "reinicie o servidor para aplicar a nova porta",
|
||||
"systemFontError": "ocorreu um erro ao tentar obter fontes do sistema",
|
||||
"playbackError": "ocorreu um erro ao tentar reproduzir a mídia",
|
||||
"endpointNotImplementedError": "endpoint {{endpoint}} não está implementado para {{serverType}}",
|
||||
"remotePortError": "ocorreu um erro ao tentar definir a porta do servidor remoto",
|
||||
"serverRequired": "servidor necessário",
|
||||
"authenticationFailed": "falha na autenticação",
|
||||
"apiRouteError": "não é possível encaminhar a solicitação",
|
||||
"genericError": "um erro ocorreu",
|
||||
"credentialsRequired": "credenciais necessárias",
|
||||
"sessionExpiredError": "sua sessão expirou",
|
||||
"remoteEnableError": "ocorreu um erro ao tentar $t(common.enable) o servidor remoto",
|
||||
"localFontAccessDenied": "acesso negado a fontes locais",
|
||||
"serverNotSelectedError": "nenhum servidor selecionado",
|
||||
"remoteDisableError": "ocorreu um erro ao tentar $t(common.disable) o servidor remoto",
|
||||
"mpvRequired": "MPV necessário",
|
||||
"audioDeviceFetchError": "ocorreu um erro ao tentar obter dispositivos de áudio",
|
||||
"invalidServer": "servidor inválido",
|
||||
"loginRateError": "muitas tentativas de login, tente novamente em alguns segundos"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,8 @@
|
||||
"random": "slumpmässig",
|
||||
"size": "storlek",
|
||||
"biography": "biografi",
|
||||
"note": "anteckning"
|
||||
"note": "anteckning",
|
||||
"center": "center"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "starta om servern för att tillämpa den nya porten",
|
||||
@@ -157,7 +158,9 @@
|
||||
"toYear": "till år",
|
||||
"fromYear": "från år",
|
||||
"album": "$t(entity.album_one)",
|
||||
"trackNumber": "spår"
|
||||
"trackNumber": "spår",
|
||||
"songCount": "sångräkning",
|
||||
"criticRating": "kritikerbetyg"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
@@ -218,8 +221,13 @@
|
||||
"opacity": "ogenomskinlighet",
|
||||
"lyricSize": "låttext storlek",
|
||||
"lyricAlignment": "låttext justering",
|
||||
"lyricGap": "låttext mellanrum"
|
||||
}
|
||||
"lyricGap": "låttext mellanrum",
|
||||
"synchronized": "synkroniserad",
|
||||
"showLyricProvider": "visa sångtextleverantör",
|
||||
"unsynchronized": "osynkroniserad"
|
||||
},
|
||||
"lyrics": "sångtext",
|
||||
"related": "relaterad"
|
||||
},
|
||||
"appMenu": {
|
||||
"selectServer": "välj server",
|
||||
@@ -230,7 +238,8 @@
|
||||
"openBrowserDevtools": "öppna webbläsarens utvecklingsverktyg",
|
||||
"quit": "$t(common.quit)",
|
||||
"goBack": "gå tillbaka",
|
||||
"goForward": "gå framåt"
|
||||
"goForward": "gå framåt",
|
||||
"collapseSidebar": "växla sidofältet"
|
||||
},
|
||||
"contextMenu": {
|
||||
"addToPlaylist": "$t(action.addToPlaylist)",
|
||||
@@ -251,7 +260,7 @@
|
||||
"removeFromQueue": "$t(action.removeFromQueue)"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "Mer från $t(entity.genre_one)",
|
||||
"moreFromArtist": "mer från $t(entity.genre_one)",
|
||||
"moreFromGeneric": "mer från {{item}}"
|
||||
},
|
||||
"albumArtistList": {
|
||||
@@ -259,6 +268,29 @@
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)"
|
||||
},
|
||||
"sidebar": {
|
||||
"nowPlaying": "nu spelas"
|
||||
},
|
||||
"home": {
|
||||
"mostPlayed": "mest spelade",
|
||||
"newlyAdded": "nytillkomna utgåvor",
|
||||
"explore": "utforska från ditt bibliotek",
|
||||
"recentlyPlayed": "nyligen spelat"
|
||||
},
|
||||
"setting": {
|
||||
"playbackTab": "uppspelning",
|
||||
"generalTab": "allmänt",
|
||||
"hotkeysTab": "snabbtangenter",
|
||||
"windowTab": "fönster"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
"serverCommands": "serverkommandon",
|
||||
"goToPage": "gå till sidan",
|
||||
"searchFor": "sök efter {{query}}"
|
||||
},
|
||||
"title": "kommandon"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
@@ -277,6 +309,37 @@
|
||||
"folder_one": "mapp",
|
||||
"folder_other": "mappar",
|
||||
"album_one": "album",
|
||||
"album_other": "album"
|
||||
"album_other": "album",
|
||||
"playlistWithCount_one": "{{count}} spellista",
|
||||
"playlistWithCount_other": "{{count}} spellistor",
|
||||
"folderWithCount_one": "{{count}} mapp",
|
||||
"folderWithCount_other": "{{count}} mappar",
|
||||
"track_one": "spår",
|
||||
"track_other": "spår",
|
||||
"trackWithCount_one": "{{count}} spår",
|
||||
"trackWithCount_other": "{{count}} spår"
|
||||
},
|
||||
"player": {
|
||||
"repeat_all": "repetera alla",
|
||||
"repeat": "repetera",
|
||||
"queue_remove": "ta bort markerad",
|
||||
"playRandom": "spela slumpmässigt",
|
||||
"previous": "föregående",
|
||||
"favorite": "favorit",
|
||||
"next": "nästa",
|
||||
"shuffle": "blanda",
|
||||
"playbackFetchNoResults": "inga låtar hittades",
|
||||
"playbackFetchInProgress": "laddar låtar…",
|
||||
"addNext": "lägg till nästa",
|
||||
"playbackSpeed": "uppspelningshastighet",
|
||||
"playbackFetchCancel": "det här tar ett tag... stäng aviseringen för att avbryta",
|
||||
"play": "spela",
|
||||
"repeat_off": "repetera inaktiverad",
|
||||
"queue_clear": "rensa kö",
|
||||
"muted": "mutad",
|
||||
"queue_moveToTop": "flytta markerad till botten",
|
||||
"queue_moveToBottom": "flytta markerad till toppen",
|
||||
"addLast": "lägg till sist",
|
||||
"mute": "muta"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
"queue_remove": "移除所选",
|
||||
"playRandom": "随机播放",
|
||||
"skip": "跳过",
|
||||
"previous": "前一首",
|
||||
"previous": "上一首",
|
||||
"toggleFullscreenPlayer": "全屏",
|
||||
"skip_back": "向后跳过",
|
||||
"favorite": "收藏",
|
||||
@@ -208,7 +208,7 @@
|
||||
"hotkey_skipForward": "向后跳过",
|
||||
"sidePlayQueueStyle": "侧边播放列表样式",
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
"zoom": "放大率",
|
||||
"zoom": "缩放率",
|
||||
"minimizeToTray_description": "将应用程序最小化到系统托盘",
|
||||
"hotkey_playbackPlay": "播放",
|
||||
"hotkey_togglePreviousSongFavorite": "收藏 / 取消收藏$t(common.previousSong)",
|
||||
@@ -233,7 +233,7 @@
|
||||
"hotkey_toggleFullScreenPlayer": "全屏播放",
|
||||
"hotkey_localSearch": "页面内搜索",
|
||||
"hotkey_toggleQueue": "显示 / 隐藏播放队列",
|
||||
"zoom_description": "设置应用的放大率",
|
||||
"zoom_description": "设置应用程序的缩放率",
|
||||
"remotePassword_description": "设置远程控制服务器的密码。这些凭据默认以不安全的方式传输,因此您应该使用一个您不在意的唯一密码",
|
||||
"hotkey_rate5": "评为 5 星",
|
||||
"hotkey_playbackPrevious": "上一曲",
|
||||
|
||||
@@ -45,6 +45,14 @@ const getCoverArtUrl = (args: {
|
||||
);
|
||||
};
|
||||
|
||||
interface WithDate {
|
||||
playDate?: string;
|
||||
}
|
||||
|
||||
const normalizePlayDate = (item: WithDate): string | null => {
|
||||
return !item.playDate || item.playDate.includes('0001-') ? null : item.playDate;
|
||||
};
|
||||
|
||||
const normalizeSong = (
|
||||
item: z.infer<typeof ndType._response.song> | z.infer<typeof ndType._response.playlistSong>,
|
||||
server: ServerListItem | null,
|
||||
@@ -100,7 +108,7 @@ const normalizeSong = (
|
||||
imagePlaceholderUrl,
|
||||
imageUrl,
|
||||
itemType: LibraryItem.SONG,
|
||||
lastPlayedAt: item.playDate.includes('0001-') ? null : item.playDate,
|
||||
lastPlayedAt: normalizePlayDate(item),
|
||||
lyrics: item.lyrics ? item.lyrics : null,
|
||||
name: item.title,
|
||||
path: item.path,
|
||||
@@ -159,7 +167,7 @@ const normalizeAlbum = (
|
||||
imageUrl,
|
||||
isCompilation: item.compilation,
|
||||
itemType: LibraryItem.ALBUM,
|
||||
lastPlayedAt: item.playDate.includes('0001-') ? null : item.playDate,
|
||||
lastPlayedAt: normalizePlayDate(item),
|
||||
name: item.name,
|
||||
playCount: item.playCount,
|
||||
releaseDate: new Date(item.minYear, 0, 1).toISOString(),
|
||||
@@ -207,7 +215,7 @@ const normalizeAlbumArtist = (
|
||||
id: item.id,
|
||||
imageUrl: imageUrl || null,
|
||||
itemType: LibraryItem.ALBUM_ARTIST,
|
||||
lastPlayedAt: item.playDate.includes('0001-') ? null : item.playDate,
|
||||
lastPlayedAt: normalizePlayDate(item),
|
||||
name: item.name,
|
||||
playCount: item.playCount,
|
||||
serverId: server?.id || 'unknown',
|
||||
|
||||
@@ -78,7 +78,7 @@ const albumArtist = z.object({
|
||||
name: z.string(),
|
||||
orderArtistName: z.string(),
|
||||
playCount: z.number(),
|
||||
playDate: z.string(),
|
||||
playDate: z.string().optional(),
|
||||
rating: z.number(),
|
||||
size: z.number(),
|
||||
smallImageUrl: z.string().optional(),
|
||||
@@ -128,7 +128,7 @@ const album = z.object({
|
||||
orderAlbumArtistName: z.string(),
|
||||
orderAlbumName: z.string(),
|
||||
playCount: z.number(),
|
||||
playDate: z.string(),
|
||||
playDate: z.string().optional(),
|
||||
rating: z.number().optional(),
|
||||
size: z.number(),
|
||||
songCount: z.number(),
|
||||
@@ -211,7 +211,7 @@ const song = z.object({
|
||||
orderTitle: z.string(),
|
||||
path: z.string(),
|
||||
playCount: z.number(),
|
||||
playDate: z.string(),
|
||||
playDate: z.string().optional(),
|
||||
rating: z.number().optional(),
|
||||
rgAlbumGain: z.number().optional(),
|
||||
rgAlbumPeak: z.number().optional(),
|
||||
|
||||
@@ -326,7 +326,9 @@ export const MpvSettings = () => {
|
||||
<NumberInput
|
||||
defaultValue={settings.mpvProperties.replayGainFallbackDB}
|
||||
width={75}
|
||||
onBlur={(e) => handleSetMpvProperty('replayGainFallbackDB', e)}
|
||||
onBlur={(e) =>
|
||||
handleSetMpvProperty('replayGainFallbackDB', Number(e.currentTarget.value))
|
||||
}
|
||||
/>
|
||||
),
|
||||
description: t('setting.replayGainFallback', {
|
||||
|
||||
@@ -222,7 +222,9 @@ export const WindowBar = () => {
|
||||
const statusString = playerStatus === PlayerStatus.PAUSED ? '(Paused) ' : '';
|
||||
const queueString = length ? `(${index + 1} / ${length}) ` : '';
|
||||
const title = length
|
||||
? `${statusString}${queueString}${currentSong?.name} — ${currentSong?.artistName}`
|
||||
? currentSong?.artistName
|
||||
? `${statusString}${queueString}${currentSong?.name} — ${currentSong?.artistName}`
|
||||
: `${statusString}${queueString}${currentSong?.name}`
|
||||
: 'Feishin';
|
||||
document.title = title;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user