This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 5d59add0e [OPENMEETINGS-131] basic push-to-talk
5d59add0e is described below

commit 5d59add0e21eeacac593aec10ef0897ecaabe4a8
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Sun Dec 11 23:03:42 2022 +0700

    [OPENMEETINGS-131] basic push-to-talk
---
 .../src/main/front/room/src/video-manager.js       | 20 ++++++++--
 openmeetings-web/src/main/front/room/src/video.js  | 19 ++++++++++
 .../src/main/front/settings/src/video-util.js      | 44 +++++++++++-----------
 .../web/app/Application.properties.xml             |  1 +
 .../web/app/Application_ar.properties.xml          |  1 +
 .../web/app/Application_bg.properties.xml          |  1 +
 .../web/app/Application_bn.properties.xml          |  1 +
 .../web/app/Application_ca.properties.xml          |  1 +
 .../web/app/Application_cs.properties.xml          |  1 +
 .../web/app/Application_da.properties.xml          |  1 +
 .../web/app/Application_de.properties.xml          |  1 +
 .../web/app/Application_el.properties.xml          |  1 +
 .../web/app/Application_es.properties.xml          |  1 +
 .../web/app/Application_fa.properties.xml          |  1 +
 .../web/app/Application_fi.properties.xml          |  1 +
 .../web/app/Application_fr.properties.xml          |  1 +
 .../web/app/Application_gl.properties.xml          |  1 +
 .../web/app/Application_he.properties.xml          |  1 +
 .../web/app/Application_hi.properties.xml          |  1 +
 .../web/app/Application_hu.properties.xml          |  1 +
 .../web/app/Application_id.properties.xml          |  1 +
 .../web/app/Application_it.properties.xml          |  1 +
 .../web/app/Application_ja.properties.xml          |  1 +
 .../web/app/Application_ko.properties.xml          |  1 +
 .../web/app/Application_ku.properties.xml          |  1 +
 .../web/app/Application_lo.properties.xml          |  1 +
 .../web/app/Application_nl.properties.xml          |  1 +
 .../web/app/Application_pl.properties.xml          |  1 +
 .../web/app/Application_pt.properties.xml          |  1 +
 .../web/app/Application_pt_BR.properties.xml       |  1 +
 .../web/app/Application_ru.properties.xml          |  1 +
 .../web/app/Application_sk.properties.xml          |  1 +
 .../web/app/Application_sv.properties.xml          |  1 +
 .../web/app/Application_ta.properties.xml          |  1 +
 .../web/app/Application_th.properties.xml          |  1 +
 .../web/app/Application_tk.properties.xml          |  1 +
 .../web/app/Application_tr.properties.xml          |  1 +
 .../web/app/Application_uk.properties.xml          |  1 +
 .../web/app/Application_ur.properties.xml          |  1 +
 .../web/app/Application_zh_CN.properties.xml       |  1 +
 .../web/app/Application_zh_TW.properties.xml       |  1 +
 .../apache/openmeetings/web/room/RoomPanel.html    |  2 +-
 openmeetings-web/src/main/webapp/css/raw-room.css  |  3 ++
 43 files changed, 100 insertions(+), 26 deletions(-)

