added some translations

This commit is contained in:
Roberto Tonino 2020-07-18 18:06:07 +02:00
parent 843715a659
commit ef38e48ddd
14 changed files with 379 additions and 237 deletions

File diff suppressed because one or more lines are too long

View File

@ -21,15 +21,16 @@
</header> </header>
<div class="tab"> <div class="tab">
<template v-for="(item, name, index) in body">
<button <button
:class="'selective' + (name == currentTab ? ' active' : '')" v-for="(item, name) in body"
:key="name"
class="selective"
:class="{ active: name === currentTab }"
:href="'#artist_' + name" :href="'#artist_' + name"
@click="changeTab(name)" @click="changeTab(name)"
> >
{{ name }} {{ $t(`globals.listTabs.${name}`) }}
</button> </button>
</template>
</div> </div>
<table class="table"> <table class="table">
@ -46,12 +47,13 @@
clickable: data.sortKey clickable: data.sortKey
}" }"
> >
<!-- Need to change this behaviour for translations -->
{{ data.title }} {{ data.title }}
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr v-for="release in showTable"> <tr v-for="release in showTable" :key="release.id">
<td class="inline-flex clickable" @click="albumView" :data-id="release.id"> <td class="inline-flex clickable" @click="albumView" :data-id="release.id">
<img <img
class="rounded coverart" class="rounded coverart"
@ -82,7 +84,7 @@
</table> </table>
<footer> <footer>
<button class="back-button">Back</button> <button class="back-button">{{ $t('globals.back') }}</button>
</footer> </footer>
</div> </div>
</template> </template>

View File

@ -1,5 +1,5 @@
<template functional> <template functional>
<div :id="props.id" class="loading_placeholder"> <div :id="props.id" class="loading_placeholder" :class="{ 'loading_placeholder--hidden': props.hidden }">
<span class="loading_placeholder__text">{{ props.text }}</span> <span class="loading_placeholder__text">{{ props.text }}</span>
<div class="lds-ring"> <div class="lds-ring">
<div></div> <div></div>
@ -20,6 +20,11 @@ export default {
id: { id: {
type: String, type: String,
required: false required: false
},
hidden: {
type: Boolean,
required: false,
default: false
} }
} }
} }

View File

