diff --git a/lang/fr_FR.json b/lang/fr_FR.json
index 4b5526b..e13ce26 100644
--- a/lang/fr_FR.json
+++ b/lang/fr_FR.json
@@ -9,7 +9,7 @@
"bad_url": "Mauvaise URL demandé",
"cache_refreshed": "Cache actualisé!",
"change_ducking_volume": "Volume sur le ducking réglé sur {volume} par {user}.",
- "change_max_volume": "",
+ "change_max_volume": "Volume max configuré à {max} par {user}",
"change_mode": "Mode de lecture réglé sur {mode} par {user}.",
"change_volume": "Volume réglé sur {volume} par {user}.",
"cleared": "Playlist vidée.",
@@ -17,7 +17,7 @@
"cleared_tags_from_all": "Suppression de tous les tags des chansons de la playlist.",
"command_disabled": "{command} : commande désactivée !",
"current_ducking_volume": "Volume de ducking: {volume}.",
- "current_max_volume": "",
+ "current_max_volume": "Volume max actuel : {max}",
"current_mode": "Le mode de lecture actuel est {mode}.",
"current_volume": "Volume actuel : {volume}.",
"database_dropped": "La base de données a été supprimée. Tous les enregistrements ont disparu.",
@@ -31,7 +31,7 @@
"help": "
Commandes
\nControl\n\n- !web - obtenir l'URL de l'interface web, si elle est activée.
\n- !play (ou !p) [{num}] [{start_from}] - reprise de la pause / début de la lecture (à partir de la n° X s'il est donné)
\n- !pause - pause
\n- !stop - arrêtez de jouer
\n- !skip - passer à la chanson suivante
\n- !last - passer à la dernière chanson
\n- !volume {volume} - obtenir ou modifier le volume (de 0 à 100)
\n- !mode [{mode}] - obtenir ou définir le mode de lecture, {mode} doit être l'un de one-shot (supprimer l'élément une fois joué), repeat (boucle de la liste de lecture), ramdom (liste de lecture aléatoire),\nautoplay (prendre au hasard dans la bibliothèque musicale).
\n- !duck on/off - activer ou désactiver la fonction d'esquive
\n- !duckv {volume} - définit le volume du bot lorsque le ducking est activé
\n- !duckthres - définir le seuil de volume pour activer le ducking (3000 par défaut)
\n- !oust - arrêtez de jouer et passez sur le canal par défaut
\n
\nPlayist\n\n- !now (ou !np) - afficher la chanson actuelle
\n- !queue - afficher les éléments de la playlist
\n- !tag {balises} - ajouter tous les éléments avec les tags {tags}, les balises séparées par \",\".
\n- !file (ou !f) {chemin/dossier/mot-clé} - ajoute un seul fichier à la playlist par son chemin ou un mot-clé.
\n- !filematch (ou !fm) {pattern} - ajouter tous les fichiers qui correspondent à la regex {pattern}
\n- !url {url} - ajouter de la musique Youtube ou SoundCloud
\n- !playlist {url} [{offset}] - ajouter tous les éléments d'une liste de lecture Youtube ou SoundCloud, et commencer par le {offset}-ième élément
\n- !radio {url} - ajouter une radio {url} à la playlist
\n- !rbquery {keyword} - interroger http://www.radio-browser.info pour une station de radio
\n- !rbplay {id} - jouer une station de radio avec {id} (ex. !rbplay 96746)
\n- !ysearch {keywords} - requête youtube. Utilisez !ysearch -n pour aller à la page d'après.
\n- !yplay {keywords} - ajouter le premier résultat de recherche de {keyword} dans la playlist.
\n- !shortlist (ou !sl) {index/*} - ajouter {index}-ième élément (ou tous les éléments si * est donné) de la liste.
\n- !rm {num} - supprimer le num-ième morceau de la playlist
\n- !repeat [{num}] - répéter la chanson actuelle {num} (1 par défaut) times.
\n- !random - randomiser la playlist.
\n
\nBibliothèque musicale\n\n- !search {keywords} - trouver un élément avec {mots-clés} dans la bibliothèque musicale, mots-clés séparés par un espace.
\n- !listfile [{pattern}] - affiche la liste des fichiers disponibles (dont les chemins correspondent au motif de regex si {pattern} est donné)
\n- !addtag [{index}] {tags} - ajouter {tags} à {index} (current song if {index} n'existe pas) de la playliste, tags séparer par \",\".
\n- !addtag * {tags} - ajouter des {tags} à tous les éléments de la playlist.
\n- !untag [{index/*}] {tags}/* - supprimer {tags}/toutes les tags de {index}-th(current song if {index} is oitted) item on the playlist.
\n- !findtagged (ou !ft) {tags} - trouver un élément avec des {balises} dans la bibliothèque.
\n- !delete {index} - supprimer le {index}-ième élément de la liste de la bibliothèque.
\n
\nAutre\n\n- !joinme {token} - rejoins votre propre channel mumble avec {token}.
\n- !password {password} - changer votre mot de passe, utilisé pour accéder à l'interface web.
\n
",
"invalid_index": "Index non valide {index}. Utilisez '!queue' pour voir la playlist.",
"last_song_on_the_queue": "Dernier de la file d'attente.",
- "max_volume": "",
+ "max_volume": "Le volume dépasse le maximum {max}. Réglage du volume sur le max.",
"multiple_file_added": "Ajout de plusieurs éléments :",
"multiple_file_deleted": "Plusieurs éléments ont été supprimés de la bibliothèque :",
"multiple_file_found": "Trouvé :",
@@ -71,20 +71,20 @@
"update_successful": "botamusique v{version} Installé !
\nChangelog
{changelog}
Visitez notre repo github pour plus de détails !",
"url": "URL",
"url_ban": "URL {url} est interdite !",
- "url_ban_list": "",
- "url_ban_success": "",
+ "url_ban_list": "Liste des URL bannies:
{list=",
+ "url_ban_success": "L'URL suivante est interdite: {url}",
"url_from_playlist": "URL",
"url_from_playlist_item": "{title} depuis la playlist {playlist} ajouté par {user}",
"url_item": "{title} ajouté par {user}",
- "url_unban_success": "",
- "url_unwhitelist_success": "",
- "url_whitelist_list": "",
- "url_whitelist_success": "",
+ "url_unban_success": "L'URL suivante est débloquée : {url}.",
+ "url_unwhitelist_success": "L'URL suivante n'est pas sur liste blanche : {url}.",
+ "url_whitelist_list": "Liste des URL sur liste blanche:
{list}",
+ "url_whitelist_success": "L'URL suivante est sur la liste blanche : {url}.",
"user_ban": "Vous êtes banni, vous n'avez donc pas le droit de faire cela !",
- "user_ban_list": "",
- "user_ban_success": "",
+ "user_ban_list": "Liste des utilisateurs bannis:
{list}",
+ "user_ban_success": "L'utilisateur {user} est banni.",
"user_password_set": "Votre mot de passe a été mis à jour.",
- "user_unban_success": "",
+ "user_unban_success": "L'utilisateur {user} n'est plus banni.",
"web_user_list": "Les utilisateurs suivants ont l'autorisation d'accéder à l'interface web :
{users}",
"webpage_address": "Votre propre adresse pour accéder à l'interface web est {address}",
"which_command": "Voulez-vous dire
{commands}",
diff --git a/lang/pt_BR.json b/lang/pt_BR.json
new file mode 100644
index 0000000..5a69f42
--- /dev/null
+++ b/lang/pt_BR.json
@@ -0,0 +1,173 @@
+{
+ "cli": {
+ "added_tags": "As etiquetas {tags} foram adicionadas em {song}.",
+ "added_tags_to_all": "As etiquetas {tags} foram adicionadas nas músicas da lista de reprodução.",
+ "admin_help": "Comandos de administrador
\nRobô\n\n- !kill - matar o robô
\n- !update - atualizar o robô
\n- !userban {usuário} - banir um usuário
\n- !userunban {usuário} - remover usuário da lista de usuários banidos
\n- !urlbanlist - exibir lista de endereços banidos
\n- !urlban [{endereço}] - banir {endereço} (ou o endereço do item atual, por padrão) e remover este endereço da biblioteca.
\n- !urlunban {endereço - remover {endereço} da lista de endereços banidos
\n- !rescan {endereço} - reconstruir cache de arquivos de música local
\n- !dropdatabase - limpar o banco de dados inteiro, você perderá todas as configurações e a biblioteca de música.
\n
\nInterface web\n\n- !webuserlist - exibir lista de todos os usuários que têm permissão para acessar a interface web, se o modo de autenticação for 'password'.
\n- !webuseradd {apelido} - dar acesso à interface web para {apelido}, se o modo de autenticação for 'password'.
\n- !webuserdel {apelido} - revogar o acesso à interface web de {apelido}, caso o modo de autenticação for 'password'.
\n
",
+ "auto_paused": "Use !play para retomar a reprodução de música!",
+ "bad_command": "{command}: comando não encontrado.",
+ "bad_parameter": "{command}: parâmetro inválido.",
+ "bad_url": "Um endereço malformado foi pedido.",
+ "cache_refreshed": "Cache atualizado!",
+ "change_ducking_volume": "O volume de atenuação foi definido para {volume} por {user}.",
+ "change_max_volume": "O volume máximo foi definido para {max} por {user}.",
+ "change_mode": "O modo de reprodução foi definido para {mode} por {user}.",
+ "change_volume": "O volume foi definido para {volume} por {user}.",
+ "cleared": "A lista de reprodução foi esvaziada.",
+ "cleared_tags": "Todas as etiquetas foram removidas de {song}.",
+ "cleared_tags_from_all": "Todas as etiquetas das músicas na lista de reprodução foram removidas.",
+ "command_disabled": "{command}: comando desabilitado!",
+ "current_ducking_volume": "Volume de atenuação: {volume}.",
+ "current_max_volume": "Volume máximo atual: {max}.",
+ "current_mode": "O modo de reprodução é {mode}.",
+ "current_volume": "Volume atual: {volume}.",
+ "database_dropped": "O banco de dados foi esvaziado.",
+ "download_in_progress": "A descarga de {item} está em progresso...",
+ "error_executing_command": "{command}: O comando falhou com um erro: {error}.",
+ "file": "Arquivo",
+ "file_added": "{item} adicionado.",
+ "file_deleted": "{item} foi apagado da biblioteca.",
+ "file_item": "{artist} - {title} adicionado por {user}",
+ "file_missed": "O arquivo de música '{file}' foi perdido! Este item foi removido da lista de reprodução.",
+ "help": "Comandos
\nControle\n\n- !web - exibe o endereço da interface web, caso habilitado.
\n- !play (ou !p) [{num}] [{iniciar_de}] - resume/inicia a reprodução (a partir da música na posição {num}, caso especificado)
\n- !pause - pausa
\n- !stop - interrompe a reprodução
\n- !skip - pula para a próxima música
\n- !last - pula para a última música
\n- !volume {volume} - exibe ou altera o volume (de 0 a 100)
\n- !mode [{modo}] - exibe ou define o modo de reprodução, {modo} deve ser um dos seguintes: one-shot (remover o item assim que ele for reproduzido, repeat (repetir a lista de reprodução), ou random (tornar a lista de reprodução em ordem aleatória),\nautoplay (escolher algo da biblioteca de música aleatoriamente).
\n- !duck on/off - habilita ou desabilita a função de atenuação
\n- !duckv {volume} - define o volume do robô quando a atenuação está ativada
\n- !duckthres - define o nível de volume que ativa a atenuação (3000 por padrão)
\n- !oust - interrompe a reprodução e vai para o canal padrão
\n
\nLista de reprodução\n\n- !now (ou !np) - exibe a música atual
\n- !queue - exibe os itens na lista de reprodução
\n- !tag {etiquetas} - adiciona todos os itens com as etiquetas {etiquetas}, etiquetas separadas com \",\".
\n- !file (ou !f) {caminho/pasta/palavra-chave} - adiciona um único arquivo à lista de reprodução pelo seu caminho ou palavra-chave em seu caminho.
\n- !filematch (ou !fm) {padrão} - adiciona todos os arquivos que combinarem com a expressão regular {padrão}
\n- !url {url} - adicionar música do YouTube ou SoundCloud
\n- !playlist {endereço} [{deslocamento}] - adiciona todos os itens em uma lista de reprodução do YouTube ou SoundCloud, a partir do item na posição {deslocamento}
\n- !radio {endereço} - adiciona a rádio {endereço} no final da lista de reprodução
\n- !rbquery {palavra_chave} - busca por uma estação de rádio em http://www.radio-browser.info
\n- !rbplay {id} - reproduz uma estação de rádio com {id} (por ex.: !rbplay 96746)
\n- !ysearch {palavras_chave} - busca no YouTube. Use !ysearch -n para trocar de página.
\n- !yplay {palavras_chave} - adiciona o primeiro resultado da busca de {palavras_chave} na lista de reprodução.
\n- !shortlist (ou !sl) {índices/*} - adiciona o item na posição {índices} (ou todos caso * seja especificado) na lista curta.
\n- !rm {num} - remove a música na posição {num} da lista de reprodução
\n- !repeat [{num}] - repete a música atual {num} (1 por padrão) vezes.
\n- !random - torna a lista de reprodução em ordem aleatória.
\n
\nBiblioteca de música\n\n- !search {palavras_chave} - busca pelo item com {palavras_chave} na biblioteca de música, palavras-chave separadas por espaço.
\n- !listfile [{padrão}] - exibe a lista de arquivos disponíveis (os quais caminhos combinam com o padrão de expressão regular caso {padrão} seja especificado)
\n- !addtag [{índice}] {etiquetas} - adiciona {etiquetas} para a música da lista de reprodução na posição {índice} (ou a música atual caso {índice} seja omitido), etiquetas separadas por \",\".
\n- !addtag * {etiquetas} - adiciona {etiquetas} para todos os itens na lista de reprodução.
\n- !untag [{índice/*}] {etiquetas}/* - remove {etiquetas}/todas as etiquetas da música da lista de reprodução na posição {índice} (ou a música atual caso {índice} seja omitido).
\n- !findtagged (ou !ft) {etiquetas} - busca por um item com {etiquetas} na biblioteca de música.
\n- !delete {índice} - apaga da biblioteca de música o item da lista curta na posição {índice}.
\n
\nOutro\n\n- !joinme {token} - entra no seu próprio canal com {token}.
\n- !password {senha} - altera sua senha, usada para acessar a interface web.
\n
",
+ "invalid_index": "O índice {index} é inválido. Use !queue para visualizar a lista de reprodução.",
+ "last_song_on_the_queue": "Último na fila.",
+ "max_volume": "O volume excede o volume máximo {max}. O volume foi definido para o máximo.",
+ "multiple_file_added": "Múltiplos itens adicionados:",
+ "multiple_file_deleted": "Múltiplos itens foram apagados da biblioteca:",
+ "multiple_file_found": "Encontrado:",
+ "multiple_matches": "Arquivo não encontrado! Possíveis resultados:",
+ "new_version_found": "Atualização disponível!
A versão {new_version} do botamusique está disponível!
\nRegistro de mudanças
{changelog}
Envie !update para atualizar!",
+ "next_to_play": "Próxima música.",
+ "no_file": "Arquivo não encontrado.",
+ "not_admin": "Você não é um administrador!",
+ "not_in_my_channel": "Você não está no meu canal!",
+ "not_playing": "Nada está sendo reproduzido neste momento.",
+ "now_playing": "Reproduzindo {item}",
+ "page_instruction": "Página {current}/{total}. Use !{command} {{page}} para navegar.",
+ "paused": "Música pausada.",
+ "playlist_fetching_failed": "Não foi possível receber a lista de reprodução!",
+ "pm_not_allowed": "Mensagens privadas não são permitidas.",
+ "position_in_the_queue": "Posição: {position}",
+ "preconfigurated_radio": "Estações de rádio pré-configuradas disponíveis:",
+ "queue_contents": "Itens na lista de reprodução:",
+ "queue_empty": "A lista de reprodução está vazia!",
+ "radio": "Rádio",
+ "radio_item": "{title} de {name} foi adicionado por {user}",
+ "rb_play_empty": "Por favor especifique a identificação de uma estação de rádio!",
+ "rb_query_result": "Este é o resultado da sua busca, envie !rbplay {ID} para reproduzir uma estação:",
+ "records_omitted": "…",
+ "removed_tags": "As etiquetas {tags} foram removidas de {song}.",
+ "removed_tags_from_all": "As etiquetas {tags} foram removidas das músicas na lista de reprodução.",
+ "removing_item": "O item {item} na lista de reprodução foi removido.",
+ "repeat": "Repetir {song} {n} vezes.",
+ "report_version": "A versão atual do botamusique é {version}.",
+ "shortlist_instruction": "Use !sl {índices} para reproduzir o item que você deseja.",
+ "start_updating": "Iniciando a atualização...",
+ "stopped": "Música parada.",
+ "too_long": "{song} é muito longo ({duration} > {max_duration}). Removido da lista de reprodução!",
+ "unable_download": "Falha ao baixar {item}. Removido da biblioteca.",
+ "unable_play": "Falha ao reproduzir {item}. Removido da biblioteca.",
+ "unknown_mode": "O modo de reprodução '{mode}' é desconhecido. Ele deve ser um dos seguintes: one-shot, repeat, random.",
+ "update_successful": "botamusique v{version} instalado!
\nRegistro de mudanças
{changelog}
Visite nosso repositório no GitHub para mais detalhes!",
+ "url": "Endereço",
+ "url_ban": "O endereço {url} está banido! Removido da lista de reprodução!",
+ "url_ban_list": "Lista de endereços banidos:
{list}",
+ "url_ban_success": "O seguinte endereço está banido: {url}.",
+ "url_from_playlist": "Endereço",
+ "url_from_playlist_item": "{title} da lista de reprodução {playlist} adicionado por {user}",
+ "url_item": "{title} adicionado por {user}",
+ "url_unban_success": "O seguinte endereço foi removido da lista de endereços banidos: {url}.",
+ "url_unwhitelist_success": "O seguinte endereço foi removido da lista branca: {url}.",
+ "url_whitelist_list": "Lista de endereços na lista branca:
{list}",
+ "url_whitelist_success": "O seguinte endereço foi adicionado à lista branca: {url}.",
+ "user_ban": "Você está banido. Você não tem permissão para fazer isto!",
+ "user_ban_list": "Lista de usuários banidos:
{list}",
+ "user_ban_success": "O usuário {user} foi banido.",
+ "user_password_set": "A sua senha foi atualizada.",
+ "user_unban_success": "O usuário {user} foi removido da lista de usuários banidos.",
+ "web_user_list": "Os seguintes usuários possuem privilégio para acessar a interface web:
{users}",
+ "webpage_address": "O seu próprio endereço para acessar a interface web é {address}",
+ "which_command": "Você quis dizer
{commands}",
+ "wrong_pattern": "Expressão regular inválida: {error}.",
+ "yt_no_more": "Não há mais resultados!",
+ "yt_query_error": "Não foi possível buscar no YouTube!",
+ "yt_result": "Resultado da busca no YouTube: {result_table} Use !sl {{índices}} para reproduzir o item que você deseja.
\n!ytquery -n para exibir a próxima página."
+ },
+ "web": {
+ "action": "Ação",
+ "add": "Adicionar",
+ "add_all": "Adicionar todos",
+ "add_radio": "Adicionar rádio",
+ "add_radio_url": "Adicionar endereço de rádio",
+ "add_to_bottom": "Adicionar no fim",
+ "add_to_bottom_of_current_playlist": "Adicionar no fim da lista de reprodução atual",
+ "add_to_playlist_next": "Adicionar para a lista de reprodução após a música atual",
+ "add_url": "Adicionar lista de reprodução",
+ "add_youtube_or_soundcloud_url": "Adicionar endereço do YouTube ou SoundCloud",
+ "are_you_really_sure": "Você realmente tem certeza?",
+ "aria_botamusique_logo": "Logo do botamusique: uma raposa escutando música com fones de ouvido",
+ "aria_default_cover": "Um quadrado preto com duas oitavas disparadas juntas",
+ "aria_empty_box": "Um desenho de uma caixa vazia.",
+ "aria_remove_this_song": "Remover esta música da lista de reprodução atual",
+ "aria_skip_current_song": "Pular música atual e reproduzir esta música agora",
+ "aria_skip_to_next_track": "Pular para a próxima trilha",
+ "aria_spinner": "Um ícone de carregamento girando",
+ "aria_warning_of_deletion": "Aviso sobre a remoção de arquivos.",
+ "autoplay": "Reproduzir automaticamente",
+ "browse_music_file": "Procurar arquivo de música",
+ "cancel": "Cancelar",
+ "cancel_upload_warning": "Você realmente tem certeza?
Clique novamente para abortar o envio.",
+ "change_playback_mode": "Alterar modo de reprodução",
+ "choose_file": "Escolher arquivo",
+ "clear_playlist": "Limpar lista de reprodução",
+ "close": "Fechar",
+ "delete_all": "Apagar todos",
+ "delete_all_files": "Apagar todos os arquivos listados",
+ "delete_file_warning": "Todos os arquivos listados aqui, incluindo os arquivos em outras páginas, serão apagados do seu disco.\n É isso o que você quer?",
+ "directory": "Diretório",
+ "download_all": "Baixar todos",
+ "download_song_from_library": "Baixar música da biblioteca",
+ "edit_submit": "Editar!",
+ "edit_tags_for": "Editar etiquetas de",
+ "expand_playlist": "Ver o item na lista de reprodução.",
+ "file": "Arquivo",
+ "filters": "Filtros",
+ "index": "Nº",
+ "keywords": "Palavras-chave",
+ "keywords_placeholder": "Palavras-chave...",
+ "mini_player_title": "Reproduzindo...",
+ "music_library": "Biblioteca de música",
+ "next_to_play": "Próximo a reproduzir",
+ "no_tag": "Nenhuma etiqueta",
+ "oneshot": "Reprodução única",
+ "open_volume_controls": "Abrir controles de volume",
+ "page_title": "Interface web botamusique",
+ "pause": "Pausar",
+ "play": "Reproduzir",
+ "playlist_controls": "Controles de lista de reprodução",
+ "radio": "Rádio",
+ "radio_url_placeholder": "Endereço de rádio...",
+ "random": "Aleatório",
+ "remove_song_from_library": "Remover música da biblioteca",
+ "repeat": "Repetir",
+ "rescan_files": "Escanear arquivos novamente",
+ "skip_track": "Pular trilha",
+ "submit": "Enviar",
+ "tags": "Etiquetas",
+ "tags_to_add": "Etiquetas para adicionar",
+ "title": "Título",
+ "token": "Token",
+ "token_required": "Token necessário",
+ "token_required_message": "Você está acessando a interface web de {{ name }}.\nUm token é necessário para autorizar o seu acesso.
\nPor favor, envie \"{{ command }}\" para o robô no Mumble para recebê-lo.",
+ "type": "Tipo",
+ "upload_file": "Enviar arquivo",
+ "upload_submit": "Enviar!",
+ "upload_to": "Enviar para",
+ "uploaded_finished": "Envio concluído!",
+ "uploading_files": "Enviando arquivos...",
+ "url": "Endereço",
+ "url_path": "Endereço/Caminho",
+ "url_placeholder": "Endereço...",
+ "volume_slider": "Controle de volume"
+ }
+}
\ No newline at end of file