Compare commits

...

11 Commits

Author SHA1 Message Date
RemixDev
2d19cccebd Updated dependencies 2022-12-14 13:46:14 +01:00
RemixDev
1d778b2e45 Updated pt-br 2022-12-14 13:02:35 +01:00
RemixDev
c2b910c826 Merge branch 'main' into 'main'
Update

See merge request RemixDev/deemix-webui!43
2022-11-28 19:26:58 +00:00
Justman10000
c1ff8b3b59 Update german 2022-11-28 15:41:58 +00:00
RemixDev
80357584d2 Merge branch 'smowtenshi-main-patch-95763' into 'main'
Update officialRepo, since git.freezer.life is not available

See merge request RemixDev/deemix-webui!42
2022-11-22 21:00:24 +00:00
smow
0a39222b69 Update officialRepo, since git.freezer.life is not available 2022-10-15 13:17:27 +00:00
Lau Ha
19862d7cd3 New French translation to match English version (September 17, 2022)
--> Added OVERWRITE_LOWER_BITRATES option in the GUI
--> Added button to download just one tab
--> Made usage of wrong account license more apparent
2022-09-17 12:16:54 +00:00
RemixDev
6faf5464ad Linted pt-pt lang file 2022-08-19 23:48:17 +02:00
RemixDev
340a7b9851 Merge branch 'main' into 'main'
reviewed and updated. Added strings missing

See merge request RemixDev/deemix-webui!41
2022-08-19 21:44:26 +00:00
RemixDev
047a62e417 Updated italian language file 2022-08-19 23:43:37 +02:00
shakesac
357d781278 reviewed and updated. Added strings missing 2022-08-01 12:11:53 +01:00
7 changed files with 585 additions and 414 deletions

View File

@ -41,7 +41,7 @@
<a href="https://deemix.app/gui" target="_blank">🌍 {{ $t('about.officialWebsite') }}</a> <a href="https://deemix.app/gui" target="_blank">🌍 {{ $t('about.officialWebsite') }}</a>
</li> </li>
<li> <li>
<a href="https://git.freezer.life/RemixDev/deemix-js" target="_blank">🚀 {{ $t('about.officialRepo') }}</a> <a href="https://gitlab.com/RemixDev/deemix-js" target="_blank">🚀 {{ $t('about.officialRepo') }}</a>
</li> </li>
<li> <li>
<a href="https://gitlab.com/RemixDev/deemix-webui" target="_blank"> 💻 {{ $t('about.officialWebuiRepo') }} </a> <a href="https://gitlab.com/RemixDev/deemix-webui" target="_blank"> 💻 {{ $t('about.officialWebuiRepo') }} </a>

View File

