diff --git a/lang/de_DE.json b/lang/de_DE.json
new file mode 100644
index 0000000..ca2c5dd
--- /dev/null
+++ b/lang/de_DE.json
@@ -0,0 +1,157 @@
+{
+ "cli": {
+ "added_tags": "",
+ "added_tags_to_all": "",
+ "admin_help": "",
+ "auto_paused": "",
+ "bad_command": "",
+ "bad_parameter": "",
+ "bad_url": "",
+ "cache_refreshed": "",
+ "change_ducking_volume": "",
+ "change_mode": "",
+ "change_volume": "",
+ "cleared": "",
+ "cleared_tags": "",
+ "cleared_tags_from_all": "",
+ "command_disabled": "",
+ "current_ducking_volume": "",
+ "current_mode": "",
+ "current_volume": "",
+ "database_dropped": "",
+ "download_in_progress": "",
+ "error_executing_command": "",
+ "file": "",
+ "file_added": "",
+ "file_deleted": "",
+ "file_item": "",
+ "file_missed": "",
+ "help": "",
+ "invalid_index": "",
+ "multiple_file_added": "",
+ "multiple_file_deleted": "",
+ "multiple_file_found": "",
+ "multiple_matches": "",
+ "new_version_found": "",
+ "no_file": "",
+ "not_admin": "",
+ "not_in_my_channel": "",
+ "not_playing": "",
+ "now_playing": "",
+ "page_instruction": "",
+ "paused": "",
+ "playlist_fetching_failed": "",
+ "pm_not_allowed": "",
+ "preconfigurated_radio": "",
+ "queue_contents": "",
+ "queue_empty": "",
+ "radio": "",
+ "radio_item": "",
+ "rb_play_empty": "",
+ "rb_query_result": "",
+ "records_omitted": "",
+ "removed_tags": "",
+ "removed_tags_from_all": "",
+ "removing_item": "",
+ "repeat": "",
+ "shortlist_instruction": "",
+ "start_updating": "",
+ "stopped": "",
+ "too_long": "",
+ "unable_download": "",
+ "unable_play": "",
+ "unknown_mode": "",
+ "update_successful": "",
+ "url": "",
+ "url_ban": "",
+ "url_from_playlist": "",
+ "url_from_playlist_item": "",
+ "url_item": "",
+ "user_ban": "",
+ "user_password_set": "",
+ "web_user_list": "",
+ "webpage_address": "",
+ "which_command": "",
+ "wrong_pattern": "",
+ "yt_no_more": "",
+ "yt_query_error": "",
+ "yt_result": ""
+ },
+ "web": {
+ "action": "",
+ "add": "",
+ "add_all": "",
+ "add_radio": "",
+ "add_radio_url": "",
+ "add_to_bottom": "",
+ "add_to_bottom_of_current_playlist": "",
+ "add_to_playlist_next": "",
+ "add_url": "",
+ "add_youtube_or_soundcloud_url": "",
+ "are_you_really_sure": "",
+ "aria_botamusique_logo": "",
+ "aria_default_cover": "",
+ "aria_empty_box": "",
+ "aria_remove_this_song": "",
+ "aria_skip_current_song": "",
+ "aria_skip_to_next_track": "",
+ "aria_spinner": "",
+ "aria_warning_of_deletion": "",
+ "autoplay": "",
+ "browse_music_file": "",
+ "cancel": "",
+ "cancel_upload_warning": "",
+ "change_playback_mode": "",
+ "choose_file": "",
+ "clear_playlist": "",
+ "close": "",
+ "delete_all": "",
+ "delete_all_files": "",
+ "delete_file_warning": "",
+ "directory": "",
+ "download_all": "",
+ "download_song_from_library": "",
+ "edit_submit": "",
+ "edit_tags_for": "",
+ "expand_playlist": "",
+ "file": "",
+ "filters": "",
+ "index": "",
+ "keywords": "",
+ "keywords_placeholder": "",
+ "mini_player_title": "",
+ "music_library": "",
+ "next_to_play": "",
+ "no_tag": "",
+ "oneshot": "",
+ "open_volume_controls": "",
+ "page_title": "",
+ "pause": "",
+ "play": "",
+ "playlist_controls": "",
+ "radio": "",
+ "radio_url_placeholder": "",
+ "random": "",
+ "remove_song_from_library": "",
+ "repeat": "",
+ "rescan_files": "",
+ "skip_track": "",
+ "submit": "",
+ "tags": "",
+ "tags_to_add": "",
+ "title": "",
+ "token": "",
+ "token_required": "",
+ "token_required_message": "",
+ "type": "",
+ "upload_file": "",
+ "upload_submit": "",
+ "upload_to": "",
+ "uploaded_finished": "",
+ "uploading_files": "",
+ "url": "",
+ "url_path": "",
+ "url_placeholder": "",
+ "volume_slider": ""
+ }
+}
\ No newline at end of file
diff --git a/lang/en_US.json b/lang/en_US.json
index 3f69588..7e713a2 100644
--- a/lang/en_US.json
+++ b/lang/en_US.json
@@ -2,7 +2,7 @@
"cli": {
"added_tags": "Added tags {tags} to {song}.",
"added_tags_to_all": "Added tags {tags} to songs on the playlist.",
- "admin_help": "
Admin command
\nBot\n\n- !kill - kill the bot
\n- !update - update the bot
\n- !userban {user} - ban a user
\n- !userunban {user} - unban a user
\n- !urlbanlist - list banned url
\n- !urlban [{url}] - ban {url} (or current item's url by default) and remove this url from the library.
\n- !urlunban {url} - unban {url}
\n- !rescan {url} - rebuild local music file cache
\n- !dropdatabase - clear the entire database, you will lose all settings and music library.
\n
\nWeb Interface\n\n- !webuserlist - list all users that have the permission of accessing the web interface, if auth mode is 'password'.
\n- !webuseradd {nick name} - grant the user with {nick name} the access to the web interface, if auth mode is 'password'.
\n- !webuserdel {nick name} - revoke the access to the web interface of {nick name}, if auth mode is 'password'.
\n- !update - update the bot
\n- !userban {user} - ban a user
\n
",
+ "admin_help": "Admin command
\nBot\n\n- !kill - kill the bot
\n- !update - update the bot
\n- !userban {user} - ban a user
\n- !userunban {user} - unban a user
\n- !urlbanlist - list banned url
\n- !urlban [{url}] - ban {url} (or current item's url by default) and remove this url from the library.
\n- !urlunban {url} - unban {url}
\n- !rescan {url} - rebuild local music file cache
\n- !dropdatabase - clear the entire database, you will lose all settings and music library.
\n
\nWeb Interface\n\n- !webuserlist - list all users that have the permission of accessing the web interface, if auth mode is 'password'.
\n- !webuseradd {nick name} - grant the user with {nick name} the access to the web interface, if auth mode is 'password'.
\n- !webuserdel {nick name} - revoke the access to the web interface of {nick name}, if auth mode is 'password'.
\n
",
"auto_paused": "Use !play to resume music!",
"bad_command": "{command}: command not found.",
"bad_parameter": "{command}: invalid parameter.",
@@ -26,8 +26,8 @@
"file_deleted": "Deleted {item} from the library.",
"file_item": "{artist} - {title} added by {user}",
"file_missed": "Music file '{file}' missed! This item has been removed from the playlist.",
- "help": "Commands
\nControl\n\n- !web - get the URL of the web interface, if enabled.
\n- !play (or !p) [{num}] [{start_from}] - resume from pausing / start to play (the num-th song is num if given)
\n- !pause - pause
\n- !stop - stop playing
\n- !skip - jump to the next song
\n- !last - jump to the last song
\n- !volume {volume} - get or change the volume (from 0 to 100)
\n- !mode [{mode}] - get or set the playback mode, {mode} should be one of one-shot (remove\nitem once played), repeat (looping through the playlist), random (randomize the playlist),\nautoplay (randomly grab something from the music library).
\n- !duck on/off - enable or disable ducking function
\n- !duckv - set the volume of the bot when ducking is activated
\n- !duckthres - set the threshold of volume to activate ducking (3000 by default)
\n- !oust - stop playing and go to default channel
\n
\nPlaylist\n\n- !now (or !np) - display the current song
\n- !queue - display items in the playlist
\n- !tag {tags} - add all items with tags {tags}, tags separated by \",\".
\n- !file (or !f) {path/folder/keyword} - add a single file to the playlist by its path or keyword in its path.
\n- !filematch (or !fm) {pattern} - add all files that match regex {pattern}
\n- !url {url} - add Youtube or SoundCloud music
\n- !playlist {url} [{offset}] - add all items in a Youtube or SoundCloud playlist, and start with the {offset}-th item
\n- !radio {url} - append a radio {url} to the playlist
\n- !rbquery {keyword} - query http://www.radio-browser.info for a radio station
\n- !rbplay {id} - play a radio station with {id} (eg. !rbplay 96746)
\n- !ysearch {keywords} - query youtube. Use !ysearch -n to turn the page.
\n- !yplay {keywords} - add the first search result of {keywords} into the playlist.
\n- !shortlist (or !sl) {indexes/*} - add {indexes}-th item (or all items if * is given) on the shortlist.
\n- !rm {num} - remove the num-th song on the playlist
\n- !repeat [{num}] - repeat current song {num} (1 by default) times.
\n- !random - randomize the playlist.
\n
\nMusic Library\n\n- !search {keywords} - find item with {keywords} in the music library, keywords separated by space.
\n- !listfile [{pattern}] - display list of available files (whose paths match the regex pattern if {pattern} is given)
\n- !addtag [{index}] {tags} - add {tags} to {index}-th(current song if {index} is omitted) item on the playlist, tags separated by \",\".
\n- !addtag * {tags} - add {tags} to all items on the playlist.
\n- !untag [{index/*}] {tags}/* - remove {tags}/all tags from {index}-th(current song if {index} is omitted) item on the playlist.
\n- !findtagged (or !ft) {tags} - find item with {tags} in the music library.
\n- !delete {index} - delete {index}-th item on the shortlist from the music library.
\n
\nOther\n\n- !joinme {token} - join your own channel with {token}.
\n- !password {password} - change your password, used to access the web interface.
\n
",
- "invalid_index": "Invalid index {index}. Use '!queue' to see the playlist.",
+ "help": "Commands
\nControl\n\n- !web - get the URL of the web interface, if enabled.
\n- !play (or !p) [{num}] [{start_from}] - resume from pausing / start to play (the num-th song is num if given)
\n- !pause - pause
\n- !stop - stop playing
\n- !skip - jump to the next song
\n- !last - jump to the last song
\n- !volume {volume} - get or change the volume (from 0 to 100)
\n- !mode [{mode}] - get or set the playback mode, {mode} should be one of one-shot (remove\nitem once played), repeat (looping through the playlist), random (randomize the playlist),\nautoplay (randomly grab something from the music library).
\n- !duck on/off - enable or disable ducking function
\n- !duckv {volume} - set the volume of the bot when ducking is activated
\n- !duckthres - set the threshold of volume to activate ducking (3000 by default)
\n- !oust - stop playing and go to default channel
\n
\nPlaylist\n\n- !now (or !np) - display the current song
\n- !queue - display items in the playlist
\n- !tag {tags} - add all items with tags {tags}, tags separated by \",\".
\n- !file (or !f) {path/folder/keyword} - add a single file to the playlist by its path or keyword in its path.
\n- !filematch (or !fm) {pattern} - add all files that match regex {pattern}
\n- !url {url} - add Youtube or SoundCloud music
\n- !playlist {url} [{offset}] - add all items in a Youtube or SoundCloud playlist, and start with the {offset}-th item
\n- !radio {url} - append a radio {url} to the playlist
\n- !rbquery {keyword} - query http://www.radio-browser.info for a radio station
\n- !rbplay {id} - play a radio station with {id} (eg. !rbplay 96746)
\n- !ysearch {keywords} - query youtube. Use !ysearch -n to turn the page.
\n- !yplay {keywords} - add the first search result of {keywords} into the playlist.
\n- !shortlist (or !sl) {indexes/*} - add {indexes}-th item (or all items if * is given) on the shortlist.
\n- !rm {num} - remove the num-th song on the playlist
\n- !repeat [{num}] - repeat current song {num} (1 by default) times.
\n- !random - randomize the playlist.
\n
\nMusic Library\n\n- !search {keywords} - find item with {keywords} in the music library, keywords separated by space.
\n- !listfile [{pattern}] - display list of available files (whose paths match the regex pattern if {pattern} is given)
\n- !addtag [{index}] {tags} - add {tags} to {index}-th(current song if {index} is omitted) item on the playlist, tags separated by \",\".
\n- !addtag * {tags} - add {tags} to all items on the playlist.
\n- !untag [{index/*}] {tags}/* - remove {tags}/all tags from {index}-th(current song if {index} is omitted) item on the playlist.
\n- !findtagged (or !ft) {tags} - find item with {tags} in the music library.
\n- !delete {index} - delete {index}-th item on the shortlist from the music library.
\n
\nOther\n\n- !joinme {token} - join your own channel with {token}.
\n- !password {password} - change your password, used to access the web interface.
\n
",
+ "invalid_index": "Invalid index {index}. Use !queue to see the playlist.",
"multiple_file_added": "Multiple items added:",
"multiple_file_deleted": "Multiple items deleted from the library:",
"multiple_file_found": "Found:",
@@ -69,7 +69,7 @@
"url_item": "{title} added by {user}",
"user_ban": "You are banned, not allowed to do that!",
"user_password_set": "Your password has been updated.",
- "web_user_list": "Following users has the privilege to access the web interface:
{users}",
+ "web_user_list": "Following users have the privilege to access the web interface:
{users}",
"webpage_address": "Your own address to access the web interface is {address}",
"which_command": "Do you mean
{commands}",
"wrong_pattern": "Invalid regex: {error}.",
@@ -89,8 +89,8 @@
"add_url": "Add URL",
"add_youtube_or_soundcloud_url": "Add Youtube or Soundcloud URL",
"are_you_really_sure": "Are you really sure?",
- "aria_botamusique_logo": "Botamusique Logo: a person with two headphones, enjoying the music",
- "aria_default_cover": "A black square with two eight notes beamed together.",
+ "aria_botamusique_logo": "Botamusique Logo: a fox with two headphones, enjoying the music",
+ "aria_default_cover": "A black square with two eighth notes beamed together.",
"aria_empty_box": "A drawing of an empty box.",
"aria_remove_this_song": "Remove this song from the current playlist",
"aria_skip_current_song": "Skip current song and play this song right now",
diff --git a/lang/es_ES.json b/lang/es_ES.json
new file mode 100644
index 0000000..aa013ca
--- /dev/null
+++ b/lang/es_ES.json
@@ -0,0 +1,157 @@
+{
+ "cli": {
+ "added_tags": "Etiquetas {tags} fueron añadidas a {song}.",
+ "added_tags_to_all": "Etiquetas {tags} fueron añadidas a las canciones en la lista de reproducción.",
+ "admin_help": "Comandos de administrador
\nBot\n\n- !kill - matar al bot
\n- !update - actualizar al bot
\n- !userban {user} - banear a un usuario
\n- !userunban {user} - desbanear a un usuario
\n- !urlbanlist - listar url baneadas
\n- !urlban [{url}] - banear {url} (o por defecto, la url del ítem actual) y eliminar esta url de la biblioteca.
\n- !urlunban {url} - desbanear {url}
\n- !rescan {url} - reconstruir caché local de ficheros de música
\n- !dropdatabase - borrar toda la base de datos. Esto eliminará toda su configuración y su biblioteca musical.
\n
\nInterfaz Web\n\n- !webuserlist - lista todos los usuarios que tienen permiso de acceder a la interfaz web, si el modo de autenticación es 'contraseña'.
\n- !webuseradd {nickname} - otorga al usuario con {nickname} acceso a la interfaz web, si el modo de autenticación es 'contraseña'.
\n- !webuserdel {nickname} - revoca el acceso a la interfaz web para {nickname}, si el modo de autenticación es 'contraseña'.
\n
",
+ "auto_paused": "Usa !play para continuar la reproducción!",
+ "bad_command": "{command}: comando no encontrado.",
+ "bad_parameter": "{command}: parámetro inválido.",
+ "bad_url": "Se solicitó una URL mal formada. ",
+ "cache_refreshed": "Caché fue actualizada!",
+ "change_ducking_volume": "Volumen en agache ajustado a {volume} por {user}.",
+ "change_mode": "Modo de reproducción ajustado a {mode} por {user}.",
+ "change_volume": "Volumen ajustado a {volume} por {user}.",
+ "cleared": "Lista de reproducción ha sido vaciada.",
+ "cleared_tags": "Eliminadas todas las etiquetas de {song}.",
+ "cleared_tags_from_all": "Eliminadas todas las etiquetas de las canciones en la lista de reproducción.",
+ "command_disabled": "{command}: comando desactivado!",
+ "current_ducking_volume": "Volumen en agache: {volume}.",
+ "current_mode": "Modo actual de reproducción es {mode}.",
+ "current_volume": "Volumen actual: {volume}.",
+ "database_dropped": "Base de datos descartada. Todos los registros se han ido.",
+ "download_in_progress": "Descarga de {item} en progreso...",
+ "error_executing_command": "{command}: Comando falló, con el siguiente error: {error}.",
+ "file": "Fichero",
+ "file_added": "Añadido {item}.",
+ "file_deleted": "{item} fue eliminado de la biblioteca.",
+ "file_item": "{artist} - {title} añadido por {user}",
+ "file_missed": "Fichero de música '{file}' no encontrado! Este ítem ha sido eliminado de la lista de reproducción.",
+ "help": "Comandos
\nControl\n\n- !web - obtener la URL de la interfaz web, en caso de estar activada.
\n- !play (or !p) [{n}] [{empezar_desde}] - continuar desde pausa / empezar a reproducir (desde la n-ésima canción, si n es introducido)
\n- !pause - pausar
\n- !stop - parar la reproducción
\n- !skip - saltar a la siguiente canción
\n- !last - saltar a la última canción
\n- !volume {volumen} - obtener o cambiar el volumen (de 0 a 100)
\n- !mode [{modo}] - obtener o ajustar el modo de reproducción. {modo} debiera ser o bien one-shot (eliminar el ítem de la lista una vez reproducido), repeat (repetir la lista de reproducción una vez terminada), random (aleatorizar la reproducción), o autoplay (reproducir una muestra aleatoria de canciones de la biblioteca musical).
\n- !duck on/off - activar o desactivar funcionalidad de agache
\n- !duckv - ajustar el volumen del bot para cuando se está en modo de agache
\n- !duckthres - ajustar el nivel de volumen de habla que activa el agache (3000 por defecto)
\n- !oust - parar la reproducción e ir al canal por defecto del bot
\n
\nLista de Reproducción\n\n- !now (o !np) - mostrar la canción actual
\n- !queue - mostrar ítems actualmente en la lista de reproducción
\n- !tag {etiquetas} - añadir todos los ítems con etiquetas {etiquetas}. Éstas deben ir separadas por coma (\",\").
\n- !file (or !f) {ruta/carpeta/palabra clave} - añadir un único fichero a la lista de reproducción a partir de su ruta o una palabra clave en su ruta.
\n- !filematch (o !fm) {patrón} - añade todos los ficheros que calzan con la expresión regular {patrón}.
\n- !url {url} - añade música de Youtube o de SoundCloud
\n- !playlist {url} [{offset}] - añade todos los ítems en una lista de reproducción de Youtube o de Soundcloud, y empieza desde el primer ítem después del {offset} entregado
\n- !radio {url} - agrega una radio {url} a la lista de reproducción
\n- !rbquery {palabra clave} - envía una query a http://www.radio-browser.info para una estación de radio
\n- !rbplay {id} - reproduce una estación de radio con {id} (por ejemplo, !rbplay 96746)
\n- !ysearch {palabras clave} - busca en youtube. Use !ysearch -n para avanzar la página.
\n- !yplay {palabras clave} - añade el primer resultado de la búsqueda de {palabras clave} en Youtube a la lista de reproducción.
\n- !shortlist (o !sl) {n/*} - añade el {n}-ésimo elemento (o todos los elementos si se entrega *) en la lista corta.
\n- !rm {n} - elimina la n-ésima canción en la lista de reproducción
\n- !repeat [{n}] - repite la canción actual {n} veces (1 por defecto).
\n- !random - baraja la lista de reproducción.
\n
\nBiblioteca Musical\n\n- !search {palabras clave} - encuentra elemento con {palabras clave} en la biblioteca musical. Palabras clave separadas por espacios
\n- !listfile [{patrón}] - muestra la lista de ficheros disponibles (cuyas rutas calzan con la expresión regular {patrón}, si éste es entregado)
\n- !addtag [{n}] {etiquetas} - añade {etiquetas} a la {n}-ésima canción (canción actual si {n} es omitida) en la lista de reproducción. Etiquetas separadas por comas (\",\").
\n- !addtag * {etiquetas} - añade {etiquetas} a todos los elementos en la lista de reproducción.
\n- !untag [{n/*}] {etiquetas}/* - elimina {etiquetas}/todas las etiquetas de la {n}-ésima canción (canción actual si {n} es omitida) en la lista de reproducción.
\n- !findtagged (o !ft) {etiquetas} - encuentra elemento con {etiquetas} en la biblioteca musical.
\n- !delete {n} - elimina {n}-ésimo elemento en la lista corta, de la biblioteca musical.
\n
\nOtros\n\n- !joinme {token} - unirse a tu propio canal con {token}.
\n- !password {contraseña} - cambia la contraseña que usa para acceder a la interfaz web.
\n
",
+ "invalid_index": "Índice {index} inválido. Use '!queue' para ver la lista de reproducción.",
+ "multiple_file_added": "Múltiples elementos añadidos:",
+ "multiple_file_deleted": "Múltiples elementos fueron eliminados de la biblioteca:",
+ "multiple_file_found": "Encontrado:",
+ "multiple_matches": "Fichero no encontrado! Posibles candidatos:",
+ "new_version_found": "Actualización disponible!
La versión {new_version} de botamusique está disponible!
\nLista de cambios:
{changelog}
Envía !update para actualizar este bot!",
+ "no_file": "Fichero no encontrado.",
+ "not_admin": "Usted no es un administrador!",
+ "not_in_my_channel": "Tú no estás en mi canal!",
+ "not_playing": "Nada se está reproduciendo ahora mismo.",
+ "now_playing": "Reproduciendo {item}",
+ "page_instruction": "Página {current}/{total}. Use !{command} {{page}} para navegar.",
+ "paused": "Música pausada.",
+ "playlist_fetching_failed": "No fue posible obtener la lista de reproducción!",
+ "pm_not_allowed": "Mensajes privados no están permitidos.",
+ "preconfigurated_radio": "Radio pre-configurada disponible:",
+ "queue_contents": "Elementos en la lista de reproducción:",
+ "queue_empty": "Lista de reproducción está vacía!",
+ "radio": "Radio",
+ "radio_item": "{title} de {name} añadido por {user}",
+ "rb_play_empty": "Por favor especifique el ID de una estación de radio!",
+ "rb_query_result": "Este es el resultado de su consulta, envíe !rbplay {ID} para reproducir una estación:",
+ "records_omitted": "...",
+ "removed_tags": "Eliminadas las etiquetas {tags} de {song}.",
+ "removed_tags_from_all": "Eliminadas las etiquetas {tags} de las canciones en la lista de reproducción.",
+ "removing_item": "Eliminado {item} de la lista de reproducción.",
+ "repeat": "Repetir {song} {n} veces.",
+ "shortlist_instruction": "Use !sl {índices} para reproducir los elementos que usted desea.",
+ "start_updating": "Empezando la actualización...",
+ "stopped": "Música fue detenida.",
+ "too_long": "{song} es muy larga. Eliminada de la lista de reproducción!",
+ "unable_download": "No fue posible descargar {item}. Eliminado de la biblioteca.",
+ "unable_play": "No fue posible reproducir {item}. Eliminado de la biblioteca.",
+ "unknown_mode": "Modo de reproducción '{mode}' desconocido. Debiera ser o bien one-shot, repeat o random.",
+ "update_successful": "botamusique v{version} instalado!
\nLista de cambios
{changelog}
Visite nuestro repositorio en Github para más detalles!",
+ "url": "URL",
+ "url_ban": "Esta URL está baneada!",
+ "url_from_playlist": "URL",
+ "url_from_playlist_item": "{title} de lista de reproducción {playlist} añadido por {user}",
+ "url_item": "{title} añadido por {user}",
+ "user_ban": "Tú estás baneado. No tienes permitido hacer eso!",
+ "user_password_set": "Su contraseña ha sido actualizada.",
+ "web_user_list": "Los siguientes usuarios tienen el privilegio de acceder a la interfaz web:
{users}",
+ "webpage_address": "Tu dirección web para acceder a la interfaz es {address}",
+ "which_command": "Quieres decir
{commands}",
+ "wrong_pattern": "Expresión regular inválida: {error}",
+ "yt_no_more": "No hay más resultados!",
+ "yt_query_error": "Fue imposible consultar a youtube!",
+ "yt_result": "Resultado de la consulta a youtube: {result_table} Use !sl {{índices}} para reproducir el elemento que usted desea.
\n!ytquery -n para la siguiente página."
+ },
+ "web": {
+ "action": "Acción",
+ "add": "Añadir",
+ "add_all": "Añadir todas",
+ "add_radio": "Añadir Radio",
+ "add_radio_url": "Añadir URL de radio",
+ "add_to_bottom": "Añadir al final",
+ "add_to_bottom_of_current_playlist": "Añadir al final de la lista de reproducción actual",
+ "add_to_playlist_next": "Añadir a la lista de reproducción justo después de la canción actual",
+ "add_url": "Añadir URL",
+ "add_youtube_or_soundcloud_url": "Añadir URL de Youtube o de Soundcloud",
+ "are_you_really_sure": "¿Está usted realmente seguro?",
+ "aria_botamusique_logo": "El logo de Botamusique: un zorro con dos audífonos, disfrutando de la música",
+ "aria_default_cover": "Un cuadrado negro, con dos corcheas unidas entre sí.",
+ "aria_empty_box": "El dibujo de una caja vacía.",
+ "aria_remove_this_song": "Sacar esta canción de la lista de reproducción actual",
+ "aria_skip_current_song": "Saltar la canción actual y reproducir esta canción ahora mismo",
+ "aria_skip_to_next_track": "Saltar a la siguiente canción",
+ "aria_spinner": "Una curva siguiendo la forma de un círculo, para indicar que el elemento está cargándose todavía.",
+ "aria_warning_of_deletion": "Advertencia acerca de la eliminación de ficheros.",
+ "autoplay": "Reproducción automática",
+ "browse_music_file": "Explorar fichero de música",
+ "cancel": "Cancelar",
+ "cancel_upload_warning": "¿Está realmente seguro?
Haga click de nuevo para abortar la subida.",
+ "change_playback_mode": "Cambiar Modo de Reproducción.",
+ "choose_file": "Elija un fichero",
+ "clear_playlist": "Vaciar la lista de reproducción",
+ "close": "Cerrar",
+ "delete_all": "Borrar todo",
+ "delete_all_files": "Eliminar todos los ficheros listados",
+ "delete_file_warning": "Todos los archivos listados aquí, incluyendo ficheros en otras páginas, serán eliminados de su disco duro.\n ¿Es eso lo que usted desea?",
+ "directory": "Directorio",
+ "download_all": "Descargar todo",
+ "download_song_from_library": "Descargar canción desde la biblioteca",
+ "edit_submit": "Editar!",
+ "edit_tags_for": "Editar etiquetas para",
+ "expand_playlist": "Ver elemento en la lista de reproducción.",
+ "file": "Fichero",
+ "filters": "Filtros",
+ "index": "#",
+ "keywords": "Palabras clave",
+ "keywords_placeholder": "Palabras clave...",
+ "mini_player_title": "Ahora reproduciendo...",
+ "music_library": "Biblioteca musical",
+ "next_to_play": "Siguiente canción a reproducir",
+ "no_tag": "Sin etiquetas",
+ "oneshot": "One-shot",
+ "open_volume_controls": "Abrir controles de volumen",
+ "page_title": "Interfaz web de botamusique",
+ "pause": "Pausar",
+ "play": "Reanudar",
+ "playlist_controls": "Controles de la lista de reproducción",
+ "radio": "Radio",
+ "radio_url_placeholder": "URL de radio...",
+ "random": "Aleatorio",
+ "remove_song_from_library": "Eliminar canción de la biblioteca",
+ "repeat": "Repetir",
+ "rescan_files": "Volver a escanear ficheros",
+ "skip_track": "Saltar canción",
+ "submit": "Enviar",
+ "tags": "Etiquetas",
+ "tags_to_add": "Etiquetas a añadir",
+ "title": "Título",
+ "token": "Token",
+ "token_required": "Se requiere una token",
+ "token_required_message": "Tú estás accediendo a la interfaz web de {{ name }}.\nUna token es necesaria para otorgarte acceso.
\nPor favor, envíe \"{{ command }}\" al bot en mumble para obtener una.",
+ "type": "Tipo",
+ "upload_file": "Subir Fichero",
+ "upload_submit": "Subir!",
+ "upload_to": "Subir a",
+ "uploaded_finished": "Subida terminada!",
+ "uploading_files": "Subiendo ficheros...",
+ "url": "URL",
+ "url_path": "Url/Ruta",
+ "url_placeholder": "URL...",
+ "volume_slider": "Control deslizante de volumen"
+ }
+}
\ No newline at end of file
diff --git a/lang/fr_FR.json b/lang/fr_FR.json
new file mode 100644
index 0000000..7039f28
--- /dev/null
+++ b/lang/fr_FR.json
@@ -0,0 +1,157 @@
+{
+ "cli": {
+ "added_tags": "Tags {tags} ajoutés à {song}.",
+ "added_tags_to_all": "Tags {tags} ajoutés aux musiques de la playlist.",
+ "admin_help": "",
+ "auto_paused": "!play pour reprendre la lecture!",
+ "bad_command": "{{command}}: commande non trouvé.",
+ "bad_parameter": "{command}: commande invalide.",
+ "bad_url": "Mauvaise URL demandé",
+ "cache_refreshed": "Cache actualisé!",
+ "change_ducking_volume": "Volume sur le ducking réglé sur {volume} 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.",
+ "cleared_tags": "Suppression de tous les tag de {song}.",
+ "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_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.",
+ "download_in_progress": "Téléchargement de {item} en cours...",
+ "error_executing_command": "{command} : La commande a échoué avec l'erreur : {error}.",
+ "file": "Fichier",
+ "file_added": "{item} ajouté.",
+ "file_deleted": "{item} supprimé de la bibliothèque.",
+ "file_item": "{artist} - {title} ajouté par {user}",
+ "file_missed": "Fichier audio '{file}' introuvable! Cet élément a été supprimé de la playlist.",
+ "help": "",
+ "invalid_index": "Index non valide {index}. Utilisez '!queue' pour voir la playlist.",
+ "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é :",
+ "multiple_matches": "Fichier non trouvé ! Candidats possibles :",
+ "new_version_found": "Mise à jour disponible!
La version {new_version} de botamusique est disponible !
\nChangelog
{changelog}
Envoyer !update pour mettre à jour !",
+ "no_file": "Fichier non trouvé.",
+ "not_admin": "Vous n'êtes pas un admin !",
+ "not_in_my_channel": "Vous n'êtes pas dans mon canal, commande refusé !",
+ "not_playing": "Rien n'est joué en ce moment.",
+ "now_playing": "En cours de lecture {item}",
+ "page_instruction": "Page {current}/{total}. Utilisez !{command} {{page}} pour naviguer.",
+ "paused": "Music en pause.",
+ "playlist_fetching_failed": "Impossible d'obtenir la playlist !",
+ "pm_not_allowed": "Les messages privés ne sont pas autorisés.",
+ "preconfigurated_radio": "Radio préconfigurées disponible :",
+ "queue_contents": "Éléments de la playlist :",
+ "queue_empty": "La playlist est vide !",
+ "radio": "Radio",
+ "radio_item": "{title} from {name} ajouté par {user}",
+ "rb_play_empty": "Veuillez préciser l'ID de la station de radio !",
+ "rb_query_result": "Résultat de votre requête, envoyez !rbplay 'ID' pour jouer une station :",
+ "records_omitted": "...",
+ "removed_tags": "Suppression des tags {tags} de {song}.",
+ "removed_tags_from_all": "Suppression des tags {tags} des chansons de la playlist.",
+ "removing_item": "Entrée {item} suprimée de la playlist.",
+ "repeat": "Répète {song} {n} fois.",
+ "shortlist_instruction": "Utilisez !sl {indexes} pour jouer l'élément que vous voulez.",
+ "start_updating": "Début de la mise à jour...",
+ "stopped": "Musique arrêté.",
+ "too_long": "{song} est trop long, supprimé de la playlist !",
+ "unable_download": "Impossible de télécharger {item}. Retiré de la bibliothèque.",
+ "unable_play": "Impossible de jouer {item}. Retiré de la bibliothèque.",
+ "unknown_mode": "Mode de lecture \"{mode}\" inconnu. Il devrait s'agir d'un des modes suivants : one-shot, repeat, random.",
+ "update_successful": "botamusique v{version} Installé !
\nChangelog
{changelog}
Visitez notre repo github pour plus de détails !",
+ "url": "URL",
+ "url_ban": "Cette URL est interdite !",
+ "url_from_playlist": "URL",
+ "url_from_playlist_item": "{title} depuis la playlist {playlist} ajouté par {user}",
+ "url_item": "{title} ajouté par {user}",
+ "user_ban": "Vous êtes banni, vous n'avez donc pas le droit de faire cela !",
+ "user_password_set": "Votre mot de passe a été mis à jour.",
+ "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}",
+ "wrong_pattern": "regex invalide: {error}.",
+ "yt_no_more": "Plus de résultats !",
+ "yt_query_error": "Impossible d'interroger youtube !",
+ "yt_result": "Résultat de la requête Youtube : {result_table} Utilisez !sl {{indexes}} pour jouer l'entrée que vous voulez.
\n!ytquery -n pour la page suivante."
+ },
+ "web": {
+ "action": "Action",
+ "add": "Ajouter",
+ "add_all": "Ajouter tout",
+ "add_radio": "Ajouter une Radio",
+ "add_radio_url": "Ajouter l'URL d'une Radio",
+ "add_to_bottom": "Ajouter à la fin",
+ "add_to_bottom_of_current_playlist": "Ajouter à la fin de la playlist actuelle",
+ "add_to_playlist_next": "Ajouter à la playlist juste après la chanson en cours",
+ "add_url": "Ajouter l'URL",
+ "add_youtube_or_soundcloud_url": "Ajouter une URL Youtube ou Soundcloud",
+ "are_you_really_sure": "En êtes-vous vraiment sûr ?",
+ "aria_botamusique_logo": "Logo Botamusique : un renard avec deux écouteurs, appréciant la musique",
+ "aria_default_cover": "",
+ "aria_empty_box": "",
+ "aria_remove_this_song": "",
+ "aria_skip_current_song": "",
+ "aria_skip_to_next_track": "",
+ "aria_spinner": "",
+ "aria_warning_of_deletion": "",
+ "autoplay": "",
+ "browse_music_file": "",
+ "cancel": "",
+ "cancel_upload_warning": "",
+ "change_playback_mode": "",
+ "choose_file": "",
+ "clear_playlist": "",
+ "close": "",
+ "delete_all": "",
+ "delete_all_files": "",
+ "delete_file_warning": "",
+ "directory": "",
+ "download_all": "",
+ "download_song_from_library": "",
+ "edit_submit": "",
+ "edit_tags_for": "",
+ "expand_playlist": "",
+ "file": "",
+ "filters": "",
+ "index": "",
+ "keywords": "",
+ "keywords_placeholder": "",
+ "mini_player_title": "",
+ "music_library": "",
+ "next_to_play": "",
+ "no_tag": "",
+ "oneshot": "",
+ "open_volume_controls": "",
+ "page_title": "",
+ "pause": "",
+ "play": "",
+ "playlist_controls": "",
+ "radio": "",
+ "radio_url_placeholder": "",
+ "random": "",
+ "remove_song_from_library": "",
+ "repeat": "",
+ "rescan_files": "",
+ "skip_track": "",
+ "submit": "",
+ "tags": "",
+ "tags_to_add": "",
+ "title": "",
+ "token": "",
+ "token_required": "",
+ "token_required_message": "",
+ "type": "",
+ "upload_file": "",
+ "upload_submit": "",
+ "upload_to": "",
+ "uploaded_finished": "",
+ "uploading_files": "",
+ "url": "",
+ "url_path": "",
+ "url_placeholder": "",
+ "volume_slider": ""
+ }
+}
\ No newline at end of file
diff --git a/lang/ja_JP.json b/lang/ja_JP.json
new file mode 100644
index 0000000..970a5c3
--- /dev/null
+++ b/lang/ja_JP.json
@@ -0,0 +1,157 @@
+{
+ "cli": {
+ "added_tags": "{song}に{tags}というタグを追加しました。",
+ "added_tags_to_all": "再生リストの曲に{tags}というタグを追加しました。",
+ "admin_help": "",
+ "auto_paused": "音楽を再開するには、!play を送信してください。",
+ "bad_command": "{command}: 命令が見つかりません。",
+ "bad_parameter": "{command}: パラメータが不正です。",
+ "bad_url": "URLが不正です。",
+ "cache_refreshed": "キャッシュが更新されました。",
+ "change_ducking_volume": "",
+ "change_mode": "{user}がプレイモードを{mode}に設定しました。",
+ "change_volume": "{user}が音量を{volume}に設定しました。",
+ "cleared": "再生リストがクリアされました。",
+ "cleared_tags": "{song}のタグが全部クリアされました。",
+ "cleared_tags_from_all": "再生リスト内の全ての曲のタグがクリアされました。",
+ "command_disabled": "{command}: この命令は利用できません。",
+ "current_ducking_volume": "",
+ "current_mode": "現在のプレイモードは{mode}です。",
+ "current_volume": "現在の音量は{volume}です。",
+ "database_dropped": "データベースがクリアされました。",
+ "download_in_progress": "今は{item}をダウンロード中…",
+ "error_executing_command": "{command}: 命令が失敗しまいました,エラーは {error}。",
+ "file": "ファイル",
+ "file_added": "新しい曲が追加しました:{item}。",
+ "file_deleted": "{item}がライブラリから削除されました。",
+ "file_item": "{artist} - {title},{user}によって追加しました。",
+ "file_missed": "'{file}' が見つかりません!プレイリストから削除します。",
+ "help": "",
+ "invalid_index": "インデックス{index}が不正です。再生リストを見るために、!queueを送信してください。",
+ "multiple_file_added": "以下の曲が追加しました:",
+ "multiple_file_deleted": "以下の曲がライブラリから削除されました:",
+ "multiple_file_found": "以下の曲が見つかれました:",
+ "multiple_matches": "ファイルが見つかりませんでした。もしかして:",
+ "new_version_found": "新バージョン発見!
botamusique {new_version} 可用!
\n更新履歴
{changelog}
!updateを送信してこのバージョンにアップデートします。",
+ "no_file": "ファイルが見つかりません。",
+ "not_admin": "あなたは管理員ではありません。",
+ "not_in_my_channel": "あなたは私のチャネルにいません。",
+ "not_playing": "なんでも再生していません。",
+ "now_playing": "ただいま再生中:{item}",
+ "page_instruction": "第{current}/{total}頁。 !{command} {{page}}を送信してページをめぐります。",
+ "paused": "音楽は一時停止しました。",
+ "playlist_fetching_failed": "",
+ "pm_not_allowed": "",
+ "preconfigurated_radio": "",
+ "queue_contents": "",
+ "queue_empty": "",
+ "radio": "",
+ "radio_item": "",
+ "rb_play_empty": "",
+ "rb_query_result": "",
+ "records_omitted": "…",
+ "removed_tags": "",
+ "removed_tags_from_all": "",
+ "removing_item": "",
+ "repeat": "",
+ "shortlist_instruction": "",
+ "start_updating": "",
+ "stopped": "",
+ "too_long": "",
+ "unable_download": "",
+ "unable_play": "",
+ "unknown_mode": "",
+ "update_successful": "",
+ "url": "",
+ "url_ban": "このURLが禁止されています。",
+ "url_from_playlist": "",
+ "url_from_playlist_item": "",
+ "url_item": "",
+ "user_ban": "あなたはブラックリストに載っています。命令が拒否されました。",
+ "user_password_set": "",
+ "web_user_list": "",
+ "webpage_address": "",
+ "which_command": "",
+ "wrong_pattern": "",
+ "yt_no_more": "",
+ "yt_query_error": "",
+ "yt_result": ""
+ },
+ "web": {
+ "action": "",
+ "add": "",
+ "add_all": "",
+ "add_radio": "",
+ "add_radio_url": "",
+ "add_to_bottom": "",
+ "add_to_bottom_of_current_playlist": "",
+ "add_to_playlist_next": "",
+ "add_url": "",
+ "add_youtube_or_soundcloud_url": "",
+ "are_you_really_sure": "",
+ "aria_botamusique_logo": "",
+ "aria_default_cover": "",
+ "aria_empty_box": "",
+ "aria_remove_this_song": "",
+ "aria_skip_current_song": "",
+ "aria_skip_to_next_track": "",
+ "aria_spinner": "",
+ "aria_warning_of_deletion": "",
+ "autoplay": "",
+ "browse_music_file": "",
+ "cancel": "",
+ "cancel_upload_warning": "",
+ "change_playback_mode": "",
+ "choose_file": "",
+ "clear_playlist": "",
+ "close": "",
+ "delete_all": "",
+ "delete_all_files": "",
+ "delete_file_warning": "",
+ "directory": "",
+ "download_all": "",
+ "download_song_from_library": "",
+ "edit_submit": "",
+ "edit_tags_for": "",
+ "expand_playlist": "",
+ "file": "",
+ "filters": "",
+ "index": "",
+ "keywords": "",
+ "keywords_placeholder": "",
+ "mini_player_title": "",
+ "music_library": "",
+ "next_to_play": "",
+ "no_tag": "",
+ "oneshot": "",
+ "open_volume_controls": "",
+ "page_title": "",
+ "pause": "",
+ "play": "",
+ "playlist_controls": "",
+ "radio": "",
+ "radio_url_placeholder": "",
+ "random": "",
+ "remove_song_from_library": "",
+ "repeat": "",
+ "rescan_files": "",
+ "skip_track": "",
+ "submit": "",
+ "tags": "",
+ "tags_to_add": "",
+ "title": "",
+ "token": "",
+ "token_required": "",
+ "token_required_message": "",
+ "type": "",
+ "upload_file": "",
+ "upload_submit": "",
+ "upload_to": "",
+ "uploaded_finished": "",
+ "uploading_files": "",
+ "url": "",
+ "url_path": "",
+ "url_placeholder": "",
+ "volume_slider": ""
+ }
+}
\ No newline at end of file
diff --git a/lang/zh_CN.json b/lang/zh_CN.json
new file mode 100644
index 0000000..72885a5
--- /dev/null
+++ b/lang/zh_CN.json
@@ -0,0 +1,157 @@
+{
+ "cli": {
+ "added_tags": "已将标签 {tags} 添加到 {song}。",
+ "added_tags_to_all": "已将标签 {tags} 添加到播放列表的所有曲目中。",
+ "admin_help": "管理员命令
\n机器人管理\n\n- !kill - 退出。
\n- !update - 自动更新至新版本。
\n- !userban {user} - 封禁用户。
\n- !userunban {user} - 解除封禁。
\n- !urlbanlist - 列出全部封禁的用户。
\n- !urlban [{url}] - 封禁链接 {url} (若未指定,则默认为当前播放曲目的URL) 并将它从数据库中移除。
\n- !urlunban {url} - 解除封禁链接 {url}。
\n- !rescan {url} - 更新本地音乐库。
\n- !dropdatabase - 清除数据库(包括设置和音乐库)。本操作不可逆,请务必事先考虑清楚。
\n
\n网络控制界面\n\n- !webuserlist - (若当前认证模式为 'password')列出所有具有网络控制界面访问权限的用户。
\n- !webuseradd {name} - (若当前认证模式为 'password')授权名为 {name} 的用户访问网络控制界面。
\n- !webuserdel {name} - (若当前认证模式为 'password')撤销名为 {name} 的用户的访问权限。
\n
",
+ "auto_paused": "已暂停。若要继续播放,请发送 !play !",
+ "bad_command": "{{command}}: 未知命令。请发送!help获取命令列表。",
+ "bad_parameter": "{command}: 无效参数!",
+ "bad_url": "URL地址无效!",
+ "cache_refreshed": "缓存已刷新。",
+ "change_ducking_volume": "{user}将“闪避”时的音量被设置为 {volume}。",
+ "change_mode": "{user}将播放列表模式被设置为{mode} 。",
+ "change_volume": "{user}将音量设置为{volume}。",
+ "cleared": "播放列表已清空。",
+ "cleared_tags": "已移除{song}上的所有标签。",
+ "cleared_tags_from_all": "已移除播放列表内所有曲目的标签。",
+ "command_disabled": "{command}: 该命令不可用!",
+ "current_ducking_volume": "“闪避”时的音量为:{volume}。",
+ "current_mode": "当前的播放模式为{mode}。",
+ "current_volume": "当前音量为{volume}。",
+ "database_dropped": "数据库已经清空。",
+ "download_in_progress": "正在下载{item}……",
+ "error_executing_command": "{command}: 命令失败,错误为 {error}。",
+ "file": "文件",
+ "file_added": "新曲目被添加:{item}。",
+ "file_deleted": "{item}已从库中移除。",
+ "file_item": "{artist} - {title},由{user}添加。",
+ "file_missed": "文件 '{file}' 丢失!已将其移出播放列表。",
+ "help": "命令帮助
\n\n播放控制\n\n\n- !web - 获取网页控制界面的地址(如果启用了的话)。
\n- !play (或 !p) [{num}] [{start_from}] - 继续播放/开始播放第{num}首曲目。
\n- !pause - 暂停播放。
\n- !stop - 停止播放。
\n- !skip - 跳到下一首曲目。
\n- !last - 跳到播放列表上的最后一首曲目。
\n- !volume {volume} - 获取或设置音量(从0到100)。
\n- !mode [{mode}] - 设置播放模式。 {mode} 可以使 one-shot (顺序播放), repeat (循环播放), random (随机播放)或\nautoplay (自动播放)四种之一.
\n- !duck on/off - 开启或关闭“闪避”功能。开启后,在别人说话时,音乐的音量会自动减小。
\n- !duckv {volume} - 获取或设置“闪避”时的音量。
\n- !duckthres - 设置“闪避”被激活所需音频信号强度的阈值(默认是3000)。
\n- !oust - 停止播放,并回到默认频道。
\n
\n播放列表\n\n\n- !now (或 !np) - 显示当前曲目信息。
\n- !queue - 显示播放列表。
\n- !tag {tags} - 将添加音乐库中所有包含{tags}标签的曲目添加到播放列表中。
\n- !file (或 !f) {path/folder/keyword} - 添加某一本地音频文件或某个目录中的全部文件到播放列表中。
\n- !filematch (or !fm) {pattern} - 将文件名满足正则表达式{pattern}的全部文件添加到播放列表中。
\n- !url {url} - 添加Youtube或SoundCloud链接。
\n- !playlist {url} [{offset}] - 添加Youtube或SoundCloud播放列表。
\n- !radio {url} - 将地址为{url}的电台加入播放列表。
\n- !rbquery {keyword} - 从http://www.radio-browser.info中搜索某一电台。
\n- !rbplay {id} - 播放ID为{id}的电台 (如 !rbplay 96746)。
\n- !ysearch {keywords} - 搜索Youtube。 使用 !ysearch -n 翻页.
\n- !yplay {keywords} - 搜索Youtube,将第一条搜索结果直接加入播放列表。
\n- !shortlist (or !sl) {indexes/*} - 添加候选列表中的第{indexes}条曲目(或者是全部曲目,如果该参数为“*”)到播放列表中。
\n- !rm {num} - 删除播放列表上的第{num}首曲目。
\n- !repeat [{num}] - 重复当前曲目{num}遍(默认重复一遍)。
\n- !random - 随机打乱播放列表顺序。
\n
\n\n音乐库\n\n\n- !search {keywords} - 在音乐库中搜索包含关键词{keywords}的曲目,关键词以空格分割。
\n- !listfile [{pattern}] - 列出路径符合正则表达式{pattern}的文件。
\n- !addtag [{index}] {tags} - 将标签{tags}添加到第{index}首曲目(如果{index}被省略则默认为当前曲目)。多个标签以“,”分割。
\n- !addtag * {tags} - 将标签{tags}添加到播放列表上的所有曲目。
\n- !untag [{index/*}] {tags}/* - 从第{index}首曲目(或当前曲目,若{index}被省略;或全部曲目,若该参数为“*”)上删除标签{tags}(或全部标签)。
\n- !findtagged (or !ft) {tags} - 在音乐库中查找包含标签{tags}的曲目。
\n- !delete {index} - 从音乐库中删除候选列表上的第{index}首曲目。
\n
\n\n其他\n\n\n- !joinme [{token}] - 加入你所在的频道。
\n- !password {password} - 更改你用于访问网页控制界面的密码。
\n
",
+ "invalid_index": "无效的序号 {index}。 使用 '!queue' 查看播放列表。",
+ "multiple_file_added": "以下曲目已被添加:",
+ "multiple_file_deleted": "以下曲目已被移出库:",
+ "multiple_file_found": "搜索到:",
+ "multiple_matches": "文件未找到!你是不是指:",
+ "new_version_found": "发现新版本!
botamusique {new_version} 可用!
\n更新日志
{changelog}
使用 !update自动更新至该版本。",
+ "no_file": "文件未找到。",
+ "not_admin": "你不是管理员!",
+ "not_in_my_channel": "你不在我的频道里!",
+ "not_playing": "无播放中的曲目。",
+ "now_playing": "正在播放:{item}",
+ "page_instruction": "第{current}/{total}页。发送!{command} {{page}}翻页。",
+ "paused": "暂停播放。",
+ "playlist_fetching_failed": "无法获取播放列表!",
+ "pm_not_allowed": "不接受私信。",
+ "preconfigurated_radio": "预设的电台如下:",
+ "queue_contents": "播放列表中的曲目:",
+ "queue_empty": "播放列表为空!",
+ "radio": "电台",
+ "radio_item": "{title},来自 {name}。 由 {user} 添加。",
+ "rb_play_empty": "请指定一个电台ID!",
+ "rb_query_result": "搜索结果如下。发送 !rbplay {ID} 播放。",
+ "records_omitted": "……",
+ "removed_tags": "已将标签 {tags} 从 {song}上移除。",
+ "removed_tags_from_all": "已将标签 {tags} 从播放列表的曲目中移除。",
+ "removing_item": "已将 {item} 从播放列表中移除。",
+ "repeat": "重复{song} {n}次。",
+ "shortlist_instruction": "使用!sl {indexes}播放列表中的曲目。",
+ "start_updating": "开始更新……",
+ "stopped": "音乐停止。",
+ "too_long": "{song}超出长度限制!已被移出播放列表。",
+ "unable_download": "无法下载{item}。已移出播放列表。",
+ "unable_play": "无法播放{item}。已移出播放列表。",
+ "unknown_mode": "未知播放模式\"{mode}\"。播放模式应为 one-shot, repeat, random中的一个。",
+ "update_successful": "botamusique v{version} 安装完毕!
\n更新日志
{changelog}
请访问我们的 github页面 获取更多信息!",
+ "url": "URL",
+ "url_ban": "该链接被列入黑名单了!",
+ "url_from_playlist": "URL",
+ "url_from_playlist_item": "{title},来自播放列表 {playlist},由 {user} 添加。",
+ "url_item": "{title},由 {user} 添加。",
+ "user_ban": "你被列入黑名单了!无法操作!",
+ "user_password_set": "密码已经被更新。",
+ "web_user_list": "下列用户具有访问网络控制界面的权限:
{users}",
+ "webpage_address": "网页控制界面的地址是{address}。",
+ "which_command": "你是不是指
{commands}",
+ "wrong_pattern": "错误的正则表达式:{error}.",
+ "yt_no_more": "没有更多条目了!",
+ "yt_query_error": "无法访问Youtube!",
+ "yt_result": "Youtube查询结果: {result_table} 使用 !sl {{indexes}} 播放列表中的曲目。
\n使用!ytquery -n翻页。"
+ },
+ "web": {
+ "action": "操作",
+ "add": "添加",
+ "add_all": "添加全部",
+ "add_radio": "添加电台",
+ "add_radio_url": "电台URL",
+ "add_to_bottom": "添加到最后",
+ "add_to_bottom_of_current_playlist": "添加到播放列表的末尾",
+ "add_to_playlist_next": "添加到当前曲目的下一首",
+ "add_url": "添加URL",
+ "add_youtube_or_soundcloud_url": "添加Youtube或Soundcloud URL",
+ "are_you_really_sure": "你真的确定吗?",
+ "aria_botamusique_logo": "Botamusique的Logo",
+ "aria_default_cover": "默认专辑封面图片:黑色背景上的两个音符。",
+ "aria_empty_box": "空。",
+ "aria_remove_this_song": "从当前播放列表中移除该曲目。",
+ "aria_skip_current_song": "立刻播放该曲目。",
+ "aria_skip_to_next_track": "播放下一曲目。",
+ "aria_spinner": "加载中",
+ "aria_warning_of_deletion": "删除文件警告",
+ "autoplay": "自动播放",
+ "browse_music_file": "浏览音乐文件",
+ "cancel": "取消",
+ "cancel_upload_warning": "你真的确定吗?
若要取消上传,请再次点击该按钮。",
+ "change_playback_mode": "更改播放模式",
+ "choose_file": "选择文件",
+ "clear_playlist": "清空播放列表",
+ "close": "关闭",
+ "delete_all": "删除全部",
+ "delete_all_files": "删除全部列出的文件",
+ "delete_file_warning": "全部列出的文件(包括其他页面上的文件)将被从硬盘上删除。你确定要这样做吗?",
+ "directory": "目录",
+ "download_all": "下载全部",
+ "download_song_from_library": "从库中下载曲目文件",
+ "edit_submit": "编辑!",
+ "edit_tags_for": "修改标签:",
+ "expand_playlist": "查看第 首曲目。",
+ "file": "文件",
+ "filters": "筛选",
+ "index": "#",
+ "keywords": "关键词",
+ "keywords_placeholder": "关键词……",
+ "mini_player_title": "正在播放……",
+ "music_library": "音乐库",
+ "next_to_play": "添加到当前曲目后",
+ "no_tag": "无标签",
+ "oneshot": "顺序播放",
+ "open_volume_controls": "打开音量控制条",
+ "page_title": "botamusique控制面板",
+ "pause": "暂停",
+ "play": "播放",
+ "playlist_controls": "播放控制",
+ "radio": "电台",
+ "radio_url_placeholder": "电台URL……",
+ "random": "随机播放",
+ "remove_song_from_library": "从库中移除曲目",
+ "repeat": "列表循环",
+ "rescan_files": "重新扫描目录",
+ "skip_track": "跳过当前曲目",
+ "submit": "提交",
+ "tags": "标签",
+ "tags_to_add": "欲添加的标签",
+ "title": "标题",
+ "token": "令牌",
+ "token_required": "需要登录令牌",
+ "token_required_message": "你现在在访问{{ name }}的网络控制面板。\n根据设置,你需要一个令牌才能登录。
\n请发送 \"{{ command }}\" 以获取你的登录令牌。",
+ "type": "类型",
+ "upload_file": "上传音乐文件",
+ "upload_submit": "上传!",
+ "upload_to": "上传到",
+ "uploaded_finished": "上传完毕!",
+ "uploading_files": "上传中……",
+ "url": "URL",
+ "url_path": "URL/路径",
+ "url_placeholder": "URL……",
+ "volume_slider": "音量控制条"
+ }
+}
\ No newline at end of file