Merge branch 'master' into webrtc

This commit is contained in:
Jonas Herzig 2020-05-23 09:07:36 +02:00
commit 95dbf255e1
6 changed files with 133 additions and 30 deletions

View file

@ -26,7 +26,7 @@ git clone -b webrtc https://github.com/johni0702/mumble-web
cd mumble-web cd mumble-web
npm install npm install
``` ```
Note that npm should not be ran as root, use an unprivileged user account instead. Note that npm **must not** be ran as the root user (even in a container) because it will try to do special things which cause the build to fail, use a non-root user account instead.
The npm version is prebuilt and ready to use whereas the git version allows you The npm version is prebuilt and ready to use whereas the git version allows you
to e.g. customize the theme before building it. to e.g. customize the theme before building it.

View file

@ -351,7 +351,7 @@ class GlobalBindings {
this.remoteHost(host) this.remoteHost(host)
this.remotePort(port) this.remotePort(port)
log('Connecting to server ', host) log(translate('logentry.connecting'), host)
let ctx = audioContext() let ctx = audioContext()
if (!this._delayedMicNode) { if (!this._delayedMicNode) {
@ -372,12 +372,12 @@ class GlobalBindings {
}, },
tokens: tokens tokens: tokens
}).done(client => { }).done(client => {
log('Connected!') log(translate('logentry.connected'))
this.client = client this.client = client
// Prepare for connection errors // Prepare for connection errors
client.on('error', (err) => { client.on('error', (err) => {
log('Connection error:', err) log(translate('logentry.connection_error'), err)
this.resetClient() this.resetClient()
}) })
@ -451,7 +451,7 @@ class GlobalBindings {
this.connectErrorDialog.reason(err.reason) this.connectErrorDialog.reason(err.reason)
this.connectErrorDialog.show() this.connectErrorDialog.show()
} else { } else {
log('Connection error:', err) log(translate('logentry.connection_error'), err)
} }
}) })
} }
@ -717,7 +717,7 @@ class GlobalBindings {
} else if (mode === 'vad') { } else if (mode === 'vad') {
voiceHandler = new VADVoiceHandler(this.client, this.settings) voiceHandler = new VADVoiceHandler(this.client, this.settings)
} else { } else {
log('Unknown voice mode:', mode) log(translate('logentry.unknown_voice_mode'), mode)
return return
} }
voiceHandler.on('started_talking', () => { voiceHandler.on('started_talking', () => {
@ -761,9 +761,11 @@ class GlobalBindings {
target = target.channel() target = target.channel()
} }
if (target.users) { // Channel if (target.users) { // Channel
return "Type message to channel '" + target.name() + "' here" return translate('chat.channel_message_placeholder')
.replace('%1', target.name())
} else { // User } else { // User
return "Type message to user '" + target.name() + "' here" return translate('chat.user_message_placeholder')
.replace('%1', target.name())
} }
}) })
@ -1105,8 +1107,8 @@ function translateEverything() {
translatePiece('.connect-dialog.error-dialog .dialog-close', 'attribute', {'name': 'value'}, 'connectdialog.error.cancel'); translatePiece('.connect-dialog.error-dialog .dialog-close', 'attribute', {'name': 'value'}, 'connectdialog.error.cancel');
translatePiece('.join-dialog .dialog-header', 'textcontent', {}, 'joindialog.title'); translatePiece('.join-dialog .dialog-header', 'textcontent', {}, 'joindialog.title');
translatePiece('.join-dialog .dialog-submit', 'attribute', {'name': 'value'}, 'joindialog.connect'); translatePiece('.join-dialog .dialog-submit', 'attribute', {'name': 'value'}, 'joindialog.connect');
translatePiece('.user-context-menu .mute', 'textcontent', {}, 'contextmenu.mute'); translatePiece('.user-context-menu .mute', 'textcontent', {}, 'usercontextmenu.mute');
translatePiece('.user-context-menu .deafen', 'textcontent', {}, 'contextmenu.deafen'); translatePiece('.user-context-menu .deafen', 'textcontent', {}, 'usercontextmenu.deafen');
translatePiece('.user-context-menu .priority-speaker', 'textcontent', {}, 'usercontextmenu.priority_speaker'); translatePiece('.user-context-menu .priority-speaker', 'textcontent', {}, 'usercontextmenu.priority_speaker');
translatePiece('.user-context-menu .local-mute', 'textcontent', {}, 'usercontextmenu.local_mute'); translatePiece('.user-context-menu .local-mute', 'textcontent', {}, 'usercontextmenu.local_mute');
translatePiece('.user-context-menu .ignore-messages', 'textcontent', {}, 'usercontextmenu.ignore_messages'); translatePiece('.user-context-menu .ignore-messages', 'textcontent', {}, 'usercontextmenu.ignore_messages');

View file

@ -51,16 +51,27 @@
"remove_friend": "Remove Friend" "remove_friend": "Remove Friend"
}, },
"channelcontextmenu": { "channelcontextmenu": {
"channelcontextmenu.join": "Join Channel", "join": "Join Channel",
"channelcontextmenu.add": "Add", "add": "Add",
"channelcontextmenu.edit": "Edit", "edit": "Edit",
"channelcontextmenu.remove": "Remove", "remove": "Remove",
"channelcontextmenu.link": "Link", "link": "Link",
"channelcontextmenu.unlink": "Unlink", "unlink": "Unlink",
"channelcontextmenu.unlink_all": "Unlink All", "unlink_all": "Unlink All",
"channelcontextmenu.copy_mumble_url": "Copy Mumble URL", "copy_mumble_url": "Copy Mumble URL",
"channelcontextmenu.copy_mumble_web_url": "Copy Mumble-Web URL", "copy_mumble_web_url": "Copy Mumble-Web URL",
"channelcontextmenu.send_message": "Send Message" "send_message": "Send Message"
},
"logentry": {
"connecting": "Connecting to server",
"connected": "Connected!",
"connection_error": "Connection error:",
"unknown_voice_mode": "Unknown voice mode:",
"mic_init_error": "Cannot initialize user media. Microphone will not work:"
},
"chat": {
"channel_message_placeholder": "Type message to channel '%1' here",
"user_message_placeholder": "Type message to user '%1' here"
} }
} }

