added Russian, Turkish, French and Portuguese (Brazilian) languages

This commit is contained in:
Roberto Tonino 2020-07-29 18:41:08 +02:00
parent 897be92e22
commit cbc0e0d710
9 changed files with 1150 additions and 429 deletions

File diff suppressed because one or more lines are too long

View File

@ -623,6 +623,55 @@ export default {
} }
} }
}, },
mounted() {
this.locales = this.$i18n.availableLocales
EventBus.$on('settingsTab:revertSettings', this.revertSettings)
EventBus.$on('settingsTab:revertCredentials', this.revertCredentials)
this.$refs.loggedInInfo.classList.add('hide')
let storedLocale = localStorage.getItem('locale')
if (storedLocale) {
this.$i18n.locale = storedLocale
this.currentLocale = storedLocale
}
let storedArl = localStorage.getItem('arl')
if (storedArl) {
this.$refs.loginInput.value = storedArl.trim()
}
let storedAccountNum = localStorage.getItem('accountNum')
if (storedAccountNum) {
this.accountNum = storedAccountNum
}
let spotifyUser = localStorage.getItem('spotifyUser')
if (spotifyUser) {
this.lastUser = spotifyUser
this.spotifyUser = spotifyUser
socket.emit('update_userSpotifyPlaylists', spotifyUser)
}
this.changeSlimDownloads = 'true' === localStorage.getItem('slimDownloads')
let volume = parseInt(localStorage.getItem('previewVolume'))
if (isNaN(volume)) {
volume = 80
localStorage.setItem('previewVolume', volume)
}
window.vol.preview_max_volume = volume
socket.on('init_settings', this.initSettings)
socket.on('updateSettings', this.updateSettings)
socket.on('accountChanged', this.accountChanged)
socket.on('familyAccounts', this.initAccounts)
},
methods: { methods: {
revertSettings() { revertSettings() {
this.settings = { ...this.lastSettings } this.settings = { ...this.lastSettings }
@ -705,55 +754,6 @@ export default {
resetSettings() { resetSettings() {
this.settings = { ...this.defaultSettings } this.settings = { ...this.defaultSettings }
} }
},
mounted() {
this.locales = this.$i18n.availableLocales
EventBus.$on('settingsTab:revertSettings', this.revertSettings)
EventBus.$on('settingsTab:revertCredentials', this.revertCredentials)
this.$refs.loggedInInfo.classList.add('hide')
let storedLocale = localStorage.getItem('locale')
if (storedLocale) {
this.$i18n.locale = storedLocale
this.currentLocale = storedLocale
}
let storedArl = localStorage.getItem('arl')
if (storedArl) {
this.$refs.loginInput.value = storedArl.trim()
}
let storedAccountNum = localStorage.getItem('accountNum')
if (storedAccountNum) {
this.accountNum = storedAccountNum
}
let spotifyUser = localStorage.getItem('spotifyUser')
if (spotifyUser) {
this.lastUser = spotifyUser
this.spotifyUser = spotifyUser
socket.emit('update_userSpotifyPlaylists', spotifyUser)
}
this.changeSlimDownloads = 'true' === localStorage.getItem('slimDownloads')
let volume = parseInt(localStorage.getItem('previewVolume'))
if (isNaN(volume)) {
volume = 80
localStorage.setItem('previewVolume', volume)
}
window.vol.preview_max_volume = volume
socket.on('init_settings', this.initSettings)
socket.on('updateSettings', this.updateSettings)
socket.on('accountChanged', this.accountChanged)
socket.on('familyAccounts', this.initAccounts)
} }
} }
</script> </script>

View File

@ -39,11 +39,12 @@ const es = {
license: 'Licencia' license: 'Licencia'
}, },
subtitles: { subtitles: {
bugReports: "¿Hay algo que no funcione en Deemix? ¡Díganoslo!", bugReports: '¿Hay algo que no funcione en Deemix? ¡Díganoslo!',
contributing: '¿Quieres contribuir a este proyecto? ¡Puedes hacerlo de diferentes maneras!', contributing: '¿Quieres contribuir a este proyecto? ¡Puedes hacerlo de diferentes maneras!',
donations: '¿Quiere contribuir monetariamente? ¡Podrías hacer una donación!' donations: '¿Quiere contribuir monetariamente? ¡Podrías hacer una donación!'
}, },
usesLibrary: 'Esta aplicación usa la biblioteca <strong>deemix</strong>, que puedes usar para hacer tu propia interfaz de usuario para deemix.', usesLibrary:
'Esta aplicación usa la biblioteca <strong>deemix</strong>, que puedes usar para hacer tu propia interfaz de usuario para deemix.',
thanks: `Gracias a <strong>rtonno</fuerte>, <strong>uhwot</fuerte> y <strong>lollilol</fuerte> por ayudarme con este proyecto, a <strong>BasCurtiz</fuerte> y <strong>scarvimane</fuerte> por hacer el icono.`, thanks: `Gracias a <strong>rtonno</fuerte>, <strong>uhwot</fuerte> y <strong>lollilol</fuerte> por ayudarme con este proyecto, a <strong>BasCurtiz</fuerte> y <strong>scarvimane</fuerte> por hacer el icono.`,
upToDate: `Mantente al día con las actualizaciones siguiendo el <a href="https://t.me/RemixDevNews" target="_blank">canal de noticias</a> en Telegram.`, upToDate: `Mantente al día con las actualizaciones siguiendo el <a href="https://t.me/RemixDevNews" target="_blank">canal de noticias</a> en Telegram.`,
officialWebsite: 'Página web oficial', officialWebsite: 'Página web oficial',
@ -78,7 +79,7 @@ const es = {
invalidURL: 'No se reconoce la URL', invalidURL: 'No se reconoce la URL',
unsupportedURL: 'La URL no está soportada aún', unsupportedURL: 'La URL no está soportada aún',
ISRCnotOnDeezer: 'Pista ISRC no está disponible en Deezer', ISRCnotOnDeezer: 'Pista ISRC no está disponible en Deezer',
notYourPrivatePlaylist: "No puedes descargar otras listas de reproducción privadas.", notYourPrivatePlaylist: 'No puedes descargar otras listas de reproducción privadas.',
spotifyDisabled: 'Funciones de Spotify no está configurado correctamente.', spotifyDisabled: 'Funciones de Spotify no está configurado correctamente.',
trackNotOnDeezer: '¡No se encontró la pista en Deezer!', trackNotOnDeezer: '¡No se encontró la pista en Deezer!',
albumNotOnDeezer: '¡El álbum no se encuentra en Deezer!', albumNotOnDeezer: '¡El álbum no se encuentra en Deezer!',
@ -86,10 +87,12 @@ const es = {
notEncoded: '¡Pista aún no codificada!', notEncoded: '¡Pista aún no codificada!',
notEncodedNoAlternative: '¡Pista aún no codificada y no se ha encontrado ninguna alternativa!', notEncodedNoAlternative: '¡Pista aún no codificada y no se ha encontrado ninguna alternativa!',
wrongBitrate: 'La pista no se encuentra a la velocidad de bitrate deseada.', wrongBitrate: 'La pista no se encuentra a la velocidad de bitrate deseada.',
wrongBitrateNoAlternative: '¡Pista no encontrada a la tasa de bits deseada y no se ha encontrado ninguna alternativa!', wrongBitrateNoAlternative:
'¡Pista no encontrada a la tasa de bits deseada y no se ha encontrado ninguna alternativa!',
no360RA: 'La pista no está disponible en Reality Audio 360.', no360RA: 'La pista no está disponible en Reality Audio 360.',
notAvailable: "¡La pista no está disponible en los servidores de Deezer!", notAvailable: '¡La pista no está disponible en los servidores de Deezer!',
notAvailableNoAlternative: "¡La pista no está disponible en los servidores de Deezer y no se ha encontrado ninguna alternativa!" notAvailableNoAlternative:
'¡La pista no está disponible en los servidores de Deezer y no se ha encontrado ninguna alternativa!'
} }
}, },
favorites: { favorites: {
@ -109,7 +112,8 @@ const es = {
}, },
linkAnalyzer: { linkAnalyzer: {
info: 'Puedes usar esta sección para encontrar más información sobre el enlace que estás tratando de descargar.', info: 'Puedes usar esta sección para encontrar más información sobre el enlace que estás tratando de descargar.',
useful: "Esto es útil si está tratando de descargar algunas pistas que no están disponibles en su país y quiere saber dónde están disponibles, por ejemplo.", useful:
'Esto es útil si está tratando de descargar algunas pistas que no están disponibles en su país y quiere saber dónde están disponibles, por ejemplo.',
linkNotSupported: 'Este enlace aún no está soportado', linkNotSupported: 'Este enlace aún no está soportado',
linkNotSupportedYet: 'Parece que este enlace aún no está soportado, intenta analizar otro.', linkNotSupportedYet: 'Parece que este enlace aún no está soportado, intenta analizar otro.',
table: { table: {
@ -129,7 +133,8 @@ const es = {
}, },
search: { search: {
startSearching: '¡Comienza a buscar!', startSearching: '¡Comienza a buscar!',
description: 'Puedes buscar un tema, un álbum entero, un artista, una lista de reproducción... ¡todo! También puedes pegar un enlace de Deezer', description:
'Puedes buscar un tema, un álbum entero, un artista, una lista de reproducción... ¡todo! También puedes pegar un enlace de Deezer',
fans: '{0} fanáticos', fans: '{0} fanáticos',
noResults: 'No hay resultados', noResults: 'No hay resultados',
noResultsTrack: 'No se encontraron pistas', noResultsTrack: 'No se encontraron pistas',
@ -148,7 +153,7 @@ const es = {
loggingIn: 'Conectando...', loggingIn: 'Conectando...',
loggedIn: 'Conectado', loggedIn: 'Conectado',
alreadyLogged: 'Ya está conectado', alreadyLogged: 'Ya está conectado',
loginFailed: "No se puede conectar", loginFailed: 'No se puede conectar',
loggedOut: 'Desconectado', loggedOut: 'Desconectado',
cancellingCurrentItem: 'Cancelando el elemento actual.', cancellingCurrentItem: 'Cancelando el elemento actual.',
currentItemCancelled: 'El elemento actual se ha cancelado.', currentItemCancelled: 'El elemento actual se ha cancelado.',
@ -212,7 +217,7 @@ const es = {
overwriteFile: { overwriteFile: {
title: '¿Desea que sobreescriba los archivos?', title: '¿Desea que sobreescriba los archivos?',
y: 'Sí, sobrescribir el archivo', y: 'Sí, sobrescribir el archivo',
n: "No, no sobrescribir el archivo", n: 'No, no sobrescribir el archivo',
t: 'Sobrescribir sólo las etiquetas' t: 'Sobrescribir sólo las etiquetas'
}, },
fallbackBitrate: 'La solución alternativa de bitrate', fallbackBitrate: 'La solución alternativa de bitrate',

View File

@ -39,11 +39,12 @@ const fr = {
license: 'Licence' license: 'Licence'
}, },
subtitles: { subtitles: {
bugReports: "Y a-t-il quelque chose qui ne fonctionne pas avec deemix ? Dites-le nous !", bugReports: 'Y a-t-il quelque chose qui ne fonctionne pas avec deemix ? Dites-le nous !',
contributing: 'Vous souhaitez contribuer à ce projet ? Vous pouvez le faire de différentes manières !', contributing: 'Vous souhaitez contribuer à ce projet ? Vous pouvez le faire de différentes manières !',
donations: 'Vous souhaitez contribuer financièrement ? Vous pourriez faire un don !' donations: 'Vous souhaitez contribuer financièrement ? Vous pourriez faire un don !'
}, },
usesLibrary: 'Cette application utilise la librairie <strong>deemix</strong>, que vous pouvez utiliser afin de créer votre propre interface utilisateur pour deemix.', usesLibrary:
'Cette application utilise la librairie <strong>deemix</strong>, que vous pouvez utiliser afin de créer votre propre interface utilisateur pour deemix.',
thanks: `Merci à <strong>rtonno</strong>, <strong>uhwot</strong> et <strong>lollilol</strong> pour m'avoir aidé avec ce projet et à <strong>BasCurtiz</strong> et <strong>scarvimane</strong> pour avoir réalisé l'icône.`, thanks: `Merci à <strong>rtonno</strong>, <strong>uhwot</strong> et <strong>lollilol</strong> pour m'avoir aidé avec ce projet et à <strong>BasCurtiz</strong> et <strong>scarvimane</strong> pour avoir réalisé l'icône.`,
upToDate: `Restez informé des mises à jour en suivant le <a href="https://t.me/RemixDevNews" target="_blank">canal d'information</a> sur Telegram.`, upToDate: `Restez informé des mises à jour en suivant le <a href="https://t.me/RemixDevNews" target="_blank">canal d'information</a> sur Telegram.`,
officialWebsite: 'Site Officiel', officialWebsite: 'Site Officiel',
@ -85,19 +86,19 @@ const fr = {
albumNotOnDeezer: 'Album introuvable sur deezer !', albumNotOnDeezer: 'Album introuvable sur deezer !',
notOnDeezer: 'Piste non disponible sur Deezer !', notOnDeezer: 'Piste non disponible sur Deezer !',
notEncoded: 'Piste pas encore encodée !', notEncoded: 'Piste pas encore encodée !',
notEncodedNoAlternative: "Piste pas encore encodée et aucune alternative trouvée !", notEncodedNoAlternative: 'Piste pas encore encodée et aucune alternative trouvée !',
wrongBitrate: 'Piste introuvable au débit souhaité.', wrongBitrate: 'Piste introuvable au débit souhaité.',
wrongBitrateNoAlternative: 'Piste introuvable au débit souhaité et aucune alternative trouvée !', wrongBitrateNoAlternative: 'Piste introuvable au débit souhaité et aucune alternative trouvée !',
no360RA: "La piste n'est pas disponible avec Reality Audio 360.", no360RA: "La piste n'est pas disponible avec Reality Audio 360.",
notAvailable: "Piste non disponible sur les serveurs de deezer !", notAvailable: 'Piste non disponible sur les serveurs de deezer !',
notAvailableNoAlternative: "Piste non disponible sur les serveurs de deezer et aucune alternative trouvée !" notAvailableNoAlternative: 'Piste non disponible sur les serveurs de deezer et aucune alternative trouvée !'
} }
}, },
favorites: { favorites: {
title: 'Favoris', title: 'Favoris',
noPlaylists: 'Aucune Playlist trouvée', noPlaylists: 'Aucune Playlist trouvée',
noAlbums: "Aucuns Album Favori trouvé", noAlbums: 'Aucuns Album Favori trouvé',
noArtists: "Aucun Artiste Favori trouvé", noArtists: 'Aucun Artiste Favori trouvé',
noTracks: 'Aucune Piste Favorite trouvée' noTracks: 'Aucune Piste Favorite trouvée'
}, },
home: { home: {
@ -109,7 +110,8 @@ const fr = {
} }
}, },
linkAnalyzer: { linkAnalyzer: {
info: "Vous pouvez utiliser cette section afin de trouver plus d'informations sur le lien que vous essayer de télcharger.", info:
"Vous pouvez utiliser cette section afin de trouver plus d'informations sur le lien que vous essayer de télcharger.",
useful: useful:
"C'est utile si vous essayer de télécharger des pistes qui ne sont pas disponibles dans votre pays et que vous souhaitez savoir où elles sont disponibles, par exemple.", "C'est utile si vous essayer de télécharger des pistes qui ne sont pas disponibles dans votre pays et que vous souhaitez savoir où elles sont disponibles, par exemple.",
linkNotSupported: "Ce lien n'est pas encore supporté", linkNotSupported: "Ce lien n'est pas encore supporté",
@ -151,7 +153,7 @@ const fr = {
loggingIn: 'Connexion', loggingIn: 'Connexion',
loggedIn: 'Connecté', loggedIn: 'Connecté',
alreadyLogged: 'Déjà connecté', alreadyLogged: 'Déjà connecté',
loginFailed: "Connexion impossible", loginFailed: 'Connexion impossible',
loggedOut: 'Déconnecté', loggedOut: 'Déconnecté',
cancellingCurrentItem: "Annulation de l'élément actuel.", cancellingCurrentItem: "Annulation de l'élément actuel.",
currentItemCancelled: 'Élément actuel annulé.', currentItemCancelled: 'Élément actuel annulé.',
@ -262,7 +264,7 @@ const fr = {
length: 'Durée de Piste', length: 'Durée de Piste',
barcode: "Code-barres de l'album (UPC)", barcode: "Code-barres de l'album (UPC)",
bpm: 'BPM', bpm: 'BPM',
replayGain: "Gain du Replay", replayGain: 'Gain du Replay',
label: "Label de l'Album", label: "Label de l'Album",
lyrics: 'Paroles non synchronisées', lyrics: 'Paroles non synchronisées',
copyright: "Droits d'auteur (copyright)", copyright: "Droits d'auteur (copyright)",
@ -277,7 +279,7 @@ const fr = {
multiArtistSeparator: { multiArtistSeparator: {
title: 'Comment aimeriez-vous séparer vos artistes ?', title: 'Comment aimeriez-vous séparer vos artistes ?',
nothing: "Enregistrer uniquement l'artiste principal", nothing: "Enregistrer uniquement l'artiste principal",
default: "En utilisant la spécification standard", default: 'En utilisant la spécification standard',
andFeat: 'En utilisant & et feat.', andFeat: 'En utilisant & et feat.',
using: 'En utilisant "{0}"' using: 'En utilisant "{0}"'
}, },

345
src/lang/pt-br.js Normal file
View File

@ -0,0 +1,345 @@
const ptBr = {
globals: {
welcome: 'Bem vindo ao deemix',
back: 'voltar',
loading: 'carregando',
download: 'Baixar {0}',
by: 'por {0}',
in: 'em {0}',
download_hint: 'Baixar',
play_hint: 'Reproduzir',
toggle_download_tab_hint: 'Expandir/Recolher',
clean_queue_hint: 'Limpar os terminados',
cancel_queue_hint: 'Cancelar todos',
listTabs: {
empty: '',
all: 'todos',
top_result: 'Resultado principal',
album: 'álbum | álbuns',
artist: 'artista | artistas',
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çamentos',
playlist: 'playlist | playlists',
compile: 'compilação | compilações',
ep: 'ep | eps',
spotifyPlaylist: 'playlist do spotify | playlists do spotify',
releaseDate: 'data de lançamento',
error: 'erro'
}
},
about: {
titles: {
usefulLinks: 'Links Úteis',
bugReports: 'Relatar Bugs',
contributing: 'Contribuições',
donations: 'Doações',
license: 'Licença'
},
subtitles: {
bugReports: 'Tem algo não funcionando no deemix? Informe-nos!',
contributing: 'Quer contribuir com este projeto? Há várias formas!',
donations: 'Quer contribuir monetariamente? Você pode fazer uma doação!'
},
usesLibrary:
'Este programa usa a biblioteca <strong>deemix</strong>, no qual você pode usar para construir uma UI para o seu deemix.',
thanks: `Obrigado <strong>rtonno</strong>, <strong>uhwot</strong> e <strong>lollilol</strong> por me ajudarem com este projeto e <strong>BasCurtiz</strong> e <strong>scarvimane</strong> por fazerem o ícone.`,
upToDate: `Seja avisado quando houver novas atualizações, siga o <a href="https://t.me/RemixDevNews" target="_blank">nosso canal de notícias</a> no Telegram.`,
officialWebsite: 'Website Oficial',
officialRepo: 'Repositório da Biblioteca Oficial',
officialWebuiRepo: 'Repositório da WebUI Oficial',
officialSubreddit: 'Subreddit Oficial',
newsChannel: 'Canal de Notícia',
questions: `Caso houver dúvidas ou problemas com o programa, procure uma solução no <a href="https://www.reddit.com/r/deemix" target="_blank">subreddit</a>. Caso não encontre nada, você pode fazer um post com a sua dúvida no subreddit.`,
beforeReporting: `Antes de reportar um bug tenha certeza de que o seu deemix esteja atualizado e que o seu relato seja realmente um bug e não um problema no seu lado de usuário.`,
beSure: `Certifique-se de que o bug ocorra em outras máquinas e <strong>NÃO</strong> relate-o caso ele já tenha sido relatado.`,
duplicateReports: 'Relatos duplicados de bug serão fechados, então fique de olho.',
dontOpenIssues: `<strong>NÃO</strong> abra uma issue para fazer questões, o subreddit é para isso.`,
newUI: `Caso seja fluente em python, você pode tentar fazer uma nova UI para o app usando a biblioteca base, ou consertar os bugs da biblioteca com uma pull request na <a href="https://codeberg.org/RemixDev/deemix" target="_blank">repo do projeto</a>.`,
acceptFeatures: `Eu aceito recursos também, mas nada muito complexo e que possa ser implementado diretamente no aplicativo e não na biblioteca.`,
otherLanguages: `Caso seja fluente em outra linguagem de programação você pode tentar portar o deemix para ela!`,
understandingCode: `Precisa de ajuda para entender o código? Contate o RemixDev no Telegram ou Reddit.`,
contributeWebUI: `Caso saiba Vue.js (JavaScript), HTML ou CSS você pode contribuir para a <a href="https://codeberg.org/RemixDev/deemix-webui" target="_blank">WebUI</a>.`,
itsFree: `Mantenha em mente que <strong>este é um projeto gratuito</strong> e que <strong>você deve apoiar os artistas que ama</strong> antes de apoiar os desenvolvedores.`,
notObligated: `Não se sinta obrigado a doar, agradecemos da mesma forma!`,
lincensedUnder: `Este trabalho é licenciado sob a
<a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank"
>GNU General Public License 3.0</a
>.`
},
charts: {
title: 'Charts',
changeCountry: 'Trocar o país',
download: 'Baixe a chart'
},
errors: {
title: 'Erros para {0}',
ids: {
invalidURL: 'URL não reconhecida',
unsupportedURL: 'URL não suportada',
ISRCnotOnDeezer: 'ISRC da faixa não está no deezer',
notYourPrivatePlaylist: 'Você não pode baixar playlists privadas de outros usuários.',
spotifyDisabled: 'Recursos do Spotify não estão configurados corretamente.',
trackNotOnDeezer: 'Faixa não encontrada no deezer!',
albumNotOnDeezer: 'Álbum não encontrada no deezer!',
notOnDeezer: 'Faixa não disponível no Deezer!',
notEncoded: 'Faixa ainda não encodada!',
notEncodedNoAlternative: 'Faixa ainda não encodada e sem alternativas encontradas!',
wrongBitrate: 'Faixa não encontrada no bitrate desejado.',
wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e sem alternativas encontradas!',
no360RA: 'Faixa não disponível no Reality Audio 360.',
notAvailable: 'Faixa não disponível nos servidores do deezer!',
notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e sem alternativas encontradas!'
}
},
favorites: {
title: 'Favorites',
noPlaylists: 'Nenhuma playlists favorita encontrada',
noAlbums: 'Nenhum álbum favorito encontrado',
noArtists: 'Nenhum artista favorito encontrado',
noTracks: 'Nenhuma faixa favorita encontrada'
},
home: {
needTologin: 'Você precisa logar na sua conta do Deezer antes de poder começar a baixar.',
openSettings: 'Abrir configurações',
sections: {
popularPlaylists: 'Playlists populares',
popularAlbums: 'Álbuns mais ouvidos'
}
},
linkAnalyzer: {
info: 'Você pode usar esta seção para descobrir mais informações sobre o link que está tentando baixar.',
useful:
'Esta função é útil caso esteja tentando baixar algumas faixas que não estão disponíveis no seu país e você quer descobrir aonde estão disponíveis, por exemplo.',
linkNotSupported: 'Este link não é suportado ainda',
linkNotSupportedYet: 'Aparentemente este link ainda não é suportado, tente analizar algum outro.',
table: {
id: 'ID',
isrc: 'ISRC',
upc: 'UPC',
duration: 'Duração',
diskNumber: 'Número do disco',
trackNumber: 'Número da faixa',
releaseDate: 'Data de lançamento',
bpm: 'BPM',
label: 'Gravadora',
recordType: 'Tipo de gravação',
genres: 'Gêneros',
tracklist: 'Lista de faixas'
}
},
search: {
startSearching: 'Comece a procurar!',
description:
'Você pode procurar uma faixa, um álbum inteiro, um artista, uma playlist... tudo! Você também pode colar um link do Deezer',
fans: '{0} fãs',
noResults: 'Sem resultados',
noResultsTrack: 'Nenhuma faixa encontrada',
noResultsAlbum: 'Nenhum álbum encontrado',
noResultsArtist: 'Nenhum artista encontrado',
noResultsPlaylist: 'Nenhuma playlist encontrada'
},
searchbar: 'Pesquise tudo o que quiser (ou simplesmente cole um link)',
downloads: 'downloads',
toasts: {
addedToQueue: '{0} adicionado à lista de espera',
alreadyInQueue: '{0} já está na lista de espera!',
finishDownload: '{0} terminou de baixar.',
allDownloaded: 'Todos os downloads terminaram!',
refreshFavs: 'Atualização completa!',
loggingIn: 'Entrando na conta',
loggedIn: 'Conta logada',
alreadyLogged: 'Já está na conta',
loginFailed: 'Não pode entrar na conta',
loggedOut: 'Saindo da conta',
cancellingCurrentItem: 'Cancelando item atual.',
currentItemCancelled: 'Cancelado item atual.',
startAddingArtist: 'Adicionando {0} álbuns à lista de espera',
finishAddingArtist: '{0} álbuns adicionados à lista de espera',
startConvertingSpotifyPlaylist: 'Convertendo faixas do Spotify para faixas do Deezer',
finishConvertingSpotifyPlaylist: 'Playlist do Spotify convertida'
},
settings: {
title: 'Configurações',
languages: 'Linguagens',
login: {
title: 'Login',
loggedIn: 'Você já está logado como {username}',
arl: {
question: 'Como eu pego a minha ARL?',
update: 'Atualizar a ARL'
},
logout: 'Sair'
},
appearance: {
title: 'Aparência',
slimDownloadTab: 'Guia de download slim'
},
downloadPath: {
title: 'Diretório de download'
},
templates: {
title: 'Templates',
tracknameTemplate: 'Template do nome da faixa avulsa',
albumTracknameTemplate: 'Template do nome da faixa no álbum',
playlistTracknameTemplate: 'Template do nome da faixa na playlist'
},
folders: {
title: 'Pastas',
createPlaylistFolder: 'Criar pasta para playlists',
playlistNameTemplate: 'Template do nome da pasta da playlist',
createArtistFolder: 'Criar pasta para artistas',
artistNameTemplate: 'Template do nome da pasta do artista',
createAlbumFolder: 'Criar pasta para álbuns',
albumNameTemplate: 'Template do nome da pasta do álbum',
createCDFolder: 'Criar pasta para discos',
createStructurePlaylist: 'Criar estrutura de pasta para playlists',
createSingleFolder: 'Criar estrutura de pasta para singles'
},
trackTitles: {
title: 'Títulos das faixas',
padTracks: 'Pad das faixas',
paddingSize: 'Substituir tamanho do padding',
illegalCharacterReplacer: 'Substituto de caracter ilegal'
},
downloads: {
title: 'Downloads',
queueConcurrency: 'Downloads simultâneos',
maxBitrate: {
title: 'Bitrate preferido',
9: 'FLAC 1411kbps',
3: 'MP3 320kbps',
1: 'MP3 128kbps'
},
overwriteFile: {
title: 'Posso substituir os arquivos?',
y: 'Sim, substitua os arquivos',
n: 'Não, não substitua os arquivos',
t: 'Substitua apenas as tags'
},
fallbackBitrate: 'Bitrate reserva',
fallbackSearch: 'Pesquisa reserva',
logErrors: 'Criar log para erros',
logSearched: 'Criar log para faixas pesquisadas',
createM3U8File: 'Criar arquivo de playlist',
syncedLyrics: 'Criar arquivos .lyr (Letras sincronizadas)',
playlistFilenameTemplate: 'Template do nome da playlist',
saveDownloadQueue: 'Salvar lista de espera do download ao fechar o programa'
},
covers: {
title: 'Capa dos álbuns',
saveArtwork: 'Salvar as capas',
coverImageTemplate: 'Template do nome da capa',
saveArtworkArtist: 'Salvar imagem do artista',
artistImageTemplate: 'Template da imagem do artista',
localArtworkSize: 'Tamanho da artwork local',
embeddedArtworkSize: 'Tamanho da artwork embutida',
localArtworkFormat: {
title: 'Qual formato você quer que a artwork local seja?',
jpg: 'Uma imagem jpeg',
png: 'Uma imagem png',
both: 'Ambos um jpeg e um png'
},
jpegImageQuality: 'Qualidade do JPEG'
},
tags: {
head: 'Quais tags salvar',
title: 'Título',
artist: 'Artista',
album: 'Álbuns',
cover: 'Capa',
trackNumber: 'Número da faixa',
trackTotal: 'Total de faixas',
discNumber: 'Número de discos',
discTotal: 'Total de discos',
albumArtist: 'Artista do álbum',
genre: 'Gênero',
year: 'Ano',
date: 'Data',
explicit: 'Letras explícitas',
isrc: 'ISRC',
length: 'Tamanho da faixa',
barcode: 'Barcode do álbum (UPC)',
bpm: 'BPM',
replayGain: 'Replay Gain',
label: 'Gravadora do álbum',
lyrics: 'Letras desincronizadas',
copyright: 'Copyright',
composer: 'Compositor',
involvedPeople: 'Pessoas involvidas'
},
other: {
title: 'Outros',
savePlaylistAsCompilation: 'Savar playlists como uma compilação',
useNullSeparator: 'Usar separador nulo',
saveID3v1: 'Salvar ID3v1',
multiArtistSeparator: {
title: 'Como gostaria de separar seus artistas?',
nothing: 'Salvar apenas o artista principal',
default: 'Usando especificação padrão',
andFeat: 'Usando & e feat.',
using: 'Usando "{0}"'
},
singleAlbumArtist: 'Salvar apenas o artista principal do álbum',
albumVariousArtists: 'Manter "Various Artists" em Artistas do Álbum',
removeAlbumVersion: 'Remover "Album Version" do título de faixas',
removeDuplicateArtists: 'Remover combinações de artistas',
dateFormat: {
title: 'Formato da data para arquivos FLAC',
year: 'AAAA',
month: 'MM',
day: 'DD'
},
featuredToTitle: {
title: 'O que eu deveria fazer com os artistas feat.?',
0: 'Nada',
1: 'Remova-os do título da faixa',
3: 'Remova-os do título da faixa e do álbum',
2: 'Mova-os para o título da faixa'
},
titleCasing: 'Formatação do título',
artistCasing: 'Formatação do artista',
casing: {
nothing: 'Manter intocado',
lower: 'minúsculo',
upper: 'MAIÚSCULO',
start: 'No Começo De Cada Palavra',
sentence: 'Como uma frase'
},
previewVolume: 'Volume da prévia',
executeCommand: {
title: 'Comando para executar depois do download',
description: 'Deixe em branco para não executar nada'
}
},
spotify: {
title: 'Destaques do Spotify',
clientID: 'Spotify clientID',
clientSecret: 'Spotify Client Secret',
username: 'Nome de usuário do Spotify'
},
reset: 'Resetar para Padrão',
save: 'Save',
toasts: {
init: 'Configurações carregadas!',
update: 'Configurações atualizadas!',
ARLcopied: 'ARL copiado para o clipboard'
}
},
sidebar: {
home: 'home',
search: 'pesquisa',
charts: 'charts',
favorites: 'favoritos',
linkAnalyzer: 'analizador de links',
settings: 'configurações',
about: 'sobre'
},
tracklist: {
downloadSelection: 'Baixar seleção'
}
}
export default ptBr

View File

@ -39,11 +39,12 @@ const pt = {
license: 'Licenças' license: 'Licenças'
}, },
subtitles: { subtitles: {
bugReports: "Existe alguma coisa que não funciona no deemix? Informa-nos!", bugReports: 'Existe alguma coisa que não funciona no deemix? Informa-nos!',
contributing: 'Queres contribuir para o projecto? Podes fazê-lo de diferentes formas!', contributing: 'Queres contribuir para o projecto? Podes fazê-lo de diferentes formas!',
donations: 'Desejas contribuir monetariamente? Faz uma doação!' donations: 'Desejas contribuir monetariamente? Faz uma doação!'
}, },
usesLibrary: 'Esta aplicação usa a biblioteca <strong>deemix</strong>, que poderás usar para desenvolver o teu proprio UI para o deemix.', usesLibrary:
'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> and <strong>scarvimane</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> and <strong>scarvimane</strong> por elaborarem o ícone.`,
upToDate: `Mantem-te atualizado seguindo o <a href="https://t.me/RemixDevNews" target="_blank">canal de notícias</a> no Telegram.`, upToDate: `Mantem-te atualizado seguindo o <a href="https://t.me/RemixDevNews" target="_blank">canal de notícias</a> no Telegram.`,
officialWebsite: 'Site Oficial', officialWebsite: 'Site Oficial',
@ -89,8 +90,8 @@ const pt = {
wrongBitrate: 'Faixa não encontrada no bitrate desejado.', wrongBitrate: 'Faixa não encontrada no bitrate desejado.',
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!'
} }
}, },
favorites: { favorites: {
@ -111,7 +112,7 @@ const pt = {
linkAnalyzer: { linkAnalyzer: {
info: 'Podes usar esta secção para obteres mais informação sobre o link que estás a tentar transferir.', info: 'Podes usar esta secção para obteres mais informação sobre o link que estás a tentar transferir.',
useful: useful:
"Isto é útil caso estejas a tentar transferir faixas que não estão disponíveis no teu país e queres saber onde estão disponíveis, por exemplo.", 'Isto é útil caso estejas a tentar transferir faixas que não estão disponíveis no teu país e queres saber onde estão disponíveis, por exemplo.',
linkNotSupported: 'Este link ainda não é suportado', linkNotSupported: 'Este link ainda não é suportado',
linkNotSupportedYet: 'Parece que este link ainda não é suportado, tenta analisar outro.', linkNotSupportedYet: 'Parece que este link ainda não é suportado, tenta analisar outro.',
table: { table: {
@ -215,7 +216,7 @@ const pt = {
overwriteFile: { overwriteFile: {
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: 'Sobrescrever apenas as etiquetas' t: 'Sobrescrever apenas as etiquetas'
}, },
fallbackBitrate: 'Bitrate fallback', fallbackBitrate: 'Bitrate fallback',

344
src/lang/tr.js Normal file
View File

@ -0,0 +1,344 @@
const tr = {
globals: {
welcome: `Deemix'e hoş geldin.`,
back: `geri`,
loading: `yükleniyor`,
download: 'İndir {0}',
by: '{0} tarafından',
in: '{0} içinde',
download_hint: 'İndir',
play_hint: 'Oynat',
toggle_download_tab_hint: 'Genişlet/Daralt',
clean_queue_hint: 'Tamamlananları Temizle',
cancel_queue_hint: 'Hepsini ',
listTabs: {
empty: '',
all: 'Tümü',
top_result: 'top result',
album: 'albüm | albümler',
artist: 'sanatçı | sanatçılar',
single: 'single | singlelar',
title: 'başlık | başlıklar',
track: 'Parça | Parçalar',
trackN: '0 parça | {n} parça | {n} parça',
releaseN: '0 yayınlanan | {n} yayınlanan | {n} yayınlanan',
playlist: 'oynatma listesi | oynatma listeleri',
compile: 'derleme | derlemeler',
ep: 'kayıt | kayıtlar',
spotifyPlaylist: 'spotify oynatma listesi | oynatma listeleri',
releaseDate: 'yayınlanma tarihi',
error: 'hata'
}
},
about: {
titles: {
usefulLinks: 'Yararlı Bağlantılar',
bugReports: 'Hata Raporları',
contributing: 'Katkı Sağlayanlar',
donations: 'Bağışlar',
license: 'Lisans'
},
subtitles: {
bugReports: "Deemix'te çalışmayan bir şey mi var?, Bize bildirin!",
contributing: 'Projeye katkı sağlamak mı istiyorsun? Farklı yollardan sağlayabilirsin!',
donations: 'Bütçe yardımı mı yapmak istiyorsun? Bağış yapabilirsin!'
},
usesLibrary:
'<strong>deemix</strong> kendi kullanıcı arabiriminizi oluşturabileceğiniz, kendine özgü kütüphanesini kullanıyor.',
thanks: ` <strong>rtonno</strong>, <strong>uhwot</strong> ve <strong>lollilol</strong>'a bu projeye yaptığı katkılardan ve <strong>BasCurtiz</strong> ile <strong>scarvimane</strong>'e ikonlardan dolayı teşekkür ederim.`,
upToDate: `Telegramdaki haber kanalını takip ederek <a href="https://t.me/RemixDevNews" target="_blank"></a>güncellemelerden haberdar olun.`,
officialWebsite: 'İlgili İnternet Sitemiz',
officialRepo: 'İlgili Kütüphanemiz',
officialWebuiRepo: 'İlgili Web Kullanıcı Arayüzü Kütüphanemiz.',
officialSubreddit: 'İlgili Subreddit adresimiz',
newsChannel: 'Haber Kanalı',
questions: `Eğer uygulama ile ilgili sorularınız veya bir probleminiz varsa,ilk önce <a href="https://www.reddit.com/r/deemix" target="_blank">subreddit adresinden </a> sorununuzu arayın. Eğer bir şey bulamazsanız, sorununuz ile ilgili bir gönderi paylaşabilirsiniz.`,
beforeReporting: `Bir hatayı bildirmeden önce, uygulamanın son sürümünde olduğunuza veya sorunun sizden kaynaklı olmayıp bir hata olduğuna emin olduktan sonra emin olun.`,
beSure: `Hatanın başka cihazlarda da olduğunu doğrulayın ve <strong>Bildirilen</strong> bir hatayı tekrar bildirmeyin.`,
duplicateReports: 'Birbirinin aynısı olan hata bildirileri kapatılacaktır, o yüzden dikkatli olun.',
dontOpenIssues: `<strong>Soru sormak</strong> için hata bildirisi yollamayın, bunun için bir subreddit adresimiz var.`,
newUI: `Eğer Phython kullanmakta iyiysen, ana kütüphaneyi kullanan bir kullanıcı arayüzü yapmayı deneyebilir, veya kütüphanedeki hataları düzeltmek için <a href="https://codeberg.org/RemixDev/deemix" target="_blank">deposuna değişiklik isteği yollayabilirsin.</a>.`,
acceptFeatures: `Yeni özellikleri de kabul ediyorum, fakat karışık şeyleri kütüphaneye değil uygulamaya eklendiği için kabul edemiyorum.`,
otherLanguages: `Eğer diğer programlama dillerinde kendine güveniyorsan, deemix'i farklı dillere port etmeye çalışabilirsin!`,
understandingCode: `Kodu anlamak için yardım mı lazım? Reddit üzerinden veya Telegramdan RemixDev'e ulaş.`,
contributeWebUI: `Eğer Vue.js (JavaScript), HTML veya CSS biliyorsan, <a href="https://codeberg.org/RemixDev/deemix-webui" target="_blank">Web Kullanıcı Arayüzüne katkıda bulanabilirsin</a>.`,
itsFree: `Bunun <strong>ücretsiz bir proje olduğunu</strong> ve <strong>geliştiricilerden önce</strong> sevdiğiniz sanatçıları desteklemeniz gerektiğini unutmayın.`,
notObligated: `Kendinizi bağış yapmak zorunda hissetmeyin!, Sizi her halinizle seviyorum!`,
lincensedUnder: `Bu çalışma lisanslıdır:
<a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank"
>GNU General Public License 3.0</a
>.`
},
charts: {
title: 'Grafikler',
changeCountry: 'Ülke Değiştir',
download: 'Grafiği İndir'
},
errors: {
title: '{0} Hatalı bulundu',
ids: {
invalidURL: 'URL geçersiz.',
unsupportedURL: 'URL şimdilik desteklenmiyor',
ISRCnotOnDeezer: 'ISRC parça deezerda bulunmuyor',
notYourPrivatePlaylist: 'Başkalarının özel oynatma listelerini indiremezsin.',
spotifyDisabled: 'Spotify Özellikleri doğru şekilde ayarlanmamış.',
trackNotOnDeezer: `Parça Deezer'da bulunamadı!`,
albumNotOnDeezer: `Albüm Deezer'da bulunamadı!`,
notOnDeezer: `Parça Deezer'da yok!`,
notEncoded: `Parça henüz dönüştürülmedi!`,
notEncodedNoAlternative: 'Parça henüz dönüştürülmedi ve alternatifi bulunamadı!',
wrongBitrate: 'Parça, istenen kalitede bulunamadı!',
wrongBitrateNoAlternative: 'Parça veya alternatifler istenen kalitede bulunamadı!',
no360RA: 'Parça 360 Derece gerçekçi ses olarak bulunamadı!',
notAvailable: 'Parça Deezer sunucularında bulunamadı!',
notAvailableNoAlternative: 'Parça veya Alternatifleri Deezer sunucularında bulunamadı.!'
}
},
favorites: {
title: 'Favoriler',
noPlaylists: 'Oynatma listesi bulunamadı.',
noAlbums: 'Favori albümler bulunamadı.',
noArtists: 'Favori sanatçılar bulunamadı.',
noTracks: 'Favori parçalar bulunamadı.'
},
home: {
needTologin: 'İndirmeden önce Deezer hesabına giriş yapmalısın.',
openSettings: 'Ayarları Aç',
sections: {
popularPlaylists: 'Popüler Oynatma Listeleri',
popularAlbums: 'En çok dinlenen albümler'
}
},
linkAnalyzer: {
info: 'İndirmeye çalıştığın link hakkında daha fazla bilgi için burayı kullanabilirsin.',
useful: 'Mesela, ülkende dinlenebilir olmayan parçaların nerelerde var olduğunu bulmak için kullanabilirsin.',
linkNotSupported: 'Bu link şimdilik desteklenmemektedir.',
linkNotSupportedYet: 'Bu link şimdilik desteklenmiyor gibi duruyor, başkasını analiz etmeyi dene.',
table: {
id: 'ID',
isrc: 'ISRC',
upc: 'UPC',
duration: 'Süre',
diskNumber: 'Sıra numarası',
trackNumber: 'Parça numarası',
releaseDate: 'Yayınlanma tarihi',
bpm: 'BPM',
label: 'Etiketi',
recordType: 'Kayıt Şekli',
genres: 'Türü',
tracklist: 'Parça listesi'
}
},
search: {
startSearching: 'Aramayı Başlat!',
description:
'Bir parçayı, tüm albümü, bir sanatçıyı, bir oynatma listesini... kısaca her şeyi aratabilirsin! Ayrıca Deezer Linki de yapıştırabilirsin!',
fans: '{0} Hayranlar',
noResults: 'Sonuç Bulunamadı',
noResultsTrack: 'Parça bulunamadı',
noResultsAlbum: 'Albüm bulunamadı',
noResultsArtist: 'Sanatçı bulunamadı',
noResultsPlaylist: 'Oynatma Listesi bulunamadı'
},
searchbar: 'İstediğin bir şeyi arat (ya da bir link yapıştır.)',
downloads: 'İndirilenler',
toasts: {
addedToQueue: '{0} kuyruğa eklendi',
alreadyInQueue: '{0} çoktan kuyrukta!',
finishDownload: '{0} indirmesi tamamlandı.',
allDownloaded: 'Tüm indirmeler tamamlandı!',
refreshFavs: 'Yenileme tamamlandı.!',
loggingIn: 'Giriş yapılıyor',
loggedIn: 'Giriş yapıldı',
alreadyLogged: 'Çoktan giriş yapıldı',
loginFailed: 'Giriş yapılamadı',
loggedOut: 'Oturum kapatıldı.',
cancellingCurrentItem: 'Geçerli öğe iptal ediliyor.',
currentItemCancelled: 'Geçerli öğe iptal edildi.',
startAddingArtist: '{0} albüm kuyruğa ekleniyor',
finishAddingArtist: '{0} albüm kuyruğa eklendi.',
startConvertingSpotifyPlaylist: 'Spotify parçaları deezer parçalarına dönüştürülüyor.',
finishConvertingSpotifyPlaylist: 'Spotify oynatma listesi dönüştürüldü.'
},
settings: {
title: 'Ayarlar',
languages: 'Diller',
login: {
title: 'Giriş',
loggedIn: '{username} olarak giriş yaptın.',
arl: {
question: `Kendi ARL'mi nasıl alırım?`,
update: 'ARL güncelle.'
},
logout: ıkış'
},
appearance: {
title: 'Görünüm',
slimDownloadTab: 'İnce indirme sekmesi'
},
downloadPath: {
title: 'İndirilen dizin'
},
templates: {
title: 'Şablonlar',
tracknameTemplate: 'Parça ismi şablonu',
albumTracknameTemplate: 'Albüm parçası şablonu',
playlistTracknameTemplate: 'Oynatma listesi parça şablonu'
},
folders: {
title: 'Dosyalar',
createPlaylistFolder: 'Oynatma listesi için dosya oluştur',
playlistNameTemplate: 'Oynatma listesi dosyası şablonu',
createArtistFolder: 'Sanatçı için dosya oluştur',
artistNameTemplate: 'Sanatçı dosyası şablonu',
createAlbumFolder: 'Albüm için dosya oluştur',
albumNameTemplate: 'Albüm dosyası şablonu',
createCDFolder: 'CDler için dosya oluştur',
createStructurePlaylist: 'Oynatma listeleri için dosya kökü oluştur',
createSingleFolder: 'Singlelar için dosya kökü oluştur'
},
trackTitles: {
title: 'Parça başlıkları',
padTracks: 'İz Numaraları',
paddingSize: 'İz Numaralarını değiştir',
illegalCharacterReplacer: 'Illegal Karakter Düzenleyici'
},
downloads: {
title: 'İndirilenler',
queueConcurrency: 'Devam eden indirmeler',
maxBitrate: {
title: 'Tercih edilmiş Bitrateler (kaliteler)',
9: 'FLAC 1411kbps',
3: 'MP3 320kbps',
1: 'MP3 128kbps'
},
overwriteFile: {
title: 'Dosyaların üstüne yazmalı mıyım?',
y: 'Evet, üstüne yaz',
n: 'Hayır, üstüne yazma',
t: 'Sadece izleri üstüne yaz'
},
fallbackBitrate: 'Bitrate düşürme',
fallbackSearch: 'Düşürme ara',
logErrors: 'Hatalar için günlük tut',
logSearched: 'Aranmış parçalar için günlük tut',
createM3U8File: 'Oynatma sıra listesi oluştur',
syncedLyrics: '.lyr dosyaları oluştur (Senkronize şarkı sözleri)',
playlistFilenameTemplate: 'Oynatma listesi şablonu',
saveDownloadQueue: 'Uygulamayı kapatırken indirme kuyruğunu kaydet'
},
covers: {
title: 'Albüm kapakları',
saveArtwork: 'Kapakları kaydet',
coverImageTemplate: 'Kapak ismi şablonu',
saveArtworkArtist: 'Sanatçı fotoğrafını kaydet',
artistImageTemplate: 'Şarkıcı fotoğraf şablonu',
localArtworkSize: 'Yerel fotoğraf boyutu',
embeddedArtworkSize: 'Gömülü fotoğraf boyutu',
localArtworkFormat: {
title: 'Yerel fotoğrafın hangi formatta olmasını istersin?',
jpg: 'Jpeg dosyası',
png: 'Png dosyası',
both: 'Her ikisi'
},
jpegImageQuality: 'JPEG görüntü kalitesi'
},
tags: {
head: 'Hangi izler kayıt edilsin?',
title: 'Başlık',
artist: 'Sanatçı',
album: 'Albüm',
cover: 'Kapak',
trackNumber: 'Parça Numarası',
trackTotal: 'Tüm Parça',
discNumber: 'Plak Sayısı',
discTotal: 'Tüm Plak',
albumArtist: 'Sanatçı Albümü',
genre: 'Tür',
year: 'Yıl',
date: 'Tarih',
explicit: 'Cinsel içerikli şarkı sözleri',
isrc: 'ISRC',
length: 'Parça Uzunluğu',
barcode: 'Albüm Barkodu (UPC)',
bpm: 'BPM',
replayGain: 'Ses Yüksekliği Normalleştirici',
label: 'Albüm Etiketi',
lyrics: 'Senkronize edilmemiş şarkı sözleri',
copyright: 'Telif hakkı',
composer: 'Besteleyen',
involvedPeople: 'Alakalı Kişiler'
},
other: {
title: 'Diğer',
savePlaylistAsCompilation: 'Oynatma listelerini derleme olarak kaydet',
useNullSeparator: 'Boşluk ayırıcı kullan',
saveID3v1: 'ID3v1 dosyasını da kaydet',
multiArtistSeparator: {
title: 'Sanatçılarınızı nasıl ayırmak istersiniz?',
nothing: 'Sadece ana sanatçıyı kaydet',
default: 'Genel prosedür uygulansın',
andFeat: 'Kullanılanlar & ve Feat.',
using: 'Kullanılan "{0}"'
},
singleAlbumArtist: 'Sadece ana albüm sanatçısını kaydet',
albumVariousArtists: '"Çeşitli sanatçılar"ı sanatçı albümlerinde tut',
removeAlbumVersion: '"Albüm Sürümü"nü parça başlığından çıkart',
removeDuplicateArtists: 'Sanatçı topluluğunu çıkart',
dateFormat: {
title: 'FLAC dosyalar için zaman formatı',
year: 'YYYY',
month: 'AA',
day: 'GG'
},
featuredToTitle: {
title: 'Öne çıkan sanatçıları ne yapmalıyım?',
0: 'Elleme',
1: 'Başlıktan çıkart',
3: 'Başlıktan ve albüm başlığından çıkart',
2: 'Başlığa taşı'
},
titleCasing: 'Albüm harfi',
artistCasing: 'Sanatçı harfi',
casing: {
nothing: 'Değiştirmeden bırak',
lower: 'küçük harf',
upper: 'BÜYÜK HARF',
start: 'Kelimenin başı ile başla',
sentence: 'Cümle gibi yap'
},
previewVolume: 'Ses önizlemesi',
executeCommand: {
title: 'İndirdikten sonra komut uygula',
description: 'Bir şey yapmamak için boş bırak'
}
},
spotify: {
title: 'Spotify Özelliği',
clientID: 'Spotify clientID',
clientSecret: 'Spotify Client Secret',
username: 'Spotify Kullanıcı Adı'
},
reset: 'Varsayılana sıfırla',
save: 'Kaydet',
toasts: {
init: 'Ayarlar yüklendi!',
update: 'Ayarlar güncellendi!',
ARLcopied: 'ARL panoya kopyalandı!'
}
},
sidebar: {
home: 'Ana sayfa',
search: 'Ara',
charts: 'Grafikler',
favorites: 'Favoriler',
linkAnalyzer: 'Link Analizörü',
settings: 'Ayarlar',
about: 'Hakkında'
},
tracklist: {
downloadSelection: 'İndirme bölümü'
}
}
export default tr

View File

@ -9,6 +9,9 @@ import de from '@/lang/de'
import fr from '@/lang/fr' import fr from '@/lang/fr'
import id from '@/lang/id' import id from '@/lang/id'
import pt from '@/lang/pt-pt' import pt from '@/lang/pt-pt'
import ptBr from '@/lang/pt-br'
import ru from '@/lang/ru'
import tr from '@/lang/tr'
Vue.use(VueI18n) Vue.use(VueI18n)
@ -23,7 +26,10 @@ const locales = {
de, de,
fr, fr,
id, id,
pt pt,
ptBr,
ru,
tr
} }
const i18n = new VueI18n({ const i18n = new VueI18n({
@ -36,14 +42,26 @@ const i18n = new VueI18n({
* @param choicesLength {number} an overall amount of available choices * @param choicesLength {number} an overall amount of available choices
* @returns a final choice index to select plural word by * @returns a final choice index to select plural word by
*/ */
'ru': function(choice, choicesLength) { ru: function(choice, choicesLength) {
if (choice === 0) { return 0 } if (choice === 0) {
return 0
}
var n = Math.abs(choice) % 100 var n = Math.abs(choice) % 100
var n1 = n % 10 var n1 = n % 10
if (n > 10 && n < 20) { return 3 }
if (n1 > 1 && n1 < 5) { return 2 } if (n > 10 && n < 20) {
if (n1 == 1) { return 1 } return 3
return 3; }
if (n1 > 1 && n1 < 5) {
return 2
}
if (n1 == 1) {
return 1
}
return 3
} }
} }
}) })

View File

@ -5,6 +5,9 @@ import de from 'svg-country-flags/svg/de.svg'
import fr from 'svg-country-flags/svg/fr.svg' import fr from 'svg-country-flags/svg/fr.svg'
import id from 'svg-country-flags/svg/id.svg' import id from 'svg-country-flags/svg/id.svg'
import pt from 'svg-country-flags/svg/pt.svg' import pt from 'svg-country-flags/svg/pt.svg'
import br from 'svg-country-flags/svg/br.svg'
import ru from 'svg-country-flags/svg/ru.svg'
import tr from 'svg-country-flags/svg/tr.svg'
export default { export default {
it, it,
@ -13,5 +16,8 @@ export default {
de, de,
fr, fr,
id, id,
pt pt,
ptBr: br,
ru,
tr
} }