@ -21,6 +21,7 @@ const de = {
listTabs: { listTabs: {
empty: '', empty: '',
all: 'Alle', all: 'Alle',
discography: 'Diskographie',
top_result: 'Top Ergebnis', top_result: 'Top Ergebnis',
album: 'Album | Alben', album: 'Album | Alben',
artist: 'Künstler | Künstler', artist: 'Künstler | Künstler',
@ -224,6 +225,7 @@ const de = {
startConvertingSpotifyPlaylist: 'Konvertierern von Spotify-Tracks zu Deezer-Tracks', startConvertingSpotifyPlaylist: 'Konvertierern von Spotify-Tracks zu Deezer-Tracks',
finishConvertingSpotifyPlaylist: 'Spotify Playlist convertiert', finishConvertingSpotifyPlaylist: 'Spotify Playlist convertiert',
loginNeededToDownload: 'Du musst eingeloggt sein, um Tracks herunterladen zu können!', loginNeededToDownload: 'Du musst eingeloggt sein, um Tracks herunterladen zu können!',
queueErrorCantStream: `Dein Konto kann nicht mit {Bitrate} streamen!`,
deezerNotAvailable: 'Deezer ist in deinem Land nicht verfügbar. Du solltest eine VPN nutzen.', deezerNotAvailable: 'Deezer ist in deinem Land nicht verfügbar. Du solltest eine VPN nutzen.',
deezerNotReachable: deezerNotReachable:
'Die App kann Deezer nicht erreichen. Prüfe deine Internet-Verbindung, deine Firewall oder dein Antivirus.', 'Die App kann Deezer nicht erreichen. Prüfe deine Internet-Verbindung, deine Firewall oder dein Antivirus.',
@ -238,7 +240,7 @@ const de = {
title: 'Einstellungen', title: 'Einstellungen',
languages: 'Sprachen', languages: 'Sprachen',
login: { login: {
title: 'Login', title: 'Einloggen',
loggedIn: 'Du bist eingeloggt als {username}', loggedIn: 'Du bist eingeloggt als {username}',
arl: { arl: {
title: 'Stattdessen ARL verwenden', title: 'Stattdessen ARL verwenden',
@ -255,7 +257,7 @@ const de = {
title: 'Chrome', title: 'Chrome',
step1: 'Öffne Chrome', step1: 'Öffne Chrome',
easyWay: { easyWay: {
title: 'Chrome (Easy way)', title: 'Chrome (Einfacher Weg)',
step3: 'Klicke auf das kleine "Schloss"-Symbol neben der URL', step3: 'Klicke auf das kleine "Schloss"-Symbol neben der URL',
step4: 'Klicke auf Cookies > deezer.com > cookies > arl', step4: 'Klicke auf Cookies > deezer.com > cookies > arl',
step5: 'Wähle die Zeichenfolge neben Inhalt und Kopieren aus' step5: 'Wähle die Zeichenfolge neben Inhalt und Kopieren aus'
@ -406,7 +408,7 @@ const de = {
}, },
other: { other: {
title: 'Sonstige', title: 'Sonstige',
autoCheckForUpdates: 'Check for updates on startup', autoCheckForUpdates: 'Beim Start nach Updates suchen',
savePlaylistAsCompilation: 'Speichere Playlist als Zusammenstellung', savePlaylistAsCompilation: 'Speichere Playlist als Zusammenstellung',
useNullSeparator: 'Verwende Nulltrennzeichen', useNullSeparator: 'Verwende Nulltrennzeichen',
saveID3v1: 'Speichere ID3v1 ebenfalls', saveID3v1: 'Speichere ID3v1 ebenfalls',
@ -452,14 +454,14 @@ const de = {
} }
}, },
spotify: { spotify: {
title: 'Spotify Features', title: 'Spotify Funktionen',
clientID: 'Spotify Client ID', clientID: 'Spotify Client ID',
clientSecret: 'Spotify Client Secret', clientSecret: 'Spotify Client Secret',
username: 'Spotify Benutzername', username: 'Spotify Benutzername',
question: 'Wie aktiviere ich die Spotify Features?', question: 'Wie aktiviere ich die Spotify Funktionen?',
howTo: { howTo: {
prologue: { prologue: {
p1: '"Spotify Features" ist eine Reihe von Funktionen, mit denen Du Spotify-Tracks und Alben-Links in Deezer-Links konvertieren kannst.', p1: '"Spotify Funktionen" ist eine Reihe von Funktionen, mit denen Du Spotify-Tracks und Alben-Links in Deezer-Links konvertieren kannst.',
p2: 'Wenn Du einen Spotify-Playlist-Link bereitstellst, konvertiert die App automatisch alle Links der darin enthaltenen Titel in Deezer-Titel.', p2: 'Wenn Du einen Spotify-Playlist-Link bereitstellst, konvertiert die App automatisch alle Links der darin enthaltenen Titel in Deezer-Titel.',
p3: 'Wenn Du diese Funktionen aktivierst, kannst Du Deine öffentlichen Spotify-Wiedergabelisten auch auf der Registerkarte "Favoriten" sehen.' p3: 'Wenn Du diese Funktionen aktivierst, kannst Du Deine öffentlichen Spotify-Wiedergabelisten auch auf der Registerkarte "Favoriten" sehen.'
}, },

View File

@ -21,6 +21,7 @@ const fr = {
listTabs: { listTabs: {
empty: '', empty: '',
all: 'tout', all: 'tout',
discography: 'discographie',
top_result: 'meilleur résultat', top_result: 'meilleur résultat',
album: 'album | albums', album: 'album | albums',
artist: 'artiste | artistes', artist: 'artiste | artistes',
@ -144,7 +145,7 @@ const fr = {
"La piste est indisponible sur les serveurs de Deezer et aucune alternative n'a été trouvée !", "La piste est indisponible sur les serveurs de Deezer et aucune alternative n'a été trouvée !",
noSpaceLeft: "L'espace disponible sur cet appareil est insuffisant !", noSpaceLeft: "L'espace disponible sur cet appareil est insuffisant !",
albumDoesntExists: "Aucun album n'existe pour cette piste, impossible de collecter les informations nécessaires.", albumDoesntExists: "Aucun album n'existe pour cette piste, impossible de collecter les informations nécessaires.",
wrongLicense: 'Votre compte ne prend pas en charge la piste au débit souhaité.', wrongLicense: 'Votre compte ne prend pas en charge les pistes en {bitrate}.',
wrongGeolocation: 'Votre compte ne prend pas en charge la piste depuis votre pays actuel.', wrongGeolocation: 'Votre compte ne prend pas en charge la piste depuis votre pays actuel.',
wrongGeolocationNoAlternative: wrongGeolocationNoAlternative:
"Votre compte ne prend pas en charge la piste depuis votre pays actuel et aucune alternative n'a été trouvée." "Votre compte ne prend pas en charge la piste depuis votre pays actuel et aucune alternative n'a été trouvée."
@ -225,6 +226,7 @@ const fr = {
startConvertingSpotifyPlaylist: 'Conversion de pistes Spotify en équivalents Deezer', startConvertingSpotifyPlaylist: 'Conversion de pistes Spotify en équivalents Deezer',
finishConvertingSpotifyPlaylist: 'Playlist Spotify convertie', finishConvertingSpotifyPlaylist: 'Playlist Spotify convertie',
loginNeededToDownload: 'Vous devez vous connecter pour pouvoir télécharger des pistes !', loginNeededToDownload: 'Vous devez vous connecter pour pouvoir télécharger des pistes !',
queueErrorCantStream: 'Votre compte ne prend pas en charge les téléchargements en {bitrate}.',
deezerNotAvailable: 'Deezer est indisponible dans votre pays. Vous devez utiliser un VPN.', deezerNotAvailable: 'Deezer est indisponible dans votre pays. Vous devez utiliser un VPN.',
deezerNotReachable: deezerNotReachable:
"L'application ne semble pas pouvoir communiquer avec Deezer. Vérifiez votre connexion internet, votre pare-feu ou votre antivirus.", "L'application ne semble pas pouvoir communiquer avec Deezer. Vérifiez votre connexion internet, votre pare-feu ou votre antivirus.",
@ -343,7 +345,8 @@ const fr = {
n: 'Non, ne pas écraser le fichier', n: 'Non, ne pas écraser le fichier',
t: 'Écraser uniquement les métadonnées', t: 'Écraser uniquement les métadonnées',
b: 'Non, conserver les deux fichiers et ajouter un numéro au doublon', b: 'Non, conserver les deux fichiers et ajouter un numéro au doublon',
e: "Non, et ne pas tenir compte de l'extension du fichier" e: "Non, et ne pas tenir compte de l'extension du fichier",
l: 'Écraser uniquement si le débit est plus élevé (mp3 seulement)'
}, },
fallbackBitrate: "Recourir à un débit plus faible si le débit préféré n'est pas disponible", fallbackBitrate: "Recourir à un débit plus faible si le débit préféré n'est pas disponible",
fallbackSearch: "Rechercher la piste ailleurs si le lien original n'est pas disponible", fallbackSearch: "Rechercher la piste ailleurs si le lien original n'est pas disponible",

View File

@ -20,6 +20,7 @@ const it = {
paste: 'incolla', paste: 'incolla',
listTabs: { listTabs: {
all: 'tutto', all: 'tutto',
discography: 'discografia',
top_result: 'miglior risultato', top_result: 'miglior risultato',
album: 'album', album: 'album',
artist: 'artista | artisti', artist: 'artista | artisti',
@ -135,7 +136,7 @@ const it = {
notAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!', notAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!',
noSpaceLeft: 'Spazio su disco esaurito!', noSpaceLeft: 'Spazio su disco esaurito!',
albumDoesntExists: 'Il brano non ha nessun album, impossibile ottenere informazioni', albumDoesntExists: 'Il brano non ha nessun album, impossibile ottenere informazioni',
wrongLicense: 'Il tuo account non può ascoltare questo brano con il bitrate specificato.', wrongLicense: 'Il tuo account non può ascoltare brani in {bitrate}.',
wrongGeolocation: 'Il tuo account non può ascoltare questo brano dal tuo paese.', wrongGeolocation: 'Il tuo account non può ascoltare questo brano dal tuo paese.',
wrongGeolocationNoAlternative: 'Il tuo account non può ascoltare questo brano dal e nessuna alternativa trovata.' wrongGeolocationNoAlternative: 'Il tuo account non può ascoltare questo brano dal e nessuna alternativa trovata.'
} }
@ -215,6 +216,7 @@ const it = {
startConvertingSpotifyPlaylist: 'Convertendo i brani da spotify a deezer', startConvertingSpotifyPlaylist: 'Convertendo i brani da spotify a deezer',
finishConvertingSpotifyPlaylist: 'Playlist di spotify convertita', finishConvertingSpotifyPlaylist: 'Playlist di spotify convertita',
loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!', loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!',
queueErrorCantStream: `Il tuo account non può ascoltare brani in {bitrate}!`,
deezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.', deezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.',
deezerNotReachable: deezerNotReachable:
"L'applicazione non riesce a contattare Deezer. Controlla la tua connessione internet, il tuo firewall o il tuo antivirus.", "L'applicazione non riesce a contattare Deezer. Controlla la tua connessione internet, il tuo firewall o il tuo antivirus.",
@ -332,7 +334,8 @@ const it = {
n: 'No, non sovrascrivere i file', n: 'No, non sovrascrivere i file',
t: 'Sovrascrivi solo i tag', t: 'Sovrascrivi solo i tag',
b: 'No, mantieni entrambi i file e aggiungi un numero al duplicato', b: 'No, mantieni entrambi i file e aggiungi un numero al duplicato',
e: 'No, e non tener conto della estensione del file' e: 'No, e non tener conto della estensione del file',
l: 'Sovrascrivi solo se il bitrate migliora (solo per mp3)'
}, },
fallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile', fallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile',
fallbackSearch: 'Cerca il brano se il link originale non è disponibile', fallbackSearch: 'Cerca il brano se il link originale non è disponibile',

View File

@ -21,6 +21,7 @@ const pt_br = {
listTabs: { listTabs: {
empty: '', empty: '',
all: 'todos', all: 'todos',
discography: 'discografia',
top_result: 'resultado principal', top_result: 'resultado principal',
album: 'álbum | álbuns', album: 'álbum | álbuns',
artist: 'artista | artistas', artist: 'artista | artistas',
@ -139,7 +140,7 @@ const pt_br = {
wrongLicense: 'A sua conta não permite reproduzir a faixa na qualidade desejada.', wrongLicense: 'A sua conta não permite reproduzir a faixa na qualidade desejada.',
wrongGeolocation: 'A sua conta não permite reproduzir a faixa a partir do país atual.', wrongGeolocation: 'A sua conta não permite reproduzir a faixa a partir do país atual.',
wrongGeolocationNoAlternative: wrongGeolocationNoAlternative:
'A sua conta não permite reproduzir a faixa a partir do país atual e nenhuma alternativa foi encontrada.' "A sua conta não permite reproduzir a faixa a partir do país atual e nenhuma alternativa foi encontrada."
} }
}, },
favorites: { favorites: {
@ -217,15 +218,16 @@ const pt_br = {
startConvertingSpotifyPlaylist: 'Convertendo faixas do Spotify para faixas do Deezer', startConvertingSpotifyPlaylist: 'Convertendo faixas do Spotify para faixas do Deezer',
finishConvertingSpotifyPlaylist: 'Playlists do Spotify convertidas', finishConvertingSpotifyPlaylist: 'Playlists do Spotify convertidas',
loginNeededToDownload: 'Você precisa fazer login para baixar faixas!', loginNeededToDownload: 'Você precisa fazer login para baixar faixas!',
queueErrorCantStream: `Sua conta não pode reproduzir a {bitrate}!`,
deezerNotAvailable: 'Deezer não disponível no seu país. Você precisa usar uma VPN.', deezerNotAvailable: 'Deezer não disponível no seu país. Você precisa usar uma VPN.',
deezerNotReachable: deezerNotReachable: "O aplicativo não consegue conectar-se ao Deezer. Verifique sua conexão com a Internet, firewall ou antivírus.",
'O aplicativo não consegue conectar-se ao Deezer. Verifique sua conexão com a Internet, firewall ou antivírus.',
startGeneratingItems: 'Processando {n} itens...', startGeneratingItems: 'Processando {n} itens...',
finishGeneratingItems: '{n} itens gerados.', finishGeneratingItems: '{n} itens gerados.',
noLovedPlaylist: 'Nenhuma playlist de músicas curtidas!', noLovedPlaylist: 'Nenhuma playlist de músicas curtidas!',
checkingUpdates: 'Verificando por atualizações...', checkingUpdates: 'Verificando por atualizações...',
noUpdateAvailable: 'Nenhuma atualização disponível', noUpdateAvailable: 'Nenhuma atualização disponível',
updateAvailable: 'Uma atualização está disponível!' updateAvailable: 'Uma atualização está disponível!',
wrongSpotifyUsername: '{username} não é um nome de usuário válido do Spotify'
}, },
settings: { settings: {
title: 'Configurações', title: 'Configurações',
@ -333,7 +335,8 @@ const pt_br = {
n: 'Não, não sobrescrever arquivos', n: 'Não, não sobrescrever arquivos',
t: 'Sobrescrever apenas as tags', t: 'Sobrescrever apenas as tags',
b: 'Não, manter ambos os arquivos e adicionar número ao duplicado', b: 'Não, manter ambos os arquivos e adicionar número ao duplicado',
e: 'Não, e não olhar para as extensões' e: 'Não, e não olhar para as extensões',
l: 'Sobrescrever somente se atualizar o bitrate (somente MP3)'
}, },
fallbackBitrate: 'Taxa de bits reserva', fallbackBitrate: 'Taxa de bits reserva',
fallbackSearch: 'Procurar reserva', fallbackSearch: 'Procurar reserva',

View File

@ -11,6 +11,13 @@ const pt = {
toggle_download_tab_hint: 'Expandir/Recolher', toggle_download_tab_hint: 'Expandir/Recolher',
clean_queue_hint: 'Limpar Finalizados', clean_queue_hint: 'Limpar Finalizados',
cancel_queue_hint: 'Cancelar Tudo', cancel_queue_hint: 'Cancelar Tudo',
open_downloads_folder: 'Abrir pasta Transferências',
cut: 'cortar',
copy: 'copiar',
copyLink: 'copiar ligação',
copyImageLink: 'copiar ligação da imagem',
copyDeezerLink: 'copiar ligação do deezer',
paste: 'colar',
listTabs: { listTabs: {
empty: '', empty: '',
all: 'Tudo', all: 'Tudo',
@ -20,19 +27,39 @@ const pt = {
single: 'single | singles', single: 'single | singles',
title: 'título | títulos', title: 'título | títulos',
track: 'faixa | faixas', track: 'faixa | faixas',
trackN: '0 faixas | {n} faixa | {n} faixas',
releaseN: '0 lançamentos | {n} lançamento | {n} lançamento',
playlist: 'lista de reprodução | listas de reprodução', playlist: 'lista de reprodução | listas de reprodução',
compile: 'compilação | compilações', compile: 'compilação | compilações',
ep: 'ep | eps', ep: 'ep | eps',
bundle: 'pacote | pacotes',
more: 'Mais álbuns',
featured: 'Featured in',
spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify', spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify',
releaseDate: 'data de lançamento', releaseDate: 'data de lançamento',
error: 'erro' error: 'erro',
} trackN: '0 faixas | {n} faixa | {n} faixas',
albumN: '0 albuns | {n} album | {n} albuns',
artistN: '0 artistas | {n} artista | {n} artistas',
releaseN: '0 lançamentos | {n} lançamento | {n} lançamento',
playlistN: '0 listas de reprodução | {n} lista de reprodução | {n} listas de reprodução'
},
yes: 'sim',
no: 'no',
empty: 'vazio'
}, },
about: { about: {
appStatus: {
online: 'app online',
offline: 'app offline'
},
updates: {
currentVersion: 'Versão Atual',
currentWebuiVersion: 'Versão Atual do WebUI',
versionNotAvailable: 'N/D',
updateAvailable: `Não estás a usar a versão mais recente: {version}`,
deemixVersion: 'versão deemix lib'
},
titles: { titles: {
usefulLinks: 'Links Úteis', usefulLinks: 'Ligações Úteis',
bugReports: 'Relatório de erros', bugReports: 'Relatório de erros',
contributing: 'Contribuir', contributing: 'Contribuir',
donations: 'Doações', donations: 'Doações',
@ -47,7 +74,7 @@ const pt = {
'Esta aplicação usa a biblioteca <strong>deemix</strong>, que poderás usar para desenvolver o teu proprio UI para o deemix.', 'Esta aplicação usa a biblioteca <strong>deemix</strong>, que poderás usar para desenvolver o teu proprio UI para o deemix.',
thanks: `Agradeço a <strong>rtonno</strong>, <strong>uhwot</strong> and <strong>lollilol</strong> por me ajudarem neste projeto e a <strong>BasCurtiz</strong> por elaborarem o ícone.`, thanks: `Agradeço a <strong>rtonno</strong>, <strong>uhwot</strong> and <strong>lollilol</strong> por me ajudarem neste projeto e a <strong>BasCurtiz</strong> por elaborarem o ícone.`,
upToDate: { upToDate: {
text: `Mantem-te atualizado seguindo o {newsChannel} no Telegram.`, text: `Mantém-te atualizado seguindo o {newsChannel} no Telegram.`,
newsChannel: 'canal de notícias' newsChannel: 'canal de notícias'
}, },
officialWebsite: 'Site Oficial', officialWebsite: 'Site Oficial',
@ -56,25 +83,25 @@ const pt = {
officialSubreddit: 'Subreddit Oficial', officialSubreddit: 'Subreddit Oficial',
newsChannel: 'Canal de Notícias', newsChannel: 'Canal de Notícias',
questions: { questions: {
text: `Caso tenhas alguma duvida ou problema com a app, primeiro procura por uma solução no {subreddit}. Caso não encontres nada podes criar um post com a tua questão no subreddit.`, text: `Caso tenhas alguma duvida ou problema com a app, primeiro procura por uma solução no {subreddit}. Caso não encontres nada podes criar uma publicação com a tua questão.`,
subreddit: 'subreddit' subreddit: 'subreddit'
}, },
beforeReporting: `Antes de reportares um bug certifica-te que estás a correr a versão mais recente e que o que queres reportar é mesmo um bug e não algo que apenas não funciona do teu lado.`, beforeReporting: `Antes de reportares um bug certifica-te que estás a correr a versão mais recente e que se trata realmentede um bug e não apenas algo que não funciona do teu lado.`,
beSure: `Certifica-te que o erro é reprodutivel noutros dispositivos e <strong>NÃO</strong> reportes um bug que já tenha sido reportado.`, beSure: `Certifica-te que o erro é reprodutivel noutros dispositivos e <strong>NÃO</strong> reportes um bug que já tenha sido reportado.`,
duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.', duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.',
dontOpenIssues: `<strong>NÃO</strong> abras issues para colocar questões, existe um subreddit para isso.`, dontOpenIssues: `<strong>NÃO</strong> abras issues para colocar questões, existe um subreddit para isso.`,
newUI: { newUI: {
text: `Caso sejas fluente em python podes tentar criar um novo UI para a aplicação recorrendo à biblioteca base , ou corrigir erros na biblioteca com um pull request no {repo}.`, text: `Caso sejas fluente em python podes tentar criar um novo UI para a aplicação recorrendo à biblioteca base ou corrigir erros na biblioteca com um pull request no {repo}.`,
repo: 'repositório' repo: 'repositório'
}, },
acceptFeatures: `Também aceito funcionalidades não complexas caso possam ser implementadas directamente na app e não na biblioteca.`, acceptFeatures: `Também aceito funcionalidades não complexas caso possam ser implementadas directamente na app e não na biblioteca.`,
otherLanguages: `Caso sejas fluente noutra linguagem de programação podes tentar migrar o deemix para outra linguagem de programação!`, otherLanguages: `Caso sejas fluente noutra linguagem de programação podes tentar migrar o deemix para outra linguagem de programação!`,
understandingCode: `Precisas de ajuda a entender o código? Acede a RemixDev no Telegram ou no Reddit.`, understandingCode: `Precisas de ajuda a compreender o código? Acede a RemixDev no Telegram ou no Reddit.`,
contributeWebUI: { contributeWebUI: {
text: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o {webui}.`, text: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o {webui}.`,
webui: 'WebUI' webui: 'WebUI'
}, },
itsFree: `Deves ter em conta que <strong>que este projecto é gratuito</strong> e <strong>deverás apoiar os artistas que aprecias</strong> antes de apoiares os programadores.`, itsFree: `Deves ter em conta que <strong>que este projeto é gratuito</strong> e <strong>deverás apoiar os artistas que aprecias</strong> antes de apoiares os programadores.`,
notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`, notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`,
lincensedUnder: { lincensedUnder: {
text: `Este trabalho esta licenciado sobre a {gpl3}.`, text: `Este trabalho esta licenciado sobre a {gpl3}.`,
@ -88,6 +115,7 @@ const pt = {
}, },
errors: { errors: {
title: 'Erros para {name}', title: 'Erros para {name}',
postTitle: 'Erros após transferência',
ids: { ids: {
invalidURL: 'URL não reconhecido', invalidURL: 'URL não reconhecido',
unsupportedURL: 'URL ainda não suportado', unsupportedURL: 'URL ainda não suportado',
@ -103,7 +131,13 @@ const pt = {
wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e não foi encontrada alternativa!', wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e não foi encontrada alternativa!',
no360RA: 'Faixa não disponível em Reality Audio 360.', no360RA: 'Faixa não disponível em Reality Audio 360.',
notAvailable: 'Faixa não disponível nos servidores do deezer!', notAvailable: 'Faixa não disponível nos servidores do deezer!',
notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e não foi encontrada alternativa!' notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e não foi encontrada alternativa!',
noSpaceLeft: 'O dispositivo não tem armazenamento disponível!',
albumDoesntExists: 'A faixa do álbum não existe, recolha de informação falhou.',
wrongLicense: 'A tua conta não permite fazer streaming da faixa com o bitrate desejado.',
wrongGeolocation: 'A tua conta não permite fazer streaming da faixa a partir do teu país.',
wrongGeolocationNoAlternative:
'A tua conta não permite fazer streaming da faixa a partir do teu país e não foi encontrada nenhuma alternativa.'
} }
}, },
favorites: { favorites: {
@ -114,7 +148,7 @@ const pt = {
noTracks: 'Faixas favoritas não encontradas' noTracks: 'Faixas favoritas não encontradas'
}, },
home: { home: {
needTologin: 'Antes de iniciar transferências é necessário efectuar autenticação na conta Deezer.', needTologin: 'Antes de iniciar transferências é necessário efetuar autenticação na conta Deezer.',
openSettings: 'Abrir Definições', openSettings: 'Abrir Definições',
sections: { sections: {
popularPlaylists: 'Listas de reprodução populares', popularPlaylists: 'Listas de reprodução populares',
@ -139,8 +173,12 @@ const pt = {
label: 'Editora', label: 'Editora',
recordType: 'Tipo de Disco', recordType: 'Tipo de Disco',
genres: 'Géneros', genres: 'Géneros',
tracklist: 'Lista de faixas' tracklist: 'Lista de faixas',
} readable: 'Legível',
available: 'Disponível'
},
countries: 'Países',
noCountries: 'Esta faixa não está disponível em nenhum país.'
}, },
search: { search: {
startSearching: 'Começa a pesquisar!', startSearching: 'Começa a pesquisar!',
@ -151,27 +189,39 @@ const pt = {
noResultsTrack: 'Faixa não encontrada', noResultsTrack: 'Faixa não encontrada',
noResultsAlbum: 'Álbum não encontrado', noResultsAlbum: 'Álbum não encontrado',
noResultsArtist: 'Artista não encontrado', noResultsArtist: 'Artista não encontrado',
noResultsPlaylist: 'Lista de reprodução não encontrada' noResultsPlaylist: 'Lista de reprodução não encontrada',
error: 'Ocorreu um erro, tenta novamente mais tarde.'
}, },
searchbar: 'Pesquisa o que quiseres (ou cola um link)', searchbar: 'Procura o que quiseres (ou cola uma ligação)',
downloads: 'transferências', downloads: 'transferências',
toasts: { toasts: {
addedToQueue: '{item} adicionados à fila', addedToQueue: '{item} adicionados à fila',
alreadyInQueue: '{item} já está na fila!', alreadyInQueue: '{item} já está na fila!',
finishDownload: '{item} foi transferido.', finishDownload: '{item} foi transferido.',
allDownloaded: 'Todas as transferências terminadas!', allDownloaded: 'Todas as transferências terminadas!',
refreshFavs: 'Actualizar terminados!', refreshFavs: 'Recarregamento terminado!',
loggingIn: 'A autenticar', loggingIn: 'A autenticar',
loggedIn: 'Autenticado', loggedIn: 'Autenticado',
alreadyLogged: 'Já estás autenticado', alreadyLogged: 'Já estás autenticado',
loginFailed: 'Nao foi possivel iniciar sessão', loginFailed: 'Não foi possível iniciar sessão',
loggedOut: 'Desconectado', loggedOut: 'Sessão encerrada',
cancellingCurrentItem: 'A cancelar item actual.', cancellingCurrentItem: 'A cancelar item atual.',
currentItemCancelled: 'Item actual cancelado.', currentItemCancelled: 'Item atual cancelado.',
startAddingArtist: 'A adicionar {artist} álbuns à fila', startAddingArtist: 'A adicionar {artist} álbuns à fila',
finishAddingArtist: 'Adicionados {artist} álbuns à fila', finishAddingArtist: 'Adicionados {artist} álbuns à fila',
startConvertingSpotifyPlaylist: 'A converter faixas do spotify em faixas do deezer', startConvertingSpotifyPlaylist: 'A converter faixas do spotify em faixas do deezer',
finishConvertingSpotifyPlaylist: 'Lista de reprodução do Spotify convertida.' finishConvertingSpotifyPlaylist: 'Lista de reprodução do Spotify convertida.',
loginNeededToDownload: 'É necessário iniciar sessão para transferir faixas!',
deezerNotAvailable: 'O Deezer não está disponível no teu país. Deverás utilizar uma VPN.',
deezerNotReachable:
'A app não consegue ligar-se ao Deezer. Verifica a tua ligação à internet, a tua firewall ou o teu antivirus.',
startGeneratingItems: 'A processar {n} itens...',
finishGeneratingItems: '{n} itens gerados.',
noLovedPlaylist: 'No loved tracks playlist!',
checkingUpdates: 'A procurar atualizações...',
noUpdateAvailable: 'Não existem novas atualizações',
updateAvailable: 'Existe uma atualização disponível!',
wrongSpotifyUsername: '{username} não é um nome de utilizador válido no spotify'
}, },
settings: { settings: {
title: 'Definições', title: 'Definições',
@ -181,13 +231,57 @@ const pt = {
loggedIn: 'Estás autenticado como {username}', loggedIn: 'Estás autenticado como {username}',
arl: { arl: {
question: 'Como obter o meu ARL?', question: 'Como obter o meu ARL?',
update: 'Actualizar ARL' update: 'Atualizar ARL',
howTo: {
prologue: {
p1: 'O Deezer monitoriza sessões abertas utilizando um cookie chamado ARL.',
p2: 'O Deemix utiliza este cookie para obter metadata necessária para transferir faixas do Deezer.',
p3: 'Os ARL duram 3 meses, após esse período o Deezer solicita novo inicio de sessão. O mesmo método é usado no deemix.',
p4: 'Seguindo um dos guias mais abaixo poderás obter o teu próprio ARL.',
warning: 'Utiliza este método apenas no caso do email e palavra-passe não funcionarem.'
},
chromeSteps: {
title: 'Chrome',
step1: 'Abrir Chrome',
easyWay: {
title: 'Chrome (Método simples)',
step3: 'Clique no pequeno cadeado ao lado do URL',
step4: 'Clique em Cookies > deezer.com > cookies > arl',
step5: 'Seleciona o texto após Conteúdo, e faz cópia'
},
step4: 'Vai ao separador Aplicação (caso não o vejas clique na seta dupla)',
videoGuide: {
text: 'Aqui tens um {videoGuide}',
link: 'guia em vídeo'
}
},
firefoxSteps: {
title: 'Firefox',
step1: 'Abrir Firefox',
step4: 'Ir ao separador Armazenamento (caso não o vejas clique na seta dupla)'
},
commonSteps: {
step2: 'Acede a www.deezer.com e inicia a sessão na tua conta',
step3: 'Após inicio de sessão carrega no F12 para abrir as Ferramentas de Programador',
step5: 'Expandir cookie',
step6: 'Seleciona www.deezer.com',
step7: 'Procura o cookie `arl` (Deverá ter 192 caracteres)',
step8: 'Certifica-te que apenas copias o valor e não o cookie completo',
lastStep: 'E isso é o teu ARL que agora poderás utilizar na tua app'
}
}
}, },
logout: 'Sair' logout: 'Sair',
login: 'Iniciar sessão',
email: 'E-mail',
password: 'Palavra-passe'
}, },
appearance: { appearance: {
title: 'Aspecto', title: 'Aspeto',
slimDownloadTab: 'Aba de transferências estreita' slimDownloadTab: 'Separador de transferências estreito',
slimSidebar: 'Barra lateral estreita',
searchButton: 'Mostrar botão de pesquisa',
bitrateTags: 'Mostrar etiqueta de qualidade na fila de transferências'
}, },
downloadPath: { downloadPath: {
title: 'Caminho das transferências' title: 'Caminho das transferências'
@ -195,8 +289,11 @@ const pt = {
templates: { templates: {
title: 'Formatos', title: 'Formatos',
tracknameTemplate: 'Formato do nome de faixa', tracknameTemplate: 'Formato do nome de faixa',
tracknameAvailableVariables: 'Variáveis associadas ao nome das faixas',
albumTracknameTemplate: 'Formato do nome de Álbum', albumTracknameTemplate: 'Formato do nome de Álbum',
playlistTracknameTemplate: 'Formato do nome de lista de reprodução' albumTracknameAvailableVariables: 'Variáveis associadas ao nome dos álbuns',
playlistTracknameTemplate: 'Formato do nome de lista de reprodução',
playlistTracknameAvailableVariables: 'Variáveis associadas ao nome das listas de reprodução'
}, },
folders: { folders: {
title: 'Pastas', title: 'Pastas',
@ -229,16 +326,20 @@ const pt = {
title: 'Ficheiros existentes. Substituir?', title: 'Ficheiros existentes. Substituir?',
y: 'Sim, substituir o ficheiro', y: 'Sim, substituir o ficheiro',
n: 'Não substituir o ficheiro', n: 'Não substituir o ficheiro',
t: 'Subescrever apenas as etiquetas' t: 'Substituir apenas as etiquetas',
b: 'Não, manter ambos os ficheiros e numerar o ficheiro duplicado',
e: 'Não e ignorar as extensões'
}, },
fallbackBitrate: 'Bitrate fallback', fallbackBitrate: 'Bitrate fallback',
fallbackSearch: 'Fallback de pesquisa', fallbackSearch: 'Fallback de pesquisa',
fallbackISRC: 'Fallback com pesquisa ISRC',
feelingLucky: 'Arriscar com CDNs e caches',
logErrors: 'Criar histórico para erros', logErrors: 'Criar histórico para erros',
logSearched: 'Criar histórico para faixas pesquisadas', logSearched: 'Criar histórico para faixas pesquisadas',
createM3U8File: 'Criar ficheiro de lista de reprodução', createM3U8File: 'Criar ficheiro de lista de reprodução',
syncedLyrics: 'Criar ficheiro .lrc (Letra Sincronizada)', syncedLyrics: 'Criar ficheiro .lrc (Letra Sincronizada)',
playlistFilenameTemplate: 'Formato do nome de ficheiro da lista de reprodução', playlistFilenameTemplate: 'Formato do nome de ficheiro da lista de reprodução',
saveDownloadQueue: 'Guardar fila de transferências ao fechar a aplicação' clearQueueOnExit: 'Limpar fila de transferências ao fechar a aplicação'
}, },
covers: { covers: {
title: 'Capas do Álbum', title: 'Capas do Álbum',
@ -246,20 +347,26 @@ const pt = {
coverImageTemplate: 'Modelo do nome da capa', coverImageTemplate: 'Modelo do nome da capa',
saveArtworkArtist: 'Salvar imagem do artista', saveArtworkArtist: 'Salvar imagem do artista',
artistImageTemplate: 'Modelo de imagem do artista', artistImageTemplate: 'Modelo de imagem do artista',
localArtworkSize: 'Tamanho do trabalho artístico local', localArtworkSize: 'Tamanho da arte gráfica local',
embeddedArtworkSize: 'Tamanho do trabalho artístico incorporado', embeddedArtworkSize: 'Tamanho da arte gráfica incorporada',
localArtworkFormat: { localArtworkFormat: {
title: 'Em que formato desejas o trabalho artístico local?', title: 'Em que formato desejas guardar localmente a arte gráfica?',
jpg: 'Em imagem jpeg', jpg: 'Em jpeg',
png: 'Em imagem png', png: 'Em png',
both: 'Em jpeg e em png' both: 'Em jpeg e em png'
}, },
jpegImageQuality: 'Qualidade de imagem JPEG' jpegImageQuality: 'Qualidade de imagem JPEG',
embeddedArtworkPNG: 'Guardar arte gráfica incorporada como PNG',
embeddedPNGWarning: 'PNGs não são oficialmente suportados pelo Deezer e podem ocorrer erros',
imageSizeWarning:
'Qualquer resolução acima de x1200 não são oficialmente suportados pelo Deezer e podem ocorrer erros',
coverDescriptionUTF8: 'Guardar descrição da capa como UTF8? (iTunes Cover Fix)'
}, },
tags: { tags: {
head: 'Etiquetas a guardar', head: 'Etiquetas a guardar',
title: 'Título', title: 'Título',
artist: 'Artista', artist: 'Artista',
artists: 'Etiqueta extra ARTISTAS',
album: 'Álbum', album: 'Álbum',
cover: 'Capa', cover: 'Capa',
trackNumber: 'Número de faixa', trackNumber: 'Número de faixa',
@ -278,12 +385,16 @@ const pt = {
replayGain: 'ReplayGain', replayGain: 'ReplayGain',
label: 'Editora do álbum', label: 'Editora do álbum',
lyrics: 'Letra da música não sincronizada', lyrics: 'Letra da música não sincronizada',
syncedLyrics: 'Letra da música sincronizada',
copyright: 'Direitos de Autor', copyright: 'Direitos de Autor',
composer: 'Compositor', composer: 'Compositor',
involvedPeople: 'Pessoas envolvidas' involvedPeople: 'Pessoas envolvidas',
artistsWarning:
'Desativar a etiqueta ARTISTAS ao não usar especificações padrão, não preservará o suporte a multi-artistas'
}, },
other: { other: {
title: 'Outros', title: 'Outros',
autoCheckForUpdates: 'Procurar novas atualizações ao iniciar',
savePlaylistAsCompilation: 'Guardar listas de reprodução como compilação', savePlaylistAsCompilation: 'Guardar listas de reprodução como compilação',
useNullSeparator: 'Usar separador nulo', useNullSeparator: 'Usar separador nulo',
saveID3v1: 'Também guardar ID3v1', saveID3v1: 'Também guardar ID3v1',
@ -292,7 +403,9 @@ const pt = {
nothing: 'Guardar apenas o artista principal', nothing: 'Guardar apenas o artista principal',
default: 'Usar especificação padrão', default: 'Usar especificação padrão',
andFeat: 'Usar & e feat.', andFeat: 'Usar & e feat.',
using: 'Usar "{separator}"' using: 'Usar "{separator}"',
warning:
'Utilizar outro separador para além das especificações standard irão adicionar uma etiqueta extra ARTISTAS para perservar o suporte a multi-artistas'
}, },
singleAlbumArtist: 'Guardar apenas o artista principal do álbum', singleAlbumArtist: 'Guardar apenas o artista principal do álbum',
albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum', albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum',
@ -330,13 +443,51 @@ const pt = {
title: 'Funcionalidades Spotify', title: 'Funcionalidades Spotify',
clientID: 'Spotify clientID', clientID: 'Spotify clientID',
clientSecret: 'Spotify Client Secret', clientSecret: 'Spotify Client Secret',
username: 'nome de utilizador Spotify' username: 'nome de utilizador Spotify',
question: 'Como ativo as funcionalidades Spotify?',
howTo: {
prologue: {
p1: '"Funcionalidades Spotify" são um conjunto de funcionalidades que permitem converter ligações de faixas e álbuns do Spotify em ligações do Deezer.',
p2: 'Caso forneças uma ligação para uma lista de reprodução Spotify a aplicação converterá automaticamente tosas as ligações de faixas em ligações de faixas Deezer.',
p3: 'Ao ativar estas funcionalidades também permitirá ver as tuas listas de reprodução públicas no separator Favoritos.'
},
info: 'Por razões de segurança, deverás fornecer o teu próprio Client ID e Client Secret',
clientSecretQuestion: {
title: 'Como obtenho o meu Client ID e Client Secret?',
step1: {
text: 'Ligar a {spotifyDevelopersDashboard} e iniciar sessão com a tua conta Spotify.',
spotifyDevelopersDashboard: "Spotify for Developers's Dashboard"
},
step2: {
text: 'Clique em "Create an App".',
imageAlt: "Botão 'Create an App' no 'Spotify for Developers's Dashboard'"
},
step3: {
text: 'Preenche os campos "App name" e "App description" e marca ambas as caixas de seleção. E depois clique no botão "Create".',
imageAlt: 'Formulário "Create an app form"'
},
step4: {
text: 'O Client ID já está visível. Caso clique em "Show Client Secret" o segredo do cliente será revelado.',
imageAlt: 'Imagem do client ID e Secret'
},
step5: 'Copia e cola os resultados nos campos correspondentes das definições.'
},
usernameQuestion: {
title: 'Como obtenho o meu nome de utilizador Spotify?',
step1: {
text: 'Podes obter o teu nome de utilizador na {overviewPage} no site do Spotify.',
overviewPage: 'Overview page'
}
}
}
}, },
reset: 'Repor configurações padrão', reset: 'Repor definições padrão',
resetMessage: 'Tens a certeza que queres repor as definições padrão?',
save: 'Guardar', save: 'Guardar',
toasts: { toasts: {
init: 'Configurações carregadas!', init: 'Definições carregadas!',
update: 'Configurações actualizadas', update: 'Definições atualizadas',
reset: 'Definições padrão repostas!',
ARLcopied: 'ARL copiado para area de transferencia' ARLcopied: 'ARL copiado para area de transferencia'
} }
}, },
@ -347,10 +498,11 @@ const pt = {
favorites: 'favoritos', favorites: 'favoritos',
linkAnalyzer: 'analizador de links', linkAnalyzer: 'analizador de links',
settings: 'definições', settings: 'definições',
logs: 'logs',
about: 'sobre' about: 'sobre'
}, },
tracklist: { tracklist: {
downloadSelection: 'Transferir seleccionados' downloadSelection: 'Transferir selecionados'
} }
} }

718
yarn.lock

File diff suppressed because it is too large Load Diff