diff --git a/openmeetings-web/src/main/front/room/src/video-manager.js 
b/openmeetings-web/src/main/front/room/src/video-manager.js
index d8254fcc6..b8df5cce5 100644
--- a/openmeetings-web/src/main/front/room/src/video-manager.js
+++ b/openmeetings-web/src/main/front/room/src/video-manager.js
@@ -44,7 +44,7 @@ function _onReceive(msg) {
 function _onKMessage(m) {
        switch (m.id) {
                case 'clientLeave':
-                       $(VID_SEL + '[data-client-uid="' + m.uid + 
'"]').each(function() {
+                       
$(`${VID_SEL}[data-client-uid="${m.uid}"]`).each(function() {
                                VideoMgrUtil.closeV($(this));
                        });
                        if (share.data('cuid') === m.uid) {
@@ -113,6 +113,8 @@ function _init() {
        share = $('.room-block .room-container').find('.btn.shared');
        VideoMgrUtil.init(share);
        inited = true;
+       $(window).on('keydown.push-to-talk', {enable: true}, _onPtt);
+       $(window).on('keyup.push-to-talk', {enable: false}, _onPtt);
 }
 function _update(c) {
        if (!inited) {
@@ -141,7 +143,7 @@ function _update(c) {
                        $(this).data().setRights(c.rights);
                });
        }
-       $('[data-client-uid="' + c.cuid + '"]').each(function() {
+       $(`[data-client-uid="${c.cuid}"]`).each(function() {
                const sd = $(this).data().stream();
                if (!streamMap[sd.uid]) {
                        //not-inited/invalid video window
@@ -185,10 +187,10 @@ function _play(streams, iceServers) {
        });
 }
 function _find(uid) {
-       return $(VID_SEL + '[data-client-uid="' + uid + 
'"][data-client-type="WEBCAM"]');
+       return 
$(`${VID_SEL}[data-client-uid="${uid}"][data-client-type="WEBCAM"]`);
 }
 function _userSpeaks(uid, active) {
-       const u = $('#user' + uid + ' .audio-activity')
+       const u = $(`#user${uid} .audio-activity`)
                , v = _find(uid).parent();
        if (active) {
                u.addClass('speaking');
@@ -224,6 +226,14 @@ function _toggleActivity(activity) {
                , activity: activity
        });
 }
+function _onPtt(e) {
+       if ((e.ctrlKey || e.metaKey) && 'Space' === e.code) {
+               const v = _find(Room.getOptions().uid);
+               if (v.length > 0 && v.data()) {
+                       v.data().pushToTalk(e.data.enable);
+               }
+       }
+}
 
 module.exports = {
        init: _init
@@ -234,6 +244,8 @@ module.exports = {
        , muteOthers: _muteOthers
        , toggleActivity: _toggleActivity
        , destroy: function() {
+               $(window).off('keydown.push-to-talk');
+               $(window).off('keyup.push-to-talk');
                Wicket.Event.unsubscribe('/websocket/message', _onWsMessage);
        }
 };
diff --git a/openmeetings-web/src/main/front/room/src/video.js 
b/openmeetings-web/src/main/front/room/src/video.js
index 55375c44f..6f0a9582b 100644
--- a/openmeetings-web/src/main/front/room/src/video.js
+++ b/openmeetings-web/src/main/front/room/src/video.js
@@ -97,6 +97,9 @@ module.exports = class Video {
                                                
stream.getVideoTracks().forEach(track => track.enabled = cnts.videoEnabled);
                                                
stream.getAudioTracks().forEach(track => track.enabled = cnts.audioEnabled);
                                                state.localStream = stream;
+                                               if (__pttEnabled(state)) {
+                                                       OmUtil.alert('warning', 
$('#user-video').data('ptt-info'), 10000);
+                                               }
                                                let _stream = stream;
                                                const data = {};
                                                if 
(stream.getAudioTracks().length !== 0) {
@@ -658,9 +661,25 @@ module.exports = class Video {
                        __initUI(_msg.instanceUid);
                        _refresh(_msg);
                }
+               function __pttEnabled(state) {
+                       return sd && sd.self && state && state.localStream
+                                       && VideoUtil.hasActivity(sd, 
VideoUtil.MIC_ACTIVITY) && !sd.micEnabled;
+               }
 
                this.update = _update;
                this.refresh = _refresh;
+               this.pushToTalk = (enable) => {
+                       const state = __getState();
+                       if (__pttEnabled(state)) {
+                               
state.localStream.getAudioTracks().forEach(track => track.enabled = enable);
+                               const classes = 
document.querySelector('#room-sidebar-tab-users .header 
.om-icon.activity.mic.clickable').classList;
+                               if (enable) {
+                                       classes.add('push-to-talk');
+                               } else {
+                                       classes.remove('push-to-talk');
+                               }
+                       }
+               };
                this.mute = function(_mute) {
                        vol.mute(_mute);
                };
diff --git a/openmeetings-web/src/main/front/settings/src/video-util.js 
b/openmeetings-web/src/main/front/settings/src/video-util.js
index 1d6518b08..7ca532edb 100644
--- a/openmeetings-web/src/main/front/settings/src/video-util.js
+++ b/openmeetings-web/src/main/front/settings/src/video-util.js
@@ -17,6 +17,9 @@ function _isSharing(sd) {
 function _isRecording(sd) {
        return !!sd && 'SCREEN' === sd.type && 
sd.activities.includes(REC_ACTIVITY);
 }
+function _hasActivity(sd, act) {
+       return !!sd && sd.activities.includes(act);
+}
 function _hasMic(sd) {
        if (!sd) {
                return true;
@@ -228,29 +231,27 @@ function _setPos(v, pos) {
        }
 }
 function _askPermission(callback) {
-       const perm = $('#ask-permission');
-       if (undefined === perm.dialog('instance')) {
-               perm.data('callbacks', []).dialog({
-                       appendTo: '.room-block .room-container'
-                       , dialogClass: "ask-video-play-permission"
-                       , autoOpen: false
-                       , buttons: [
-                               {
-                                       text: perm.data('btn-ok')
-                                       , click: function() {
-                                               while 
(perm.data('callbacks').length > 0) {
-                                                       
perm.data('callbacks').pop()();
-                                               }
-                                               $(this).dialog('close');
-                                       }
-                               }
-                       ]
+       const data = $('.sidebar').data('bs.confirmation');
+       if (typeof(data) === 'object') {
+               data.config.buttons[0].onClick = function() {callback();};
+       } else {
+               const perm = $('#ask-permission');
+               $('.sidebar').confirmation({
+                       title: perm.attr('title')
+                       , placement: Settings.isRtl ? 'right' : 'left'
+                       , singleton: true
+                       , rootSelector: '.sidebar'
+                       , html: true
+                       , content: perm.html()
+                       , buttons: [{
+                               class: 'btn btn-sm btn-warning'
+                               , label: perm.data('btn-ok')
+                               , value: perm.data('btn-ok')
+                               , onClick: function() {callback();}
+                       }]
                });
        }
-       if (!perm.dialog('isOpen')) {
-               perm.dialog('open');
-       }
-       perm.data('callbacks').push(callback);
+       $('.sidebar').confirmation('show');
 }
 function _disconnect(node) {
        try {
@@ -309,6 +310,7 @@ module.exports = {
        , hasMic: _hasMic
        , hasCam: _hasCam
        , hasVideo: _hasVideo
+       , hasActivity: _hasActivity
        , getRects: _getRects
        , getPos: _getPos
        , container: _container
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index 6dad69b01..7ab5e50a2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index 73a8b47e2..a990ce8bc 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@ -887,6 +887,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="poll.type.YES_NO"><![CDATA[نعم / لا]]></entry>
        <entry key="profile.invitation"><![CDATA[رسالة دعوة]]></entry>
        <entry key="profile.invitations"><![CDATA[الدعوات]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[تسجيلات المجموعة]]></entry>
        <entry key="register.privacy.accept"><![CDATA[بالنقر على "${register}" 
، فإنك توافق على  ${link} الخاص بنا.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[بيان 
الخصوصية]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index 5d406f23d..6d5908b37 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Да/Не]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
index 44728ed8d..e08f05bbb 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index ce149dcd3..8c06aa11d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Sí/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index e658962a1..665801242 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Ano/Ne]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index c8c3fb7c2..99dffcd36 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Ja/Nej]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
index 3497ea6da..4600b0921 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -893,6 +893,7 @@ Bitte <tt>openmeetings.log</tt> prüfen und die 
OpenMeetings-Entwickeler kontakt
        <entry key="poll.type.YES_NO"><![CDATA[Ja/Nein]]></entry>
        <entry key="profile.invitation"><![CDATA[Einladung]]></entry>
        <entry key="profile.invitations"><![CDATA[Einladungen]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Gruppen-Aufnahmen]]></entry>
        <entry key="register.privacy.accept"><![CDATA[Mit Klick auf 
"${register}" stimmen Sie unseren ${link} zu.]]></entry>
        <entry 
key="register.privacy.statement"><![CDATA[Datenschutzerklärung]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index 77a2ac02f..c74655c17 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Ναι/Όχι]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
index ed6372daa..820a72a5d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -889,6 +889,7 @@ por favor revise <tt> openmeetings.log </tt> y contacte a 
los desarrolladores de
        <entry key="poll.type.YES_NO"><![CDATA[Sí/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitación]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitaciones]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Grabaciones de grupo (u 
organización)]]></entry>
        <entry key="register.privacy.accept"><![CDATA[Haciendo clic en 
"${register}", declara su conformidad con nuestra ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[declaración de 
privacidad]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
index 08e090ca7..a7c6732ba 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
@@ -884,6 +884,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[خير/بله]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[ضبط های گروهی]]></entry>
        <entry key="register.privacy.accept"><![CDATA[با کلیک بر روی 
"${register}" ، با ${link} ما موافقت می کنید.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index 5edbc610a..bae83bf9c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Kyllä/Ei]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
index 1e5df2207..22f946df5 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -889,6 +889,7 @@ allez sur <tt>openmeetings.log</tt> et contactez les 
développeurs d'OpenMeeting
        <entry key="poll.type.YES_NO"><![CDATA[Oui/Non]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Enregistrements de 
groupe]]></entry>
        <entry key="register.privacy.accept"><![CDATA[En cliquant sur 
"${register}", vous acceptez notre ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[déclaration de 
confidentialité]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index e32212cb1..07b4a23a6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Sí/Non]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
index 4d9fa9607..485520eba 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
index 11b5d6681..5260769c7 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
index f52f7e787..330535c04 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -876,6 +876,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Igen/Nem]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
index a890ea838..ace2b48b6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Ya/Tidak]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
index bcae392f0..6c422d26d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
@@ -889,6 +889,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Si/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invito]]></entry>
        <entry key="profile.invitations"><![CDATA[Inviti]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
index afedeb029..72d1b8510 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
@@ -888,6 +888,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[はい/いいえ]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[グループの録画]]></entry>
        <entry 
key="register.privacy.accept"><![CDATA[私は、「${register}」をクリックすることにより、 ${link} 
に同意します。]]></entry>
        <entry key="register.privacy.statement"><![CDATA[プライバシーに関する声明]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index c67b78ba7..eacc1c6d2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[네/아니오]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
index dc5f6916b..27941f874 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
index 2baf885a9..98d54be26 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index 81c8d45af..a29873bf2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Ja/Nee]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 5a6d0813b..7a5002a75 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Tak/Nie]]></entry>
        <entry key="profile.invitation"><![CDATA[Zaproszenie]]></entry>
        <entry key="profile.invitations"><![CDATA[Zaproszenia]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Nagrania grupy]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index 5eee6215d..aed665167 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Sim/Não]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index b8bb38dd2..225669fd0 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Sim/Não]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Convites]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
index 9daf63c4b..fd800b432 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -888,6 +888,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="poll.type.YES_NO"><![CDATA[Да/Нет]]></entry>
        <entry key="profile.invitation"><![CDATA[Приглашение]]></entry>
        <entry key="profile.invitations"><![CDATA[Приглашения]]></entry>
+       <entry key="ptt.info"><![CDATA[Ваш микрофон отключен. Вы можете 
удерживать Ctrl+Пробел (Cmd+Пробел), чтобы временно включить звук 
(Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Записи группы]]></entry>
        <entry key="register.privacy.accept"><![CDATA[Нажимая на кнопку 
"${register}", Вы соглашаетесь с нашим ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[соглашением о 
конфиденциальности]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index 3357b44de..41a7997a2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Áno/Nie]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
index d6aa104a0..2e4009400 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
@@ -894,6 +894,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Ja/Nej]]></entry>
        <entry key="profile.invitation"><![CDATA[Inbjudan]]></entry>
        <entry key="profile.invitations"><![CDATA[Inbjudningar]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Gruppinspelningar]]></entry>
        <entry key="register.privacy.accept"><![CDATA[Genom att klicka 
"${register}", accepterar du våra ${link}.]]></entry>
        <entry 
key="register.privacy.statement"><![CDATA[dataskyddspolicy]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
index f936034cb..1a9ecbd65 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
@@ -898,6 +898,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index 5f5842bac..490b0bf64 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[ใช่/ไม่]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
index 3e05a2ba7..67b84b02d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index 7117eaa37..6bb027963 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Evet/Hayır]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
index e0aab27be..cf61a133f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
@@ -887,6 +887,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Так/Ні]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
index 6dad69b01..7ab5e50a2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[Yes/No]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
index 6637dfd11..90bfac2dd 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
@@ -888,6 +888,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[是/否]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index 136fb65f5..c14357c32 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@ -896,6 +896,7 @@ please check <tt>openmeetings.log</tt> and contact 
OpenMeetings developers]]></e
        <entry key="poll.type.YES_NO"><![CDATA[是/否]]></entry>
        <entry key="profile.invitation"><![CDATA[Invitation]]></entry>
        <entry key="profile.invitations"><![CDATA[Invitations]]></entry>
+       <entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold 
Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
        <entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
        <entry key="register.privacy.accept"><![CDATA[By clicking 
"${register}", you agree to our ${link}.]]></entry>
        <entry key="register.privacy.statement"><![CDATA[privacy 
statement]]></entry>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 2980961d1..707891dff 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -95,7 +95,7 @@
                </div>
        </div>
        <div hidden="hidden">
-               <div id="user-video" class="video-container">
+               <div id="user-video" class="video-container" 
wicket:message="data-ptt-info:ptt.info">
                        <div class="video">
                                <canvas width="10" class="level-meter" 
wicket:message="title:767"></canvas>
                                <div class="om-icon mute-others clickable" 
wicket:message="title:video.muteothers"></div>
diff --git a/openmeetings-web/src/main/webapp/css/raw-room.css 
b/openmeetings-web/src/main/webapp/css/raw-room.css
index 5ed43f0ba..9e3289d0f 100644
--- a/openmeetings-web/src/main/webapp/css/raw-room.css
+++ b/openmeetings-web/src/main/webapp/css/raw-room.css
@@ -357,6 +357,9 @@ html[dir="rtl"] .room-block .sb-wb .sidebar {
        content: '\f131';
        color: var(--bs-warning);
 }
+.activity.mic.om-icon.push-to-talk::before {
+       color: var(--bs-info);
+}
 .room-block .sb-wb .sidebar .user-list .user.entry.current {
        font-weight: bold;
        background-color: var(--bs-light);

Reply via email to