From 357d781278ecae4240dee2d594644d26df61c846 Mon Sep 17 00:00:00 2001 From: shakesac Date: Mon, 1 Aug 2022 12:11:53 +0100 Subject: [PATCH] reviewed and updated. Added strings missing --- src/lang/pt-pt.mjs | 237 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 194 insertions(+), 43 deletions(-) diff --git a/src/lang/pt-pt.mjs b/src/lang/pt-pt.mjs index 421a45e..46f62ee 100644 --- a/src/lang/pt-pt.mjs +++ b/src/lang/pt-pt.mjs @@ -11,6 +11,13 @@ const pt = { toggle_download_tab_hint: 'Expandir/Recolher', clean_queue_hint: 'Limpar Finalizados', 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: { empty: '', all: 'Tudo', @@ -20,19 +27,39 @@ const pt = { single: 'single | singles', title: 'título | títulos', 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', compile: 'compilação | compilações', ep: 'ep | eps', + bundle: 'pacote | pacotes', + more: 'Mais álbuns', + featured: 'Featured in', spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify', 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: { + 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: { - usefulLinks: 'Links Úteis', + usefulLinks: 'Ligações Úteis', bugReports: 'Relatório de erros', contributing: 'Contribuir', donations: 'Doações', @@ -47,7 +74,7 @@ const pt = { 'Esta aplicação usa a biblioteca deemix, que poderás usar para desenvolver o teu proprio UI para o deemix.', thanks: `Agradeço a rtonno, uhwot and lollilol por me ajudarem neste projeto e a BasCurtiz por elaborarem o ícone.`, 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' }, officialWebsite: 'Site Oficial', @@ -56,25 +83,25 @@ const pt = { officialSubreddit: 'Subreddit Oficial', newsChannel: 'Canal de Notícias', 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' }, - 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 NÃO reportes um bug que já tenha sido reportado.`, duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.', dontOpenIssues: `NÃO abras issues para colocar questões, existe um subreddit para isso.`, 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' }, 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!`, - 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: { text: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o {webui}.`, webui: 'WebUI' }, - itsFree: `Deves ter em conta que que este projecto é gratuito e deverás apoiar os artistas que aprecias antes de apoiares os programadores.`, + itsFree: `Deves ter em conta que que este projeto é gratuito e deverás apoiar os artistas que aprecias antes de apoiares os programadores.`, notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`, lincensedUnder: { text: `Este trabalho esta licenciado sobre a {gpl3}.`, @@ -88,6 +115,7 @@ const pt = { }, errors: { title: 'Erros para {name}', + postTitle: 'Erros após transferência', ids: { invalidURL: 'URL não reconhecido', 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!', no360RA: 'Faixa não disponível em Reality Audio 360.', 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: { @@ -114,7 +148,7 @@ const pt = { noTracks: 'Faixas favoritas não encontradas' }, 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', sections: { popularPlaylists: 'Listas de reprodução populares', @@ -139,8 +173,12 @@ const pt = { label: 'Editora', recordType: 'Tipo de Disco', 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: { startSearching: 'Começa a pesquisar!', @@ -151,27 +189,38 @@ const pt = { noResultsTrack: 'Faixa não encontrada', noResultsAlbum: 'Álbum 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', toasts: { addedToQueue: '{item} adicionados à fila', alreadyInQueue: '{item} já está na fila!', finishDownload: '{item} foi transferido.', allDownloaded: 'Todas as transferências terminadas!', - refreshFavs: 'Actualizar terminados!', + refreshFavs: 'Recarregamento terminado!', loggingIn: 'A autenticar', loggedIn: 'Autenticado', alreadyLogged: 'Já estás autenticado', - loginFailed: 'Nao foi possivel iniciar sessão', - loggedOut: 'Desconectado', - cancellingCurrentItem: 'A cancelar item actual.', - currentItemCancelled: 'Item actual cancelado.', + loginFailed: 'Não foi possível iniciar sessão', + loggedOut: 'Sessão encerrada', + cancellingCurrentItem: 'A cancelar item atual.', + currentItemCancelled: 'Item atual cancelado.', startAddingArtist: 'A adicionar {artist} álbuns à fila', finishAddingArtist: 'Adicionados {artist} álbuns à fila', 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: { title: 'Definições', @@ -181,13 +230,57 @@ const pt = { loggedIn: 'Estás autenticado como {username}', 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: { - title: 'Aspecto', - slimDownloadTab: 'Aba de transferências estreita' + title: 'Aspeto', + 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: { title: 'Caminho das transferências' @@ -195,8 +288,11 @@ const pt = { templates: { title: 'Formatos', tracknameTemplate: 'Formato do nome de faixa', + tracknameAvailableVariables: 'Variáveis associadas ao nome das faixas', 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: { title: 'Pastas', @@ -229,16 +325,20 @@ const pt = { title: 'Ficheiros existentes. Substituir?', y: 'Sim, 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', fallbackSearch: 'Fallback de pesquisa', + fallbackISRC: 'Fallback com pesquisa ISRC', + feelingLucky: 'Arriscar com CDNs e caches', logErrors: 'Criar histórico para erros', logSearched: 'Criar histórico para faixas pesquisadas', createM3U8File: 'Criar ficheiro de lista de reprodução', syncedLyrics: 'Criar ficheiro .lrc (Letra Sincronizada)', 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: { title: 'Capas do Álbum', @@ -246,20 +346,26 @@ const pt = { coverImageTemplate: 'Modelo do nome da capa', saveArtworkArtist: 'Salvar imagem do artista', artistImageTemplate: 'Modelo de imagem do artista', - localArtworkSize: 'Tamanho do trabalho artístico local', - embeddedArtworkSize: 'Tamanho do trabalho artístico incorporado', + localArtworkSize: 'Tamanho da arte gráfica local', + embeddedArtworkSize: 'Tamanho da arte gráfica incorporada', localArtworkFormat: { - title: 'Em que formato desejas o trabalho artístico local?', - jpg: 'Em imagem jpeg', - png: 'Em imagem png', + title: 'Em que formato desejas guardar localmente a arte gráfica?', + jpg: 'Em jpeg', + png: '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: { head: 'Etiquetas a guardar', title: 'Título', artist: 'Artista', + artists: 'Etiqueta extra ARTISTAS', album: 'Álbum', cover: 'Capa', trackNumber: 'Número de faixa', @@ -278,12 +384,16 @@ const pt = { replayGain: 'ReplayGain', label: 'Editora do álbum', lyrics: 'Letra da música não sincronizada', + syncedLyrics: 'Letra da música sincronizada', copyright: 'Direitos de Autor', 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: { title: 'Outros', + autoCheckForUpdates: 'Procurar novas atualizações ao iniciar', savePlaylistAsCompilation: 'Guardar listas de reprodução como compilação', useNullSeparator: 'Usar separador nulo', saveID3v1: 'Também guardar ID3v1', @@ -292,7 +402,9 @@ const pt = { nothing: 'Guardar apenas o artista principal', default: 'Usar especificação padrão', 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', albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum', @@ -330,13 +442,51 @@ const pt = { title: 'Funcionalidades Spotify', clientID: 'Spotify clientID', 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', toasts: { - init: 'Configurações carregadas!', - update: 'Configurações actualizadas', + init: 'Definições carregadas!', + update: 'Definições atualizadas', + reset: 'Definições padrão repostas!', ARLcopied: 'ARL copiado para area de transferencia' } }, @@ -347,10 +497,11 @@ const pt = { favorites: 'favoritos', linkAnalyzer: 'analizador de links', settings: 'definições', + logs: 'logs', about: 'sobre' }, tracklist: { - downloadSelection: 'Transferir seleccionados' + downloadSelection: 'Transferir selecionados' } }