diff --git a/ui/package-lock.json b/ui/package-lock.json index 058194c0d..70cf2f10f 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -13127,6 +13127,11 @@ "resolved": "https://registry.npmjs.org/ra-language-english/-/ra-language-english-3.2.0.tgz", "integrity": "sha512-/XmwYWoQoB4MBkkzBCbg/ykCuRGjHQOHLk2ik6n1aM10AWHxiiJNyRw2aoLzH7Vc5rcp4BBJQCuhT+DgfYIJ2Q==" }, + "ra-language-italian": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ra-language-italian/-/ra-language-italian-3.0.0.tgz", + "integrity": "sha512-DUl1BTwYn06ype4ttUmnCfhq0BrrKKx+XuBJkjeIoesKjnT72iccF+/Dq+KUtJhzExVmeWQBA8DzI+0Z3QF+bA==" + }, "ra-language-portuguese": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ra-language-portuguese/-/ra-language-portuguese-1.6.0.tgz", diff --git a/ui/package.json b/ui/package.json index 113188d5c..c1b25bd0a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -12,6 +12,7 @@ "md5-hex": "^3.0.1", "prop-types": "^15.7.2", "ra-data-json-server": "^3.3.3", + "ra-language-italian": "^3.0.0", "ra-language-portuguese": "^1.6.0", "react": "^16.13.1", "react-admin": "^3.3.3", diff --git a/ui/src/i18n/index.js b/ui/src/i18n/index.js index ef7725486..4fd0cc11d 100644 --- a/ui/src/i18n/index.js +++ b/ui/src/i18n/index.js @@ -1,5 +1,6 @@ import deepmerge from 'deepmerge' import en from './en' +import it from './it' import pt from './pt' const addLanguages = (lang) => { @@ -8,7 +9,7 @@ const addLanguages = (lang) => { const languages = { en } // Add new languages to the object bellow -addLanguages({ pt }) +addLanguages({ it, pt }) // "Hack" to make "albumSongs" resource use the same translations as "song" Object.keys(languages).forEach( diff --git a/ui/src/i18n/it.js b/ui/src/i18n/it.js new file mode 100644 index 000000000..ba14259d9 --- /dev/null +++ b/ui/src/i18n/it.js @@ -0,0 +1,127 @@ +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' + }, + bulk: { + 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' + } + } +})