@ -1,9 +1,8 @@
<template> <template>
<div id="charts_tab" class="main_tabcontent"> <div id="charts_tab" class="main_tabcontent">
<h2 class="page_heading">Charts</h2> <h2 class="page_heading">{{ $t('charts.title') }}</h2>
<div v-if="country === ''" id="charts_selection"> <div v-if="country === ''" id="charts_selection">
<div class="release_grid charts_grid"> <div class="release_grid charts_grid">
<!-- Ugly af -->
<template v-for="release in countries"> <template v-for="release in countries">
<div <div
role="button" role="button"
@ -36,13 +35,13 @@
</div> </div>
</div> </div>
<div v-else id="charts_table"> <div v-else id="charts_table">
<button @click="changeCountry">Change Country</button> <button @click="changeCountry">{{ $t('charts.changeCountry') }}</button>
<button <button
@contextmenu.prevent="openQualityModal" @contextmenu.prevent="openQualityModal"
@click.stop="addToQueue" @click.stop="addToQueue"
:data-link="'https://www.deezer.com/playlist/' + id" :data-link="'https://www.deezer.com/playlist/' + id"
> >
Download Chart {{ $t('charts.download') }}
</button> </button>
<table class="table table--charts"> <table class="table table--charts">
<tbody> <tbody>
@ -117,6 +116,8 @@ import { showView } from '@js/tabs.js'
import Downloads from '@/utils/downloads' import Downloads from '@/utils/downloads'
import Utils from '@/utils/utils' import Utils from '@/utils/utils'
import EventBus from '@/utils/EventBus'
export default { export default {
name: 'the-charts-tab', name: 'the-charts-tab',
data() { data() {

View File

@ -1,14 +1,14 @@
<template> <template>
<div id="errors_tab" class="main_tabcontent"> <div id="errors_tab" class="main_tabcontent">
<h1>Errors for {{ title }}</h1> <h1>{{ $t('errors.title') }} {{ title }}</h1>
<table> <table>
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Artist</th> <th>{{ $tc('globals.listTabs.artist', 1) }}</th>
<th>Title</th> <th>{{ $tc('globals.listTabs.title', 1) }}</th>
<th>Error</th> <th>{{ $tc('globals.listTabs.error', 1) }}</th>
</tr> </tr>
<tr v-for="error in errors"> <tr v-for="error in errors" :key="error.data.id">
<td>{{ error.data.id }}</td> <td>{{ error.data.id }}</td>
<td>{{ error.data.artist }}</td> <td>{{ error.data.artist }}</td>
<td>{{ error.data.title }}</td> <td>{{ error.data.title }}</td>

View File

@ -1,7 +1,7 @@
<template> <template>
<div id="favorites_tab" class="main_tabcontent" @click="handleFavoritesTabClick"> <div id="favorites_tab" class="main_tabcontent" @click="handleFavoritesTabClick">
<h2 class="page_heading"> <h2 class="page_heading">
Favorites {{ $t('favorites.title') }}
<div <div
@click="reloadTabs" @click="reloadTabs"
class="clickable reload-button reload-button--inline" class="clickable reload-button reload-button--inline"
@ -13,15 +13,23 @@
</div> </div>
</h2> </h2>
<div class="section-tabs"> <div class="section-tabs">
<div class="section-tabs__tab favorites_tablinks" id="favorites_playlist_tab">Playlists</div> <div class="section-tabs__tab favorites_tablinks" id="favorites_playlist_tab">
<div class="section-tabs__tab favorites_tablinks" id="favorites_album_tab">Albums</div> {{ $tc('globals.listTabs.playlist', 2) }}
<div class="section-tabs__tab favorites_tablinks" id="favorites_artist_tab">Artists</div> </div>
<div class="section-tabs__tab favorites_tablinks" id="favorites_track_tab">Tracks</div> <div class="section-tabs__tab favorites_tablinks" id="favorites_album_tab">
{{ $tc('globals.listTabs.album', 2) }}
</div>
<div class="section-tabs__tab favorites_tablinks" id="favorites_artist_tab">
{{ $tc('globals.listTabs.artist', 2) }}
</div>
<div class="section-tabs__tab favorites_tablinks" id="favorites_track_tab">
{{ $tc('globals.listTabs.track', 2) }}
</div>
</div> </div>
<div id="playlist_favorites" class="favorites_tabcontent"> <div id="playlist_favorites" class="favorites_tabcontent">
<div v-if="playlists.length == 0"> <div v-if="playlists.length == 0">
<h1>No Playlists found</h1> <h1>{{ $t('favorites.noPlaylists') }}</h1>
</div> </div>
<div class="release_grid" v-if="playlists.length > 0 || spotifyPlaylists > 0"> <div class="release_grid" v-if="playlists.length > 0 || spotifyPlaylists > 0">
<div v-for="release in playlists" class="release clickable" @click="playlistView" :data-id="release.id"> <div v-for="release in playlists" class="release clickable" @click="playlistView" :data-id="release.id">
@ -39,7 +47,11 @@
</div> </div>
</div> </div>
<p class="primary-text">{{ release.title }}</p> <p class="primary-text">{{ release.title }}</p>
<p class="secondary-text">{{ 'by ' + release.creator.name + ' - ' + release.nb_tracks + ' tracks' }}</p> <p class="secondary-text">
{{
`${$t('globals.by')} ${release.creator.name} - ${release.nb_tracks} ${$tc('globals.listTabs.track', 2)}`
}}
</p>
</div> </div>
<div <div
v-for="release in spotifyPlaylists" v-for="release in spotifyPlaylists"
@ -61,13 +73,20 @@
</div> </div>
</div> </div>
<p class="primary-text">{{ release.title }}</p> <p class="primary-text">{{ release.title }}</p>
<p class="secondary-text">{{ 'by ' + release.creator.name + ' - ' + release.nb_tracks + ' tracks' }}</p> <p class="secondary-text">
{{
`${$t('globals.by')} ${release.creator.name} - ${release.nb_tracks.name} ${$tc(
'globals.listTabs.track',
2
)}`
}}
</p>
</div> </div>
</div> </div>
</div> </div>
<div id="album_favorites" class="favorites_tabcontent"> <div id="album_favorites" class="favorites_tabcontent">
<div v-if="albums.length == 0"> <div v-if="albums.length == 0">
<h1>No Favorite Albums found</h1> <h1>{{ $t('favorites.noAlbums') }}</h1>
</div> </div>
<div class="release_grid" v-if="albums.length > 0"> <div class="release_grid" v-if="albums.length > 0">
<div v-for="release in albums" class="release clickable" @click="albumView" :data-id="release.id"> <div v-for="release in albums" class="release clickable" @click="albumView" :data-id="release.id">
@ -85,13 +104,13 @@
</div> </div>
</div> </div>
<p class="primary-text">{{ release.title }}</p> <p class="primary-text">{{ release.title }}</p>
<p class="secondary-text">{{ 'by ' + release.artist.name }}</p> <p class="secondary-text">{{ `${$t('globals.by')} ${release.artist.name}` }}</p>
</div> </div>
</div> </div>
</div> </div>
<div id="artist_favorites" class="favorites_tabcontent"> <div id="artist_favorites" class="favorites_tabcontent">
<div v-if="artists.length == 0"> <div v-if="artists.length == 0">
<h1>No Favorite Artist found</h1> <h1>{{ $t('favorites.noArtists') }}</h1>
</div> </div>
<div class="release_grid" v-if="artists.length > 0"> <div class="release_grid" v-if="artists.length > 0">
<div v-for="release in artists" class="release clickable" @click="artistView" :data-id="release.id"> <div v-for="release in artists" class="release clickable" @click="artistView" :data-id="release.id">
@ -114,7 +133,7 @@
</div> </div>
<div id="track_favorites" class="favorites_tabcontent"> <div id="track_favorites" class="favorites_tabcontent">
<div v-if="tracks.length == 0"> <div v-if="tracks.length == 0">
<h1>No Favorite Tracks found</h1> <h1>{{ $t('favorites.noTracks') }}</h1>
</div> </div>
<table v-if="tracks.length > 0" class="table"> <table v-if="tracks.length > 0" class="table">
<tr v-for="track in tracks" class="track_row"> <tr v-for="track in tracks" class="track_row">

View File

@ -1,14 +1,20 @@
<template> <template>
<div id="home_tab" class="main_tabcontent"> <div id="home_tab" class="main_tabcontent">
<h2 class="page_heading">{{ $t('welcome') }}</h2> <h2 class="page_heading">{{ $t('globals.welcome') }}</h2>
<section id="home_not_logged_in" class="home_section" ref="notLogged"> <section id="home_not_logged_in" class="home_section" ref="notLogged">
<p id="home_not_logged_text">You need to log into your deezer account before you can start downloading.</p> <p id="home_not_logged_text">{{ $t('home.needTologin') }}</p>
<button type="button" name="button" @click="openSettings">Open Settings</button> <button type="button" name="button" @click="openSettings">{{ $t('home.openSettings') }}</button>
</section> </section>
<section v-if="playlists.length" class="home_section"> <section v-if="playlists.length" class="home_section">
<h3 class="section_heading">Popular playlists</h3> <h3 class="section_heading">{{ $t('home.sections.popularPlaylists') }}</h3>
<div class="release_grid"> <div class="release_grid">
<div v-for="release in playlists" class="release clickable" @click="playlistView" :data-id="release.id"> <div
v-for="release in playlists"
:key="release.id"
class="release clickable"
@click="playlistView"
:data-id="release.id"
>
<div class="cover_container"> <div class="cover_container">
<img aria-hidden="true" class="rounded coverart" :src="release.picture_medium" /> <img aria-hidden="true" class="rounded coverart" :src="release.picture_medium" />
<div <div
@ -23,14 +29,22 @@
</div> </div>
</div> </div>
<p class="primary-text">{{ release.title }}</p> <p class="primary-text">{{ release.title }}</p>
<p class="secondary-text">{{ 'by ' + release.user.name + ' - ' + release.nb_tracks + ' tracks' }}</p> <p class="secondary-text">
{{ `${$t('globals.by')} ${release.user.name} - ${release.nb_tracks} ${$tc('globals.listTabs.track', 2)}` }}
</p>
</div> </div>
</div> </div>
</section> </section>
<section v-if="albums.length" class="home_section"> <section v-if="albums.length" class="home_section">
<h3 class="section_heading">Most streamed albums</h3> <h3 class="section_heading">{{ $t('home.sections.popularAlbums') }}</h3>
<div class="release_grid"> <div class="release_grid">
<div v-for="release in albums" class="release clickable" @click="albumView" :data-id="release.id"> <div
v-for="release in albums"
:key="release.id"
class="release clickable"
@click="albumView"
:data-id="release.id"
>
<div class="cover_container"> <div class="cover_container">
<img aria-hidden="true" class="rounded coverart" :src="release.cover_medium" /> <img aria-hidden="true" class="rounded coverart" :src="release.cover_medium" />
<div <div
@ -45,7 +59,7 @@
</div> </div>
</div> </div>
<p class="primary-text">{{ release.title }}</p> <p class="primary-text">{{ release.title }}</p>
<p class="secondary-text">{{ 'by ' + release.artist.name }}</p> <p class="secondary-text">{{ `${$t('globals.by')} ${release.artist.name}` }}</p>
</div> </div>
</div> </div>
</section> </section>

View File

@ -4,7 +4,7 @@
<div v-if="link == ''"> <div v-if="link == ''">
<p> <p>
You can use this section to find out more information about the link you are trying to download<br />This is You can use this section to find out more information about the link you are trying to download<br />This is
usefull if you're trying to download some tracks that are not available in your country and want to know where useful if you're trying to download some tracks that are not available in your country and want to know where
they are available they are available
</p> </p>
</div> </div>

View File

@ -427,7 +427,11 @@
</div> </div>
</div> </div>
<p class="primary-text">{{ release.title }}</p> <p class="primary-text">{{ release.title }}</p>
<p class="secondary-text">{{ 'by ' + release.user.name + ' - ' + release.nb_tracks + ' tracks' }}</p> <p class="secondary-text">
{{
`${$t('globals.by')} ${release.user.name} - ${release.nb_tracks} ${$tc('globals.listTabs.track', 2)}`
}}
</p>
</div> </div>
</div> </div>
</div> </div>

View File

@ -2,27 +2,20 @@
<div id="middle_section"> <div id="middle_section">
<TheSearchBar /> <TheSearchBar />
<TheContent /> <TheContent />
<BaseLoadingPlaceholder id="search_placeholder" text="Searching..." :hidden="true" />
<div id="search_placeholder" class="loading_placeholder loading_placeholder--hidden">
<span class="loading_placeholder__text">Searching...</span>
<div class="lds-ring">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import TheContent from '@components/TheContent.vue' import TheContent from '@components/TheContent.vue'
import TheSearchBar from '@components/TheSearchBar.vue' import TheSearchBar from '@components/TheSearchBar.vue'
import BaseLoadingPlaceholder from '@components/BaseLoadingPlaceholder.vue'
export default { export default {
components: { components: {
TheContent, TheContent,
TheSearchBar TheSearchBar,
BaseLoadingPlaceholder
} }
} }
</script> </script>

View File

@ -1,12 +1,18 @@
<template> <template>
<div id="modal_quality" class="smallmodal" v-show="open" @click="tryToDownloadTrack($event)" ref="modal"> <div id="modal_quality" class="smallmodal" v-show="open" @click="tryToDownloadTrack($event)" ref="modal">
<div class="smallmodal-content"> <div class="smallmodal-content">
<button class="quality-button" data-quality-value="9">Download FLAC</button> <button class="quality-button" data-quality-value="9">{{ $t('globals.download') }} FLAC</button>
<button class="quality-button" data-quality-value="3">Download MP3 320kbps</button> <button class="quality-button" data-quality-value="3">{{ $t('globals.download') }} MP3 320kbps</button>
<button class="quality-button" data-quality-value="1">Download MP3 128kbps</button> <button class="quality-button" data-quality-value="1">{{ $t('globals.download') }} MP3 128kbps</button>
<button class="quality-button" data-quality-value="15">Download 360 Reality Audio [HQ]</button> <button class="quality-button" data-quality-value="15">
<button class="quality-button" data-quality-value="14">Download 360 Reality Audio [MQ]</button> {{ $t('globals.download') }} 360 Reality Audio [HQ]
<button class="quality-button" data-quality-value="13">Download 360 Reality Audio [LQ]</button> </button>
<button class="quality-button" data-quality-value="14">
{{ $t('globals.download') }} 360 Reality Audio [MQ]
</button>
<button class="quality-button" data-quality-value="13">
{{ $t('globals.download') }} 360 Reality Audio [LQ]
</button>
</div> </div>
</div> </div>
</template> </template>

View File

@ -66,7 +66,7 @@
<i class="material-icons">font_download</i>{{ $t('settings.templates.title') }} <i class="material-icons">font_download</i>{{ $t('settings.templates.title') }}
</h3> </h3>
<p>{{ $t('settings.templates.tracknameTemplate') }}/p> <p>{{ $t('settings.templates.tracknameTemplate') }}</p>
<input type="text" v-model="settings.tracknameTemplate" /> <input type="text" v-model="settings.tracknameTemplate" />
<p>{{ $t('settings.templates.albumTracknameTemplate') }}</p> <p>{{ $t('settings.templates.albumTracknameTemplate') }}</p>
@ -386,7 +386,9 @@
</div> </div>
<div class="settings-group"> <div class="settings-group">
<h3 class="settings-group__header settings-group__header--with-icon"><i class="material-icons">list</i>{{ $t('settings.other.title') }}</h3> <h3 class="settings-group__header settings-group__header--with-icon">
<i class="material-icons">list</i>{{ $t('settings.other.title') }}
</h3>
<label class="with_checkbox"> <label class="with_checkbox">
<input type="checkbox" v-model="settings.tags.savePlaylistAsCompilation" /> <input type="checkbox" v-model="settings.tags.savePlaylistAsCompilation" />
@ -408,13 +410,13 @@
<select v-model="settings.tags.multitagSeparator"> <select v-model="settings.tags.multitagSeparator">
<option value="default">{{ $t('settings.other.multitagSeparator.default') }}</option> <option value="default">{{ $t('settings.other.multitagSeparator.default') }}</option>
<option value="andFeat">{{ $t('settings.other.multitagSeparator.andFeat') }}</option> <option value="andFeat">{{ $t('settings.other.multitagSeparator.andFeat') }}</option>
<option value=" & ">{{ $t('settings.other.multitagSeparator.using', [" & "]) }}</option> <option value=" & ">{{ $t('settings.other.multitagSeparator.using', [' & ']) }}</option>
<option value=",">{{ $t('settings.other.multitagSeparator.using', [","]) }}</option> <option value=",">{{ $t('settings.other.multitagSeparator.using', [',']) }}</option>
<option value=", ">{{ $t('settings.other.multitagSeparator.using', [", "]) }}</option> <option value=", ">{{ $t('settings.other.multitagSeparator.using', [', ']) }}</option>
<option value="/">{{ $t('settings.other.multitagSeparator.using', ["/"]) }}</option> <option value="/">{{ $t('settings.other.multitagSeparator.using', ['/']) }}</option>
<option value=" / ">{{ $t('settings.other.multitagSeparator.using', [" / "]) }}</option> <option value=" / ">{{ $t('settings.other.multitagSeparator.using', [' / ']) }}</option>
<option value=";">{{ $t('settings.other.multitagSeparator.using', [";"]) }}</option> <option value=";">{{ $t('settings.other.multitagSeparator.using', [';']) }}</option>
<option value="; ">{{ $t('settings.other.multitagSeparator.using', ["; "]) }}</option> <option value="; ">{{ $t('settings.other.multitagSeparator.using', ['; ']) }}</option>
</select> </select>
</div> </div>
@ -436,10 +438,26 @@
<div class="input_group"> <div class="input_group">
<p class="input_group_text">{{ $t('settings.other.dateFormat.title') }}</p> <p class="input_group_text">{{ $t('settings.other.dateFormat.title') }}</p>
<select v-model="settings.dateFormat"> <select v-model="settings.dateFormat">
<option value="Y-M-D">{{ `${$t('settings.other.dateFormat.year')}-${$t('settings.other.dateFormat.month')}-${$t('settings.other.dateFormat.day')}` }}</option> <option value="Y-M-D">{{
<option value="Y-D-M">{{ `${$t('settings.other.dateFormat.year')}-${$t('settings.other.dateFormat.day')}-${$t('settings.other.dateFormat.month')}` }}</option> `${$t('settings.other.dateFormat.year')}-${$t('settings.other.dateFormat.month')}-${$t(
<option value="D-M-Y">{{ `${$t('settings.other.dateFormat.day')}-${$t('settings.other.dateFormat.month')}-${$t('settings.other.dateFormat.year')}` }}</option> 'settings.other.dateFormat.day'
<option value="M-D-Y">{{ `${$t('settings.other.dateFormat.month')}-${$t('settings.other.dateFormat.day')}-${$t('settings.other.dateFormat.year')}` }}</option> )}`
}}</option>
<option value="Y-D-M">{{
`${$t('settings.other.dateFormat.year')}-${$t('settings.other.dateFormat.day')}-${$t(
'settings.other.dateFormat.month'
)}`
}}</option>
<option value="D-M-Y">{{
`${$t('settings.other.dateFormat.day')}-${$t('settings.other.dateFormat.month')}-${$t(
'settings.other.dateFormat.year'
)}`
}}</option>
<option value="M-D-Y">{{
`${$t('settings.other.dateFormat.month')}-${$t('settings.other.dateFormat.day')}-${$t(
'settings.other.dateFormat.year'
)}`
}}</option>
<option value="Y">{{ $t('settings.other.dateFormat.year') }}</option> <option value="Y">{{ $t('settings.other.dateFormat.year') }}</option>
</select> </select>
</div> </div>

View File

@ -1,5 +1,45 @@
const en = { const en = {
globals: {
welcome: 'Welcome to deemix', welcome: 'Welcome to deemix',
back: 'back',
loading: 'loading',
download: 'Download',
by: 'by',
listTabs: {
all: 'all',
album: 'album | albums',
artist: 'artist | artists',
single: 'single | singles',
title: 'title | titles',
track: 'track | tracks',
playlist: 'playlist | playlists',
releaseDate: 'release date',
error: 'error'
}
},
charts: {
title: 'Charts',
changeCountry: 'Change Country',
download: 'Download Chart'
},
errors: {
title: 'Errors for'
},
favorites: {
title: 'Favorites',
noPlaylists: 'No Playlists found',
noAlbums: 'No Favorite Albums found',
noArtists: 'No Favorite Artists found',
noTracks: 'No Favorite Tracks found'
},
home: {
needTologin: 'You need to log into your Deezer account before you can start downloading.',
openSettings: 'Open Settings',
sections: {
popularPlaylists: 'Popular playlists',
popularAlbums: 'Most streamed albums'
}
},
settings: { settings: {
title: 'Settings', title: 'Settings',
languages: 'Languages', languages: 'Languages',
@ -45,112 +85,112 @@ const en = {
}, },
downloads: { downloads: {
title: 'Downloads', title: 'Downloads',
queueConcurrency: "Concurrent Downloads", queueConcurrency: 'Concurrent Downloads',
maxBitrate: { maxBitrate: {
title: "Preferred Bitrate", title: 'Preferred Bitrate',
9: "FLAC 1411kbps", 9: 'FLAC 1411kbps',
3: "MP3 320kbps", 3: 'MP3 320kbps',
1: "MP3 128kbps" 1: 'MP3 128kbps'
}, },
overwriteFile: { overwriteFile: {
title: "Should I overwrite the files?", title: 'Should I overwrite the files?',
y: "Yes, overwrite the file", y: 'Yes, overwrite the file',
n: "No, don't overwrite the file", n: "No, don't overwrite the file",
t: "Overwrite only the tags" t: 'Overwrite only the tags'
}, },
fallbackBitrate: "Bitrate fallback", fallbackBitrate: 'Bitrate fallback',
fallbackSearch: "Search fallback", fallbackSearch: 'Search fallback',
logErrors: "Create log files for errors", logErrors: 'Create log files for errors',
logSearched: "Create log files for searched tracks", logSearched: 'Create log files for searched tracks',
createM3U8File: "Create playlist file", createM3U8File: 'Create playlist file',
syncedLyrics: "Create .lyr files (Sync Lyrics)", syncedLyrics: 'Create .lyr files (Sync Lyrics)',
playlistFilenameTemplate: "Playlist filename template", playlistFilenameTemplate: 'Playlist filename template',
saveDownloadQueue: "Save download queue when closing the app" saveDownloadQueue: 'Save download queue when closing the app'
}, },
covers: { covers: {
title: 'Album covers', title: 'Album covers',
saveArtwork: "Save Covers", saveArtwork: 'Save Covers',
coverImageTemplate: "Cover name template", coverImageTemplate: 'Cover name template',
saveArtworkArtist: "Save artist image", saveArtworkArtist: 'Save artist image',
artistImageTemplate: "Artist image template", artistImageTemplate: 'Artist image template',
localArtworkSize: "Local artwork size", localArtworkSize: 'Local artwork size',
embeddedArtworkSize: "Embedded artwork size", embeddedArtworkSize: 'Embedded artwork size',
PNGcovers: "Save images as png", PNGcovers: 'Save images as png',
jpegImageQuality: "JPEG image quality", jpegImageQuality: 'JPEG image quality'
}, },
tags: { tags: {
head: 'Which tags to save', head: 'Which tags to save',
title: "Title", title: 'Title',
artist: "Artist", artist: 'Artist',
album: "Album", album: 'Album',
cover: "Cover", cover: 'Cover',
trackNumber: "Track Number", trackNumber: 'Track Number',
trackTotal: "Track Total", trackTotal: 'Track Total',
discNumber: "Disc Number", discNumber: 'Disc Number',
discTotal: "Disc Total", discTotal: 'Disc Total',
albumArtist: "Album Artist", albumArtist: 'Album Artist',
genre: "Genre", genre: 'Genre',
year: "Year", year: 'Year',
date: "Date", date: 'Date',
explicit: "Explicit Lyrics", explicit: 'Explicit Lyrics',
isrc: "ISRC", isrc: 'ISRC',
length: "Track Length", length: 'Track Length',
barcode: "Album Barcode (UPC)", barcode: 'Album Barcode (UPC)',
bpm: "BPM", bpm: 'BPM',
replayGain: "Replay Gain", replayGain: 'Replay Gain',
label: "Album Label", label: 'Album Label',
lyrics: "Unsynchronized Lyrics", lyrics: 'Unsynchronized Lyrics',
copyright: "Copyright", copyright: 'Copyright',
composer: "Composer", composer: 'Composer',
involvedPeople: "Involved People", involvedPeople: 'Involved People'
}, },
other: { other: {
title: 'Other', title: 'Other',
savePlaylistAsCompilation: "Save playlists as compilation", savePlaylistAsCompilation: 'Save playlists as compilation',
useNullSeparator: "Use null separator", useNullSeparator: 'Use null separator',
saveID3v1: "Save ID3v1 as well", saveID3v1: 'Save ID3v1 as well',
multitagSeparator: { multitagSeparator: {
title: "How would you like to separate your artists?", title: 'How would you like to separate your artists?',
default: "Using standard specification", default: 'Using standard specification',
andFeat: "Using & and feat.", andFeat: 'Using & and feat.',
using: "Using \"{0}\"" using: 'Using "{0}"'
}, },
albumVariousArtists: "Keep \"Various Artists\" in the Album Artists", albumVariousArtists: 'Keep "Various Artists" in the Album Artists',
removeAlbumVersion: "Remove \"Album Version\" from track title", removeAlbumVersion: 'Remove "Album Version" from track title',
removeDuplicateArtists: "Remove combinations of artists", removeDuplicateArtists: 'Remove combinations of artists',
dateFormat: { dateFormat: {
title: "Date format for FLAC files", title: 'Date format for FLAC files',
year: "YYYY", year: 'YYYY',
month: "MM", month: 'MM',
day: "DD" day: 'DD'
}, },
featuredToTitle: { featuredToTitle: {
title: "What should I do with featured artists?", title: 'What should I do with featured artists?',
0: "Nothing", 0: 'Nothing',
1: "Remove it from the title", 1: 'Remove it from the title',
3: "Remove it from the title and the album title", 3: 'Remove it from the title and the album title',
2: "Move it to the title" 2: 'Move it to the title'
}, },
titleCasing: "Title casing", titleCasing: 'Title casing',
artistCasing: "Artist casing", artistCasing: 'Artist casing',
casing: { casing: {
nothing: "Keep unchanged", nothing: 'Keep unchanged',
lower: "lowercase", lower: 'lowercase',
upper: "UPPERCASE", upper: 'UPPERCASE',
start: "Start Of Each Word", start: 'Start Of Each Word',
sentence: "Like a sentence" sentence: 'Like a sentence'
}, },
previewVolume: "Preview Volume", previewVolume: 'Preview Volume',
executeCommand: { executeCommand: {
title: "Command to execute after download", title: 'Command to execute after download',
description: "Leave blank for no action" description: 'Leave blank for no action'
} }
}, },
spotify: { spotify: {
title: 'Spotify Features', title: 'Spotify Features',
clientID: "Spotify clientID", clientID: 'Spotify clientID',
clientSecret: "Spotify Client Secret", clientSecret: 'Spotify Client Secret',
username: "Spotify username" username: 'Spotify username'
}, },
reset: 'Reset to Default', reset: 'Reset to Default',
save: 'Save', save: 'Save',

View File

@ -1,5 +1,45 @@
const it = { const it = {
globals: {
welcome: 'Benvenuto su deemix', welcome: 'Benvenuto su deemix',
back: 'indietro',
loading: 'caricamento',
download: 'Scarica',
by: 'di',
listTabs: {
all: 'tutto',
album: 'album',
artist: 'artista | artisti',
single: 'singolo | singoli',
title: 'titolo | titoli',
track: 'traccia | tracce',
playlist: 'playlist',
releaseDate: 'data di rilascio',
error: 'errore'
}
},
charts: {
title: 'Classifiche',
changeCountry: 'Cambia Paese',
download: 'Scarica Classifica'
},
errors: {
title: 'Errori riguardanti'
},
favorites: {
title: 'Preferiti',
noPlaylists: 'Nessuna Playlist preferita trovata',
noAlbums: 'Nessun Album preferito trovato',
noArtists: 'Nessun Artista preferito trovato',
noTracks: 'Nessuna Traccia preferito trovata'
},
home: {
needTologin: 'Devi accedere al tuo account Deezer, fino a quel momento non potrai scaricare nulla.',
openSettings: 'Apri le impostazioni',
sections: {
popularPlaylists: 'Playlyst Popolari',
popularAlbums: 'Album più riprodotti'
}
},
settings: { settings: {
title: 'Impostazioni', title: 'Impostazioni',
languages: 'Lingue', languages: 'Lingue',
@ -38,119 +78,119 @@ const it = {
createSingleFolder: 'Crea la struttura di cartelle per le traccie singole' createSingleFolder: 'Crea la struttura di cartelle per le traccie singole'
}, },
trackTitles: { trackTitles: {
title: 'Titoli traccie', title: 'Titoli tracce',
padTracks: 'Aggiungi zeri ai numeri di traccia', padTracks: 'Aggiungi zeri ai numeri di traccia',
paddingSize: 'Sovrascrivi il numero di zeri da aggiungere', paddingSize: 'Sovrascrivi il numero di zeri da aggiungere',
illegalCharacterReplacer: 'Rimpiazza caratteri illegali con' illegalCharacterReplacer: 'Rimpiazza caratteri illegali con'
}, },
downloads: { downloads: {
title: 'Download', title: 'Download',
queueConcurrency: "Download Concorrenti", queueConcurrency: 'Download Concorrenti',
maxBitrate: { maxBitrate: {
title: "Bitrate preferito", title: 'Bitrate preferito',
9: "FLAC 1411kbps", 9: 'FLAC 1411kbps',
3: "MP3 320kbps", 3: 'MP3 320kbps',
1: "MP3 128kbps" 1: 'MP3 128kbps'
}, },
overwriteFile: { overwriteFile: {
title: "Dovrei sovrascrivere i file già scaricati?", title: 'Dovrei sovrascrivere i file già scaricati?',
y: "Si, sovrascrivi i file", y: 'Si, sovrascrivi i file',
n: "No, non sovrascrivere i file", n: 'No, non sovrascrivere i file',
t: "Sovrascrivi solo i tag" t: 'Sovrascrivi solo i tag'
}, },
fallbackBitrate: "Ripiega a bitrate più bassi", fallbackBitrate: 'Ripiega a bitrate più bassi',
fallbackSearch: "Ripiega alla ricerca", fallbackSearch: 'Ripiega alla ricerca',
logErrors: "Crea file di log per gli errori", logErrors: 'Crea file di log per gli errori',
logSearched: "Crea file di log per le alternative", logSearched: 'Crea file di log per le alternative',
syncedLyrics: "Crea il file .lyr (Testi Sincronizzati)", syncedLyrics: 'Crea il file .lyr (Testi Sincronizzati)',
createM3U8File: "Crea il file playlist", createM3U8File: 'Crea il file playlist',
playlistFilenameTemplate: "Template nome del file playlist", playlistFilenameTemplate: 'Template nome del file playlist',
saveDownloadQueue: "Salva la coda di download quando chiudi l'app" saveDownloadQueue: "Salva la coda di download quando chiudi l'app"
}, },
covers: { covers: {
title: 'Copertine', title: 'Copertine',
saveArtwork: "Salva copertina album", saveArtwork: 'Salva copertina album',
coverImageTemplate: "Template nome copertina Album", coverImageTemplate: 'Template nome copertina Album',
saveArtworkArtist: "Salva copertina artista", saveArtworkArtist: 'Salva copertina artista',
artistImageTemplate: "Template nome copertina artista", artistImageTemplate: 'Template nome copertina artista',
localArtworkSize: "Dimensioni copertine locali", localArtworkSize: 'Dimensioni copertine locali',
embeddedArtworkSize: "Dimensioni copertine incorporate", embeddedArtworkSize: 'Dimensioni copertine incorporate',
PNGcovers: "Salva immagini come PNG", PNGcovers: 'Salva immagini come PNG',
jpegImageQuality: "Qualità immagine JPEG", jpegImageQuality: 'Qualità immagine JPEG'
}, },
tags: { tags: {
head: 'Quali tag salvare', head: 'Quali tag salvare',
title: "Titolo", title: 'Titolo',
artist: "Artista", artist: 'Artista',
album: "Album", album: 'Album',
cover: "Copertina", cover: 'Copertina',
trackNumber: "Numero Traccia", trackNumber: 'Numero Traccia',
trackTotal: "Traccie Totali", trackTotal: 'Traccie Totali',
discNumber: "Numero Disco", discNumber: 'Numero Disco',
discTotal: "Dischi Totali", discTotal: 'Dischi Totali',
albumArtist: "Artista dell'album", albumArtist: "Artista dell'album",
genre: "Genere", genre: 'Genere',
year: "Anno", year: 'Anno',
date: "Data", date: 'Data',
explicit: "Testo Esplicito", explicit: 'Testo Esplicito',
isrc: "ISRC", isrc: 'ISRC',
length: "Durata Traccia", length: 'Durata Traccia',
barcode: "Barcode dell'album (UPC)", barcode: "Barcode dell'album (UPC)",
bpm: "BPM", bpm: 'BPM',
replayGain: "Guadagno Brano", replayGain: 'Guadagno Brano',
label: "Casa Discografica", label: 'Casa Discografica',
lyrics: "Testo non Sincronizzato", lyrics: 'Testo non Sincronizzato',
copyright: "Copyright", copyright: 'Copyright',
composer: "Compositori", composer: 'Compositori',
involvedPeople: "Persone Coinvolte", involvedPeople: 'Persone Coinvolte'
}, },
other: { other: {
title: 'Altro', title: 'Altro',
savePlaylistAsCompilation: "Salva le playlist come Compilation", savePlaylistAsCompilation: 'Salva le playlist come Compilation',
useNullSeparator: "Usa il carattere NULL come separatore", useNullSeparator: 'Usa il carattere NULL come separatore',
saveID3v1: "Salva anche il ID3v1", saveID3v1: 'Salva anche il ID3v1',
multitagSeparator: { multitagSeparator: {
title: "Come vuoi separare gli artisti?", title: 'Come vuoi separare gli artisti?',
default: "Usando la specificazione standard", default: 'Usando la specificazione standard',
andFeat: "Usando & e feat.", andFeat: 'Usando & e feat.',
using: "Usando \"{0}\"" using: 'Usando "{0}"'
}, },
albumVariousArtists: "Lascia \"Artisti Vari\" negli artisti dell'album", albumVariousArtists: 'Lascia "Artisti Vari" negli artisti dell\'album',
removeAlbumVersion: "Rimuovi \"Album Version\" dal titolo del brano", removeAlbumVersion: 'Rimuovi "Album Version" dal titolo del brano',
removeDuplicateArtists: "Rimuovi le combinazioni di artisti", removeDuplicateArtists: 'Rimuovi le combinazioni di artisti',
dateFormat: { dateFormat: {
title: "Formato della data per i file FLAC", title: 'Formato della data per i file FLAC',
year: "AAAA", year: 'AAAA',
month: "MM", month: 'MM',
day: "GG" day: 'GG'
}, },
featuredToTitle: { featuredToTitle: {
title: "Cosa dovrei fare con i feat?", title: 'Cosa dovrei fare con i feat?',
0: "Niente", 0: 'Niente',
1: "Rimuovili dal titolo", 1: 'Rimuovili dal titolo',
3: "Rimuovili dal titolo e dal nome dell'album", 3: "Rimuovili dal titolo e dal nome dell'album",
2: "Spostali sul titolo" 2: 'Spostali sul titolo'
}, },
titleCasing: "Capitalizzazione Titoli", titleCasing: 'Capitalizzazione Titoli',
artistCasing: "Capitalizzazione Artisti", artistCasing: 'Capitalizzazione Artisti',
casing: { casing: {
nothing: "Non cambiare", nothing: 'Non cambiare',
lower: "TUTTO MAIUSCOLO", lower: 'TUTTO MAIUSCOLO',
upper: "tutto minuscolo", upper: 'tutto minuscolo',
start: "Prima Lettera Maiuscola", start: 'Prima Lettera Maiuscola',
sentence: "Come una frase" sentence: 'Come una frase'
}, },
previewVolume: "Volume Anteprime", previewVolume: 'Volume Anteprime',
executeCommand: { executeCommand: {
title: "Comando da eseguire dopo il download", title: 'Comando da eseguire dopo il download',
description: "Lascia vuoto per nessuna azione" description: 'Lascia vuoto per nessuna azione'
} }
}, },
spotify: { spotify: {
title: 'Spotify Features', title: 'Spotify Features',
clientID: "Spotify clientID", clientID: 'Spotify clientID',
clientSecret: "Spotify Client Secret", clientSecret: 'Spotify Client Secret',
username: "Spotify username" username: 'Spotify username'
}, },
reset: 'Reimposta Default', reset: 'Reimposta Default',
save: 'Salva', save: 'Salva',