Move translations to server
This commit is contained in:
@@ -1,148 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import englishMessages from 'ra-language-english'
|
||||
|
||||
export default deepmerge(englishMessages, {
|
||||
languageName: 'English',
|
||||
resources: {
|
||||
song: {
|
||||
name: 'Song |||| Songs',
|
||||
fields: {
|
||||
title: 'Title',
|
||||
artist: 'Artist',
|
||||
album: 'Album',
|
||||
path: 'File Path',
|
||||
genre: 'Genre',
|
||||
compilation: 'Compilation',
|
||||
duration: 'Time',
|
||||
year: 'Year',
|
||||
trackNumber: '#',
|
||||
playCount: 'Plays',
|
||||
size: 'File Size',
|
||||
updatedAt: 'Updated At',
|
||||
},
|
||||
actions: {
|
||||
playNow: 'Play Now',
|
||||
addToQueue: 'Play Later',
|
||||
},
|
||||
},
|
||||
album: {
|
||||
name: 'Album |||| Albums',
|
||||
fields: {
|
||||
albumArtist: 'Album Artist',
|
||||
name: 'Name',
|
||||
artist: 'Artist',
|
||||
songCount: 'Songs',
|
||||
playCount: 'Plays',
|
||||
genre: 'Genre',
|
||||
compilation: 'Compilation',
|
||||
duration: 'Duration',
|
||||
year: 'Year',
|
||||
},
|
||||
actions: {
|
||||
playAll: 'Play Now',
|
||||
playNext: 'Play Next',
|
||||
addToQueue: 'Play Later',
|
||||
shuffle: 'Shuffle',
|
||||
},
|
||||
},
|
||||
artist: {
|
||||
name: 'Artist |||| Artists',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
albumCount: 'Album Count',
|
||||
},
|
||||
},
|
||||
user: {
|
||||
name: 'User |||| Users',
|
||||
fields: {
|
||||
userName: 'Username',
|
||||
name: 'Name',
|
||||
isAdmin: 'Is Admin?',
|
||||
lastLoginAt: 'Last Login',
|
||||
updatedAt: 'Updated At',
|
||||
},
|
||||
},
|
||||
player: {
|
||||
name: 'Player |||| Players',
|
||||
fields: {
|
||||
name: 'Name',
|
||||
transcodingId: 'Transcoding',
|
||||
maxBitRate: 'Max BitRate',
|
||||
client: 'Client',
|
||||
userName: 'Username',
|
||||
lastSeen: 'Last Seen',
|
||||
},
|
||||
},
|
||||
transcoding: {
|
||||
name: 'Transcoding |||| Transcodings',
|
||||
fields: {
|
||||
name: 'Name',
|
||||
targetFormat: 'Target Format',
|
||||
defaultBitRate: 'Default BitRate',
|
||||
command: 'Command',
|
||||
},
|
||||
},
|
||||
},
|
||||
ra: {
|
||||
auth: {
|
||||
welcome1: 'Thanks for installing Navidrome!',
|
||||
welcome2: 'To start, create an admin user',
|
||||
confirmPassword: 'Confirm Password',
|
||||
buttonCreateAdmin: 'Create Admin',
|
||||
},
|
||||
validation: {
|
||||
invalidChars: 'Please only use letter and numbers',
|
||||
passwordDoesNotMatch: 'Password does not match',
|
||||
},
|
||||
},
|
||||
message: {
|
||||
note: 'NOTE',
|
||||
transcodingDisabled:
|
||||
'Changing the transcoding configuration through the web interface is disabled for security ' +
|
||||
'reasons. If you would like to change (edit or add) transcoding options, restart the server with ' +
|
||||
'the %{config} configuration option.',
|
||||
transcodingEnabled:
|
||||
'Navidrome is currently running with %{config}, making it possible to run system ' +
|
||||
'commands from the transcoding settings using the web interface. We recommend to disable it for security reasons ' +
|
||||
'and only enable it when configuring Transcoding options.',
|
||||
},
|
||||
menu: {
|
||||
library: 'Library',
|
||||
settings: 'Settings',
|
||||
version: 'Version %{version}',
|
||||
theme: 'Theme',
|
||||
personal: {
|
||||
name: 'Personal',
|
||||
options: {
|
||||
theme: 'Theme',
|
||||
language: 'Language',
|
||||
},
|
||||
},
|
||||
},
|
||||
player: {
|
||||
playListsText: 'Play Queue',
|
||||
openText: 'Open',
|
||||
closeText: 'Close',
|
||||
notContentText: 'No music',
|
||||
clickToPlayText: 'Click to play',
|
||||
clickToPauseText: 'Click to pause',
|
||||
nextTrackText: 'Next track',
|
||||
previousTrackText: 'Previous track',
|
||||
reloadText: 'Reload',
|
||||
volumeText: 'Volume',
|
||||
toggleLyricText: 'Toggle lyric',
|
||||
toggleMiniModeText: 'Minimize',
|
||||
destroyText: 'Destroy',
|
||||
downloadText: 'Download',
|
||||
removeAudioListsText: 'Delete audio lists',
|
||||
controllerTitle: '',
|
||||
clickToDeleteText: `Click to delete %{name}`,
|
||||
emptyLyricText: 'No lyric',
|
||||
playModeText: {
|
||||
order: 'In order',
|
||||
orderLoop: 'Repeat',
|
||||
singleLoop: 'Repeat One',
|
||||
shufflePlay: 'Shuffle',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,127 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import frenchMessages from 'ra-language-french'
|
||||
|
||||
export default deepmerge(frenchMessages, {
|
||||
languageName: 'Français',
|
||||
resources: {
|
||||
song: {
|
||||
name: 'Piste |||| Pistes',
|
||||
fields: {
|
||||
title: 'Titre',
|
||||
artist: 'Artiste',
|
||||
album: 'Album',
|
||||
path: 'Chemin',
|
||||
genre: 'Genre',
|
||||
compilation: 'Compilation',
|
||||
duration: 'Durée',
|
||||
year: 'Année',
|
||||
playCount: "Nombre d'écoutes",
|
||||
trackNumber: '#',
|
||||
size: 'Taille',
|
||||
updatedAt: 'Mise à jour',
|
||||
},
|
||||
actions: {
|
||||
addToQueue: 'Ajouter à la file',
|
||||
},
|
||||
},
|
||||
album: {
|
||||
name: 'Album |||| Albums',
|
||||
fields: {
|
||||
name: 'Nom',
|
||||
artist: 'Artiste',
|
||||
songCount: 'Numéro de piste',
|
||||
genre: 'Genre',
|
||||
playCount: "Numbre d'écoutes",
|
||||
compilation: 'Compilation',
|
||||
duration: 'Durée',
|
||||
year: 'Année',
|
||||
},
|
||||
actions: {
|
||||
playAll: 'Lire',
|
||||
playNext: 'Lire ensuite',
|
||||
addToQueue: 'Ajouter à la file',
|
||||
shuffle: 'Mélanger',
|
||||
},
|
||||
},
|
||||
artist: {
|
||||
name: 'Artiste |||| Artistes',
|
||||
fields: {
|
||||
name: 'Nom',
|
||||
albumCount: "Nombre d'albums",
|
||||
},
|
||||
},
|
||||
user: {
|
||||
name: 'Utilisateur |||| Utilisateurs',
|
||||
fields: {
|
||||
userName: "Nom d'utilisateur",
|
||||
isAdmin: 'Administrateur',
|
||||
lastLoginAt: 'Dernière connexion',
|
||||
updatedAt: 'Dernière mise à jour',
|
||||
name: 'Nom',
|
||||
},
|
||||
},
|
||||
player: {
|
||||
name: 'Lecteur |||| Lecteurs',
|
||||
fields: {
|
||||
name: 'Nom',
|
||||
transcodingId: 'Transcodage',
|
||||
maxBitRate: 'Bitrate maximum',
|
||||
client: 'Client',
|
||||
userName: "Nom d'utilisateur",
|
||||
lastSeen: 'Vu pour la dernière fois',
|
||||
},
|
||||
},
|
||||
transcoding: {
|
||||
name: 'Conversion |||| Conversions',
|
||||
fields: {
|
||||
name: 'Nom',
|
||||
targetFormat: 'Format',
|
||||
defaultBitRate: 'Bitrate par défaut',
|
||||
command: 'Commande',
|
||||
},
|
||||
},
|
||||
},
|
||||
ra: {
|
||||
auth: {
|
||||
welcome1: "Merci d'avoir installé Navidrome !",
|
||||
welcome2: 'Pour commencer, créez un compte administrateur',
|
||||
confirmPassword: 'Confirmer votre mot de passe',
|
||||
buttonCreateAdmin: 'Créer un compte administrateur',
|
||||
},
|
||||
validation: {
|
||||
invalidChars: "Merci d'utiliser uniquement des chiffres et des lettres",
|
||||
passwordDoesNotMatch: 'Les mots de passes ne correspondent pas',
|
||||
},
|
||||
},
|
||||
menu: {
|
||||
library: 'Bibliothèque',
|
||||
settings: 'Paramètres',
|
||||
version: 'Version%{version}',
|
||||
personal: {
|
||||
name: 'Paramètres personel',
|
||||
options: {
|
||||
theme: 'Thème',
|
||||
language: 'Langue',
|
||||
},
|
||||
},
|
||||
},
|
||||
player: {
|
||||
playListsText: 'File de lecture',
|
||||
openText: 'Ouvrir',
|
||||
closeText: 'Fermer',
|
||||
clickToPlayText: 'Cliquer pour lire',
|
||||
clickToPauseText: 'Cliquer pour mettre en pause',
|
||||
nextTrackText: 'Morceau suivant',
|
||||
previousTrackText: 'Morceau précédent',
|
||||
volumeText: 'Volume',
|
||||
toggleMiniModeText: 'Minimiser',
|
||||
removeAudioListsText: 'Vider la liste de lecture',
|
||||
clickToDeleteText: `Cliquer pour supprimer %{name}`,
|
||||
playModeText: {
|
||||
order: 'Ordonner',
|
||||
orderLoop: 'Tout répéter',
|
||||
singleLoop: 'Repéter',
|
||||
shufflePlay: 'Aleatoire',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,22 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import en from './en'
|
||||
import zh from './zh'
|
||||
import fr from './fr'
|
||||
import it from './it'
|
||||
import nl from './nl'
|
||||
import pt from './pt'
|
||||
|
||||
const addLanguages = (lang) => {
|
||||
Object.keys(lang).forEach((l) => (languages[l] = deepmerge(en, lang[l])))
|
||||
}
|
||||
const languages = { en }
|
||||
|
||||
// Add new languages to the object below (please keep alphabetic sort)
|
||||
addLanguages({ fr, it, nl, pt, zh })
|
||||
|
||||
// "Hack" to make "albumSongs" resource use the same translations as "song"
|
||||
Object.keys(languages).forEach(
|
||||
(k) => (languages[k].resources.albumSong = languages[k].resources.song)
|
||||
)
|
||||
|
||||
export default languages
|
||||
@@ -1,128 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import italianMessages from 'ra-language-italian'
|
||||
|
||||
export default deepmerge(italianMessages, {
|
||||
languageName: 'Italiano',
|
||||
resources: {
|
||||
song: {
|
||||
name: 'Traccia |||| Tracce',
|
||||
fields: {
|
||||
title: 'Titolo',
|
||||
artist: 'Artista',
|
||||
album: 'Album',
|
||||
path: 'Percorso',
|
||||
genre: 'Genere',
|
||||
compilation: 'Compilation',
|
||||
duration: 'Durata',
|
||||
year: 'Anno',
|
||||
playCount: 'Riproduzioni',
|
||||
trackNumber: '#',
|
||||
size: 'Dimensioni',
|
||||
updatedAt: 'Ultimo aggiornamento',
|
||||
},
|
||||
actions: {
|
||||
playNow: 'Riproduci',
|
||||
addToQueue: 'Aggiungi alla coda',
|
||||
},
|
||||
},
|
||||
album: {
|
||||
name: 'Album |||| Album',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
artist: 'Artista',
|
||||
songCount: 'Tracce',
|
||||
genre: 'Genere',
|
||||
playCount: 'Riproduzioni',
|
||||
compilation: 'Compilation',
|
||||
duration: 'Durata',
|
||||
year: 'Anno',
|
||||
},
|
||||
actions: {
|
||||
playAll: 'Riproduci',
|
||||
playNext: 'Riproduci come successivo',
|
||||
addToQueue: 'Aggiungi alla coda',
|
||||
shuffle: 'Riprodici casualmente',
|
||||
},
|
||||
},
|
||||
artist: {
|
||||
name: 'Artista |||| Artisti',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
albumCount: 'Album',
|
||||
},
|
||||
},
|
||||
user: {
|
||||
name: 'Utente |||| Utenti',
|
||||
fields: {
|
||||
userName: 'Utente',
|
||||
isAdmin: 'Amministratore',
|
||||
lastLoginAt: 'Ultimo accesso',
|
||||
updatedAt: 'Ultima modifica',
|
||||
name: 'Nome',
|
||||
},
|
||||
},
|
||||
player: {
|
||||
name: 'Client |||| Client',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
transcodingId: 'Transcodifica',
|
||||
maxBitRate: 'Bitrate massimo',
|
||||
client: 'Applicazione',
|
||||
userName: 'Utente',
|
||||
lastSeen: 'Ultimo acesso',
|
||||
},
|
||||
},
|
||||
transcoding: {
|
||||
name: 'Transcodifica |||| Transcodifiche',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
targetFormat: 'Formato',
|
||||
defaultBitRate: 'Bitrate predefinito',
|
||||
command: 'Comando',
|
||||
},
|
||||
},
|
||||
},
|
||||
ra: {
|
||||
auth: {
|
||||
welcome1: 'Grazie per aver installato Navidrome!',
|
||||
welcome2: 'Per iniziare, crea un amministratore',
|
||||
confirmPassword: 'Conferma la password',
|
||||
buttonCreateAdmin: 'Crea amministratore',
|
||||
},
|
||||
validation: {
|
||||
invalidChars: 'Per favore usa solo lettere e numeri',
|
||||
passwordDoesNotMatch: 'Le password non coincidono',
|
||||
},
|
||||
},
|
||||
menu: {
|
||||
library: 'Libreria',
|
||||
settings: 'Impostazioni',
|
||||
version: 'Versione %{version}',
|
||||
personal: {
|
||||
name: 'Personale',
|
||||
options: {
|
||||
theme: 'Tema',
|
||||
language: 'Lingua',
|
||||
},
|
||||
},
|
||||
},
|
||||
player: {
|
||||
playListsText: 'Coda',
|
||||
openText: 'Apri',
|
||||
closeText: 'Chiudi',
|
||||
clickToPlayText: 'Clicca per riprodurre',
|
||||
clickToPauseText: 'Clicca per mettere in pausa',
|
||||
nextTrackText: 'Traccia successiva',
|
||||
previousTrackText: 'Traccia precedente',
|
||||
volumeText: 'Volume',
|
||||
toggleMiniModeText: 'Minimizza',
|
||||
removeAudioListsText: 'Cancella coda',
|
||||
clickToDeleteText: `Clicca per rimuovere %{name}`,
|
||||
playModeText: {
|
||||
order: 'In ordine',
|
||||
orderLoop: 'Ripeti',
|
||||
singleLoop: 'Ripeti una volta',
|
||||
shufflePlay: 'Casuale',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,86 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import englishMessages from 'ra-language-dutch'
|
||||
|
||||
export default deepmerge(englishMessages, {
|
||||
languageName: 'Nederlands',
|
||||
resources: {
|
||||
song: {
|
||||
name: 'Nummer |||| Nummers',
|
||||
fields: {
|
||||
albumArtist: 'Album Artiest',
|
||||
duration: 'Tijd',
|
||||
trackNumber: 'Nummer #',
|
||||
playCount: 'Aantal keren afgespeeld',
|
||||
},
|
||||
actions: {
|
||||
addToQueue: 'Toevoegen aan afspeellijst',
|
||||
},
|
||||
},
|
||||
album: {
|
||||
fields: {
|
||||
albumArtist: 'Album Artiest',
|
||||
artist: 'Artiest',
|
||||
duration: 'Tijd',
|
||||
songCount: 'Nummerss',
|
||||
playCount: 'Aantal keren afgespeeld',
|
||||
},
|
||||
actions: {
|
||||
playAll: 'Afspelen',
|
||||
playNext: 'Hierna afspelen',
|
||||
addToQueue: 'Toevoegen aan afspeellijst',
|
||||
shuffle: 'Shuffle',
|
||||
},
|
||||
},
|
||||
},
|
||||
ra: {
|
||||
auth: {
|
||||
welcome1: 'Bedankt voor het installeren van Navidrome!',
|
||||
welcome2: 'Maak om te beginnen een beheerdersaccount',
|
||||
confirmPassword: 'Bevestig wachtwoord',
|
||||
buttonCreateAdmin: 'Beheerder maken',
|
||||
},
|
||||
validation: {
|
||||
invalidChars: 'Gebruik alleen letters en cijfers',
|
||||
passwordDoesNotMatch: 'Wachtwoord komt niet overeen',
|
||||
},
|
||||
},
|
||||
menu: {
|
||||
library: 'Bibliotheek',
|
||||
settings: 'Instellingen',
|
||||
version: 'Versie %{version}',
|
||||
theme: 'Thema',
|
||||
personal: {
|
||||
name: 'Persoonlijk',
|
||||
options: {
|
||||
theme: 'Thema',
|
||||
language: 'Taal',
|
||||
},
|
||||
},
|
||||
},
|
||||
player: {
|
||||
playListsText: 'Afspeellijst afspelen',
|
||||
openText: 'Openen',
|
||||
closeText: 'Sluiten',
|
||||
notContentText: 'Geen muziek',
|
||||
clickToPlayText: 'Klik om af te spelen',
|
||||
clickToPauseText: 'Klik om te pauzeren',
|
||||
nextTrackText: 'Volgende',
|
||||
previousTrackText: 'Vorige',
|
||||
reloadText: 'Herladen',
|
||||
volumeText: 'Volume',
|
||||
toggleLyricText: 'Songtekst aan/uit',
|
||||
toggleMiniModeText: 'Minimaliseren',
|
||||
destroyText: 'Vernietigen',
|
||||
downloadText: 'Downloaden',
|
||||
removeAudioListsText: 'Audiolijsten verwijderen',
|
||||
controllerTitle: '',
|
||||
clickToDeleteText: `Klik om %{name} te verwijderen`,
|
||||
emptyLyricText: 'Geen songtekst',
|
||||
playModeText: {
|
||||
order: 'In volgorde',
|
||||
orderLoop: 'Herhalen',
|
||||
singleLoop: 'Herhaal Eenmalig',
|
||||
shufflePlay: 'Shuffle',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,131 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import portugueseMessages from 'ra-language-portuguese'
|
||||
|
||||
export default deepmerge(portugueseMessages, {
|
||||
languageName: 'Português',
|
||||
resources: {
|
||||
song: {
|
||||
name: 'Música |||| Músicas',
|
||||
fields: {
|
||||
title: 'Título',
|
||||
artist: 'Artista',
|
||||
album: 'Álbum',
|
||||
path: 'Arquivo',
|
||||
genre: 'Gênero',
|
||||
compilation: 'Coletânea',
|
||||
duration: 'Duração',
|
||||
year: 'Ano',
|
||||
playCount: 'Execuções',
|
||||
trackNumber: '#',
|
||||
size: 'Tamanho',
|
||||
updatedAt: 'Últ. Atualização',
|
||||
},
|
||||
actions: {
|
||||
playNow: 'Tocar agora',
|
||||
addToQueue: 'Tocar por último',
|
||||
},
|
||||
},
|
||||
album: {
|
||||
name: 'Álbum |||| Álbuns',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
artist: 'Artista',
|
||||
songCount: 'Músicas',
|
||||
genre: 'Gênero',
|
||||
playCount: 'Execuções',
|
||||
compilation: 'Coletânea',
|
||||
duration: 'Duração',
|
||||
year: 'Ano',
|
||||
},
|
||||
actions: {
|
||||
playAll: 'Tocar',
|
||||
playNext: 'Tocar em seguida',
|
||||
addToQueue: 'Tocar no fim',
|
||||
shuffle: 'Aleatório',
|
||||
},
|
||||
},
|
||||
artist: {
|
||||
name: 'Artista |||| Artistas',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
albumCount: 'Total de Álbuns',
|
||||
},
|
||||
},
|
||||
user: {
|
||||
name: 'Usuário |||| Usuários',
|
||||
fields: {
|
||||
userName: 'Usuário',
|
||||
isAdmin: 'Admin?',
|
||||
lastLoginAt: 'Últ. Login',
|
||||
updatedAt: 'Últ. Atualização',
|
||||
name: 'Nome',
|
||||
},
|
||||
},
|
||||
player: {
|
||||
name: 'Tocador |||| Tocadores',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
transcodingId: 'Conversão',
|
||||
maxBitRate: 'Bitrate máx',
|
||||
client: 'Cliente',
|
||||
userName: 'Usuário',
|
||||
lastSeen: 'Últ. acesso',
|
||||
},
|
||||
},
|
||||
transcoding: {
|
||||
name: 'Conversão |||| Conversões',
|
||||
fields: {
|
||||
name: 'Nome',
|
||||
targetFormat: 'Formato',
|
||||
defaultBitRate: 'Bitrate padrão',
|
||||
command: 'Comando',
|
||||
},
|
||||
},
|
||||
},
|
||||
ra: {
|
||||
auth: {
|
||||
welcome1: 'Obrigado por instalar Navidrome!',
|
||||
welcome2: 'Para iniciar, crie um usuário admin',
|
||||
confirmPassword: 'Confirme a senha',
|
||||
buttonCreateAdmin: 'Criar Admin',
|
||||
},
|
||||
validation: {
|
||||
invalidChars: 'Somente use letras e numeros',
|
||||
passwordDoesNotMatch: 'Senha não confere',
|
||||
},
|
||||
page: {
|
||||
create: 'Criar %{name}',
|
||||
},
|
||||
},
|
||||
menu: {
|
||||
library: 'Biblioteca',
|
||||
settings: 'Configurações',
|
||||
version: 'Versão %{version}',
|
||||
personal: {
|
||||
name: 'Pessoal',
|
||||
options: {
|
||||
theme: 'Tema',
|
||||
language: 'Língua',
|
||||
},
|
||||
},
|
||||
},
|
||||
player: {
|
||||
playListsText: 'Fila de Execução',
|
||||
openText: 'Abrir',
|
||||
closeText: 'Fechar',
|
||||
clickToPlayText: 'Clique para tocar',
|
||||
clickToPauseText: 'Clique para pausar',
|
||||
nextTrackText: 'Próxima faixa',
|
||||
previousTrackText: 'Faixa anterior',
|
||||
volumeText: 'Volume',
|
||||
toggleMiniModeText: 'Minimizar',
|
||||
removeAudioListsText: 'Limpar fila de execução',
|
||||
clickToDeleteText: `Clique para remover %{name}`,
|
||||
playModeText: {
|
||||
order: 'Em ordem',
|
||||
orderLoop: 'Repetir tudo',
|
||||
singleLoop: 'Repetir',
|
||||
shufflePlay: 'Aleatório',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,136 +0,0 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import chineseMessages from 'ra-language-chinese'
|
||||
|
||||
export default deepmerge(chineseMessages, {
|
||||
languageName: '简体中文',
|
||||
resources: {
|
||||
song: {
|
||||
name: '歌曲 |||| 曲库',
|
||||
fields: {
|
||||
title: '标题',
|
||||
artist: '歌手',
|
||||
album: '专辑',
|
||||
path: '路径',
|
||||
genre: '类型',
|
||||
compilation: '收录',
|
||||
albumArtist: '专辑歌手',
|
||||
duration: '时长',
|
||||
year: '年份',
|
||||
playCount: '播放次数',
|
||||
trackNumber: '音轨 #',
|
||||
size: '大小',
|
||||
updatedAt: '上次更新',
|
||||
},
|
||||
actions: {
|
||||
addToQueue: '稍后播放',
|
||||
},
|
||||
},
|
||||
album: {
|
||||
name: '专辑 |||| 专辑',
|
||||
fields: {
|
||||
name: '名称',
|
||||
albumArtist: '专辑歌手',
|
||||
artist: '歌手',
|
||||
duration: '时长',
|
||||
songCount: '曲目数',
|
||||
playCount: '播放次数',
|
||||
compilation: '合辑',
|
||||
year: '年份',
|
||||
},
|
||||
actions: {
|
||||
playAll: '播放',
|
||||
playNext: '播放下一首',
|
||||
addToQueue: '稍后播放',
|
||||
shuffle: '刷新',
|
||||
},
|
||||
},
|
||||
artist: {
|
||||
name: '歌手 |||| 歌手',
|
||||
fields: {
|
||||
name: '名称',
|
||||
albumCount: '歌手数',
|
||||
},
|
||||
},
|
||||
user: {
|
||||
name: '用户 |||| 用户',
|
||||
fields: {
|
||||
userName: '用户名',
|
||||
isAdmin: '管理员',
|
||||
lastLoginAt: '最后一次访问',
|
||||
updatedAt: '上次修改',
|
||||
name: '名称',
|
||||
},
|
||||
},
|
||||
player: {
|
||||
name: '用户 |||| 用户',
|
||||
fields: {
|
||||
name: '名称',
|
||||
transcodingId: '转码',
|
||||
maxBitRate: '最大比特率',
|
||||
client: '应用程序',
|
||||
userName: '用户',
|
||||
lastSeen: '最后一次访问',
|
||||
},
|
||||
},
|
||||
transcoding: {
|
||||
name: '转码 |||| 转码',
|
||||
fields: {
|
||||
name: '名称',
|
||||
targetFormat: '格式',
|
||||
defaultBitRate: '默认比特率',
|
||||
command: '命令',
|
||||
},
|
||||
},
|
||||
},
|
||||
ra: {
|
||||
auth: {
|
||||
welcome1: '感谢您安装Navidrome!',
|
||||
welcome2: '为了开始使用,请创建一个管理员账户',
|
||||
confirmPassword: '确认密码',
|
||||
buttonCreateAdmin: '创建管理员',
|
||||
},
|
||||
validation: {
|
||||
invalidChars: '请只使用字母和数字',
|
||||
passwordDoesNotMatch: '密码不匹配',
|
||||
},
|
||||
},
|
||||
menu: {
|
||||
library: '曲库',
|
||||
settings: '设置',
|
||||
version: '版本 %{version}',
|
||||
theme: '主题',
|
||||
personal: {
|
||||
name: '个性化',
|
||||
options: {
|
||||
theme: '主题',
|
||||
language: '语言',
|
||||
},
|
||||
},
|
||||
},
|
||||
player: {
|
||||
playListsText: '播放队列',
|
||||
openText: '打开',
|
||||
closeText: '关闭',
|
||||
notContentText: '无音乐',
|
||||
clickToPlayText: '点击播放',
|
||||
clickToPauseText: '点击暂停',
|
||||
nextTrackText: '下一首',
|
||||
previousTrackText: '上一首',
|
||||
reloadText: 'Reload',
|
||||
volumeText: '音量',
|
||||
toggleLyricText: '切换歌词',
|
||||
toggleMiniModeText: '最小化',
|
||||
destroyText: '损坏',
|
||||
downloadText: '下载',
|
||||
removeAudioListsText: '清空播放列表',
|
||||
controllerTitle: '',
|
||||
clickToDeleteText: `点击删除 %{name}`,
|
||||
emptyLyricText: '无歌词',
|
||||
playModeText: {
|
||||
order: '顺序播放',
|
||||
orderLoop: '列表循环',
|
||||
singleLoop: '单曲循环',
|
||||
shufflePlay: '随机播放',
|
||||
},
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user