77
loc/es.json Normal file
View file

@ -0,0 +1,77 @@
{
"connectdialog": {
"title": "Conectar al servidor",
"address": "Dirección",
"port": "Puerto",
"username": "Nombre de usuario",
"password": "Contraseña",
"tokens": "Tokens",
"remove": "Eliminar",
"add": "Añadir",
"cancel": "Cancelar",
"connect": "Conectar",
"error": {
"title": "Fallo al conectar",
"reason": {
"refused": "La conexión ha sido rechazada.",
"version": "El servidor usa una versión incompatible.",
"username": "El nombre de usuario está en uso o no es válido. Prueba con otro.",
"userpassword": "Contraseña incorrecta.\nEl nombre de usuario elegido requiere contraseña.",
"serverpassword": "Contraseña incorrecta.",
"username_in_use": "El nombre de usuario está en uso.",
"full": "El servidor está lleno (completo).",
"clientcert": "El servidor requiere acceder con un certificado, lo que no está soportado en esta aplicación web.",
"server": "El servidor informa:"
},
"retry": "Reintentar",
"cancel": "Cancelar"
}
},
"joindialog": {
"title": "Chat de Voz Mumble",
"connect": "Unirse a la conferencia"
},
"usercontextmenu": {
"mute": "Enmudecer",
"deafen": "Ensordecer",
"priority_speaker": "Orador prioritario",
"local_mute": "Enmudecer localmente",
"ignore_messages": "Ignorar mensajes",
"view_comment": "Ver comentarios",
"change_comment": "Cambiar comentarios",
"reset_comment": "Reiniciar comentarios",
"view_avatar": "Ver Avatar",
"change_avatar": "Cambiar Avatar",
"reset_avatar": "Reiniciar Avatar",
"send_message": "Enviar un mensaje",
"information": "Información",
"self_mute": "Enmudecerse a uno mismo",
"self_deafen": "Ensordecerse a uno mismo",
"add_friend": "Añadir amigo",
"remove_friend": "Eliminar amigo"
},
"channelcontextmenu": {
"join": "Unirse al canal",
"add": "Añadir",
"edit": "Editar",
"remove": "Eliminar",
"link": "Link",
"unlink": "Unlink",
"unlink_all": "Unlink All",
"copy_mumble_url": "Copiar Mumble URL",
"copy_mumble_web_url": "Copiar Mumble-Web URL",
"send_message": "Enviar mensaje"
},
"logentry": {
"connecting": "Conectando al servidor",
"connected": "¡Conectado!",
"connection_error": "Error en la conexión:",
"unknown_voice_mode": "Modo de voz desconocido:",
"mic_init_error": "No se pudieron inicializar los medios. El micrófono no funcionará:"
},
"chat": {
"channel_message_placeholder": "Escribe un mensaje al canal '%1'",
"user_message_placeholder": "Escribe un mensaje al usuario '%1'"
}
}

View file

@ -51,15 +51,26 @@
"remove_friend": "Tirar dels amics" "remove_friend": "Tirar dels amics"
}, },
"channelcontextmenu": { "channelcontextmenu": {
"channelcontextmenu.join": "Rejónher la sala", "join": "Rejónher la sala",
"channelcontextmenu.add": "Ajustar", "add": "Ajustar",
"channelcontextmenu.edit": "Modificar", "edit": "Modificar",
"channelcontextmenu.remove": "Suprimir", "remove": "Suprimir",
"channelcontextmenu.link": "Associar", "link": "Associar",
"channelcontextmenu.unlink": "Desassociar", "unlink": "Desassociar",
"channelcontextmenu.unlink_all": "Tot desassociar", "unlink_all": "Tot desassociar",
"channelcontextmenu.copy_mumble_url": "Copair lURL Mumble", "copy_mumble_url": "Copair lURL Mumble",
"channelcontextmenu.copy_mumble_web_url": "Copiar lURL Mumble-Web", "copy_mumble_web_url": "Copiar lURL Mumble-Web",
"channelcontextmenu.send_message": "Enviar messatge" "send_message": "Enviar messatge"
},
"logentry": {
"connecting": "Connexion al servidor",
"connected": "Connectat!",
"connection_error": "Error de connexion:",
"unknown_voice_mode": "Mòde àudio desconegut:",
"mic_init_error": "Aviada del mèdia utilizaire impossibla. Lo microfòn foncionarà pas:"
},
"chat": {
"channel_message_placeholder": "Escrivètz un messatge per la sala '%1' aquí",
"user_message_placeholder": "Escrivètz un messatge a '%1' aquí"
} }
} }

View file

@ -276,6 +276,7 @@ html, body {
padding: 2px; padding: 2px;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 3px; border-radius: 3px;
cursor: pointer;
} }
.toolbar img:hover { .toolbar img:hover {
border: 1px solid $toolbar-hover-bg-color; border: 1px solid $toolbar-hover-bg-color;
@ -387,6 +388,7 @@ form {
background-color: $dialog-button-bg-color; background-color: $dialog-button-bg-color;
color: $dialog-button-color; color: $dialog-button-color;
padding: 1px; padding: 1px;
cursor: pointer;
} }
.connect-dialog table { .connect-dialog table {
text-align: center; text-align: center;