diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java
index fa5b0fbb73970f39d45b1bc62ced9138e20f8bbe..89930a94b7d663ee871af67c283987f7107d9580 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java
@@ -119,15 +119,15 @@ public class ParamsProcessorUtil {
 
 	private String formatConfNum(String s) {
 		if (s.length() > 5) {
-			Long confNumL = Long.parseLong(s);
-
-			Locale numFormatLocale = new Locale("en", "US");
-			String formatPattern = "#,###";
-			DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(numFormatLocale);
-			unusualSymbols.setGroupingSeparator(' ');
-			DecimalFormat numFormatter = new DecimalFormat(formatPattern, unusualSymbols);
-			numFormatter.setGroupingSize(3);
-			return numFormatter.format(confNumL);
+			/* Reverse conference number.
+			* Put a whitespace every third char.
+			* Reverse it again to display it correctly.
+			* Trim leading whitespaces.
+			* */
+			String confNumReversed = new StringBuilder(s).reverse().toString();
+			String confNumSplit = confNumReversed.replaceAll("(.{3})", "$1 ");
+			String confNumL = new StringBuilder(confNumSplit).reverse().toString().trim();
+			return confNumL;
 		}
 
 		return s;
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/ThumbnailCreatorImp.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/ThumbnailCreatorImp.java
index 59f04bb89441a41249d09af6bed19c07672384e9..6f1582d942016e489ba79bb1dc2fd5dcf135913b 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/ThumbnailCreatorImp.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/ThumbnailCreatorImp.java
@@ -64,7 +64,9 @@ public class ThumbnailCreatorImp implements ThumbnailCreator {
     renameThumbnails(thumbsDir, page);
 
     // Create blank thumbnails for pages that failed to generate a thumbnail.
-    createBlankThumbnail(thumbsDir, page);
+    if (!success) {
+      createBlankThumbnail(thumbsDir, page);
+    }
 
 
     return success;
@@ -117,9 +119,9 @@ public class ThumbnailCreatorImp implements ThumbnailCreator {
      * If more than 1 file, filename like 'temp-thumb-X.png' else filename is
      * 'temp-thumb.png'
      */
+    Matcher matcher;
     if (dir.list().length > 1) {
       File[] files = dir.listFiles();
-      Matcher matcher;
       for (File file : files) {
         matcher = PAGE_NUMBER_PATTERN.matcher(file.getAbsolutePath());
         if (matcher.matches()) {
@@ -144,6 +146,15 @@ public class ThumbnailCreatorImp implements ThumbnailCreator {
       File oldFilename = new File(
           dir.getAbsolutePath() + File.separatorChar + dir.list()[0]);
       String newFilename = "thumb-1.png";
+
+      // Might be the first thumbnail of a set and it might be out of order
+      // Avoid setting the second/third/... slide as thumb-1.png
+      matcher = PAGE_NUMBER_PATTERN.matcher(oldFilename.getAbsolutePath());
+      if (matcher.matches()) {
+        int pageNum = Integer.valueOf(matcher.group(2).trim()).intValue();
+        newFilename = "thumb-" + (pageNum) + ".png";
+      }
+
       File renamedFile = new File(
           oldFilename.getParent() + File.separatorChar + newFilename);
       oldFilename.renameTo(renamedFile);
diff --git a/bigbluebutton-config/bigbluebutton-release b/bigbluebutton-config/bigbluebutton-release
index 2d1a2c0c9e1eeeca9dbb35b798721c5c0f688568..7eaaa8ccdda6d216b95cfab9905f5520cbc31c10 100644
--- a/bigbluebutton-config/bigbluebutton-release
+++ b/bigbluebutton-config/bigbluebutton-release
@@ -1 +1,2 @@
 BIGBLUEBUTTON_RELEASE=2.3.0-dev
+
diff --git a/bigbluebutton-config/bin/bbb-conf b/bigbluebutton-config/bin/bbb-conf
index d153f44c7752c0e1a75af39cdcacc79409f69d01..40b4afd7bd5fe0d3d6fe5baa38942859e874354a 100755
--- a/bigbluebutton-config/bin/bbb-conf
+++ b/bigbluebutton-config/bin/bbb-conf
@@ -1721,8 +1721,9 @@ if [ $ZIP ]; then
     tar rf  $TMP_LOG_FILE /var/log/kurento-media-server > /dev/null 2>&1
     tar rf  $TMP_LOG_FILE /var/log/mongodb              > /dev/null 2>&1
     tar rf  $TMP_LOG_FILE /var/log/redis                > /dev/null 2>&1
-    tar rf  $TMP_LOG_FILE /var/log/nginx/error.log      > /dev/null 2>&1
-    tar rfh $TMP_LOG_FILE /opt/freeswitch/var/log/freeswitch/ > /dev/null 2>&1
+    tar rf  $TMP_LOG_FILE /var/log/nginx/error.log*     > /dev/null 2>&1
+	tar rf  $TMP_LOG_FILE /var/log/nginx/bigbluebutton.access.log*    > /dev/null 2>&1
+    tar rfh $TMP_LOG_FILE /opt/freeswitch/var/log/freeswitch/         > /dev/null 2>&1
 
     if [ -f /var/log/nginx/html5-client.log ]; then
         tar rf $TMP_LOG_FILE /var/log/nginx/html5-client.log* > /dev/null 2>&1
diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js
index f999150b8b0bac5b2b6f857bc227d3a1babdefb6..9f4a820dea477c5ba64af9e2130a870e072ed017 100755
--- a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js
+++ b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js
@@ -8,7 +8,7 @@ const SFU_URL = Meteor.settings.public.kurento.wsUrl;
 const MEDIA = Meteor.settings.public.media;
 const MEDIA_TAG = MEDIA.mediaTag.replace(/#/g, '');
 const GLOBAL_AUDIO_PREFIX = 'GLOBAL_AUDIO_';
-const RECONNECT_TIMEOUT_MS = 15000;
+const RECONNECT_TIMEOUT_MS = MEDIA.listenOnlyCallTimeout || 15000;
 
 export default class KurentoAudioBridge extends BaseAudioBridge {
   constructor(userData) {
diff --git a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/clearGroupChatMsg.js b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/clearGroupChatMsg.js
index 3ae6f31d298e1a486eb914a2dc0dd663e64ca479..f9cdd35b9e28cdbf5e9221719c4021ce179aed2e 100644
--- a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/clearGroupChatMsg.js
+++ b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/clearGroupChatMsg.js
@@ -27,7 +27,7 @@ export default function clearGroupChatMsg(meetingId, chatId) {
   }
 
   if (meetingId) {
-    return GroupChatMsg.remove({ meetingId, chatId: { $eq: PUBLIC_GROUP_CHAT_ID } }, () => {
+    return GroupChatMsg.remove({ meetingId }, () => {
       Logger.info(`Cleared GroupChatMsg (${meetingId})`);
     });
   }
diff --git a/bigbluebutton-html5/imports/api/meetings/server/modifiers/addMeeting.js b/bigbluebutton-html5/imports/api/meetings/server/modifiers/addMeeting.js
index 6ffdb31ca1d46529e6bc8f4b88fe1fa9f803d251..7f15e961f29f8ed9e213b22aedb5296603d7dc15 100755
--- a/bigbluebutton-html5/imports/api/meetings/server/modifiers/addMeeting.js
+++ b/bigbluebutton-html5/imports/api/meetings/server/modifiers/addMeeting.js
@@ -3,6 +3,7 @@ import {
   check,
   Match,
 } from 'meteor/check';
+import SanitizeHTML from 'sanitize-html';
 import Meetings, { RecordMeetings } from '/imports/api/meetings';
 import Logger from '/imports/startup/server/logger';
 import createNote from '/imports/api/note/server/methods/createNote';
@@ -104,22 +105,41 @@ export default function addMeeting(meeting) {
 
   const meetingEnded = false;
 
-  newMeeting.welcomeProp.welcomeMsg = newMeeting.welcomeProp.welcomeMsg.replace(
+  let { welcomeMsg } = newMeeting.welcomeProp;
+
+  const sanitizeTextInChat = original => SanitizeHTML(original, {
+    allowedTags: ['a', 'b', 'br', 'i', 'img', 'li', 'small', 'span', 'strong', 'u', 'ul'],
+    allowedAttributes: {
+      a: ['href', 'name', 'target'],
+      img: ['src', 'width', 'height'],
+    },
+    allowedSchemes: ['https'],
+  });
+
+  const sanitizedWelcomeText = sanitizeTextInChat(welcomeMsg);
+  welcomeMsg = sanitizedWelcomeText.replace(
     'href="event:',
     'href="',
   );
 
   const insertBlankTarget = (s, i) => `${s.substr(0, i)} target="_blank"${s.substr(i)}`;
   const linkWithoutTarget = new RegExp('<a href="(.*?)">', 'g');
-  linkWithoutTarget.test(newMeeting.welcomeProp.welcomeMsg);
+  linkWithoutTarget.test(welcomeMsg);
 
   if (linkWithoutTarget.lastIndex > 0) {
-    newMeeting.welcomeProp.welcomeMsg = insertBlankTarget(
-      newMeeting.welcomeProp.welcomeMsg,
+    welcomeMsg = insertBlankTarget(
+      welcomeMsg,
       linkWithoutTarget.lastIndex - 1,
     );
   }
 
+  newMeeting.welcomeProp.welcomeMsg = welcomeMsg;
+
+  // note: as of July 2020 `modOnlyMessage` is not published to the client side.
+  // We are sanitizing this data simply to prevent future potential usage
+  // At the moment `modOnlyMessage` is obtained from client side as a response to Enter API
+  newMeeting.welcomeProp.modOnlyMessage = sanitizeTextInChat(newMeeting.welcomeProp.modOnlyMessage);
+
   const modifier = {
     $set: Object.assign({
       meetingId,
diff --git a/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js b/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js
index c28ed339694dfd9ee9529992d0a8f44365a59e16..04217b08ea56a7d5cb5535db45ac45adffe1d4d9 100644
--- a/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js
+++ b/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js
@@ -71,7 +71,7 @@ function valueParser(val) {
     const parsedValue = JSON.parse(val.toLowerCase());
     return parsedValue;
   } catch (error) {
-    logger.error('Parameter value could not ber parsed');
+    logger.warn(`addUserSettings:Parameter ${val} could not be parsed (was not json)`);
     return val;
   }
 }
diff --git a/bigbluebutton-html5/imports/api/users-settings/server/publishers.js b/bigbluebutton-html5/imports/api/users-settings/server/publishers.js
index 0b772099b42c8eb1007a2387a14a0d1d747f4194..a0b88c4e5d3a191ac482b10d7a8b0a127ef1e139 100644
--- a/bigbluebutton-html5/imports/api/users-settings/server/publishers.js
+++ b/bigbluebutton-html5/imports/api/users-settings/server/publishers.js
@@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor';
 import UserSettings from '/imports/api/users-settings';
 import Logger from '/imports/startup/server/logger';
 import { extractCredentials } from '/imports/api/common/server/helpers';
+import User from '/imports/api/users';
 
 function userSettings() {
   if (!this.userId) {
@@ -9,6 +10,34 @@ function userSettings() {
   }
   const { meetingId, requesterUserId } = extractCredentials(this.userId);
 
+  const currentUser = User.findOne({ userId: requesterUserId });
+
+  if (currentUser && currentUser.breakoutProps.isBreakoutUser) {
+    const { parentId } = currentUser.breakoutProps;
+
+    const [externalId] = currentUser.extId.split('-');
+
+    const mainRoomUserSettings = UserSettings.find({ meetingId: parentId, userId: externalId });
+
+    mainRoomUserSettings.map(({ setting, value }) => ({
+      meetingId,
+      setting,
+      userId: requesterUserId,
+      value,
+    })).forEach((doc) => {
+      const selector = {
+        meetingId,
+        setting: doc.setting,
+      };
+
+      UserSettings.upsert(selector, doc);
+    });
+
+    Logger.debug(`Publishing user settings for user=${requesterUserId}`);
+
+    return UserSettings.find({ meetingId, userId: requesterUserId });
+  }
+
   Logger.debug(`Publishing user settings for user=${requesterUserId}`);
 
   return UserSettings.find({ meetingId, userId: requesterUserId });
diff --git a/bigbluebutton-html5/imports/api/users/server/modifiers/addUser.js b/bigbluebutton-html5/imports/api/users/server/modifiers/addUser.js
index b5d359fecbf22fa5ca41c42918815704ee0f1f8d..a7606514f1f2711006ad369d32d60dadd60417e3 100755
--- a/bigbluebutton-html5/imports/api/users/server/modifiers/addUser.js
+++ b/bigbluebutton-html5/imports/api/users/server/modifiers/addUser.js
@@ -3,6 +3,8 @@ import Logger from '/imports/startup/server/logger';
 import Users from '/imports/api/users';
 import Meetings from '/imports/api/meetings';
 import VoiceUsers from '/imports/api/voice-users/';
+import _ from 'lodash';
+import SanitizeHTML from 'sanitize-html';
 
 import stringHash from 'string-hash';
 import flat from 'flat';
@@ -15,7 +17,17 @@ const COLOR_LIST = [
   '#0d47a1', '#0277bd', '#01579b',
 ];
 
-export default function addUser(meetingId, user) {
+export default function addUser(meetingId, userData) {
+  const user = userData;
+  const sanitizedName = SanitizeHTML(userData.name, {
+    allowedTags: [],
+    allowedAttributes: {},
+  });
+  // if user typed only tags
+  user.name = sanitizedName.length === 0
+    ? _.escape(userData.name)
+    : sanitizedName;
+
   check(meetingId, String);
 
   check(user, {
diff --git a/bigbluebutton-html5/imports/startup/client/intl.jsx b/bigbluebutton-html5/imports/startup/client/intl.jsx
index 3e139e57c74e1a80cd498828926f1889893de47e..91e74e61259d88f9ddd5fb25412419f52c9d58ac 100644
--- a/bigbluebutton-html5/imports/startup/client/intl.jsx
+++ b/bigbluebutton-html5/imports/startup/client/intl.jsx
@@ -15,6 +15,7 @@ import da from 'react-intl/locale-data/da';
 import de from 'react-intl/locale-data/de';
 import el from 'react-intl/locale-data/el';
 import en from 'react-intl/locale-data/en';
+import eo from 'react-intl/locale-data/eo';
 import es from 'react-intl/locale-data/es';
 import et from 'react-intl/locale-data/et';
 import eu from 'react-intl/locale-data/eu';
@@ -46,6 +47,7 @@ import sk from 'react-intl/locale-data/sk';
 import sl from 'react-intl/locale-data/sl';
 import sr from 'react-intl/locale-data/sr';
 import sv from 'react-intl/locale-data/sv';
+import te from 'react-intl/locale-data/te';
 import th from 'react-intl/locale-data/th';
 import tr from 'react-intl/locale-data/tr';
 import uk from 'react-intl/locale-data/uk';
@@ -64,6 +66,7 @@ addLocaleData([
   ...el,
   ...et,
   ...en,
+  ...eo,
   ...es,
   ...eu,
   ...fa,
@@ -94,6 +97,7 @@ addLocaleData([
   ...sl,
   ...sr,
   ...sv,
+  ...te,
   ...th,
   ...tr,
   ...uk,
diff --git a/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx b/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx
index f05a09ea04f9be87c8f3ecab5e0fef738bfc71aa..4e037fbfec8f52dd988740221d084d603de6b1ae 100755
--- a/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx
@@ -15,11 +15,11 @@ const intlMessages = defineMessages({
   },
   message: {
     id: 'app.breakoutJoinConfirmation.message',
-    description: 'Join breakout confim message',
+    description: 'Join breakout confirm message',
   },
   freeJoinMessage: {
     id: 'app.breakoutJoinConfirmation.freeJoinMessage',
-    description: 'Join breakout confim message',
+    description: 'Join breakout confirm message',
   },
   confirmLabel: {
     id: 'app.createBreakoutRoom.join',
@@ -88,10 +88,15 @@ class BreakoutJoinConfirmation extends Component {
       breakoutURL,
       isFreeJoin,
       voiceUserJoined,
+      requestJoinURL,
     } = this.props;
 
     const { selectValue } = this.state;
-    const url = isFreeJoin ? getURL(selectValue) : breakoutURL;
+    if (!getURL(selectValue)) {
+      requestJoinURL(selectValue);
+    }
+    const urlFromSelectedRoom = getURL(selectValue);
+    const url = isFreeJoin ? urlFromSelectedRoom : breakoutURL;
 
     if (voiceUserJoined) {
       // leave main room's audio when joining a breakout room
@@ -103,6 +108,12 @@ class BreakoutJoinConfirmation extends Component {
     }
 
     VideoService.exitVideo();
+    if (url === '') {
+      logger.error({
+        logCode: 'breakoutjoinconfirmation_redirecting_to_url',
+        extraInfo: { breakoutURL, isFreeJoin },
+      }, 'joining breakout room but redirected to about://blank');
+    }
     window.open(url);
     mountModal(null);
   }
diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx
index 306024993c8fec1acf759a2f75da2ce47932c994..a5a4dd78979f3590a2ddf5aee9c8834cc6a80de4 100644
--- a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx
@@ -55,7 +55,9 @@ class VideoPlayer extends Component {
       },
       file: {
         attributes: {
-          controls: true,
+          controls: 'controls',
+          autoplay: 'autoplay',
+          playsinline: 'playsinline',
         },
       },
       dailymotion: {
diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/custom-players/panopto.jsx b/bigbluebutton-html5/imports/ui/components/external-video-player/custom-players/panopto.jsx
new file mode 100644
index 0000000000000000000000000000000000000000..b1305869af22da14413b0b126c7ac9077195233a
--- /dev/null
+++ b/bigbluebutton-html5/imports/ui/components/external-video-player/custom-players/panopto.jsx
@@ -0,0 +1,16 @@
+const MATCH_URL = /https?\:\/\/(([a-zA-Z]+\.)?([a-zA-Z]+\.panopto\.[a-zA-Z]+\/Panopto))\/Pages\/Viewer\.aspx\?id=([-a-zA-Z0-9]+)/;
+
+export class Panopto {
+
+  static canPlay = url => {
+    return MATCH_URL.test(url)
+  };
+
+  static getSocialUrl(url) {
+    const m = url.match(MATCH_URL);
+    return 'https://' + m[1] + '/Podcast/Social/' + m[4] + '.mp4';
+  }
+}
+
+export default Panopto;
+
diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/service.js b/bigbluebutton-html5/imports/ui/components/external-video-player/service.js
index 927a31a53d92d70bff24fb7baa8ff5ac0b271403..66bd3ea7ccc3d2fe70c51db90ce3a4c454af614e 100644
--- a/bigbluebutton-html5/imports/ui/components/external-video-player/service.js
+++ b/bigbluebutton-html5/imports/ui/components/external-video-player/service.js
@@ -8,10 +8,19 @@ import { makeCall } from '/imports/ui/services/api';
 
 import ReactPlayer from 'react-player';
 
-const isUrlValid = url => ReactPlayer.canPlay(url);
+import Panopto from './custom-players/panopto';
+
+const isUrlValid = (url) => {
+  return ReactPlayer.canPlay(url) || Panopto.canPlay(url);
+}
 
 const startWatching = (url) => {
-  const externalVideoUrl = url;
+  let externalVideoUrl = url;
+
+  if (Panopto.canPlay(url)) {
+    externalVideoUrl = Panopto.getSocialUrl(url);
+  }
+
   makeCall('startWatchingExternalVideo', { externalVideoUrl });
 };
 
diff --git a/bigbluebutton-html5/imports/ui/components/fullscreen-button/styles.scss b/bigbluebutton-html5/imports/ui/components/fullscreen-button/styles.scss
index d9b747ae8459cd1ca8752368bf3298f3d0b387f6..76ac48bd309671e8c2bf0f027d415c36f022a3ae 100644
--- a/bigbluebutton-html5/imports/ui/components/fullscreen-button/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/fullscreen-button/styles.scss
@@ -1,11 +1,5 @@
 @import '/imports/ui/stylesheets/variables/_all';
 
-:root {
-  ::-webkit-media-controls {
-    display: none !important;
-  }
-}
-
 .wrapper {
   position: absolute;
   right: 0;
@@ -13,7 +7,6 @@
   background-color: var(--color-transparent);
   cursor: pointer;
   border: 0;
-  border-radius: 5px;
   z-index: 2;
 
   [dir="rtl"] & {
@@ -76,4 +69,4 @@
   i {
     font-size: 1rem;
   }
-}
\ No newline at end of file
+}
diff --git a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx
index 3bb0d608fb7e7a86fcdb86002a9ac6b935a2c1d3..941c3a7e646cc2a34ae94a6ccb7a164f2da012cc 100755
--- a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx
@@ -1,6 +1,7 @@
 import React, { Component } from 'react';
 import { Session } from 'meteor/session';
 import PropTypes from 'prop-types';
+import SanitizeHTML from 'sanitize-html';
 import Auth from '/imports/ui/services/auth';
 import { setCustomLogoUrl, setModeratorOnlyMessage } from '/imports/ui/components/user-list/service';
 import { makeCall } from '/imports/ui/services/api';
@@ -141,7 +142,15 @@ class JoinHandler extends Component {
 
     const setModOnlyMessage = (resp) => {
       if (resp && resp.modOnlyMessage) {
-        setModeratorOnlyMessage(resp.modOnlyMessage);
+        const sanitizedModOnlyText = SanitizeHTML(resp.modOnlyMessage, {
+          allowedTags: ['a', 'b', 'br', 'i', 'img', 'li', 'small', 'span', 'strong', 'u', 'ul'],
+          allowedAttributes: {
+            a: ['href', 'name', 'target'],
+            img: ['src', 'width', 'height'],
+          },
+          allowedSchemes: ['https'],
+        });
+        setModeratorOnlyMessage(sanitizedModOnlyText);
       }
       return resp;
     };
diff --git a/bigbluebutton-html5/imports/ui/components/media/styles.scss b/bigbluebutton-html5/imports/ui/components/media/styles.scss
index 744ceeeace5842705b9f70ac1670225dd0c1b6ae..a03a7e21f8402e3156888d6d0f173b83cec59660 100644
--- a/bigbluebutton-html5/imports/ui/components/media/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/media/styles.scss
@@ -222,6 +222,52 @@ $after-content-order: 3;
   }
 }
 
+@keyframes spin {
+  from {
+    transform: rotate(0deg);
+  }
+
+  to {
+    transform: rotate(-360deg);
+  }
+}
+
+.connectingSpinner {
+  position: absolute;
+  height: 100%;
+  width: 100%;
+  object-fit: contain;
+  color: var(--color-white-with-transparency);
+  font-size: 2.5rem;
+  text-align: center;
+  white-space: nowrap;
+  z-index: 1;
+
+
+  &::after {
+    content: '';
+    display: inline-block;
+    height: 100%;
+    vertical-align: middle;
+    margin: 0 -0.25em 0 0;
+
+    [dir="rtl"] & {
+      margin: 0 0 0 -0.25em
+    }
+  }
+
+  &::before {
+    content: "\e949";
+    /* ascii code for the ellipsis character */
+    font-family: 'bbb-icons' !important;
+    display: inline-block;
+
+    :global(.animationsEnabled) & {
+      animation: spin 4s infinite linear;
+    }
+  }
+}
+
 .overlayToTop span[class^=resizeWrapper],
 .overlayToBottom span[class^=resizeWrapper] {
   div {
@@ -240,4 +286,4 @@ $after-content-order: 3;
     z-index: 1;
     bottom: -10px !important;
   }
-}
\ No newline at end of file
+}
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/component.jsx b/bigbluebutton-html5/imports/ui/components/presentation/component.jsx
index e084ee858fbbf050cc99216f2fc06de0245cdd99..64aededfcdfe0648dfd95617c5891c835313e936 100755
--- a/bigbluebutton-html5/imports/ui/components/presentation/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/presentation/component.jsx
@@ -548,8 +548,8 @@ class PresentationArea extends PureComponent {
       <div
         style={{
           position: 'absolute',
-          width: svgDimensions.width,
-          height: svgDimensions.height,
+          width: svgDimensions.width < 0 ? 0 : svgDimensions.width,
+          height: svgDimensions.height < 0 ? 0 : svgDimensions.height,
           textAlign: 'center',
           display: layoutSwapped ? 'none' : 'block',
         }}
@@ -560,8 +560,8 @@ class PresentationArea extends PureComponent {
         <svg
           key={currentSlide.id}
           data-test="whiteboard"
-          width={svgDimensions.width}
-          height={svgDimensions.height}
+          width={svgDimensions.width < 0 ? 0 : svgDimensions.width}
+          height={svgDimensions.height < 0 ? 0 : svgDimensions.height}
           ref={(ref) => { if (ref != null) { this.svggroup = ref; } }}
           viewBox={svgViewBox}
           version="1.1"
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/download-presentation-button/styles.scss b/bigbluebutton-html5/imports/ui/components/presentation/download-presentation-button/styles.scss
index 2387f0bab9df2163a711a20490cce04a833a333c..3501bb6910eb8f11bbf3d8adc19bc14e900e77a7 100644
--- a/bigbluebutton-html5/imports/ui/components/presentation/download-presentation-button/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/presentation/download-presentation-button/styles.scss
@@ -1,11 +1,5 @@
 @import '/imports/ui/stylesheets/variables/_all';
 
-:root {
-  ::-webkit-media-controls {
-    display:none !important;
-  }
-}
-
 .wrapper {
   position: absolute;
   left: 0;
@@ -46,4 +40,4 @@
 
 .dark .button span i {
   color: var(--color-black);
-}
\ No newline at end of file
+}
diff --git a/bigbluebutton-html5/imports/ui/components/screenshare/component.jsx b/bigbluebutton-html5/imports/ui/components/screenshare/component.jsx
index 5c3e45860b42b8f12240ffa061acb669d0a28893..26abe0eae01b0afcf3cefa48f0ddd7d749cfd64a 100755
--- a/bigbluebutton-html5/imports/ui/components/screenshare/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/screenshare/component.jsx
@@ -176,10 +176,7 @@ class ScreenshareComponent extends React.Component {
           <video
             id="screenshareVideo"
             key="screenshareVideo"
-            style={{
-              maxHeight: '100%',
-              width: '100%',
-            }}
+            style={{ maxHeight: '100%', width: '100%', height: '100%' }}
             playsInline
             onLoadedData={this.onVideoLoad}
             ref={(ref) => { this.videoTag = ref; }}
diff --git a/bigbluebutton-html5/imports/ui/components/screenshare/styles.scss b/bigbluebutton-html5/imports/ui/components/screenshare/styles.scss
index 74e285a439fd4e6b945514c82f577cc1071aac2b..aff8c3d1932b53bfe58544b3a3dc44a37bb7942b 100755
--- a/bigbluebutton-html5/imports/ui/components/screenshare/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/screenshare/styles.scss
@@ -1,8 +1,8 @@
 @import "/imports/ui/stylesheets/variables/_all";
-@import "/imports/ui/components/video-provider/video-list/styles";
+@import "/imports/ui/components/media/styles";
 
 .connecting {
-  @extend .connecting;
+  @extend .connectingSpinner;
   z-index: -1;
   background-color: transparent;
   color: var(--color-white);
@@ -17,4 +17,4 @@
   position: relative;
   width: 100%;
   height: 100%;
-}
\ No newline at end of file
+}
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx
index d2580f7372090e96ba2f2714626fe17d9d7aa51a..e0d90bcbc903ef0b2428ab0f876d0f9a582dcd57 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx
@@ -224,7 +224,7 @@ class UserOptions extends PureComponent {
           onClick={toggleStatus}
         />) : null
       ),
-      (isMeteorConnected ? (
+      (!meetingIsBreakout && isMeteorConnected ? (
         <DropdownListItem
           key={this.muteAllId}
           icon={isMeetingMuted ? 'unmute' : 'mute'}
@@ -233,7 +233,7 @@ class UserOptions extends PureComponent {
           onClick={toggleMuteAllUsers}
         />) : null
       ),
-      (!isMeetingMuted && isMeteorConnected ? (
+      (!meetingIsBreakout && !isMeetingMuted && isMeteorConnected ? (
         <DropdownListItem
           key={this.muteId}
           icon="mute"
diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx
index 9fd9e78f0c145765a4d979554af848571d8c5ae5..2e1b7528cc1c231e9dda03e0c908a2b4592f65fa 100755
--- a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx
@@ -395,7 +395,7 @@ class VideoPreview extends Component {
 
   displayInitialPreview(deviceId) {
     const { changeWebcam } = this.props;
-    const availableProfiles = CAMERA_PROFILES;
+    const availableProfiles = CAMERA_PROFILES.filter(p => !p.hidden);
 
     this.setState({
       webcamDeviceId: deviceId,
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx
index 8ebb5fee311a23b26a8d205645a719f49d82ab6f..3254518864a859b2d3cac22cb92a9014ae7fcc24 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx
@@ -11,8 +11,15 @@ import {
 import { tryGenerateIceCandidates } from '/imports/utils/safari-webrtc';
 import logger from '/imports/startup/client/logger';
 
-const CAMERA_SHARE_FAILED_WAIT_TIME = 15000;
-const MAX_CAMERA_SHARE_FAILED_WAIT_TIME = 60000;
+// Default values and default empty object to be backwards compat with 2.2.
+// FIXME Remove hardcoded defaults 2.3.
+const WS_CONN_TIMEOUT = Meteor.settings.public.kurento.wsConnectionTimeout || 4000;
+
+const {
+  baseTimeout: CAMERA_SHARE_FAILED_WAIT_TIME = 15000,
+  maxTimeout: MAX_CAMERA_SHARE_FAILED_WAIT_TIME = 60000,
+} = Meteor.settings.public.kurento.cameraTimeouts || {};
+const CAMERA_QUALITY_THRESHOLDS_ENABLED = Meteor.settings.public.kurento.cameraQualityThresholds.enabled;
 const PING_INTERVAL = 15000;
 
 const intlClientErrors = defineMessages({
@@ -91,7 +98,11 @@ class VideoProvider extends Component {
     this.info = VideoService.getInfo();
 
     // Set a valid bbb-webrtc-sfu application server socket in the settings
-    this.ws = new ReconnectingWebSocket(VideoService.getAuthenticatedURL());
+    this.ws = new ReconnectingWebSocket(
+      VideoService.getAuthenticatedURL(),
+      [],
+      { connectionTimeout: WS_CONN_TIMEOUT },
+    );
     this.wsQueue = [];
 
     this.restartTimeout = {};
@@ -207,27 +218,16 @@ class VideoProvider extends Component {
     this.setState({ socketOpen: true });
   }
 
-  setReconnectionTimeout(cameraId, isLocal) {
-    const peer = this.webRtcPeers[cameraId];
-    const peerHasStarted = peer && peer.started === true;
-    const shouldSetReconnectionTimeout = !this.restartTimeout[cameraId] && !peerHasStarted;
-
-    if (shouldSetReconnectionTimeout) {
-      const newReconnectTimer = this.restartTimer[cameraId] || CAMERA_SHARE_FAILED_WAIT_TIME;
-      this.restartTimer[cameraId] = newReconnectTimer;
-
-      logger.info({
-        logCode: 'video_provider_setup_reconnect',
-        extraInfo: {
-          cameraId,
-          reconnectTimer: newReconnectTimer,
-        },
-      }, `Camera has a new reconnect timer of ${newReconnectTimer} ms for ${cameraId}`);
-
-      this.restartTimeout[cameraId] = setTimeout(
-        this._getWebRTCStartTimeout(cameraId, isLocal),
-        this.restartTimer[cameraId],
-      );
+  updateThreshold (numberOfPublishers) {
+    const { threshold, profile } = VideoService.getThreshold(numberOfPublishers);
+    if (profile) {
+      const publishers = Object.values(this.webRtcPeers)
+        .filter(peer => peer.isPublisher)
+        .forEach(peer => {
+          // 0 means no threshold in place. Reapply original one if needed
+          let profileToApply = (threshold === 0) ? peer.originalProfileId : profile;
+          VideoService.applyCameraProfile(peer, profileToApply)
+        });
     }
   }
 
@@ -249,6 +249,10 @@ class VideoProvider extends Component {
     });
 
     streamsToDisconnect.forEach(cameraId => this.stopWebRTCPeer(cameraId));
+
+    if (CAMERA_QUALITY_THRESHOLDS_ENABLED) {
+      this.updateThreshold(streamsCameraIds.length);
+    }
   }
 
   ping() {
@@ -487,6 +491,10 @@ class VideoProvider extends Component {
         peer.started = false;
         peer.attached = false;
         peer.didSDPAnswered = false;
+        peer.isPublisher = isLocal;
+        peer.originalProfileId = profileId;
+        peer.currentProfileId = profileId;
+
         if (peer.inboundIceQueue == null) {
           peer.inboundIceQueue = [];
         }
@@ -622,6 +630,30 @@ class VideoProvider extends Component {
     }, `Camera peer creation failed for ${cameraId} due to ${error.message}`);
   }
 
+  setReconnectionTimeout(cameraId, isLocal) {
+    const peer = this.webRtcPeers[cameraId];
+    const peerHasStarted = peer && peer.started === true;
+    const shouldSetReconnectionTimeout = !this.restartTimeout[cameraId] && !peerHasStarted;
+
+    if (shouldSetReconnectionTimeout) {
+      const newReconnectTimer = this.restartTimer[cameraId] || CAMERA_SHARE_FAILED_WAIT_TIME;
+      this.restartTimer[cameraId] = newReconnectTimer;
+
+      logger.info({
+        logCode: 'video_provider_setup_reconnect',
+        extraInfo: {
+          cameraId,
+          reconnectTimer: newReconnectTimer,
+        },
+      }, `Camera has a new reconnect timer of ${newReconnectTimer} ms for ${cameraId}`);
+
+      this.restartTimeout[cameraId] = setTimeout(
+        this._getWebRTCStartTimeout(cameraId, isLocal),
+        this.restartTimer[cameraId]
+      );
+    }
+  }
+
   _getOnIceCandidateCallback(cameraId, isLocal) {
     return (candidate) => {
       const peer = this.webRtcPeers[cameraId];
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/service.js b/bigbluebutton-html5/imports/ui/components/video-provider/service.js
index d251126a591cd80603b66f0e372e5bb5cdc8bfef..395b9f9d9fefa0e867b1dfce7d82121b13c2e1af 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/service.js
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/service.js
@@ -22,6 +22,7 @@ const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator;
 const ROLE_VIEWER = Meteor.settings.public.user.role_viewer;
 const ENABLE_NETWORK_MONITORING = Meteor.settings.public.networkMonitoring.enableNetworkMonitoring;
 const MIRROR_WEBCAM = Meteor.settings.public.app.mirrorOwnWebcam;
+const CAMERA_QUALITY_THRESHOLDS = Meteor.settings.public.kurento.cameraQualityThresholds.thresholds || [];
 
 const TOKEN = '_';
 
@@ -172,9 +173,8 @@ class VideoService {
       },
     ).fetch();
 
-    const hideUsers = this.hideUserList();
     const moderatorOnly = this.webcamsOnlyForModerator();
-    if (hideUsers || moderatorOnly) streams = this.filterModeratorOnly(streams);
+    if (moderatorOnly) streams = this.filterModeratorOnly(streams);
 
     const connectingStream = this.getConnectingStream(streams);
     if (connectingStream) streams.push(connectingStream);
@@ -267,12 +267,6 @@ class VideoService {
     return m?.usersProp ? m.usersProp.webcamsOnlyForModerator : false;
   }
 
-  hideUserList() {
-    const m = Meetings.findOne({ meetingId: Auth.meetingID },
-      { fields: { 'lockSettingsProps.hideUserList': 1 } });
-    return m?.lockSettingsProps ? m.lockSettingsProps.hideUserList : false;
-  }
-
   getInfo() {
     const m = Meetings.findOne({ meetingId: Auth.meetingID },
       { fields: { 'voiceProp.voiceConf': 1 } });
@@ -415,6 +409,140 @@ class VideoService {
   monitor(conn) {
     if (ENABLE_NETWORK_MONITORING) monitorVideoConnection(conn);
   }
+
+  // to be used soon (Paulo)
+  amIModerator() {
+    return Users.findOne({ userId: Auth.userID },
+      { fields: { role: 1 } }).role === ROLE_MODERATOR;
+  }
+
+  // to be used soon (Paulo)
+  getNumberOfPublishers() {
+    return VideoStreams.find({ meetingId: Auth.meetingID }).count();
+  }
+
+  isProfileBetter (newProfileId, originalProfileId) {
+    return CAMERA_PROFILES.findIndex(({ id }) => id === newProfileId)
+      > CAMERA_PROFILES.findIndex(({ id }) => id === originalProfileId);
+  }
+
+  applyBitrate (peer, bitrate) {
+    const peerConnection = peer.peerConnection;
+    if ('RTCRtpSender' in window
+      && 'setParameters' in window.RTCRtpSender.prototype
+      && 'getParameters' in window.RTCRtpSender.prototype) {
+      peerConnection.getSenders().forEach(sender => {
+        const { track } = sender;
+        if (track && track.kind === 'video') {
+          const parameters = sender.getParameters();
+          if (!parameters.encodings) {
+            parameters.encodings = [{}];
+          }
+
+          const normalizedBitrate = bitrate * 1000;
+          // Only reset bitrate if it changed in some way to avoid enconder fluctuations
+          if (parameters.encodings[0].maxBitrate !== normalizedBitrate) {
+            parameters.encodings[0].maxBitrate = normalizedBitrate;
+            sender.setParameters(parameters)
+              .then(() => {
+                logger.info({
+                  logCode: 'video_provider_bitratechange',
+                  extraInfo: { bitrate },
+                }, `Bitrate changed: ${bitrate}`);
+              })
+              .catch(error => {
+                logger.warn({
+                  logCode: 'video_provider_bitratechange_failed',
+                  extraInfo: { bitrate, errorMessage: error.message, errorCode: error.code },
+                }, `Bitrate change failed.`);
+              });
+          }
+        }
+      })
+    }
+  }
+
+  // Some browsers (mainly iOS Safari) garble the stream if a constraint is
+  // reconfigured without propagating previous height/width info
+  reapplyResolutionIfNeeded (track, constraints) {
+    if (typeof track.getSettings !== 'function') {
+      return constraints;
+    }
+
+    const trackSettings = track.getSettings();
+
+    if (trackSettings.width && trackSettings.height) {
+      return {
+        ...constraints,
+        width: trackSettings.width,
+        height: trackSettings.height
+      };
+    } else {
+      return constraints;
+    }
+  }
+
+  applyCameraProfile (peer, profileId) {
+    const profile = CAMERA_PROFILES.find(targetProfile => targetProfile.id === profileId);
+
+    if (!profile) {
+      logger.warn({
+        logCode: 'video_provider_noprofile',
+        extraInfo: { profileId },
+      }, `Apply failed: no camera profile found.`);
+      return;
+    }
+
+    // Profile is currently applied or it's better than the original user's profile,
+    // skip
+    if (peer.currentProfileId === profileId
+      || this.isProfileBetter(profileId, peer.originalProfileId)) {
+      return;
+    }
+
+    const { bitrate, constraints } = profile;
+
+    if (bitrate) {
+      this.applyBitrate(peer, bitrate);
+    }
+
+    if (constraints && typeof constraints === 'object') {
+      peer.peerConnection.getSenders().forEach(sender => {
+        const { track } = sender;
+        if (track && track.kind === 'video' && typeof track.applyConstraints  === 'function') {
+          let normalizedVideoConstraints = this.reapplyResolutionIfNeeded(track, constraints);
+          track.applyConstraints(normalizedVideoConstraints)
+            .then(() => {
+              logger.info({
+                logCode: 'video_provider_profile_applied',
+                extraInfo: { profileId },
+              }, `New camera profile applied: ${profileId}`);
+              peer.currentProfileId = profileId;
+            })
+            .catch(error => {
+              logger.warn({
+                logCode: 'video_provider_profile_apply_failed',
+                extraInfo: { errorName: error.name, errorCode: error.code },
+              }, 'Error applying camera profile');
+            });
+        }
+      });
+    }
+  }
+
+  getThreshold (numberOfPublishers) {
+    let targetThreshold = { threshold: 0, profile: 'original' };
+    let finalThreshold = { threshold: 0, profile: 'original' };
+
+    for(let mapIndex = 0; mapIndex < CAMERA_QUALITY_THRESHOLDS.length; mapIndex++) {
+      targetThreshold = CAMERA_QUALITY_THRESHOLDS[mapIndex];
+      if (targetThreshold.threshold <= numberOfPublishers) {
+        finalThreshold = targetThreshold;
+      }
+    }
+
+    return finalThreshold;
+  }
 }
 
 const videoService = new VideoService();
@@ -446,4 +574,6 @@ export default {
   onBeforeUnload: () => videoService.onBeforeUnload(),
   notify: message => notify(message, 'error', 'video'),
   updateNumberOfDevices: devices => videoService.updateNumberOfDevices(devices),
+  applyCameraProfile: (peer, newProfile) => videoService.applyCameraProfile(peer, newProfile),
+  getThreshold: (numberOfPublishers) => videoService.getThreshold(numberOfPublishers),
 };
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/styles.scss b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/styles.scss
index cd8821a7d2792b3c36efaa1b13cc754cd5cf571f..f29b64f1438f8f820e90c8116c00fd2448f3f1ac 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/styles.scss
@@ -24,16 +24,14 @@
 
 .videoList {
   display: grid;
-  border-radius: 5px;
 
   grid-auto-flow: dense;
-  grid-gap: 5px;
+  grid-gap: 1px;
 
-  align-items: center;
   justify-content: center;
 
   @include mq($medium-up) {
-    grid-gap: 10px;
+    grid-gap: 2px;
   }
 }
 
@@ -57,7 +55,6 @@
   position: relative;
   display: flex;
   min-width: 100%;
-  border-radius: 5px;
 
   &::after {
     content: "";
@@ -66,8 +63,7 @@
     right: 0;
     bottom: 0;
     left: 0;
-    border: 5px solid var(--color-white-with-transparency);
-    border-radius: 5px;
+    border: 5px solid var(--color-primary);
     opacity: 0;
     pointer-events: none;
 
@@ -77,7 +73,7 @@
   }
 
   &.talking::after {
-    opacity: 1;
+    opacity: 0.7;
   }
 }
 
@@ -86,7 +82,7 @@
   height: 100%;
   width: 100%;
   object-fit: contain;
-  border-radius: 5px;
+  background-color: var(--color-black);
 }
 
 .cursorGrab{
@@ -97,16 +93,6 @@
   cursor: grabbing;
 }
 
-@keyframes spin {
-  from {
-    transform: rotate(0deg);
-  }
-
-  to {
-    transform: rotate(-360deg);
-  }
-}
-
 .videoContainer{
   width: 100%;
   height: 100%;
@@ -114,41 +100,30 @@
 
 .connecting {
   @extend %media-area;
+  display: flex;
+  justify-content: center;
+  align-items: center;
   position: absolute;
-  color: var(--color-white-with-transparency);
-  font-size: 2.5rem;
-  text-align: center;
   white-space: nowrap;
   z-index: 1;
+  vertical-align: middle;
+  margin: 0 -0.25em 0 0;
+  border-radius: 1px;
+  opacity: 1;
 
-
-  &::after {
-    content: '';
-    display: inline-block;
-    height: 100%;
-    vertical-align: middle;
-    margin: 0 -0.25em 0 0;
-
-    [dir="rtl"] & {
-      margin: 0 0 0 -0.25em
-    }
+  [dir="rtl"] & {
+    margin: 0 0 0 -0.25em
   }
+}
 
-  &::before {
-    content: "\e949";
-    /* ascii code for the ellipsis character */
-    font-family: 'bbb-icons' !important;
-    display: inline-block;
-
-    :global(.animationsEnabled) & {
-      animation: spin 4s infinite linear;
-    }
-  }
+.loadingText {
+  @extend %text-elipsis;
+  color: var(--color-white);
+  font-size: 100%;
 }
 
 .media {
   @extend %media-area;
-  background-color: var(--color-gray);
 }
 
 .info {
@@ -157,7 +132,7 @@
   bottom: 5px;
   left: 5px;
   right: 5px;
-  justify-content: center;
+  justify-content: space-between;
   align-items: center;
   height: 1.25rem;
   z-index: 2;
@@ -165,7 +140,6 @@
 
 .dropdown,
 .dropdownFireFox {
-  flex: 1;
   display: flex;
   outline: none !important;
   width: var(--cam-dropdown-width);
@@ -185,12 +159,12 @@
 .userName {
   @extend %text-elipsis;
   position: relative;
-  background-color: var(--color-black);
-  opacity: .5;
-  color: var(--color-white);
-  font-size: 80%;
-  border-radius: 15px;
+  // Keep the background with 0.5 opacity, but leave the text with 1
+  background-color: rgba(0, 0, 0, 0.5);
+  border-radius: 1px;
+  color: var(--color-off-white);
   padding: 0 1rem 0 .5rem !important;
+  font-size: 80%;
 }
 
 .noMenu {
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
index 12879320f4fa323694328726016963b44f498776..4552e38df88960411baa5d431b54f19176f225f5 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
@@ -161,8 +161,10 @@ class VideoListItem extends Component {
       })}
       >
         {
-          !videoIsReady
-          && <div data-test="webcamConnecting" className={styles.connecting} />
+          !videoIsReady &&
+            <div data-test="webcamConnecting" className={styles.connecting}>
+              <span className={styles.loadingText}>{name}</span>
+            </div>
         }
         <div
           className={styles.videoContainer}
@@ -185,7 +187,8 @@ class VideoListItem extends Component {
           />
           {videoIsReady && this.renderFullscreenButton()}
         </div>
-        <div className={styles.info}>
+        { videoIsReady &&
+          <div className={styles.info}>
           {enableVideoMenu && availableActions.length >= 3
             ? (
               <Dropdown className={isFirefox ? styles.dropdownFireFox : styles.dropdown}>
@@ -216,6 +219,7 @@ class VideoListItem extends Component {
           {voiceUser.muted && !voiceUser.listenOnly ? <Icon className={styles.muted} iconName="unmute_filled" /> : null}
           {voiceUser.listenOnly ? <Icon className={styles.voice} iconName="listen" /> : null}
         </div>
+        }
       </div>
     );
   }
diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx b/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx
index c6382af1ef3f2d93f758617505d43f7055d784fd..ddcb6c91fde4230986eac89da1649f65f4cbb9a7 100644
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx
@@ -1,9 +1,16 @@
 import React, { Component } from 'react';
 import PropTypes from 'prop-types';
 import PollService from '/imports/ui/components/poll/service';
-import { injectIntl, intlShape } from 'react-intl';
+import { defineMessages, injectIntl, intlShape } from 'react-intl';
 import styles from './styles';
 
+const intlMessages = defineMessages({
+  pollResultAria: {
+    id: 'app.whiteboard.annotations.pollResult',
+    description: 'aria label used in poll result string',
+  },
+});
+
 class PollDrawComponent extends Component {
   constructor(props) {
     super(props);
@@ -424,7 +431,7 @@ class PollDrawComponent extends Component {
     }
 
     return (
-      <g>
+      <g aria-hidden>
         <rect
           x={outerRect.x}
           y={outerRect.y}
@@ -575,7 +582,7 @@ class PollDrawComponent extends Component {
       return this.renderLine(lineToMeasure);
     }
     return (
-      <g>
+      <g aria-hidden>
         {textArray.map(line => this.renderLine(line))}
         <text
           fontFamily="Arial"
@@ -591,9 +598,17 @@ class PollDrawComponent extends Component {
   }
 
   render() {
-    const { prepareToDisplay } = this.state;
+    const { intl } = this.props;
+    const { prepareToDisplay, textArray } = this.state;
+
+    let ariaResultLabel = `${intl.formatMessage(intlMessages.pollResultAria)}: `;
+    textArray.map((t, idx) => {
+      const pollLine = t.slice(0, -1);
+      ariaResultLabel += `${idx > 0 ? ' |' : ''} ${pollLine.join(' | ')}`;
+    });
+
     return (
-      <g>
+      <g aria-label={ariaResultLabel}>
         {prepareToDisplay
           ? this.renderTestStrings()
           : this.renderPoll()
diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
index bdf4689646ec499c7acfaa6810409b01a5a8f4c2..7fe46940005f07299f01041fdaa56efa4fd822e6 100755
--- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
+++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
@@ -16,7 +16,7 @@ const MEDIA = Meteor.settings.public.media;
 const MEDIA_TAG = MEDIA.mediaTag;
 const ECHO_TEST_NUMBER = MEDIA.echoTestNumber;
 const MAX_LISTEN_ONLY_RETRIES = 1;
-const LISTEN_ONLY_CALL_TIMEOUT_MS = 15000;
+const LISTEN_ONLY_CALL_TIMEOUT_MS = MEDIA.listenOnlyCallTimeout || 15000;
 
 const CALL_STATES = {
   STARTED: 'started',
diff --git a/bigbluebutton-html5/package-lock.json b/bigbluebutton-html5/package-lock.json
index 51144cdd7a2b0c4c4870893b3440f1130f318726..39bf129f95a84c3c2ed33753a5b23f55f553b8d5 100644
--- a/bigbluebutton-html5/package-lock.json
+++ b/bigbluebutton-html5/package-lock.json
@@ -2378,8 +2378,7 @@
     "cssesc": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
-      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
-      "dev": true
+      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
     },
     "cssom": {
       "version": "0.4.4",
@@ -2619,6 +2618,20 @@
         "@babel/runtime": "^7.1.2"
       }
     },
+    "dom-serializer": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+      "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+      "requires": {
+        "domelementtype": "^2.0.1",
+        "entities": "^2.0.0"
+      }
+    },
+    "domelementtype": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+      "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ=="
+    },
     "domexception": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -2628,12 +2641,22 @@
         "webidl-conversions": "^4.0.2"
       }
     },
-    "dot-prop": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
-      "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
+    "domhandler": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz",
+      "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==",
+      "requires": {
+        "domelementtype": "^2.0.1"
+      }
+    },
+    "domutils": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.1.0.tgz",
+      "integrity": "sha512-CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg==",
       "requires": {
-        "is-obj": "^2.0.0"
+        "dom-serializer": "^0.2.1",
+        "domelementtype": "^2.0.1",
+        "domhandler": "^3.0.0"
       }
     },
     "dotenv": {
@@ -2686,6 +2709,11 @@
         "once": "^1.4.0"
       }
     },
+    "entities": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
+      "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ=="
+    },
     "error-ex": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -3901,6 +3929,17 @@
       "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
       "dev": true
     },
+    "htmlparser2": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz",
+      "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==",
+      "requires": {
+        "domelementtype": "^2.0.1",
+        "domhandler": "^3.0.0",
+        "domutils": "^2.0.0",
+        "entities": "^2.0.0"
+      }
+    },
     "http-signature": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -4486,11 +4525,6 @@
       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
       "dev": true
     },
-    "is-obj": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
-      "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
-    },
     "is-observable": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
@@ -7141,33 +7175,33 @@
       "dev": true
     },
     "meteor-node-stubs": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.4.1.tgz",
-      "integrity": "sha512-UO2OStvLOKoApmOdIP5eCqoLaa/ritMXRg4ffJVdkNLEsczzPvTjgC0Mxk4cM4R8MZkwll90FYgjDf5qUTJdMA==",
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.1.tgz",
+      "integrity": "sha512-I4PE/z7eAl45XEsebHA4pcQbgjqEdK3EBGgiUoIZBi3bMQcMq6blLWZo+WdtK4Or9X4NJOiYWw4GmHiubr3egA==",
       "requires": {
         "assert": "^1.4.1",
-        "browserify-zlib": "^0.1.4",
-        "buffer": "^4.9.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^5.2.1",
         "console-browserify": "^1.1.0",
         "constants-browserify": "^1.0.0",
-        "crypto-browserify": "^3.11.0",
-        "domain-browser": "^1.1.7",
-        "events": "^1.1.1",
-        "https-browserify": "0.0.1",
-        "os-browserify": "^0.2.1",
-        "path-browserify": "0.0.0",
-        "process": "^0.11.9",
-        "punycode": "^1.4.1",
+        "crypto-browserify": "^3.12.0",
+        "domain-browser": "^1.2.0",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "^1.0.0",
+        "process": "^0.11.10",
+        "punycode": "^2.1.1",
         "querystring-es3": "^0.2.1",
-        "readable-stream": "^2.3.6",
-        "stream-browserify": "^2.0.1",
-        "stream-http": "^2.8.0",
-        "string_decoder": "^1.1.0",
-        "timers-browserify": "^1.4.2",
-        "tty-browserify": "0.0.0",
+        "readable-stream": "^3.3.0",
+        "stream-browserify": "^2.0.2",
+        "stream-http": "^3.0.0",
+        "string_decoder": "^1.2.0",
+        "timers-browserify": "^2.0.10",
+        "tty-browserify": "0.0.1",
         "url": "^0.11.0",
-        "util": "^0.10.3",
-        "vm-browserify": "0.0.4"
+        "util": "^0.11.1",
+        "vm-browserify": "^1.1.0"
       },
       "dependencies": {
         "asn1.js": {
@@ -7184,6 +7218,15 @@
           "bundled": true,
           "requires": {
             "util": "0.10.3"
+          },
+          "dependencies": {
+            "util": {
+              "version": "0.10.3",
+              "bundled": true,
+              "requires": {
+                "inherits": "2.0.1"
+              }
+            }
           }
         },
         "base64-js": {
@@ -7220,12 +7263,13 @@
           }
         },
         "browserify-des": {
-          "version": "1.0.1",
+          "version": "1.0.2",
           "bundled": true,
           "requires": {
             "cipher-base": "^1.0.1",
             "des.js": "^1.0.0",
-            "inherits": "^2.0.1"
+            "inherits": "^2.0.1",
+            "safe-buffer": "^5.1.2"
           }
         },
         "browserify-rsa": {
@@ -7250,19 +7294,18 @@
           }
         },
         "browserify-zlib": {
-          "version": "0.1.4",
+          "version": "0.2.0",
           "bundled": true,
           "requires": {
-            "pako": "~0.2.0"
+            "pako": "~1.0.5"
           }
         },
         "buffer": {
-          "version": "4.9.1",
+          "version": "5.2.1",
           "bundled": true,
           "requires": {
             "base64-js": "^1.0.2",
-            "ieee754": "^1.1.4",
-            "isarray": "^1.0.0"
+            "ieee754": "^1.1.4"
           }
         },
         "buffer-xor": {
@@ -7370,7 +7413,7 @@
           "bundled": true
         },
         "elliptic": {
-          "version": "6.4.0",
+          "version": "6.5.3",
           "bundled": true,
           "requires": {
             "bn.js": "^4.4.0",
@@ -7383,7 +7426,7 @@
           }
         },
         "events": {
-          "version": "1.1.1",
+          "version": "3.0.0",
           "bundled": true
         },
         "evp_bytestokey": {
@@ -7403,11 +7446,11 @@
           }
         },
         "hash.js": {
-          "version": "1.1.3",
+          "version": "1.1.7",
           "bundled": true,
           "requires": {
             "inherits": "^2.0.3",
-            "minimalistic-assert": "^1.0.0"
+            "minimalistic-assert": "^1.0.1"
           },
           "dependencies": {
             "inherits": {
@@ -7426,15 +7469,11 @@
           }
         },
         "https-browserify": {
-          "version": "0.0.1",
+          "version": "1.0.0",
           "bundled": true
         },
         "ieee754": {
-          "version": "1.1.11",
-          "bundled": true
-        },
-        "indexof": {
-          "version": "0.0.1",
+          "version": "1.1.13",
           "bundled": true
         },
         "inherits": {
@@ -7446,11 +7485,12 @@
           "bundled": true
         },
         "md5.js": {
-          "version": "1.3.4",
+          "version": "1.3.5",
           "bundled": true,
           "requires": {
             "hash-base": "^3.0.0",
-            "inherits": "^2.0.1"
+            "inherits": "^2.0.1",
+            "safe-buffer": "^5.1.2"
           }
         },
         "miller-rabin": {
@@ -7470,30 +7510,31 @@
           "bundled": true
         },
         "os-browserify": {
-          "version": "0.2.1",
+          "version": "0.3.0",
           "bundled": true
         },
         "pako": {
-          "version": "0.2.9",
+          "version": "1.0.10",
           "bundled": true
         },
         "parse-asn1": {
-          "version": "5.1.1",
+          "version": "5.1.4",
           "bundled": true,
           "requires": {
             "asn1.js": "^4.0.0",
             "browserify-aes": "^1.0.0",
             "create-hash": "^1.1.0",
             "evp_bytestokey": "^1.0.0",
-            "pbkdf2": "^3.0.3"
+            "pbkdf2": "^3.0.3",
+            "safe-buffer": "^5.1.1"
           }
         },
         "path-browserify": {
-          "version": "0.0.0",
+          "version": "1.0.0",
           "bundled": true
         },
         "pbkdf2": {
-          "version": "3.0.16",
+          "version": "3.0.17",
           "bundled": true,
           "requires": {
             "create-hash": "^1.1.2",
@@ -7512,18 +7553,19 @@
           "bundled": true
         },
         "public-encrypt": {
-          "version": "4.0.2",
+          "version": "4.0.3",
           "bundled": true,
           "requires": {
             "bn.js": "^4.1.0",
             "browserify-rsa": "^4.0.0",
             "create-hash": "^1.1.0",
             "parse-asn1": "^5.0.0",
-            "randombytes": "^2.0.1"
+            "randombytes": "^2.0.1",
+            "safe-buffer": "^5.1.2"
           }
         },
         "punycode": {
-          "version": "1.4.1",
+          "version": "2.1.1",
           "bundled": true
         },
         "querystring": {
@@ -7535,7 +7577,7 @@
           "bundled": true
         },
         "randombytes": {
-          "version": "2.0.6",
+          "version": "2.1.0",
           "bundled": true,
           "requires": {
             "safe-buffer": "^5.1.0"
@@ -7550,16 +7592,12 @@
           }
         },
         "readable-stream": {
-          "version": "2.3.6",
+          "version": "3.3.0",
           "bundled": true,
           "requires": {
-            "core-util-is": "~1.0.0",
-            "inherits": "~2.0.3",
-            "isarray": "~1.0.0",
-            "process-nextick-args": "~2.0.0",
-            "safe-buffer": "~5.1.1",
-            "string_decoder": "~1.1.1",
-            "util-deprecate": "~1.0.1"
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
           },
           "dependencies": {
             "inherits": {
@@ -7580,6 +7618,10 @@
           "version": "5.1.2",
           "bundled": true
         },
+        "setimmediate": {
+          "version": "1.0.5",
+          "bundled": true
+        },
         "sha.js": {
           "version": "2.4.11",
           "bundled": true,
@@ -7589,44 +7631,67 @@
           }
         },
         "stream-browserify": {
-          "version": "2.0.1",
+          "version": "2.0.2",
           "bundled": true,
           "requires": {
             "inherits": "~2.0.1",
             "readable-stream": "^2.0.2"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              },
+              "dependencies": {
+                "inherits": {
+                  "version": "2.0.3",
+                  "bundled": true
+                }
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
           }
         },
         "stream-http": {
-          "version": "2.8.1",
+          "version": "3.0.0",
           "bundled": true,
           "requires": {
             "builtin-status-codes": "^3.0.0",
             "inherits": "^2.0.1",
-            "readable-stream": "^2.3.3",
-            "to-arraybuffer": "^1.0.0",
+            "readable-stream": "^3.0.6",
             "xtend": "^4.0.0"
           }
         },
         "string_decoder": {
-          "version": "1.1.1",
+          "version": "1.2.0",
           "bundled": true,
           "requires": {
             "safe-buffer": "~5.1.0"
           }
         },
         "timers-browserify": {
-          "version": "1.4.2",
+          "version": "2.0.10",
           "bundled": true,
           "requires": {
-            "process": "~0.11.0"
+            "setimmediate": "^1.0.4"
           }
         },
-        "to-arraybuffer": {
-          "version": "1.0.1",
-          "bundled": true
-        },
         "tty-browserify": {
-          "version": "0.0.0",
+          "version": "0.0.1",
           "bundled": true
         },
         "url": {
@@ -7644,10 +7709,16 @@
           }
         },
         "util": {
-          "version": "0.10.3",
+          "version": "0.11.1",
           "bundled": true,
           "requires": {
-            "inherits": "2.0.1"
+            "inherits": "2.0.3"
+          },
+          "dependencies": {
+            "inherits": {
+              "version": "2.0.3",
+              "bundled": true
+            }
           }
         },
         "util-deprecate": {
@@ -7655,11 +7726,8 @@
           "bundled": true
         },
         "vm-browserify": {
-          "version": "0.0.4",
-          "bundled": true,
-          "requires": {
-            "indexof": "0.0.1"
-          }
+          "version": "1.1.0",
+          "bundled": true
         },
         "xtend": {
           "version": "4.0.1",
@@ -8201,6 +8269,11 @@
         "error-ex": "^1.2.0"
       }
     },
+    "parse-srcset": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+      "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE="
+    },
     "parse5": {
       "version": "5.1.0",
       "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
@@ -8465,20 +8538,32 @@
       }
     },
     "postcss-nested": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.1.0.tgz",
-      "integrity": "sha512-owY13v4s3WWTUjsT1H1Cgpa4veHjcBJ/FqbgORe1dJIKpggbFoh6ww+zUP0nzrvy7fXGihcuFhJQj3eXtaWXsw==",
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.3.tgz",
+      "integrity": "sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==",
       "requires": {
-        "postcss": "^7.0.2",
-        "postcss-selector-parser": "^3.1.1"
+        "postcss": "^7.0.32",
+        "postcss-selector-parser": "^6.0.2"
+      },
+      "dependencies": {
+        "postcss": {
+          "version": "7.0.32",
+          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+          "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+          "requires": {
+            "chalk": "^2.4.2",
+            "source-map": "^0.6.1",
+            "supports-color": "^6.1.0"
+          }
+        }
       }
     },
     "postcss-selector-parser": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
-      "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
+      "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
       "requires": {
-        "dot-prop": "^5.2.0",
+        "cssesc": "^3.0.0",
         "indexes-of": "^1.0.1",
         "uniq": "^1.0.1"
       }
@@ -9387,6 +9472,17 @@
         }
       }
     },
+    "sanitize-html": {
+      "version": "1.27.3",
+      "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.3.tgz",
+      "integrity": "sha512-79tcPlgJ3fuK0/TtUCIBdPeQSvktTSTJP9O/dzrteaO98qw5UV6CATh3ZyPjUzv1LtNjHDlhbq9XOXiKf0zA1w==",
+      "requires": {
+        "htmlparser2": "^4.1.0",
+        "lodash": "^4.17.15",
+        "parse-srcset": "^1.0.2",
+        "postcss": "^7.0.27"
+      }
+    },
     "sass-graph": {
       "version": "2.2.5",
       "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
diff --git a/bigbluebutton-html5/package.json b/bigbluebutton-html5/package.json
index 5ea8c1f511e5049ad54348de480293df55c882dc..b6a0e4e4a552d0b3f0598410d5f07c6351c99c2a 100755
--- a/bigbluebutton-html5/package.json
+++ b/bigbluebutton-html5/package.json
@@ -49,9 +49,9 @@
     "langmap": "0.0.16",
     "lodash": "^4.17.19",
     "makeup-screenreader-trap": "0.0.5",
-    "meteor-node-stubs": "^0.4.1",
-    "node-sass": "^4.13.1",
-    "postcss-nested": "4.1.0",
+    "meteor-node-stubs": "^1.0.1",
+    "node-sass": "^4.14.1",
+    "postcss-nested": "4.2.3",
     "probe-image-size": "^4.1.1",
     "prop-types": "^15.7.2",
     "re-resizable": "^4.11.0",
@@ -73,6 +73,7 @@
     "react-virtualized": "^9.21.1",
     "reconnecting-websocket": "~v4.1.10",
     "redis": "~2.8.0",
+    "sanitize-html": "^1.27.1",
     "sdp-transform": "2.7.0",
     "string-hash": "~1.1.3",
     "tippy.js": "^5.1.3",
diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml
index 849b5dac29e8ff17f97afaac3792c4c87b400441..9828ce0f612ef5d03e2b412e90203c3801830232 100755
--- a/bigbluebutton-html5/private/config/settings.yml
+++ b/bigbluebutton-html5/private/config/settings.yml
@@ -94,6 +94,16 @@ public:
     packetLostThreshold: 10
   kurento:
     wsUrl: HOST
+    # Valid for video-provider. Time (ms) before its WS connection times out
+    # and tries to reconnect.
+    wsConnectionTimeout: 4000
+    cameraTimeouts:
+      # Base camera timeout: used as the camera *sharing* timeout and
+      # as the minimum camera subscribe reconnection timeout
+      baseTimeout: 15000
+      # Max timeout: used as the max camera subscribe reconnection timeout. Each
+      # subscribe reattempt increases the reconnection timer up to this
+      maxTimeout: 60000
     chromeDefaultExtensionKey: akgoaoikmbmhcopjgakkcepdgdgkjfbc
     chromeDefaultExtensionLink: https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc
     chromeExtensionKey: KEY
@@ -113,6 +123,12 @@ public:
         - window
         - screen
       firefoxScreenshareSource: window
+    # cameraProfiles is an array of:
+    # - id: profile identifier
+    #   name: human-readable profile name
+    #   bitrate
+    #   hidden: whether this profile will be hidden in the video preview dropdown
+    #   constraints: a video media constraints dictionary (without the video key)
     cameraProfiles:
       # id: unique identifier of the profile
       # name: name of the profile visible to users
@@ -125,6 +141,42 @@ public:
       #   # Examples:
       #   width: requested width of the camera stream
       #   frameRate: requested framerate
+      - id: low-u30
+        name: low-u30
+        bitrate: 30
+        hidden: true
+        constraints:
+          frameRate: 3
+      - id: low-u25
+        name: low-u25
+        bitrate: 40
+        hidden: true
+        constraints:
+          frameRate: 3
+      - id: low-u20
+        name: low-u20
+        bitrate: 50
+        hidden: true
+        constraints:
+          frameRate: 5
+      - id: low-u15
+        name: low-u15
+        bitrate: 70
+        hidden: true
+        constraints:
+          frameRate: 8
+      - id: low-u12
+        name: low-u12
+        bitrate: 90
+        hidden: true
+        constraints:
+          frameRate: 10
+      - id: low-u8
+        name: low-u8
+        bitrate: 100
+        hidden: true
+        constraints:
+          frameRate: 10
       - id: low
         name: Low quality
         default: false
@@ -147,6 +199,25 @@ public:
     enableListenOnly: true
     autoShareWebcam: false
     skipVideoPreview: false
+    # Entry `thresholds` is an array of:
+    # - threshold: minimum number of cameras being shared for profile to applied
+    #   profile: a camera profile id from the cameraProfiles configuration array
+    #            that will be applied to all cameras when threshold is hit
+    cameraQualityThresholds:
+      enabled: false
+      thresholds:
+        - threshold: 8
+          profile: low-u8
+        - threshold: 12
+          profile: low-u12
+        - threshold: 15
+          profile: low-u15
+        - threshold: 20
+          profile: low-u20
+        - threshold: 25
+          profile: low-u25
+        - threshold: 30
+          profile: low-u30
   pingPong:
     clearUsersInSeconds: 180
     pongTimeInSeconds: 15
@@ -209,6 +280,7 @@ public:
     callHangupMaximumRetries: 10
     echoTestNumber: 'echo'
     relayOnlyOnReconnect: false
+    listenOnlyCallTimeout: 15000
   stats:
     enabled: true
     interval: 2000
diff --git a/bigbluebutton-html5/private/locales/ar.json b/bigbluebutton-html5/private/locales/ar.json
index 91d7dbacd538526dbdd0192bf78470ae7a447a58..04499ff51d63c4f7082205bb83c2a5bbfd34f770 100644
--- a/bigbluebutton-html5/private/locales/ar.json
+++ b/bigbluebutton-html5/private/locales/ar.json
@@ -122,8 +122,6 @@
     "app.meeting.meetingTimeRemaining": "الوقت المتبقي للاجتماع: {0}",
     "app.meeting.meetingTimeHasEnded": "انتهى الوقت. سيتم إغلاق الاجتماع قريبًا",
     "app.meeting.endedMessage": "سيتم اعادة توجيهك الى الشاشة الرئيسية",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "يغلق الاجتماع في غضون دقيقة.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "تغلق الغرفة المفرقة في غضون دقيقة.",
     "app.presentation.hide": "إغفاء العرض",
     "app.presentation.notificationLabel": "العرض الحالي",
     "app.presentation.slideContent": "محتوى الشريحة",
@@ -260,7 +258,6 @@
     "app.leaveConfirmation.confirmLabel": "غادر",
     "app.leaveConfirmation.confirmDesc": "تسجيل خروجك من الاجتماع",
     "app.endMeeting.title": "إنهاء الاجتماع",
-    "app.endMeeting.description": "هل أنت متأكد من إنهاء الاجتماع الحالي؟",
     "app.endMeeting.yesLabel": "نعم",
     "app.endMeeting.noLabel": "لا",
     "app.about.title": "حول",
@@ -566,19 +563,6 @@
     "app.video.videoMenuDesc": "افتح القائمة المنسدلة لقائمة مقاطع الفيديو",
     "app.video.chromeExtensionError": "يجب عليك التثبيت",
     "app.video.chromeExtensionErrorLink": "هذا ملحق كروم",
-    "app.video.stats.title": "إحصائيات الاتصال",
-    "app.video.stats.packetsReceived": "تلقى الحزم",
-    "app.video.stats.packetsSent": "الحزم المرسلة",
-    "app.video.stats.packetsLost": "الحزم المفقودة",
-    "app.video.stats.bitrate": "معدل البت",
-    "app.video.stats.lostPercentage": "مجموع النسبة المفقودة",
-    "app.video.stats.lostRecentPercentage": "النسبة المفقودة الأخيرة",
-    "app.video.stats.dimensions": "الأبعاد",
-    "app.video.stats.codec": "التشفير",
-    "app.video.stats.decodeDelay": "تأخير فك التشفير",
-    "app.video.stats.rtt": "مدة الذهاب والإياب",
-    "app.video.stats.encodeUsagePercent": "تشفير الاستخدام",
-    "app.video.stats.currentDelay": "التأخير الحالي",
     "app.fullscreenButton.label": "جعل {0} على الشاشة الكاملة",
     "app.deskshare.iceConnectionStateError": "فشل الاتصال عند مشاركة الشاشة (خطأ ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "غير قادر على الاتصال بخادم الوسائط (خطأ 2000)",
diff --git a/bigbluebutton-html5/private/locales/az.json b/bigbluebutton-html5/private/locales/az.json
index 494874f2c4dab871ef4dca4edc69177f330d9bee..1a22e9e292a6779eba6f1772f292e85cf0cfb670 100644
--- a/bigbluebutton-html5/private/locales/az.json
+++ b/bigbluebutton-html5/private/locales/az.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "Görüş vaxtına {0} qalıb",
     "app.meeting.meetingTimeHasEnded": "Vaxt bitdi. Görüş tezliklə bağlanacaq.",
     "app.meeting.endedMessage": "Sizi ana səhifəyə yönləndiririk.",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Görüş bir dəqiqə içində bitəcək.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Fasilə bir dəqiqə içində bitəcək.",
     "app.presentation.hide": "Təqdimatı gizlət",
     "app.presentation.notificationLabel": "Mövcud təqdimat",
     "app.presentation.slideContent": "Slayd məzmunu",
@@ -259,7 +257,6 @@
     "app.leaveConfirmation.confirmLabel": "Tərk et",
     "app.leaveConfirmation.confirmDesc": "Sizi görüşdən çıxarır",
     "app.endMeeting.title": "Görüşü bitir",
-    "app.endMeeting.description": "Bu sessiyanı biirməyə əminsiniz?",
     "app.endMeeting.yesLabel": "Bəli",
     "app.endMeeting.noLabel": "Yox",
     "app.about.title": "Haqqında",
@@ -565,19 +562,6 @@
     "app.video.videoMenuDesc": "Video menu dropdown-unu aç",
     "app.video.chromeExtensionError": "Siz quraşdırmalısınız",
     "app.video.chromeExtensionErrorLink": "bu Chrome əlavəsi",
-    "app.video.stats.title": "Qoşulma statistikası",
-    "app.video.stats.packetsReceived": "Qəbul olunan paketlər",
-    "app.video.stats.packetsSent": "Göndərilmiş paketlər",
-    "app.video.stats.packetsLost": "İtirilmiş paketlər",
-    "app.video.stats.bitrate": "Bitreyt",
-    "app.video.stats.lostPercentage": "Total faiz itkisi",
-    "app.video.stats.lostRecentPercentage": "Təzəlikcə itki faizi",
-    "app.video.stats.dimensions": "Ölçülər",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Gecikməni dekod et",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "İstidəni enkod et",
-    "app.video.stats.currentDelay": "Mövcud gecikmə",
     "app.fullscreenButton.label": "{0} tam ekran et",
     "app.deskshare.iceConnectionStateError": "Ekranı paylaşarkən bağlantı kəsildi (ICE xəta 1108)",
     "app.sfu.mediaServerConnectionError2000": "Media serverə qoşulmaq alınmadı (xəta 2000)",
diff --git a/bigbluebutton-html5/private/locales/bg_BG.json b/bigbluebutton-html5/private/locales/bg_BG.json
index d7a129049a8e504802a0c42824a586aea40b858f..b54260ab2f9a004d48c242e2e0f6c063140bdabb 100644
--- a/bigbluebutton-html5/private/locales/bg_BG.json
+++ b/bigbluebutton-html5/private/locales/bg_BG.json
@@ -124,8 +124,6 @@
     "app.meeting.meetingTimeRemaining": "Оставащо време до края на срещата: {0}",
     "app.meeting.meetingTimeHasEnded": "Времето изтече: Скоро срещата ще приключи",
     "app.meeting.endedMessage": "Ще бъдете пренасочени към началния екран",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Срещата ще приклюочи след минута",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Екипнатат стая ще се затвори след минута",
     "app.presentation.hide": "Скрий презентацията",
     "app.presentation.notificationLabel": "Текуща презентация",
     "app.presentation.slideContent": "Съдържание на слайда",
@@ -260,7 +258,6 @@
     "app.leaveConfirmation.confirmLabel": "Напусни",
     "app.leaveConfirmation.confirmDesc": "Напускане на срещата",
     "app.endMeeting.title": "Край на срещата",
-    "app.endMeeting.description": "Сигурни ли сте че искате да приключите тази сесия?",
     "app.endMeeting.yesLabel": "Да",
     "app.endMeeting.noLabel": "Не",
     "app.about.title": "Относно",
@@ -546,16 +543,6 @@
     "app.video.videoMenuDesc": "Отвори падащото видео меню",
     "app.video.chromeExtensionError": "Трябва да инсталирате",
     "app.video.chromeExtensionErrorLink": "това Chrome разширение",
-    "app.video.stats.title": "Статистика на връзката",
-    "app.video.stats.packetsReceived": "Приети пакети",
-    "app.video.stats.packetsSent": "Изпратени пакети",
-    "app.video.stats.packetsLost": "Загуба на пакети",
-    "app.video.stats.bitrate": "Битрейт",
-    "app.video.stats.lostPercentage": "Общ % на загубите",
-    "app.video.stats.lostRecentPercentage": "Скорошен % на загубите",
-    "app.video.stats.dimensions": "Размери",
-    "app.video.stats.codec": "Кодек",
-    "app.video.stats.currentDelay": "Текущо забавяне",
     "app.fullscreenButton.label": "Покажи {0} на цял екран",
     "app.deskshare.iceConnectionStateError": "Проблем с връзката при споделяне на екрана (ICE грешка 1108)",
     "app.sfu.mediaServerConnectionError2000": "Връзката тс медия сървъра невъзможна (Грешка 2000)",
diff --git a/bigbluebutton-html5/private/locales/ca.json b/bigbluebutton-html5/private/locales/ca.json
index e734249c226b07ae2c99e9858cabf2c0c340a9c8..18cce65807782a84efbbd966d7211cbed45b2651 100644
--- a/bigbluebutton-html5/private/locales/ca.json
+++ b/bigbluebutton-html5/private/locales/ca.json
@@ -126,8 +126,6 @@
     "app.meeting.meetingTimeRemaining": "Temps restant de la reunió: {0}",
     "app.meeting.meetingTimeHasEnded": "Temps finalitzat. La reunió es tancarà aviat",
     "app.meeting.endedMessage": "Sereu redirigit/da a la pantalla d'inici",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "La reunió es tancará en un minut",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "El temps s'acabarà en un minut",
     "app.presentation.hide": "Amaga la presentaci",
     "app.presentation.notificationLabel": "Presentació actual",
     "app.presentation.slideContent": "Contingut de la diapositiva",
@@ -267,7 +265,6 @@
     "app.leaveConfirmation.confirmLabel": "Abandona",
     "app.leaveConfirmation.confirmDesc": "Desconnecta de la reunió",
     "app.endMeeting.title": "Finalitza la reunió",
-    "app.endMeeting.description": "Està segur/a que vol finalitzar aquesta sessió?",
     "app.endMeeting.yesLabel": "Sí",
     "app.endMeeting.noLabel": "No",
     "app.about.title": "Sobre...",
@@ -573,19 +570,6 @@
     "app.video.videoMenuDesc": "Obre el menú desplegable de vídeo",
     "app.video.chromeExtensionError": "Heu d'instal·lar",
     "app.video.chromeExtensionErrorLink": "aquesta extensió de Chrome",
-    "app.video.stats.title": "Estadístiques de connexió",
-    "app.video.stats.packetsReceived": "Paquets rebuts",
-    "app.video.stats.packetsSent": "Paquets enviats",
-    "app.video.stats.packetsLost": "Paquets perduts",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Percentatge total perdut",
-    "app.video.stats.lostRecentPercentage": "Percentatge recent perdut.",
-    "app.video.stats.dimensions": "Dimensions",
-    "app.video.stats.codec": "Códec",
-    "app.video.stats.decodeDelay": "Decode delay",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Codifica l'ús",
-    "app.video.stats.currentDelay": "Delay actual",
     "app.fullscreenButton.label": "Fer {0} a pantalla completa",
     "app.deskshare.iceConnectionStateError": "La connexió ha fallat en compartir (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "Incapaç de connectar-se al servidor de mitjans (error 2000)",
diff --git a/bigbluebutton-html5/private/locales/cs_CZ.json b/bigbluebutton-html5/private/locales/cs_CZ.json
index 87529d4edadde7600ea217f51cc9f9b4149f555b..e8e1d8a995e4f964f7766ff3b4d23a76d85cb883 100644
--- a/bigbluebutton-html5/private/locales/cs_CZ.json
+++ b/bigbluebutton-html5/private/locales/cs_CZ.json
@@ -124,8 +124,6 @@
     "app.meeting.meetingTimeRemaining": "Čas zbývající do konce setkání: {0}",
     "app.meeting.meetingTimeHasEnded": "Čas setkání vypršel. Setkání bude za okamžik ukončeno.",
     "app.meeting.endedMessage": "Budete přesměrováni zpět na úvodní obrazovku",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Setkání bude ukončeno během minuty.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Vedlejší místnost bude ukončena během minuty.",
     "app.presentation.hide": "Skrýt prezentaci",
     "app.presentation.notificationLabel": "Současná prezentace",
     "app.presentation.slideContent": "Obsah stránky prezentac",
@@ -265,7 +263,6 @@
     "app.leaveConfirmation.confirmLabel": "Opustit",
     "app.leaveConfirmation.confirmDesc": "Opuštění tohoto setkání",
     "app.endMeeting.title": "Ukončit setkání",
-    "app.endMeeting.description": "Jste si jist, že chcete ukončit toto setkání?",
     "app.endMeeting.yesLabel": "Ano, ukončit",
     "app.endMeeting.noLabel": "Ne",
     "app.about.title": "O aplikaci",
@@ -571,19 +568,6 @@
     "app.video.videoMenuDesc": "Otevřít video menu",
     "app.video.chromeExtensionError": "Musíte nainstalovat",
     "app.video.chromeExtensionErrorLink": "toto rozšíření Chrome",
-    "app.video.stats.title": "Stav připojení",
-    "app.video.stats.packetsReceived": "Paketů přijato",
-    "app.video.stats.packetsSent": "Paketů odesláno",
-    "app.video.stats.packetsLost": "Paketů ztraceno",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Procento ztracených",
-    "app.video.stats.lostRecentPercentage": "Procento naposledy ztracených",
-    "app.video.stats.dimensions": "Rozměry",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Zpoždění při dekódování",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Využití enkodéru",
-    "app.video.stats.currentDelay": "Aktuální zpoždění",
     "app.fullscreenButton.label": "Nastavit {0} na celou obrazovku",
     "app.deskshare.iceConnectionStateError": "Chyba 1108: ICE spojení selhalo při sdílení obrazovky",
     "app.sfu.mediaServerConnectionError2000": "Chyba 2000: Nelze se připojit k media serveru",
diff --git a/bigbluebutton-html5/private/locales/da.json b/bigbluebutton-html5/private/locales/da.json
index cf5cebb1748afe9c7e19782acd39b5be8bb86031..4e5fb06ee1bd276dd285014acef037167bec8ddc 100644
--- a/bigbluebutton-html5/private/locales/da.json
+++ b/bigbluebutton-html5/private/locales/da.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "Resterende mødetid: {0}",
     "app.meeting.meetingTimeHasEnded": "Tiden sluttede. Mødet afsluttes snart",
     "app.meeting.endedMessage": "Du videresendes tilbage til startskærmen",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Mødet afsluttes om et minut.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout lukker om et minut.",
     "app.presentation.hide": "Skjul præsentation",
     "app.presentation.notificationLabel": "Aktuel præsentation",
     "app.presentation.slideContent": "Slide-indhold",
@@ -255,7 +253,6 @@
     "app.leaveConfirmation.confirmLabel": "Forlad",
     "app.leaveConfirmation.confirmDesc": "Logger dig ud af mødet",
     "app.endMeeting.title": "Afslut møde",
-    "app.endMeeting.description": "Er du sikker på du vil afslutte denne session?",
     "app.endMeeting.yesLabel": "Ja",
     "app.endMeeting.noLabel": "Nej",
     "app.about.title": "Om",
@@ -547,19 +544,6 @@
     "app.video.videoMenuDesc": "Ã…ben video dropdown menu",
     "app.video.chromeExtensionError": "Installer venligst",
     "app.video.chromeExtensionErrorLink": "denne Google Chrome tilføjelse",
-    "app.video.stats.title": "Forbindelsesstatus",
-    "app.video.stats.packetsReceived": "Pakker modtaget",
-    "app.video.stats.packetsSent": "Pakker sendt",
-    "app.video.stats.packetsLost": "Pakker tabt",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Total procentdel tabt",
-    "app.video.stats.lostRecentPercentage": "Seneste procentdel tabt",
-    "app.video.stats.dimensions": "Dimensioner ",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Afkodnings forsinkelse",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Encode brug",
-    "app.video.stats.currentDelay": "Nuværende forsinkelse ",
     "app.fullscreenButton.label": "Gør {0} fuld skærm",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Afstemningsresultaterne er udgivet",
diff --git a/bigbluebutton-html5/private/locales/de.json b/bigbluebutton-html5/private/locales/de.json
index b39088e172b7ff49ae4a40cfa2d2d21a0e73d0ff..2e15d49ab0fcbb9563dd68e44e4b8563650d361c 100644
--- a/bigbluebutton-html5/private/locales/de.json
+++ b/bigbluebutton-html5/private/locales/de.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Verbleibende Konferenzzeit: {0}",
     "app.meeting.meetingTimeHasEnded": "Die Zeit ist abgelaufen. Die Konferenz wird in Kürze beendet",
     "app.meeting.endedMessage": "Sie werden zum Startbildschirm weitergeleitet",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Die Konferenz wird in einer Minute beendet.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout-Sitzung wird in einer Minute beendet.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Die Konferenz endet in einer Minute.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Die Konferenz endet in {0} Minuten.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Breakout-Sitzung endet in {0} Minuten.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Breakout-Sitzung endet in einer Minute.",
     "app.presentation.hide": "Präsentation verbergen",
     "app.presentation.notificationLabel": "Aktuelle Präsentation",
     "app.presentation.slideContent": "Folieninhalt",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Verlassen",
     "app.leaveConfirmation.confirmDesc": "Hiermit verlassen Sie Konferenz",
     "app.endMeeting.title": "Konferenz beenden",
-    "app.endMeeting.description": "Sind Sie sicher, dass Sie die Konferenz beenden wollen?",
+    "app.endMeeting.description": "Sind Sie sicher, dass Sie diese Konferenz für alle beenden wollen (die Verbindung aller Teilnehmer wird getrennt)?",
     "app.endMeeting.yesLabel": "Ja",
     "app.endMeeting.noLabel": "Nein",
     "app.about.title": "Versionsinfo",
@@ -290,8 +292,8 @@
     "app.submenu.application.animationsLabel": "Animationen",
     "app.submenu.application.audioAlertLabel": "Audiowarnungen für Chat",
     "app.submenu.application.pushAlertLabel": "Popupwarnungen für Chat",
-    "app.submenu.application.userJoinAudioAlertLabel": "Audiowarnton wenn neue Teilnehmer den Raum betreten",
-    "app.submenu.application.userJoinPushAlertLabel": "Popupnachricht wenn neue Teilnehmer den Raum betreten",
+    "app.submenu.application.userJoinAudioAlertLabel": "Audiowarnton, wenn neue Teilnehmer den Raum betreten",
+    "app.submenu.application.userJoinPushAlertLabel": "Popupnachricht, wenn neue Teilnehmer den Raum betreten",
     "app.submenu.application.fontSizeControlLabel": "Schriftgröße",
     "app.submenu.application.increaseFontBtnLabel": "Schriftgröße erhöhen",
     "app.submenu.application.decreaseFontBtnLabel": "Schriftgröße verringern",
@@ -544,6 +546,9 @@
     "app.videoPreview.closeLabel": "Schließen",
     "app.videoPreview.findingWebcamsLabel": "Suche Webcams",
     "app.videoPreview.startSharingLabel": "Freigabe starten",
+    "app.videoPreview.stopSharingLabel": "Teilen beenden",
+    "app.videoPreview.stopSharingAllLabel": "Alles beenden",
+    "app.videoPreview.sharedCameraLabel": "Die Kamera wird bereits geteilt",
     "app.videoPreview.webcamOptionLabel": "Webcam auswählen",
     "app.videoPreview.webcamPreviewLabel": "Webcamvorschau",
     "app.videoPreview.webcamSettingsTitle": "Webcameinstellungen",
@@ -573,19 +578,6 @@
     "app.video.videoMenuDesc": "Videomenü öffnen",
     "app.video.chromeExtensionError": "Sie müssen Folgendes installieren:",
     "app.video.chromeExtensionErrorLink": "diese Chrome Erweiterung",
-    "app.video.stats.title": "Verbindungsstatistiken",
-    "app.video.stats.packetsReceived": "Empfangene Pakete",
-    "app.video.stats.packetsSent": "Gesendete Pakete",
-    "app.video.stats.packetsLost": "Verlorene Pakete",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Verlustprozente insgesamt",
-    "app.video.stats.lostRecentPercentage": "Verlustprozente kürzlich",
-    "app.video.stats.dimensions": "Dimensionen",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Dekodierungsverzögerung",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Enkodierungsnutzung",
-    "app.video.stats.currentDelay": "Aktuelle Verzögerung",
     "app.fullscreenButton.label": "{0} zum Vollbild machen",
     "app.deskshare.iceConnectionStateError": "Verbindungsfehler beim Teilen des Bildschirms (Fehler 1108)",
     "app.sfu.mediaServerConnectionError2000": "Keine Verbindung zum Medienserver (Fehler 2000)",
@@ -599,6 +591,7 @@
     "app.sfu.noAvailableCodec2203": "Server konnte keinen passenden Code finden (Fehler 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Umfrageergebnisse wurden veröffentlicht",
+    "app.whiteboard.annotations.pollResult": "Umfrageergebnis",
     "app.whiteboard.toolbar.tools": "Werkzeuge",
     "app.whiteboard.toolbar.tools.hand": "Verschieben",
     "app.whiteboard.toolbar.tools.pencil": "Stift",
diff --git a/bigbluebutton-html5/private/locales/el_GR.json b/bigbluebutton-html5/private/locales/el_GR.json
index d327abb999b9ec21e42291c7358edd189a05a4c3..a3fa1a0edb633a68c5192560a6779f6e79153be8 100644
--- a/bigbluebutton-html5/private/locales/el_GR.json
+++ b/bigbluebutton-html5/private/locales/el_GR.json
@@ -112,8 +112,6 @@
     "app.meeting.meetingTimeRemaining": "Χρόνος συνεδρίας που απομένει: {0}",
     "app.meeting.meetingTimeHasEnded": "Ο χρόνος τελείωσε.  Η συνεδρία θα κλείσει σύντομα",
     "app.meeting.endedMessage": "Θα μεταφερθείτε πίσω στην αρχική σας σελίδα",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Η συνεδρία θα κλείσει σε ένα λεπτό.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Ο διαχωρισμός θα κλείσει σε ένα λεπτό",
     "app.presentation.hide": "Απόκρυψη παρουσίασης",
     "app.presentation.notificationLabel": "Τρέχουσα παρουσίαση",
     "app.presentation.slideContent": "Περιεχόμενα διαφάνειας",
@@ -220,7 +218,6 @@
     "app.leaveConfirmation.confirmLabel": "Αποχώρηση",
     "app.leaveConfirmation.confirmDesc": "Σας αποσυνδέει από αυτή τη συνεδρία",
     "app.endMeeting.title": "Τερματισμός συνεδρίας",
-    "app.endMeeting.description": "Είστε σίγουροι ότι θέλετε να τερματίσετε αυτή τη σύνοδο;",
     "app.endMeeting.yesLabel": "Ναι",
     "app.endMeeting.noLabel": "Όχι",
     "app.about.title": "Περί",
@@ -415,9 +412,6 @@
     "app.video.videoMenuDesc": "Άνοιγμα αναπτυσσόμενης λίστας βίντεο",
     "app.video.chromeExtensionError": "Πρέπει να εγκαταστήσετε",
     "app.video.chromeExtensionErrorLink": "αυτή την επέκταση Chrome",
-    "app.video.stats.title": "Στατιστικά σύνδεσης",
-    "app.video.stats.dimensions": "Διαστάσεις",
-    "app.video.stats.currentDelay": "Τρέχουσα καθυστέρηση",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.toolbar.tools": "Εργαλεία",
     "app.whiteboard.toolbar.tools.hand": "Pan",
diff --git a/bigbluebutton-html5/private/locales/en.json b/bigbluebutton-html5/private/locales/en.json
index 6457c594cfa6569e39707a0050bfc0056961db27..f73dbe331ed48c0fe2b7983e9a908de1cf68f149 100755
--- a/bigbluebutton-html5/private/locales/en.json
+++ b/bigbluebutton-html5/private/locales/en.json
@@ -606,19 +606,6 @@
     "app.video.videoMenuDesc": "Open video menu dropdown",
     "app.video.chromeExtensionError": "You must install",
     "app.video.chromeExtensionErrorLink": "this Chrome extension",
-    "app.video.stats.title": "Connection Stats",
-    "app.video.stats.packetsReceived": "Packets received",
-    "app.video.stats.packetsSent": "Packets sent",
-    "app.video.stats.packetsLost": "Packets lost",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Total percentage lost",
-    "app.video.stats.lostRecentPercentage": "Recent percentage lost",
-    "app.video.stats.dimensions": "Dimensions",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Decode delay",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Encode usage",
-    "app.video.stats.currentDelay": "Current delay",
     "app.fullscreenButton.label": "Make {0} fullscreen",
     "app.deskshare.iceConnectionStateError": "Connection failed when sharing screen (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "Unable to connect to media server (error 2000)",
@@ -631,7 +618,8 @@
     "app.sfu.invalidSdp2202":"Client generated an invalid media request (SDP error 2202)",
     "app.sfu.noAvailableCodec2203": "Server could not find an appropriate codec (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
-    "app.whiteboard.annotations.poll": "Poll results were published to Public Chat and Whiteboard",
+    "app.whiteboard.annotations.poll": "Poll results were published",
+    "app.whiteboard.annotations.pollResult": "Poll Result",
     "app.whiteboard.toolbar.tools": "Tools",
     "app.whiteboard.toolbar.tools.hand": "Pan",
     "app.whiteboard.toolbar.tools.pencil": "Pencil",
diff --git a/bigbluebutton-html5/private/locales/eo.json b/bigbluebutton-html5/private/locales/eo.json
new file mode 100644
index 0000000000000000000000000000000000000000..c0ef496956f7dee44e87fa742b645f1c4fd9e579
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/eo.json
@@ -0,0 +1,680 @@
+{
+    "app.home.greeting": "Via prezentaĵo komenciĝos baldaŭ ...",
+    "app.chat.submitLabel": "Sendi mesaĝon",
+    "app.chat.errorMaxMessageLength": "La mesaĝo estas tro longa je {0} signo(j)",
+    "app.chat.disconnected": "Vi malkonektiĝis, mesaĝoj ne sendeblas",
+    "app.chat.locked": "La babilejo estas ŝlosita, mesaĝoj ne sendeblas",
+    "app.chat.inputLabel": "Tajpu mesaĝon por {0}",
+    "app.chat.inputPlaceholder": "Sendi mesaĝon al {0}",
+    "app.chat.titlePublic": "Publika babilejo",
+    "app.chat.titlePrivate": "Privata babilejo kun {0}",
+    "app.chat.partnerDisconnected": "{0} forlasis la kunsidon",
+    "app.chat.closeChatLabel": "Fermi {0}",
+    "app.chat.hideChatLabel": "Kaŝi {0}",
+    "app.chat.moreMessages": "Pli da mesaĝoj sube",
+    "app.chat.dropdown.options": "Babilaj agordoj",
+    "app.chat.dropdown.clear": "Viŝi",
+    "app.chat.dropdown.copy": "Kopii",
+    "app.chat.dropdown.save": "Konservi",
+    "app.chat.label": "Babilejo",
+    "app.chat.offline": "Nekonektite",
+    "app.chat.emptyLogLabel": "Babilprotokolo malplenas",
+    "app.chat.clearPublicChatMessage": "La publikan babilhistorion viŝis administranto",
+    "app.chat.multi.typing": "Pluraj uzantoj tajpas",
+    "app.chat.one.typing": "{0} tajpas",
+    "app.chat.two.typing": "{0} kaj {1} tajpas",
+    "app.captions.label": "Subtekstoj",
+    "app.captions.menu.close": "Fermi",
+    "app.captions.menu.start": "Komenci",
+    "app.captions.menu.ariaStart": "Komencu skribi subtekston",
+    "app.captions.menu.ariaStartDesc": "Malfermas subtekstredaktilon kaj fermas la dialogon",
+    "app.captions.menu.select": "Elektu disponeblan lingvon",
+    "app.captions.menu.ariaSelect": "Lingvo de subtekstoj",
+    "app.captions.menu.subtitle": "Bonvolu elekti lingvon kaj stilon por subtekstoj en via seanco.",
+    "app.captions.menu.title": "Subtekstoj",
+    "app.captions.menu.fontSize": "Grando",
+    "app.captions.menu.fontColor": "Tekstkoloro",
+    "app.captions.menu.fontFamily": "Tiparo",
+    "app.captions.menu.backgroundColor": "Fonkoloro",
+    "app.captions.menu.previewLabel": "Antaŭmontraĵo",
+    "app.captions.menu.cancelLabel": "Nuligi",
+    "app.captions.pad.hide": "Kaŝi subtekstojn",
+    "app.captions.pad.tip": "Premu Esc por enfokusigi la redaktilan ilobreton",
+    "app.captions.pad.ownership": "Transpreni",
+    "app.captions.pad.ownershipTooltip": "Vi fariĝos posedanto de {0} subtekstoj",
+    "app.captions.pad.interimResult": "Intertempaj rezultoj",
+    "app.captions.pad.dictationStart": "Komenci dikti",
+    "app.captions.pad.dictationStop": "Ĉesi dikti",
+    "app.captions.pad.dictationOnDesc": "Åœaltas parolrekonon",
+    "app.captions.pad.dictationOffDesc": "Malŝaltas parolrekonon",
+    "app.note.title": "Komunigitaj notoj",
+    "app.note.label": "Noto",
+    "app.note.hideNoteLabel": "Kaŝi noton",
+    "app.user.activityCheck": "Kontroli aktivecon de uzanto",
+    "app.user.activityCheck.label": "Kontroli, ĉu uzanto ankoraŭ estas en kunsido ({0})",
+    "app.user.activityCheck.check": "Kontroli",
+    "app.note.tipLabel": "Premu Esc por enfokusigi la redaktilan ilobreton",
+    "app.userList.usersTitle": "Uzantoj",
+    "app.userList.participantsTitle": "Partoprenantoj",
+    "app.userList.messagesTitle": "Mesaĝoj",
+    "app.userList.notesTitle": "Notoj",
+    "app.userList.notesListItem.unreadContent": "Nova enhavo estas disponebla en la sekcio pri komunigitaj notoj",
+    "app.userList.captionsTitle": "Subtekstoj",
+    "app.userList.presenter": "Prezentanto",
+    "app.userList.you": "Vi",
+    "app.userList.locked": "Åœlosite",
+    "app.userList.byModerator": "de (Administranto)",
+    "app.userList.label": "Listo de uzantoj",
+    "app.userList.toggleCompactView.label": "(Mal)ŝaltas kompaktan vidreĝimon",
+    "app.userList.guest": "Gasto",
+    "app.userList.menuTitleContext": "Disponeblaj opcioj",
+    "app.userList.chatListItem.unreadSingular": "{0} Nova Mesaĝo",
+    "app.userList.chatListItem.unreadPlural": "{0} Novaj Mesaĝoj",
+    "app.userList.menu.chat.label": "Komenci privatan babiladon",
+    "app.userList.menu.clearStatus.label": "Viŝi staton",
+    "app.userList.menu.removeUser.label": "Forigi uzanton",
+    "app.userList.menu.removeConfirmation.label": "Forigi uzanton ({0})",
+    "app.userlist.menu.removeConfirmation.desc": "Preventas, ke ĉi tiu uzanto povu reeniri la seancon.",
+    "app.userList.menu.muteUserAudio.label": "Silentigi uzanton",
+    "app.userList.menu.unmuteUserAudio.label": "Malsilentigi uzanton",
+    "app.userList.userAriaLabel": "{0} {1} {2}  Stato {3}",
+    "app.userList.menu.promoteUser.label": "Promocii al administranto",
+    "app.userList.menu.demoteUser.label": "Malpromocii al spektanto",
+    "app.userList.menu.unlockUser.label": "Malŝlosi {0}",
+    "app.userList.menu.lockUser.label": "Åœlosi {0}",
+    "app.userList.menu.directoryLookup.label": "Informa Serĉado",
+    "app.userList.menu.makePresenter.label": "Fari prezentanto",
+    "app.userList.userOptions.manageUsersLabel": "Administri uzantojn",
+    "app.userList.userOptions.muteAllLabel": "Silentigi ĉiujn uzantojn",
+    "app.userList.userOptions.muteAllDesc": "Silentigas ĉiujn uzantojn en la kunsido",
+    "app.userList.userOptions.clearAllLabel": "Viŝi ĉiujn statpiktogramojn",
+    "app.userList.userOptions.clearAllDesc": "Viŝas ĉiujn statpiktogramojn de la uzantoj",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Silentigi ĉiujn uzantojn krom la prezentanton",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Silentigas ĉiujn uzantojn en la kunsido escepte de la prezentanto",
+    "app.userList.userOptions.unmuteAllLabel": "Malŝalti kunsidan silentigadon",
+    "app.userList.userOptions.unmuteAllDesc": "Malsilentigas la kunsidon",
+    "app.userList.userOptions.lockViewersLabel": "Limigi rajtojn de spektantoj",
+    "app.userList.userOptions.lockViewersDesc": "Limigas certajn funkciojn de ĉeestantoj de la kunsido",
+    "app.userList.userOptions.disableCam": "La kameraoj de spektantoj estas malebligitaj",
+    "app.userList.userOptions.disableMic": "La mikrofonoj de spektantoj estas malebligitaj",
+    "app.userList.userOptions.disablePrivChat": "Privata babilado estas malebligita",
+    "app.userList.userOptions.disablePubChat": "Publika babilado estas malebligita",
+    "app.userList.userOptions.disableNote": "Komunigitaj notoj estas nun malebligitaj",
+    "app.userList.userOptions.hideUserList": "La listo de uzantoj estas nun kaŝita al spektantoj",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Nur administrantoj povas vidi la kameraojn de spektantoj (pro ŝlosaj agordoj)",
+    "app.userList.content.participants.options.clearedStatus": "La stato de ĉiuj uzantoj estas viŝita",
+    "app.userList.userOptions.enableCam": "La kameraoj de spektantoj estas ebligitaj",
+    "app.userList.userOptions.enableMic": "La mikrofonoj de spektantoj estas ebligitaj",
+    "app.userList.userOptions.enablePrivChat": "Privata babilado estas ebligita",
+    "app.userList.userOptions.enablePubChat": "Publika babilado estas ebligita",
+    "app.userList.userOptions.enableNote": "Komunigitaj notoj estas nun ebligitaj",
+    "app.userList.userOptions.showUserList": "La listo de uzantoj nun videblas al spektantoj",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Vi nun povas ŝalti vian kameraon; vi videblos al ĉiuj",
+    "app.media.label": "Aŭdvidaĵoj",
+    "app.media.autoplayAlertDesc": "Permesi aliron",
+    "app.media.screenshare.start": "Ekrankundivido komenciĝis",
+    "app.media.screenshare.end": "Ekrankundivido finiĝis",
+    "app.media.screenshare.unavailable": "Ekrankundivido ne estas disponebla",
+    "app.media.screenshare.notSupported": "Via retumilo ne subtenas ekrankundividon.",
+    "app.media.screenshare.autoplayBlockedDesc": "Ni bezonas vian permeson por montri al vi la ekranon de la prezentanto.",
+    "app.media.screenshare.autoplayAllowLabel": "Rigardi kundividatan ekranon",
+    "app.screenshare.notAllowed": "Eraro: Vi ne ricevis permeson aliri la ekranon.",
+    "app.screenshare.notSupportedError": "Eraro: Ekrankundivido estas permesata nur sur sekuraj (SSL) domajnoj",
+    "app.screenshare.notReadableError": "Eraro: Registri vian ekranon malsukcesis",
+    "app.screenshare.genericError": "Eraro: Okazis eraro pri kundividado de ekrano. Bonvolu reprovi",
+    "app.meeting.ended": "Ĉi tiu seanco finiĝis",
+    "app.meeting.meetingTimeRemaining": "Restanta tempo de la kunsido: {0}",
+    "app.meeting.meetingTimeHasEnded": "Ne plu restas tempo. La kunsido baldaŭ fermiĝos",
+    "app.meeting.endedMessage": "Vi estos resendata al la komenca ekrano",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "La kunsido fermiĝos post minuto.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "La kunsido fermiĝos post {0} minutoj.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Apartigitado fermiĝos post {0} minuto.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Apartigitado fermiĝos post unu minuto.",
+    "app.presentation.hide": "Kaŝi prezentaĵon",
+    "app.presentation.notificationLabel": "Nuna prezentaĵo",
+    "app.presentation.slideContent": "Lumbilda enhavo",
+    "app.presentation.startSlideContent": "Komenco de lumbilda enhavo",
+    "app.presentation.endSlideContent": "Fino de lumbilda enhavo",
+    "app.presentation.emptySlideContent": "Neniu enhavo por nuna lumbildo",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Fino de prezentaĵo",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Komenco de prezentaĵo",
+    "app.presentation.presentationToolbar.selectLabel": "Elektu lumbildon",
+    "app.presentation.presentationToolbar.prevSlideLabel": "AntaÅ­a lumbildo",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Ŝanĝas la prezentaĵon al la antaŭa lumbildo",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Sekva lumbildo",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Ŝanĝas la prezentaĵon al la sekva lumbildo",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Pretersalti al lumbildo",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Ŝanĝas la prezentaĵon al specifa lumbildo",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Adapti laŭ larĝo",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Vidigas la tutan larĝon de la lumbildo",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Adapti al ekrano",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Vidigas la tutan lumbildon",
+    "app.presentation.presentationToolbar.zoomLabel": "Zomo",
+    "app.presentation.presentationToolbar.zoomDesc": "Ŝanĝas la zomnivelon de la prezentaĵo",
+    "app.presentation.presentationToolbar.zoomInLabel": "Zomi",
+    "app.presentation.presentationToolbar.zoomInDesc": "Zomas al la prezentaĵo",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Malzomi",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Malzomas de la prezentaĵo",
+    "app.presentation.presentationToolbar.zoomReset": "DefaÅ­ltigi zomnivelon",
+    "app.presentation.presentationToolbar.zoomIndicator": "Nuna zom-elcentaĵo",
+    "app.presentation.presentationToolbar.fitToWidth": "Adapti laŭ larĝo",
+    "app.presentation.presentationToolbar.fitToPage": "Adapti al paĝo",
+    "app.presentation.presentationToolbar.goToSlide": "Lumbildo {0}",
+    "app.presentationUploder.title": "Prezentaĵo",
+    "app.presentationUploder.message": "Estante prezentanto, vi havas la kapablon alŝuti ajnajn Office-dokumenton aŭ PDF-dosieron. Ni rekomendas PDF por la plej bona rezulto. Bonvolu certigi, ke prezentaĵo estu elektita per la cirkla elektbutono dekstre.",
+    "app.presentationUploder.uploadLabel": "Alŝuti",
+    "app.presentationUploder.confirmLabel": "Konfirmi",
+    "app.presentationUploder.confirmDesc": "Konservas viajn ŝanĝojn kaj komencas la prezentaĵon",
+    "app.presentationUploder.dismissLabel": "Nuligi",
+    "app.presentationUploder.dismissDesc": "Fermas la dialogon kaj forigas viajn ŝanĝojn",
+    "app.presentationUploder.dropzoneLabel": "Ŝovu dosierojn ĉi tien por alŝuti",
+    "app.presentationUploder.dropzoneImagesLabel": "Ŝovu bildojn ĉi tien por alŝuti",
+    "app.presentationUploder.browseFilesLabel": "aÅ­ foliumu dosierojn",
+    "app.presentationUploder.browseImagesLabel": "aÅ­ foliumu/fotu bildojn",
+    "app.presentationUploder.fileToUpload": "Alŝutota ...",
+    "app.presentationUploder.currentBadge": "Nuna",
+    "app.presentationUploder.rejectedError": "La elektita(j) dosiero(j) estis rifuzita(j). Bonvolu kontroli la dosierspeco(j)n.",
+    "app.presentationUploder.upload.progress": "Alŝutante ({0}%)",
+    "app.presentationUploder.upload.413": "La dosiero estas tro granda. Bonvolu disigi ĝin en plurajn dosierojn.",
+    "app.presentationUploder.upload.408": "Tempolimo de peto pri alŝuta ĵetono.",
+    "app.presentationUploder.upload.404": "404: Nevalida alŝuta ĵetono",
+    "app.presentationUploder.upload.401": "Malsukcesis peto pri prezenta alŝuta ĵetono.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Traktante paĝon {0} el {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "Konvertante dosieron ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Generante miniaturojn ...",
+    "app.presentationUploder.conversion.generatedSlides": "Lumbildoj generiĝis ...",
+    "app.presentationUploder.conversion.generatingSvg": "Generante SVG-bildojn ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Estas tro da paĝoj. Bonvolu disigi la dosieron en plurajn dosierojn.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Malsukcesis trakti Office-dokumenton. Bonvolu anstataŭe alŝuti PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Malsukcesis trakti Office-dokumenton. Bonvolu anstataŭe alŝuti PDF.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Ni ne povis konverti la PDF-dosieron, bonvolu provi optimumigi ĝin",
+    "app.presentationUploder.conversion.timeout": "Ups, la konvertado daÅ­ris tro longe",
+    "app.presentationUploder.conversion.pageCountFailed": "Malsukcesis determini la kvanton de paĝoj.",
+    "app.presentationUploder.isDownloadableLabel": "Malpermesi elŝutadon de la prezentaĵo",
+    "app.presentationUploder.isNotDownloadableLabel": "Permesi elŝutadon de la prezentaĵo",
+    "app.presentationUploder.removePresentationLabel": "Forigi la prezentaĵon",
+    "app.presentationUploder.setAsCurrentPresentation": "Igi la prezentaĵon la nuna",
+    "app.presentationUploder.tableHeading.filename": "Dosiernomo",
+    "app.presentationUploder.tableHeading.options": "Opcioj",
+    "app.presentationUploder.tableHeading.status": "Stato",
+    "app.poll.pollPaneTitle": "Enketado",
+    "app.poll.quickPollTitle": "Rapida enketo",
+    "app.poll.hidePollDesc": "Kaŝas la enketmenuon",
+    "app.poll.customPollInstruction": "Por krei memfaritan enketon, elektu la suban butonon kaj enmetu viajn opciojn.",
+    "app.poll.quickPollInstruction": "Elektu opcion sube por komenci vian enketon.",
+    "app.poll.customPollLabel": "Memfarita enketo",
+    "app.poll.startCustomLabel": "Komenci memfaritan enketon",
+    "app.poll.activePollInstruction": "Lasu ĉi tiun panelon malfermita por vidi realtempajn respondojn al via enketo. Kiam vi pretas, elektu 'Publikigi enketrezultojn' por publikigi la rezultojn kaj fini la enketon.",
+    "app.poll.publishLabel": "Publikigi enketrezultojn",
+    "app.poll.backLabel": "Reen al enketopcioj",
+    "app.poll.closeLabel": "Fermi",
+    "app.poll.waitingLabel": "Atendante respondojn ({0}/{1})",
+    "app.poll.ariaInputCount": "Opcio {0} el {1} de memfarita enketo",
+    "app.poll.customPlaceholder": "Aldoni enketopcion",
+    "app.poll.noPresentationSelected": "Neniu prezentaĵo elektita! Bonvolu elekti unu.",
+    "app.poll.clickHereToSelect": "Klaku ĉi tien por elekti",
+    "app.poll.t": "Vera",
+    "app.poll.f": "Malvera",
+    "app.poll.tf": "Vera / Malvera",
+    "app.poll.y": "Jes",
+    "app.poll.n": "Ne",
+    "app.poll.yn": "Jes / Ne",
+    "app.poll.a2": "A / B",
+    "app.poll.a3": "A / B / C",
+    "app.poll.a4": "A / B / C / D",
+    "app.poll.a5": "A / B / C / D / E",
+    "app.poll.answer.true": "Vera",
+    "app.poll.answer.false": "Malvera",
+    "app.poll.answer.yes": "Jes",
+    "app.poll.answer.no": "Ne",
+    "app.poll.answer.a": "A",
+    "app.poll.answer.b": "B",
+    "app.poll.answer.c": "C",
+    "app.poll.answer.d": "D",
+    "app.poll.answer.e": "E",
+    "app.poll.liveResult.usersTitle": "Uzantoj",
+    "app.poll.liveResult.responsesTitle": "Respondo",
+    "app.polling.pollingTitle": "Enketopcioj",
+    "app.polling.pollAnswerLabel": "Enketrespondo {0}",
+    "app.polling.pollAnswerDesc": "Elektu ĉi tiun opcion por voĉdoni por {0}",
+    "app.failedMessage": "Pardonon, okazis problemo konektiĝi kun la servilo.",
+    "app.downloadPresentationButton.label": "Elŝuti la originalan prezentaĵon",
+    "app.connectingMessage": "Konektiĝante ...",
+    "app.waitingMessage": "Malkonektite. Reprovos konektiĝi post {0} sekundo(j)n ...",
+    "app.retryNow": "Reprovi nun",
+    "app.navBar.settingsDropdown.optionsLabel": "Opcioj",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Fari plenekrana",
+    "app.navBar.settingsDropdown.settingsLabel": "Agordoj",
+    "app.navBar.settingsDropdown.aboutLabel": "Pri",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Elsaluti",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Eliri el plenekrana reĝimo",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Fari la menuon de agordoj plenekrana",
+    "app.navBar.settingsDropdown.settingsDesc": "Ŝanĝi la ĝeneralajn agordojn",
+    "app.navBar.settingsDropdown.aboutDesc": "Montri informojn pri la kliento",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Forlasi la kunsidon",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Eliri el plenekrana reĝimo",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Fulmklavoj",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Listo de disponeblaj fulmklavoj",
+    "app.navBar.settingsDropdown.helpLabel": "Helpo",
+    "app.navBar.settingsDropdown.helpDesc": "Sendas la uzanton al filmetaj instruiloj (malfermas novan langeton)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Finas la nunan kunsidon",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Fini kunsidon",
+    "app.navBar.userListToggleBtnLabel": "Kaŝilo por listo de uzantoj",
+    "app.navBar.toggleUserList.ariaLabel": "Kaŝilo por uzantoj kaj mesaĝoj",
+    "app.navBar.toggleUserList.newMessages": "kun sciigo pri novaj mesaĝoj",
+    "app.navBar.recording": "Ĉi tiu seanco estas registrata",
+    "app.navBar.recording.on": "Registrante",
+    "app.navBar.recording.off": "Neregistrante",
+    "app.navBar.emptyAudioBrdige": "Neniu ŝaltita mikrofono. Kundividu vian mikrofonon por aldoni sonon al ĉi tiu registraĵo.",
+    "app.leaveConfirmation.confirmLabel": "Forlasi",
+    "app.leaveConfirmation.confirmDesc": "Elsalutigas vin el la kunsido",
+    "app.endMeeting.title": "Fini kunsidon",
+    "app.endMeeting.description": "Ĉu vi certas, ke vi volas fini ĉi tiun seancon?",
+    "app.endMeeting.yesLabel": "Jes",
+    "app.endMeeting.noLabel": "Ne",
+    "app.about.title": "Pri",
+    "app.about.version": "Klienta versio:",
+    "app.about.copyright": "Kopirajto:",
+    "app.about.confirmLabel": "Bone",
+    "app.about.confirmDesc": "Indikas vian konfirmon",
+    "app.about.dismissLabel": "Nuligi",
+    "app.about.dismissDesc": "Fermi priklientajn informojn",
+    "app.actionsBar.changeStatusLabel": "Ŝanĝi staton",
+    "app.actionsBar.muteLabel": "Silentigi",
+    "app.actionsBar.unmuteLabel": "Malsilentigi",
+    "app.actionsBar.camOffLabel": "Kamerao malŝaltita",
+    "app.actionsBar.raiseLabel": "Levi",
+    "app.actionsBar.label": "Agbreto",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Remontri prezentaĵon",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Butono por remontri la prezentaĵon fermitan",
+    "app.screenshare.screenShareLabel" : "Ekrankundivido",
+    "app.submenu.application.applicationSectionTitle": "Aplikaĵo",
+    "app.submenu.application.animationsLabel": "Animacioj",
+    "app.submenu.application.audioAlertLabel": "Sonaj sciigoj por babilejo",
+    "app.submenu.application.pushAlertLabel": "Åœprucsciigoj por babilejo",
+    "app.submenu.application.userJoinAudioAlertLabel": "Sonaj sciigoj por eniro de uzanto",
+    "app.submenu.application.userJoinPushAlertLabel": "Åœprucsciigoj por eniro de uzanto",
+    "app.submenu.application.fontSizeControlLabel": "Grando de la tiparo",
+    "app.submenu.application.increaseFontBtnLabel": "Pligrandigi la tiparon de la aplikaĵo",
+    "app.submenu.application.decreaseFontBtnLabel": "Malpligrandigi la tiparon de la aplikaĵo",
+    "app.submenu.application.currentSize": "Nune {0}",
+    "app.submenu.application.languageLabel": "Lingvo de la aplikaĵo",
+    "app.submenu.application.languageOptionLabel": "Elekti lingvon",
+    "app.submenu.application.noLocaleOptionLabel": "Neniuj elektitaj lokaĵaroj",
+    "app.submenu.audio.micSourceLabel": "Fonto de mikrofono",
+    "app.submenu.audio.speakerSourceLabel": "Fonto de laÅ­tparolilo",
+    "app.submenu.audio.streamVolumeLabel": "La laÅ­teco de via sona fluo",
+    "app.submenu.video.title": "Video",
+    "app.submenu.video.videoSourceLabel": "Fonto de video",
+    "app.submenu.video.videoOptionLabel": "Elekti la fonton de video",
+    "app.submenu.video.videoQualityLabel": "Kvalito de video",
+    "app.submenu.video.qualityOptionLabel": "Elekti la kvaliton de video",
+    "app.submenu.video.participantsCamLabel": "Spektante la kameraojn de partoprenantoj",
+    "app.settings.applicationTab.label": "Aplikaĵo",
+    "app.settings.audioTab.label": "Sono",
+    "app.settings.videoTab.label": "Video",
+    "app.settings.usersTab.label": "Partoprenantoj",
+    "app.settings.main.label": "Agordoj",
+    "app.settings.main.cancel.label": "Nuligi",
+    "app.settings.main.cancel.label.description": "Forĵetas la ŝanĝojn kaj fermas la menuon de agordoj",
+    "app.settings.main.save.label": "Konservi",
+    "app.settings.main.save.label.description": "Konservas la ŝanĝojn kaj fermas la menuon de agordoj",
+    "app.settings.dataSavingTab.label": "Datumŝparoj",
+    "app.settings.dataSavingTab.webcam": "Ebligi kameraojn",
+    "app.settings.dataSavingTab.screenShare": "Ebligi ekrankundividon",
+    "app.settings.dataSavingTab.description": "Por ŝpari rettrafikon, agordu tion, kio montriĝu.",
+    "app.settings.save-notification.label": "La agordoj konserviĝis",
+    "app.switch.onLabel": "JES",
+    "app.switch.offLabel": "NE",
+    "app.talkingIndicator.ariaMuteDesc" : "Elekti por silentigi uzanton",
+    "app.talkingIndicator.isTalking" : "{0} parolas",
+    "app.talkingIndicator.wasTalking" : "{0} ĉesis paroli",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Agoj",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Alŝuti prezentaĵon",
+    "app.actionsBar.actionsDropdown.initPollLabel": "Iniciati enketon",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "Kundividi vian ekranon",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Ekrankundivido malebligita",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Ĉesi kundividi vian ekranon",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Alŝuti vian prezentaĵon",
+    "app.actionsBar.actionsDropdown.initPollDesc": "Komenci enketon",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Kundividi vian ekranon kun aliaj",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Ĉesi kundividi vian ekranon kun aliaj",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "Komenci enketon",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "(Mal)kaŝas la panelon pri enketo",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Konservi uzantnomojn",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Krei apartigitajn ĉambrojn",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Krei apartigitajn ĉambrojn por disigi la nunan kunsidon",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Verki subtekstojn",
+    "app.actionsBar.actionsDropdown.captionsDesc": "(Mal)kaŝas la panelon pri subtekstoj",
+    "app.actionsBar.actionsDropdown.takePresenter": "Iĝi prezentanto",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Faras vin la nova prezentanto",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Ŝanĝi staton",
+    "app.actionsBar.emojiMenu.awayLabel": "For",
+    "app.actionsBar.emojiMenu.awayDesc": "Ŝanĝas vian staton al malĉeesta",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "Levi",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "Levas vian manon por starigi demandon",
+    "app.actionsBar.emojiMenu.neutralLabel": "Sendecida",
+    "app.actionsBar.emojiMenu.neutralDesc": "Åœangas vian staton al sendecida",
+    "app.actionsBar.emojiMenu.confusedLabel": "Konfuzita",
+    "app.actionsBar.emojiMenu.confusedDesc": "Ŝanĝas vian staton al konfuzita",
+    "app.actionsBar.emojiMenu.sadLabel": "Malĝoja",
+    "app.actionsBar.emojiMenu.sadDesc": "Ŝanĝas vian staton al malĝoja",
+    "app.actionsBar.emojiMenu.happyLabel": "Äœoja",
+    "app.actionsBar.emojiMenu.happyDesc": "Ŝanĝas vian staton al ĝoja",
+    "app.actionsBar.emojiMenu.noneLabel": "Viŝi staton",
+    "app.actionsBar.emojiMenu.noneDesc": "Viŝas vian staton",
+    "app.actionsBar.emojiMenu.applauseLabel": "AplaÅ­danta",
+    "app.actionsBar.emojiMenu.applauseDesc": "Ŝanĝas vian staton al aplaŭdanta",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Aprobanta",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Ŝanĝas vian staton al aprobanta",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Malaprobanta",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "Ŝanĝas vian staton al malaprobanta",
+    "app.actionsBar.currentStatusDesc": "aktuala stato {0}",
+    "app.actionsBar.captions.start": "Komenci rigardi subtekstojn",
+    "app.actionsBar.captions.stop": "Ĉesi rigardi subtekstojn",
+    "app.audioNotification.audioFailedError1001": "WebSocket-konekto nekonektiĝis (eraro 1001)",
+    "app.audioNotification.audioFailedError1002": "Ne povis starigi WebSocket-konekton (eraro 1002)",
+    "app.audioNotification.audioFailedError1003": "Ĉi tiu versio de via retumilo ne estas subtenata (eraro 1003)",
+    "app.audioNotification.audioFailedError1004": "Malsukceso dum voko (kialo={0}) (eraro 1004)",
+    "app.audioNotification.audioFailedError1005": "Voko finiĝis neatendite (eraro 1005)",
+    "app.audioNotification.audioFailedError1006": "Atingis tempolimon por voko (eraro 1006)",
+    "app.audioNotification.audioFailedError1007": "Malsuskceso pri konekto (ICE-eraro 1007)",
+    "app.audioNotification.audioFailedError1008": "Transigo malsukcesis (eraro 1008)",
+    "app.audioNotification.audioFailedError1009": "Ne povis venigi informojn pri STUN/TURN-servilo (eraro 1009)",
+    "app.audioNotification.audioFailedError1010": "Atingis tempolimon por konektnegoco (ICE-eraro 1010)",
+    "app.audioNotification.audioFailedError1011": "Atingis tempolimon por konektiĝo (ICE-eraro 1011)",
+    "app.audioNotification.audioFailedError1012": "Konekto fermita (ICE-eraro 1012)",
+    "app.audioNotification.audioFailedMessage": "Via sonkonekto ne sukcesis konektiĝi",
+    "app.audioNotification.mediaFailedMessage": "getUserMicMedia malsukcesis, ĉar nur sekuraj originoj estas permesataj",
+    "app.audioNotification.closeLabel": "Fermi",
+    "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofonoj estas malebligitaj por spektantoj, vi nun konektiĝas kiel nura aŭskultanto",
+    "app.breakoutJoinConfirmation.title": "Eniri apartigitan ĉambron",
+    "app.breakoutJoinConfirmation.message": "Ĉu vi volas eniri?",
+    "app.breakoutJoinConfirmation.confirmDesc": "Enirigas vin en la apartigitan ĉambron",
+    "app.breakoutJoinConfirmation.dismissLabel": "Nuligi",
+    "app.breakoutJoinConfirmation.dismissDesc": "Fermas kaj malakceptas eniri la apartigitan ĉambron",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Elektu apartigitan ĉambron por eniri",
+    "app.breakoutTimeRemainingMessage": "Restanta tempo por apartigita ĉambro: {0}",
+    "app.breakoutWillCloseMessage": "Ne plu restas tempo. La apartigita ĉambro baldaŭ fermiĝos",
+    "app.calculatingBreakoutTimeRemaining": "Kalkulante restantan tempon ...",
+    "app.audioModal.ariaTitle": "Dialogo pri sona konektiĝo",
+    "app.audioModal.microphoneLabel": "Mikrofono",
+    "app.audioModal.listenOnlyLabel": "Nur aÅ­skulti",
+    "app.audioModal.audioChoiceLabel": "Kiel vi volas konekti sonon?",
+    "app.audioModal.iOSBrowser": "Sono/Video ne subtenata",
+    "app.audioModal.iOSErrorDescription": "Nuntempte sono kaj video ne estas subtenataj de Chrome por iOS.",
+    "app.audioModal.iOSErrorRecommendation": "Ni rekomendas uzi Safari por iOS.",
+    "app.audioModal.audioChoiceDesc": "Elektu kiel konektiĝi kun la sono en ĉi tiu kunsido",
+    "app.audioModal.unsupportedBrowserLabel": "Åœajnas, ke vi uzas retumilon, kiun ni ne plene subtenas. Bonvolu uzi aÅ­ {0} aÅ­ {1} por plena subteno.",
+    "app.audioModal.closeLabel": "Fermi",
+    "app.audioModal.yes": "Jes",
+    "app.audioModal.no": "Ne",
+    "app.audioModal.yes.arialabel" : "EÄ¥o aÅ­deblas",
+    "app.audioModal.no.arialabel" : "EÄ¥o ne aÅ­deblas",
+    "app.audioModal.echoTestTitle": "Ĉi tio estas privata eĥotesto. Diru kelkajn vortojn. Ĉu vi aŭdis sonon?",
+    "app.audioModal.settingsTitle": "Ŝanĝu viajn sonajn agordojn",
+    "app.audioModal.helpTitle": "Estis problemo kun via sonaparato",
+    "app.audioModal.helpText": "Ĉu vi donis permeson por aliro al via mikrofono? Rimarku, ke kiam vi provas konektiĝi kun la sono, aperu dialogo petanta permeson aliri vian sonaparaton. Bonvolu akcepti por konekti la sonon de la kunsido. Aliokaze, provu ŝanĝi la permesojn pri via mikrofono en la agordoj de via retumilo.",
+    "app.audioModal.help.noSSL": "Ĉi tiu paĝo ne estas sekura. Por permeso aliri mikrofonon nepras, ke la paĝo serviĝu trans HTTPS. Bonvolu kontakti la administranton de la servilo.",
+    "app.audioModal.help.macNotAllowed": "Ŝajnas, ke la Sistemaj Agordoj de via Makintoŝo blokas aliron al via mikrofono. Malfermu: Sistemaj Agordoj > Sekureco kaj Privateco > Privateco > Mikrofono, kaj certigu, ke la retumilo, kiun vi uzas, estu elektita.",
+    "app.audioModal.audioDialTitle": "Konektiĝi per via telefono",
+    "app.audioDial.audioDialDescription": "Numerumu",
+    "app.audioDial.audioDialConfrenceText": "kaj enmetu la PIN-kodon de la kunsido:",
+    "app.audioModal.autoplayBlockedDesc": "Ni bezonas vian permeson ludigi sonon.",
+    "app.audioModal.playAudio": "Ludigi sonon",
+    "app.audioModal.playAudio.arialabel" : "Ludigi sonon",
+    "app.audioDial.tipIndicator": "Helpeto",
+    "app.audioDial.tipMessage": "Premu la '0'-klavon sur via telefono por (mal)silentigi vin mem.",
+    "app.audioModal.connecting": "Konektiĝante",
+    "app.audioModal.connectingEchoTest": "Konektiĝante kun eĥotesto",
+    "app.audioManager.joinedAudio": "Vi konektiĝis kun la sono de la kunsido",
+    "app.audioManager.joinedEcho": "Vi konektiĝis kun la eĥotesto",
+    "app.audioManager.leftAudio": "Vi forlasis la sonon de la kunsido",
+    "app.audioManager.reconnectingAudio": "Provante rekonektiĝi kun la sono",
+    "app.audioManager.genericError": "Eraro: Okazis eraro, bonvolu reprovi",
+    "app.audioManager.connectionError": "Eraro: konekta eraro",
+    "app.audioManager.requestTimeout": "Eraro: Atingis tempolimon dum la peto",
+    "app.audioManager.invalidTarget": "Eraro: Provis peti ion de nevalida celo",
+    "app.audioManager.mediaError": "Eraro: Okazis problemo akiri viajn sonaparatojn",
+    "app.audio.joinAudio": "Konektiĝi kun sono",
+    "app.audio.leaveAudio": "Forlasi sonon",
+    "app.audio.enterSessionLabel": "Eniri seacon",
+    "app.audio.playSoundLabel": "Ludigi sonon",
+    "app.audio.backLabel": "Reen",
+    "app.audio.audioSettings.titleLabel": "Elektu viajn sonagordojn",
+    "app.audio.audioSettings.descriptionLabel": "Bonvolu rimarki, ke dialogo aperos en via retumilo, postulante, ke vi akceptu kundividi vian mikrofonon.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Fonto de mikrofono",
+    "app.audio.audioSettings.speakerSourceLabel": "Fonto de laÅ­tparolilo",
+    "app.audio.audioSettings.microphoneStreamLabel": "La laÅ­teco de via sona fluo",
+    "app.audio.audioSettings.retryLabel": "Reprovi",
+    "app.audio.listenOnly.backLabel": "Reen",
+    "app.audio.listenOnly.closeLabel": "Fermi",
+    "app.audio.permissionsOverlay.title": "Permesi aliron al vi mikrofono",
+    "app.audio.permissionsOverlay.hint": "Ni bezonas permeson uzi viajn sonaparaton, por ke vi povu konektiĝi kun la voĉa kunsido :)",
+    "app.error.removed": "Vi estis forigita de la kunsido",
+    "app.error.meeting.ended": "Vi elsalutis el la kunsido",
+    "app.meeting.logout.duplicateUserEjectReason": "Duobla uzanto provas eniri la kunsidon",
+    "app.meeting.logout.permissionEjectReason": "Forĵetite pro malobservo de permesoj",
+    "app.meeting.logout.ejectedFromMeeting": "Vi estis forigita de la kunsido",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Malsukcesis validigi rajtigan ĵetonon",
+    "app.meeting.logout.userInactivityEjectReason": "Uzanto malaktivis dum tro longa tempo",
+    "app.meeting-ended.rating.legendLabel": "Pritakso",
+    "app.meeting-ended.rating.starLabel": "Stelo",
+    "app.modal.close": "Fermi",
+    "app.modal.close.description": "Ignoras ŝanĝojn kaj fermas la dialogon",
+    "app.modal.confirm": "Prete",
+    "app.modal.newTab": "(malfermas novan langeton)",
+    "app.modal.confirm.description": "Konservas ŝanĝojn kaj fermas la dialogon",
+    "app.dropdown.close": "Fermi",
+    "app.error.400": "Mispeto",
+    "app.error.401": "Nerajtigite",
+    "app.error.403": "Vi estis forigita de la kunsido",
+    "app.error.404": "Netrovite",
+    "app.error.410": "La kunside jam finiĝis",
+    "app.error.500": "Ups, io fuŝiĝis",
+    "app.error.leaveLabel": "Re-ensalutu",
+    "app.error.fallback.presentation.title": "Okazis eraro",
+    "app.error.fallback.presentation.description": "Ĝi protokoliĝis. Bonvolu provi reŝargi la paĝon.",
+    "app.error.fallback.presentation.reloadButton": "Reŝargi",
+    "app.guest.waiting": "Atendante aprobon eniri",
+    "app.userList.guest.waitingUsers": "Atendantaj Uzantoj",
+    "app.userList.guest.waitingUsersTitle": "Administrado de uzantoj",
+    "app.userList.guest.optionTitle": "Pritaksi Traktatajn Uzantojn",
+    "app.userList.guest.allowAllAuthenticated": "Akcepti ĉiujn aŭtentigitojn",
+    "app.userList.guest.allowAllGuests": "Akcepti ĉiujn gastojn",
+    "app.userList.guest.allowEveryone": "Akcepti ĉiujn",
+    "app.userList.guest.denyEveryone": "Rifuzi ĉiujn",
+    "app.userList.guest.pendingUsers": "{0} Traktataj Uzantoj",
+    "app.userList.guest.pendingGuestUsers": "{0} Traktataj Gastoj",
+    "app.userList.guest.pendingGuestAlert": "Eniris la seancon kaj atendas vian aprobon.",
+    "app.userList.guest.rememberChoice": "Memori elekton",
+    "app.user-info.title": "Informa Serĉado",
+    "app.toast.breakoutRoomEnded": "La apartigita ĉambro finiĝis. Bonvolu rekonektiĝi kun la sono.",
+    "app.toast.chat.public": "Nova publika babilmesaĝo",
+    "app.toast.chat.private": "Nova privata babilmesaĝo",
+    "app.toast.chat.system": "Sistemo",
+    "app.toast.clearedEmoji.label": "Viŝis Emoĝian staton",
+    "app.toast.setEmoji.label": "Ŝanĝis Emoĝian staton al {0}",
+    "app.toast.meetingMuteOn.label": "Ĉiuj uzantoj estis silentigitaj",
+    "app.toast.meetingMuteOff.label": "Malŝaltis silentigadon de la kunsido",
+    "app.notification.recordingStart": "Ĉi tiu seanco nun estas registrata",
+    "app.notification.recordingStop": "Ĉi tiu seanco ne estas registrata",
+    "app.notification.recordingPaused": "Ĉi tiu seanco ne plu estas registrata",
+    "app.notification.recordingAriaLabel": "Registrotempo ",
+    "app.notification.userJoinPushAlert": "{0} eniris la seancon",
+    "app.shortcut-help.title": "Fulmklavojn",
+    "app.shortcut-help.accessKeyNotAvailable": "Alirklavo ne disponeblas",
+    "app.shortcut-help.comboLabel": "Kombino",
+    "app.shortcut-help.functionLabel": "Funkcio",
+    "app.shortcut-help.closeLabel": "Fermi",
+    "app.shortcut-help.closeDesc": "Fermas la dialogon pri fulmklavoj",
+    "app.shortcut-help.openOptions": "Malfermi agordojn",
+    "app.shortcut-help.toggleUserList": "(Mal)kaŝi liston de uzantoj",
+    "app.shortcut-help.toggleMute": "(Mal)silentigi",
+    "app.shortcut-help.togglePublicChat": "(Mal)kaŝi Publikan Babilejon (Listo de Uzantoj estu malfermita)",
+    "app.shortcut-help.hidePrivateChat": "Kaŝi privatan babilejon",
+    "app.shortcut-help.closePrivateChat": "Fermi privatan babilejon",
+    "app.shortcut-help.openActions": "Malfermi menuon pri agoj",
+    "app.shortcut-help.openStatus": "Malfermi menuon pri stato",
+    "app.shortcut-help.togglePan": "Aktivigi panoramilon (Prezentanto)",
+    "app.shortcut-help.nextSlideDesc": "Sekva lumbildo (Prezentanto)",
+    "app.shortcut-help.previousSlideDesc": "AntaÅ­a lumbildo (Prezentanto)",
+    "app.lock-viewers.title": "Limigi rajtojn de spektantoj",
+    "app.lock-viewers.description": "Ĉi tiuj agordoj ebligas al vi limigi la spektantojn uzi diversajn funkciojn.",
+    "app.lock-viewers.featuresLable": "Funkcio",
+    "app.lock-viewers.lockStatusLabel": "Stato",
+    "app.lock-viewers.webcamLabel": "Kundividi kameraon",
+    "app.lock-viewers.otherViewersWebcamLabel": "Vidi la kameraojn de aliaj spektantoj",
+    "app.lock-viewers.microphoneLable": "Kundividi mikrofonon",
+    "app.lock-viewers.PublicChatLabel": "Sendi publikajn babilmesaĝojn",
+    "app.lock-viewers.PrivateChatLable": "Sendi privatajn babilmesaĝojn",
+    "app.lock-viewers.notesLabel": "Redakti komunigitajn notojn",
+    "app.lock-viewers.userListLabel": "Vidi aliajn spektantojn en la Listo de Uzantoj",
+    "app.lock-viewers.ariaTitle": "Dialogo pri limigaj agordoj de spektantoj",
+    "app.lock-viewers.button.apply": "Apliki",
+    "app.lock-viewers.button.cancel": "Nuligi",
+    "app.lock-viewers.locked": "Malebligite",
+    "app.lock-viewers.unlocked": "Ebligite",
+    "app.recording.startTitle": "Komenci registradon",
+    "app.recording.stopTitle": "PaÅ­zigi registradon",
+    "app.recording.resumeTitle": "DaÅ­rigi registradon",
+    "app.recording.startDescription": "Vi povos poste alklaki la registrobutonon por paÅ­zigi la registradon.",
+    "app.recording.stopDescription": "Ĉu vi certas, ke vi volas paŭzigi la registradon? Vi povos daŭrigi la registradon per alklako de la registrobutono.",
+    "app.videoPreview.cameraLabel": "Kamerao",
+    "app.videoPreview.profileLabel": "Kvalito",
+    "app.videoPreview.cancelLabel": "Nuligi",
+    "app.videoPreview.closeLabel": "Fermi",
+    "app.videoPreview.findingWebcamsLabel": "Trovante kameraojn",
+    "app.videoPreview.startSharingLabel": "Komenci kundividi",
+    "app.videoPreview.webcamOptionLabel": "Elektu kameraon",
+    "app.videoPreview.webcamPreviewLabel": "AntaÅ­rigardo de la kamerao",
+    "app.videoPreview.webcamSettingsTitle": "Kameraaj agordoj",
+    "app.videoPreview.webcamNotFoundLabel": "Ne trovis kameraon",
+    "app.videoPreview.profileNotFoundLabel": "Neniu subtenata kameraprofilo",
+    "app.video.joinVideo": "Kundividi kameraon",
+    "app.video.leaveVideo": "Ĉesi kundividi kameraon",
+    "app.video.iceCandidateError": "Eraro dum aldono de ICE-kandidato",
+    "app.video.iceConnectionStateError": "Malsuskceso pri konekto (ICE-eraro 1007)",
+    "app.video.permissionError": "Eraro kundividi kameraon. Bonvolu kontroli permesojn",
+    "app.video.sharingError": "Eraro kundividi kameraon",
+    "app.video.notFoundError": "Ne povis trovi kameraon. Bonvolu certigi, ke ĝi estu konektita",
+    "app.video.notAllowed": "Mankas permeso por kundividi kameraon. Bonvolu kontroli la permesojn de via retumilo",
+    "app.video.notSupportedError": "Nur eblas kundividi kameraon kun sekuraj fontoj. Certiĝu, ke via SSL-atestilo validas",
+    "app.video.notReadableError": "Ne povis akiri videon de la kamerao. Bonvolu certigi, ke alia programo ne uzu la kameraon",
+    "app.video.mediaFlowTimeout1020": "Aŭdvidaĵo ne atingis la servilon (eraro 1020)",
+    "app.video.suggestWebcamLock": "Ĉu efikigi limigajn agordojn por kameraoj de spektantoj?",
+    "app.video.suggestWebcamLockReason": "(ĉi tio plibonigos la stabilecon de la kunsido)",
+    "app.video.enable": "Ebligi",
+    "app.video.cancel": "Nuligi",
+    "app.video.swapCam": "Interŝanĝi",
+    "app.video.swapCamDesc": "Interŝanĝas direktojn de la kameraoj",
+    "app.video.videoLocked": "Kundivido de kameraoj malebligita",
+    "app.video.videoButtonDesc": "Kundividi kameraon",
+    "app.video.videoMenu": "Videomenuo",
+    "app.video.videoMenuDisabled": "Videomenuo de la kamerao estas malebligita en al agordoj",
+    "app.video.videoMenuDesc": "Malfermi video-falmenuon",
+    "app.video.chromeExtensionError": "Vi devas instali",
+    "app.video.chromeExtensionErrorLink": "ĉi tiun Chrome-aldonaĵon",
+    "app.fullscreenButton.label": "Fari {0} plenekrana",
+    "app.deskshare.iceConnectionStateError": "Konekto fiaskis dum ekrankundivido (ICE-eraro 1108)",
+    "app.sfu.mediaServerConnectionError2000": "Neeble konektiĝi kun aŭdvida servilo (eraro 2000)",
+    "app.sfu.mediaServerOffline2001": "AÅ­dvida servilo estas senkonekta. Bonvolu reprovi poste (eraro 2001)",
+    "app.sfu.mediaServerNoResources2002": "AÅ­dvida servilo ne havas disponeblajn rimedojn (eraro 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Atingas tempolimojn ĉe petoj al la aŭdvida servilo (eraro 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "AÅ­dvida servilo ne povas akiri konektokandidatojn (ICE-eraro 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Konekto kun la aÅ­dvida servilo malsukcesis (ICE-eraro 2022)",
+    "app.sfu.mediaGenericError2200": "AÅ­dvida servilo malsukcesis trakti la peton (eraro 2200)",
+    "app.sfu.invalidSdp2202":"Kliento generis nevalidan aÅ­dvidan peton (SDP-eraro 2202)",
+    "app.sfu.noAvailableCodec2203": "Servilo ne povis trovi taÅ­gan kodekon (eraro 2203)",
+    "app.meeting.endNotification.ok.label": "Bone",
+    "app.whiteboard.annotations.poll": "La enketrezultoj estis publikigitaj al la Publika Babilejo kaj al la Blanktabulo",
+    "app.whiteboard.toolbar.tools": "Iloj",
+    "app.whiteboard.toolbar.tools.hand": "Panoramilo",
+    "app.whiteboard.toolbar.tools.pencil": "Krajono",
+    "app.whiteboard.toolbar.tools.rectangle": "Ortangulo",
+    "app.whiteboard.toolbar.tools.triangle": "Triangulo",
+    "app.whiteboard.toolbar.tools.ellipse": "Elipso",
+    "app.whiteboard.toolbar.tools.line": "Linio",
+    "app.whiteboard.toolbar.tools.text": "Teksto",
+    "app.whiteboard.toolbar.thickness": "Desegna diko",
+    "app.whiteboard.toolbar.thicknessDisabled": "Desegna diko estas malebligita",
+    "app.whiteboard.toolbar.color": "Koloroj",
+    "app.whiteboard.toolbar.colorDisabled": "Koloroj estas malebligitaj",
+    "app.whiteboard.toolbar.color.black": "Nigra",
+    "app.whiteboard.toolbar.color.white": "Blanka",
+    "app.whiteboard.toolbar.color.red": "Ruĝa",
+    "app.whiteboard.toolbar.color.orange": "Oranĝa",
+    "app.whiteboard.toolbar.color.eletricLime": "Helflavverda",
+    "app.whiteboard.toolbar.color.lime": "Flavverda",
+    "app.whiteboard.toolbar.color.cyan": "Cejana",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Doĝerblua",
+    "app.whiteboard.toolbar.color.blue": "Blua",
+    "app.whiteboard.toolbar.color.violet": "Viola",
+    "app.whiteboard.toolbar.color.magenta": "Fuksina",
+    "app.whiteboard.toolbar.color.silver": "Arĝenta",
+    "app.whiteboard.toolbar.undo": "Malfari prinoton",
+    "app.whiteboard.toolbar.clear": "Viŝi ĉiujn prinotojn",
+    "app.whiteboard.toolbar.multiUserOn": "Åœalti pluruzantecon de blanktabulo",
+    "app.whiteboard.toolbar.multiUserOff": "Malŝalti pluruzantecon de blanktabulo",
+    "app.whiteboard.toolbar.fontSize": "Listo de tipargrandoj",
+    "app.feedback.title": "Vi elsalutis el la kunsido",
+    "app.feedback.subtitle": "Ni ŝategus aŭdi pri via sperto kun BigBlueButton (nedeviga)",
+    "app.feedback.textarea": "Kiel ni povus plibonigi BigBlueButton?",
+    "app.feedback.sendFeedback": "Sendi Pritakson",
+    "app.feedback.sendFeedbackDesc": "Sendas pritakson kaj forlasas la kunsidon",
+    "app.videoDock.webcamFocusLabel": "Enfokusigi",
+    "app.videoDock.webcamFocusDesc": "Enfokusigas la elektitan kameraon",
+    "app.videoDock.webcamUnfocusLabel": "Elfokusigi",
+    "app.videoDock.webcamUnfocusDesc": "Elfokusigas la elektitan kameraon",
+    "app.videoDock.autoplayBlockedDesc": "Ni bezonas vian permeson montri al vi la kameraojn de aliaj uzantoj.",
+    "app.videoDock.autoplayAllowLabel": "Rigardi kameraojn",
+    "app.invitation.title": "Invito al apartigita ĉambro",
+    "app.invitation.confirm": "Inviti",
+    "app.createBreakoutRoom.title": "Apartigitaj Ĉambroj",
+    "app.createBreakoutRoom.ariaTitle": "Kaŝi Apartigitajn Ĉambrojn",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Apartigitaj Ĉambroj {0}",
+    "app.createBreakoutRoom.generatingURL": "Generante URL",
+    "app.createBreakoutRoom.generatedURL": "Generite",
+    "app.createBreakoutRoom.duration": "DaÅ­ro {0}",
+    "app.createBreakoutRoom.room": "Ĉambro {0}",
+    "app.createBreakoutRoom.notAssigned": "Neasignita(j) ({0})",
+    "app.createBreakoutRoom.join": "Eniri ĉambron",
+    "app.createBreakoutRoom.joinAudio": "Konektiĝi kun sono",
+    "app.createBreakoutRoom.returnAudio": "Redoni sonon",
+    "app.createBreakoutRoom.alreadyConnected": "Jam en ĉambro",
+    "app.createBreakoutRoom.confirm": "Krei",
+    "app.createBreakoutRoom.record": "Registri",
+    "app.createBreakoutRoom.numberOfRooms": "Kvanto de ĉambroj",
+    "app.createBreakoutRoom.durationInMinutes": "DaÅ­ro (minutoj)",
+    "app.createBreakoutRoom.randomlyAssign": "Arbitre asigni",
+    "app.createBreakoutRoom.endAllBreakouts": "Fini ĉiujn apartigitajn ĉambrojn",
+    "app.createBreakoutRoom.roomName": "{0} (Ĉambro - {1})",
+    "app.createBreakoutRoom.doneLabel": "Preta",
+    "app.createBreakoutRoom.nextLabel": "Sekva",
+    "app.createBreakoutRoom.minusRoomTime": "Malpliigi tempon de apartigita ĉambro al",
+    "app.createBreakoutRoom.addRoomTime": "Pliigi tempon de apartigita ĉambro al",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Aldoni partoprenanton",
+    "app.createBreakoutRoom.freeJoin": "Permesi al ĉiuj uzantoj elekti apartigitan ĉambron por eniri",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "Vi devas meti almenaŭ unu uzanton en apartigitan ĉambron.",
+    "app.createBreakoutRoom.modalDesc": "Helpeto: Vi povas ŝovi kaj demeti uzantnomon por asigni rin al specifa apartigita ĉambro.",
+    "app.createBreakoutRoom.roomTime": "{0} minuto(j)",
+    "app.createBreakoutRoom.numberOfRoomsError": "La kvanto de ĉambroj estas nevalida.",
+    "app.externalVideo.start": "Kundividi novan videon",
+    "app.externalVideo.title": "Kundividi eksteran videon",
+    "app.externalVideo.input": "URL de la ekstera video",
+    "app.externalVideo.urlInput": "Aldoni URL de video",
+    "app.externalVideo.urlError": "Ĉi tiu videa URL ne estas subtenata",
+    "app.externalVideo.close": "Fermi",
+    "app.externalVideo.autoPlayWarning": "Ludigi la videon por ebligi aÅ­dvidan sinkronigon",
+    "app.network.connection.effective.slow": "Ni rimarkas konektajn problemojn.",
+    "app.network.connection.effective.slow.help": "Pli da informoj",
+    "app.externalVideo.noteLabel": "Rimarko: Eksteraj videoj ne aperos en la registraĵo. YouTube, Vimeo, Instructure Media, Twitch, Dailymotion kaj URL-oj de aŭdvidaj dosieroj (ekz. https://example.com/xy.mp4) estas subtenataj.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Kundividi eksteran videon",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Ĉesi kundividi eksteran videon",
+    "app.iOSWarning.label": "Bonvolu ĝisdatigi al almenaŭ iOS 12.2",
+    "app.legacy.unsupportedBrowser": "Åœajnas, ke vi uzas retumilon, kiu ne estas subtenata. Bonvolu uzi aÅ­ {0} aÅ­ {1} por plena subteno.",
+    "app.legacy.upgradeBrowser": "Ŝajnas, ke vi uzas malnovan version de subtenata reumilo. Bonvolu ĝisdatigi vian retumilon por plena subteno.",
+    "app.legacy.criosBrowser": "Sur iOS bonvolu uzi Safari por plena subteno."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/es.json b/bigbluebutton-html5/private/locales/es.json
index 724007d919f998cabcae9f737ecde754c8b7f3f3..d86fdd12712c8de1e6d955874311703def40d156 100644
--- a/bigbluebutton-html5/private/locales/es.json
+++ b/bigbluebutton-html5/private/locales/es.json
@@ -126,8 +126,6 @@
     "app.meeting.meetingTimeRemaining": "Tiempo restante de la reunión: {0}",
     "app.meeting.meetingTimeHasEnded": "Tiempo finalizado. La reunión se cerrará en breve",
     "app.meeting.endedMessage": "Serás enviado a la pantalla de inicio.",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "La reunión se cierra en un minuto",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "La micro-sala se cierra en un minuto",
     "app.presentation.hide": "Ocultar presentación",
     "app.presentation.notificationLabel": "Presentación actual",
     "app.presentation.slideContent": "Contenido de la diapositiva",
@@ -267,7 +265,6 @@
     "app.leaveConfirmation.confirmLabel": "Salir",
     "app.leaveConfirmation.confirmDesc": "Te desconecta de la reunión",
     "app.endMeeting.title": "Finalizar sesión",
-    "app.endMeeting.description": "¿Estás seguro de querer finalizar la sesión?",
     "app.endMeeting.yesLabel": "Sí",
     "app.endMeeting.noLabel": "No",
     "app.about.title": "Acerca de",
@@ -573,19 +570,6 @@
     "app.video.videoMenuDesc": "Abrir el menú de video",
     "app.video.chromeExtensionError": "Debes instalar",
     "app.video.chromeExtensionErrorLink": "esta extensión de Chrome",
-    "app.video.stats.title": "Estadísticas de conexión",
-    "app.video.stats.packetsReceived": "Paquetes recibidos",
-    "app.video.stats.packetsSent": "Paquetes enviados",
-    "app.video.stats.packetsLost": "Paquetes perdidos",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Porcentaje total de perdida",
-    "app.video.stats.lostRecentPercentage": "Porcentaje de pérdida reciente",
-    "app.video.stats.dimensions": "Dimensiones",
-    "app.video.stats.codec": "Códec",
-    "app.video.stats.decodeDelay": "Demora de decodificación",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Uso de codificador",
-    "app.video.stats.currentDelay": "Demora actual",
     "app.fullscreenButton.label": "Hacer {0} pantalla completa",
     "app.deskshare.iceConnectionStateError": "Falló la conexión al compartir pantalla (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "No se pudo conectar al servidor de medios (error 2000)",
diff --git a/bigbluebutton-html5/private/locales/es_ES.json b/bigbluebutton-html5/private/locales/es_ES.json
index eab4156fe0706a3faddefbd3675748d2922b3e47..3f7c47acb3eafc27376cbb17e3027bc0627c40b1 100644
--- a/bigbluebutton-html5/private/locales/es_ES.json
+++ b/bigbluebutton-html5/private/locales/es_ES.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "Tiempo restante de la reunión: {0}",
     "app.meeting.meetingTimeHasEnded": "Tiempo finalizado. La reunión se cerrará pronto",
     "app.meeting.endedMessage": "Será reenviado a la pantalla de inicio",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "La reunión finaliza en un minuto.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "La Sala externa se cerrará en un minuto",
     "app.presentation.hide": "Ocultar presentación",
     "app.presentation.notificationLabel": "Presentación actual",
     "app.presentation.slideContent": "Contenido de diapositiva",
@@ -256,7 +254,6 @@
     "app.leaveConfirmation.confirmLabel": "Salir",
     "app.leaveConfirmation.confirmDesc": "Le desconecta de la reunión",
     "app.endMeeting.title": "Finalizar reunión",
-    "app.endMeeting.description": "¿Está seguro de querer finalizar la sesión?",
     "app.endMeeting.yesLabel": "Sí",
     "app.endMeeting.noLabel": "No",
     "app.about.title": "Acerca de",
@@ -548,19 +545,6 @@
     "app.video.videoMenuDesc": "Abrir menú desplegable de video",
     "app.video.chromeExtensionError": "Usted debe instalar",
     "app.video.chromeExtensionErrorLink": "esta extensión de Chrome",
-    "app.video.stats.title": "Estado de la conexión",
-    "app.video.stats.packetsReceived": "Paquetes recibidos",
-    "app.video.stats.packetsSent": "Paquetes enviados",
-    "app.video.stats.packetsLost": "Paquetes perdidos",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Porcentaje total perdido",
-    "app.video.stats.lostRecentPercentage": "Porcentaje reciente perdido",
-    "app.video.stats.dimensions": "Dimensiones",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Retardo de decodificación",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Codificar uso",
-    "app.video.stats.currentDelay": "Retardo actual",
     "app.fullscreenButton.label": "Hacer {0} pantalla completa",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Los resultados de la encuesta fueron publicados",
diff --git a/bigbluebutton-html5/private/locales/es_MX.json b/bigbluebutton-html5/private/locales/es_MX.json
index 4a3244f9d03f026c0277a9ca3a8848a8f6ff65c6..0d220bd8d37237ac040e25f797a8640639ce1dfa 100644
--- a/bigbluebutton-html5/private/locales/es_MX.json
+++ b/bigbluebutton-html5/private/locales/es_MX.json
@@ -75,8 +75,6 @@
     "app.meeting.meetingTimeRemaining": "Tiempo restante en la sesión: {0}",
     "app.meeting.meetingTimeHasEnded": "El tiempo a finalizado. La sesión se cerrara en cualquier momento",
     "app.meeting.endedMessage": "Serás enviado a la pantalla de inicio.",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "La sesión se cerrara en un minuto.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "El grupo de trabajo se cerrara en un minuto",
     "app.presentation.hide": "Ocultar la presentación",
     "app.presentation.slideContent": "Contenido de diapositiva",
     "app.presentation.startSlideContent": "Inicio de la presentación",
@@ -186,7 +184,6 @@
     "app.leaveConfirmation.confirmLabel": "Salir",
     "app.leaveConfirmation.confirmDesc": "Te desconecta de la reunión",
     "app.endMeeting.title": "Finalizar sesión",
-    "app.endMeeting.description": "¿Estas seguro de querer finalizar la sesión?",
     "app.endMeeting.yesLabel": "Si",
     "app.endMeeting.noLabel": "No",
     "app.about.title": "Acerca de",
@@ -418,19 +415,6 @@
     "app.video.videoMenuDesc": "Abrir el menú de video",
     "app.video.chromeExtensionError": "Debes instalar",
     "app.video.chromeExtensionErrorLink": "esta extensión de Chrome",
-    "app.video.stats.title": "Estadísticas de conexión",
-    "app.video.stats.packetsReceived": "Paquetes recibidos",
-    "app.video.stats.packetsSent": "Paquetes enviados",
-    "app.video.stats.packetsLost": "Paquetes perdidos",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Porcentaje total de perdida",
-    "app.video.stats.lostRecentPercentage": "Porcentaje de pérdida reciente",
-    "app.video.stats.dimensions": "Dimensiones",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Demora de decodificación",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Uso de codificador",
-    "app.video.stats.currentDelay": "Demora actual",
     "app.fullscreenButton.label": "Visualizar {0} en pantalla completa",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.toolbar.tools": "Herramientas",
diff --git a/bigbluebutton-html5/private/locales/et.json b/bigbluebutton-html5/private/locales/et.json
index 6ca8ecc11f2e66c6f0b85bae0c6d4fbc20b28777..e8d5ff2bf4e7ce2ca7a6d9c0cea7626e1ab7cdd9 100644
--- a/bigbluebutton-html5/private/locales/et.json
+++ b/bigbluebutton-html5/private/locales/et.json
@@ -3,23 +3,23 @@
     "app.chat.submitLabel": "Saada sõnum",
     "app.chat.errorMaxMessageLength": "Sõnum on {0} tähemärk(i) liiga pikk",
     "app.chat.disconnected": "Ühendus on katkenud, sõnumeid ei saa saata",
-    "app.chat.locked": "Sõnumivahetus on lukus, sõnumeid ei saa saata",
-    "app.chat.inputLabel": "Sõnum  sõnumivahetuse {0} jaoks",
+    "app.chat.locked": "Vestlus on lukus, sõnumeid ei saa saata",
+    "app.chat.inputLabel": "Sõnum vestluse {0} jaoks",
     "app.chat.inputPlaceholder": "Saada sõnum kasutajale {0}",
-    "app.chat.titlePublic": "Avalik sõnumivahetus",
-    "app.chat.titlePrivate": "Privaatne sõnumivahetus kasutajaga {0}",
+    "app.chat.titlePublic": "Avalik vestlus",
+    "app.chat.titlePrivate": "Privaatne vestlus kasutajaga {0}",
     "app.chat.partnerDisconnected": "{0} lahkus ruumist",
     "app.chat.closeChatLabel": "Sulge {0}",
     "app.chat.hideChatLabel": "Peida {0}",
     "app.chat.moreMessages": "Rohkem sõnumeid allpool",
-    "app.chat.dropdown.options": "Sõnumivahetuse sätted",
+    "app.chat.dropdown.options": "Vestluse sätted",
     "app.chat.dropdown.clear": "Puhasta",
     "app.chat.dropdown.copy": "Kopeeri",
     "app.chat.dropdown.save": "Salvesta",
-    "app.chat.label": "Sõnumivahetus",
+    "app.chat.label": "Vestlus",
     "app.chat.offline": "Väljas",
-    "app.chat.emptyLogLabel": "Sõnumivahetuse logi on tühi",
-    "app.chat.clearPublicChatMessage": "Avalik sõnumivahetuse ajalugu kustutati moderaatori poolt",
+    "app.chat.emptyLogLabel": "Vestluse logi on tühi",
+    "app.chat.clearPublicChatMessage": "Avaliku vestluse ajalugu kustutati moderaatori poolt",
     "app.chat.multi.typing": "Mitu kasutajat kirjutavad",
     "app.chat.one.typing": "{0} kirjutab",
     "app.chat.two.typing": "{0} ja {1} kirjutavad",
@@ -63,22 +63,23 @@
     "app.userList.presenter": "Esitleja",
     "app.userList.you": "Sina",
     "app.userList.locked": "Lukustatud",
+    "app.userList.byModerator": "(moderaatori poolt)",
     "app.userList.label": "Kasutajate nimekiri",
     "app.userList.toggleCompactView.label": "Vaheta kompaktse vaate vahel",
     "app.userList.guest": "Külaline",
     "app.userList.menuTitleContext": "Saadaval olevad valikud",
     "app.userList.chatListItem.unreadSingular": "{0} uus sõnum",
     "app.userList.chatListItem.unreadPlural": "{0} uut sõnumit",
-    "app.userList.menu.chat.label": "Alusta privaatset sõnumivahetust",
+    "app.userList.menu.chat.label": "Alusta privaatset vestlust",
     "app.userList.menu.clearStatus.label": "Tühista staatus",
     "app.userList.menu.removeUser.label": "Eemalda kasutaja",
     "app.userList.menu.removeConfirmation.label": "Eemalda kasutaja ({0})",
-    "app.userlist.menu.removeConfirmation.desc": "Takista kasutaja sessiooniga taasliitumine.",
+    "app.userlist.menu.removeConfirmation.desc": "Takista kasutajal sessiooniga taasliituda.",
     "app.userList.menu.muteUserAudio.label": "Vaigista kasutaja",
     "app.userList.menu.unmuteUserAudio.label": "Eemalda kasutaja vaigistus",
     "app.userList.userAriaLabel": "{0} {1} {2} staatus {3}",
-    "app.userList.menu.promoteUser.label": "Muuda moderaatoriks",
-    "app.userList.menu.demoteUser.label": "Muuda vaatajaks",
+    "app.userList.menu.promoteUser.label": "Ãœlenda moderaatoriks",
+    "app.userList.menu.demoteUser.label": "Alanda vaatajaks",
     "app.userList.menu.unlockUser.label": "Ava {0}",
     "app.userList.menu.lockUser.label": "Lukusta {0}",
     "app.userList.menu.directoryLookup.label": "Otsi kataloogist",
@@ -96,16 +97,16 @@
     "app.userList.userOptions.lockViewersDesc": "Lukusta ruumis osalejate teatud funktsionaalsused",
     "app.userList.userOptions.disableCam": "Vaatajate veebikaamerad on keelatud",
     "app.userList.userOptions.disableMic": "Vaatajate mikrofonid on keelatud",
-    "app.userList.userOptions.disablePrivChat": "Privaatne sõnumivahetus on keelatud",
-    "app.userList.userOptions.disablePubChat": "Avalik sõnumivahetus on keelatud",
+    "app.userList.userOptions.disablePrivChat": "Privaatne vestlus on keelatud",
+    "app.userList.userOptions.disablePubChat": "Avalik vestlus on keelatud",
     "app.userList.userOptions.disableNote": "Jagatud märkmed on nüüd lukustatud",
     "app.userList.userOptions.hideUserList": "Kasutajate nimekiri on vaatajate eest peidetud",
-    "app.userList.userOptions.webcamsOnlyForModerator": "Ainult moderaatorid näevad kasutajate veebikaameraid (määratud seadetes)",
-    "app.userList.content.participants.options.clearedStatus": "Tühista kõikide kasutajate staatused",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Ainult moderaatorid näevad kasutajate veebikaameraid (lukustamisvalikute tõttu)",
+    "app.userList.content.participants.options.clearedStatus": "Kõikide kasutajate staatused tühistati",
     "app.userList.userOptions.enableCam": "Vaatajate veebikaamerad on lubatud",
     "app.userList.userOptions.enableMic": "Vaatajate mikrofonid on lubatud",
-    "app.userList.userOptions.enablePrivChat": "Privaatne sõnumivahetus on lubatud",
-    "app.userList.userOptions.enablePubChat": "Avalik sõnumivahetus on lubatud",
+    "app.userList.userOptions.enablePrivChat": "Privaatne vestlus on lubatud",
+    "app.userList.userOptions.enablePubChat": "Avalik vestlus on lubatud",
     "app.userList.userOptions.enableNote": "Jagatud märkmed on nüüd lubatud",
     "app.userList.userOptions.showUserList": "Kasutajate nimekiri on nüüd vaatajatele nähtav",
     "app.userList.userOptions.enableOnlyModeratorWebcam": "Saad nüüd veebikaamera lubada ning kõik näevad seda",
@@ -118,15 +119,17 @@
     "app.media.screenshare.autoplayBlockedDesc": "Vajame sinu luba, et näidata sulle esitleja ekraani.",
     "app.media.screenshare.autoplayAllowLabel": "Vaata jagatud ekraani",
     "app.screenshare.notAllowed": "Viga: Ekraanijagamiseks ei antud luba",
-    "app.screenshare.notSupportedError": "Viga: Ekraanijagamine on lubatud ainult turvalistelt (SSL) domeenidelt",
-    "app.screenshare.notReadableError": "Viga: Ekraanijagamise alustamisel tekkis viga",
+    "app.screenshare.notSupportedError": "Viga: Ekraanijagamine on lubatud ainult turvalistel (SSL) domeenidel",
+    "app.screenshare.notReadableError": "Viga: Ekraanipildi hankimise katsel tekkis viga",
     "app.screenshare.genericError": "Viga: Ekraanijagamisel tekkis viga, palun proovi uuesti",
     "app.meeting.ended": "Sessioon on lõppenud",
     "app.meeting.meetingTimeRemaining": "Järelejäänud aeg ruumis: {0}",
     "app.meeting.meetingTimeHasEnded": "Aeg sai läbi. Ruum suletakse kohe",
     "app.meeting.endedMessage": "Sind suunatakse tagasi avalehele",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Ruum suletakse ühe minuti pärast.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Eraldatud ruumid suletakse ühe minuti pärast.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Sessioon sulgub ühe minuti pärast.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Sessioon sulgub {0} minuti pärast.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Ruum sulgub {0} minuti pärast.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Ruum sulgub ühe minuti pärast.",
     "app.presentation.hide": "Peida esitlus",
     "app.presentation.notificationLabel": "Aktiivne esitlus",
     "app.presentation.slideContent": "Slaidi sisu",
@@ -171,8 +174,11 @@
     "app.presentationUploder.fileToUpload": "Ootab üleslaadimist...",
     "app.presentationUploder.currentBadge": "Aktiivne",
     "app.presentationUploder.rejectedError": "Valitud fail(id) lükati tagasi. Palun kontrolli failitüüpi.",
-    "app.presentationUploder.upload.progress": "Laadin üles ({0}%)",
+    "app.presentationUploder.upload.progress": "Ãœleslaadimine ({0}%)",
     "app.presentationUploder.upload.413": "Fail on liiga suur. Palun jaga fail väiksemateks tükkideks.",
+    "app.presentationUploder.upload.408": "Taotle üleslaadimistõendi aegumist.",
+    "app.presentationUploder.upload.404": "404: Kehtetu üleslaadimistõend.",
+    "app.presentationUploder.upload.401": "Esitluse üleslaadimistõendi taotlemine ebaõnnestus.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Töötlen lehte {0} / {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "Teisendan faili...",
     "app.presentationUploder.conversion.generatingThumbnail": "Genereerin pisipilte...",
@@ -202,11 +208,11 @@
     "app.poll.publishLabel": "Avalda küsitluse tulemused",
     "app.poll.backLabel": "Tagasi küsitluse valikute juurde",
     "app.poll.closeLabel": "Sulge",
-    "app.poll.waitingLabel": "Ootame vastuseid ({0}/{1})",
+    "app.poll.waitingLabel": "Vastuste ootamine ({0}/{1})",
     "app.poll.ariaInputCount": "Kohandatud küsitluse vastusevariant {0} / {1}",
     "app.poll.customPlaceholder": "Lisa küsitluse vastusevariant",
     "app.poll.noPresentationSelected": "Esitlust ei ole valitud! Palun vali esitlus.",
-    "app.poll.clickHereToSelect": "Vajuta valimiseks siia",
+    "app.poll.clickHereToSelect": "Valimiseks klõpsa siin",
     "app.poll.t": "Õige",
     "app.poll.f": "Vale",
     "app.poll.tf": "Õige / Vale",
@@ -230,11 +236,11 @@
     "app.poll.liveResult.responsesTitle": "Vastus",
     "app.polling.pollingTitle": "Küsitluse valikud",
     "app.polling.pollAnswerLabel": "Küsitluse vastus {0}",
-    "app.polling.pollAnswerDesc": "Vali see variant, et {0} poolt hääletada",
+    "app.polling.pollAnswerDesc": "Vali see variant, et hääletada {0} poolt",
     "app.failedMessage": "Vabandame! Serveriga ühendumisel esineb tõrkeid.",
     "app.downloadPresentationButton.label": "Laadi alla esitluse originaal",
     "app.connectingMessage": "Ãœhendumine...",
-    "app.waitingMessage": "Ühendus katkes. Proovime taas ühenduda {0} sekundi pärast ...",
+    "app.waitingMessage": "Ühendus katkes. Uus ühendumiskatse {0} sekundi pärast ...",
     "app.retryNow": "Proovi uuesti kohe",
     "app.navBar.settingsDropdown.optionsLabel": "Valikud",
     "app.navBar.settingsDropdown.fullscreenLabel": "Esita täisekraanil",
@@ -263,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Lahku",
     "app.leaveConfirmation.confirmDesc": "Logib sind ruumist välja",
     "app.endMeeting.title": "Lõpeta sessioon",
-    "app.endMeeting.description": "Kas oled kindel, et soovid sessiooni lõpetada?",
+    "app.endMeeting.description": "Kas oled kindel, et soovid selle sessiooni kõigi jaoks lõpetada (kõigi kasutajate ühendused katkestatakse)?",
     "app.endMeeting.yesLabel": "Jah",
     "app.endMeeting.noLabel": "Ei",
     "app.about.title": "Meist",
@@ -284,8 +290,8 @@
     "app.screenshare.screenShareLabel" : "Ekraanijagamine",
     "app.submenu.application.applicationSectionTitle": "Rakendus",
     "app.submenu.application.animationsLabel": "Animatsioonid",
-    "app.submenu.application.audioAlertLabel": "Sõnumivahetuse helimärguanded",
-    "app.submenu.application.pushAlertLabel": "Sõnumivahetuse hüpikmärguanded",
+    "app.submenu.application.audioAlertLabel": "Vestluse helimärguanded",
+    "app.submenu.application.pushAlertLabel": "Vestluse hüpikmärguanded",
     "app.submenu.application.userJoinAudioAlertLabel": "Kasutaja liitumise helimärguanded",
     "app.submenu.application.userJoinPushAlertLabel": "Kasutaja liitumise hüpikmärguanded",
     "app.submenu.application.fontSizeControlLabel": "Teksti suurus",
@@ -320,7 +326,7 @@
     "app.settings.save-notification.label": "Seaded on salvestatud",
     "app.switch.onLabel": "SEES",
     "app.switch.offLabel": "VÄLJAS",
-    "app.talkingIndicator.ariaMuteDesc" : "Vali kasutaja, keda vaigistada",
+    "app.talkingIndicator.ariaMuteDesc" : "Vali kasutaja vaigistamiseks",
     "app.talkingIndicator.isTalking" : "{0} räägib",
     "app.talkingIndicator.wasTalking" : "{0} lõpetas rääkimise",
     "app.actionsBar.actionsDropdown.actionsLabel": "Tegevused",
@@ -329,15 +335,15 @@
     "app.actionsBar.actionsDropdown.desktopShareLabel": "Jaga ekraani",
     "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Ekraanijagamine on lukustatud",
     "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Lõpeta ekraanijagamine",
-    "app.actionsBar.actionsDropdown.presentationDesc": "Laadi oma esitlus üles",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Laadi esitlus üles",
     "app.actionsBar.actionsDropdown.initPollDesc": "Alusta küsitlust",
-    "app.actionsBar.actionsDropdown.desktopShareDesc": "Jaga oma ekraani teistega",
-    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Lõpeta oma ekraani jagamine",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Jaga ekraani teistega",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Lõpeta ekraanijagamine",
     "app.actionsBar.actionsDropdown.pollBtnLabel": "Alusta küsitlust",
     "app.actionsBar.actionsDropdown.pollBtnDesc": "Vaheta küsitluse vaadet",
     "app.actionsBar.actionsDropdown.saveUserNames": "Salvesta kasutajate nimed",
     "app.actionsBar.actionsDropdown.createBreakoutRoom": "Loo eraldatud ruumid",
-    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Jaga sessioonil osalejad laiali mitmesse ruumi",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Jaga sessioonil osalejad ruumidesse laiali",
     "app.actionsBar.actionsDropdown.captionsLabel": "Tiitrite kirjutamine",
     "app.actionsBar.actionsDropdown.captionsDesc": "Tiitrite paneel sisse/välja",
     "app.actionsBar.actionsDropdown.takePresenter": "Võta esitleja roll",
@@ -383,7 +389,7 @@
     "app.audioNotification.closeLabel": "Sulge",
     "app.audioNotificaion.reconnectingAsListenOnly": "Vaatajate mikrofonid on lukustatud, sind ühendatakse ainult kuulajana",
     "app.breakoutJoinConfirmation.title": "Liitu eraldatud ruumiga",
-    "app.breakoutJoinConfirmation.message": "Kas soovid liituda",
+    "app.breakoutJoinConfirmation.message": "Kas soovid liituda?",
     "app.breakoutJoinConfirmation.confirmDesc": "Liitu eraldatud ruumiga",
     "app.breakoutJoinConfirmation.dismissLabel": "Tühista",
     "app.breakoutJoinConfirmation.dismissDesc": "Sulgeb ja keelab eraldatud ruumiga liitumise",
@@ -403,15 +409,15 @@
     "app.audioModal.closeLabel": "Sulge",
     "app.audioModal.yes": "Jah",
     "app.audioModal.no": "Ei",
-    "app.audioModal.yes.arialabel" : "Kaja on kuulda",
-    "app.audioModal.no.arialabel" : "Kaja ei ole kuulda",
-    "app.audioModal.echoTestTitle": "See on privaatne kajatest. Ütle mõned sõnad. Kas kuuled ennast rääkimas?",
+    "app.audioModal.yes.arialabel" : "Heli on kuulda",
+    "app.audioModal.no.arialabel" : "Heli ei ole kuulda",
+    "app.audioModal.echoTestTitle": "See on privaatne helitest. Ütle mõned sõnad. Kas kuuled ennast rääkimas?",
     "app.audioModal.settingsTitle": "Muuda audioseadeid",
     "app.audioModal.helpTitle": "Sinu meediaseadmetega tekkis probleem",
     "app.audioModal.helpText": "Kas sa andsid mikrofonile juurdepääsuks loa? Kui püüad audioga liituda, siis peaks ilmuma dialoogiaken, kus küsitakse luba meediaseadme kasutamiseks. Palun anna luba, et audiosessiooniga ühineda. Kui on midagi muud, siis püüa muuta veebilehitseja seadetes mikrofoniga seotud õigusi.",
     "app.audioModal.help.noSSL": "See leht pole turvaline. Mikrofoni lubamiseks peab leht olema turvalisel HTTPS-ühendusel. Võta palun ühendust serveri administraatoriga.",
     "app.audioModal.help.macNotAllowed": "Paistab, et Maci süsteemiseaded blokeerivad mikrofonile juurdepääsu. Ava System Preferences > Security & Privacy > Privacy > Microphone ning veendu, et veebilehitseja, mida kasutad, on märgitud.",
-    "app.audioModal.audioDialTitle": "Liitu telefoni kaudu",
+    "app.audioModal.audioDialTitle": "Liitu telefoni abil",
     "app.audioDial.audioDialDescription": "Vali",
     "app.audioDial.audioDialConfrenceText": "ja sisesta sessiooni PIN-number:",
     "app.audioModal.autoplayBlockedDesc": "Vajame audio mängimiseks sinu luba",
@@ -420,9 +426,9 @@
     "app.audioDial.tipIndicator": "Soovitus",
     "app.audioDial.tipMessage": "Vajuta oma telefonil klahvi '0', et end vaigistada või vaigistus eemaldada.",
     "app.audioModal.connecting": "Ãœhendumine",
-    "app.audioModal.connectingEchoTest": "Ãœhendumine kajatestiga",
+    "app.audioModal.connectingEchoTest": "Ãœhendumine helitestiga",
     "app.audioManager.joinedAudio": "Oled audiokonverentsiga liitunud",
-    "app.audioManager.joinedEcho": "Kajatest käivitus",
+    "app.audioManager.joinedEcho": "Helitest käivitus",
     "app.audioManager.leftAudio": "Oled audiokonverentsilt lahkunud",
     "app.audioManager.reconnectingAudio": "Üritame uuesti audioga ühenduda",
     "app.audioManager.genericError": "Viga: Esines viga, palun proovi uuesti",
@@ -433,7 +439,7 @@
     "app.audio.joinAudio": "Liitu audioga",
     "app.audio.leaveAudio": "Lahku audiost",
     "app.audio.enterSessionLabel": "Liitu sessiooniga",
-    "app.audio.playSoundLabel": "Mängi heli",
+    "app.audio.playSoundLabel": "Mängi testheli",
     "app.audio.backLabel": "Tagasi",
     "app.audio.audioSettings.titleLabel": "Vali oma audio seaded",
     "app.audio.audioSettings.descriptionLabel": "Pane tähele, et veebilehitsejas avaneb dialoogiaken, kus palutakse luba sinu mikrofoni jagamiseks.",
@@ -445,8 +451,8 @@
     "app.audio.listenOnly.closeLabel": "Sulge",
     "app.audio.permissionsOverlay.title": "Luba juurdepääs oma mikrofonile",
     "app.audio.permissionsOverlay.hint": "Vajame sinu meediaseadmete kasutamiseks luba, et saaksime sind audiokonverentsiga ühendada :)",
-    "app.error.removed": "Oled konverentsilt eemaldatud",
-    "app.error.meeting.ended": "Oled konverentsist välja logitud",
+    "app.error.removed": "Oled sessioonilt eemaldatud",
+    "app.error.meeting.ended": "Oled sessioonist välja logitud",
     "app.meeting.logout.duplicateUserEjectReason": "Olemasolev kasutaja üritab ruumiga liituda",
     "app.meeting.logout.permissionEjectReason": "Tagasi lükatud õiguste rikkumise pärast",
     "app.meeting.logout.ejectedFromMeeting": "Oled ruumist eemaldatud",
@@ -494,7 +500,7 @@
     "app.notification.recordingStart": "Sessiooni salvestatakse",
     "app.notification.recordingStop": "Sessiooni ei salvestata",
     "app.notification.recordingPaused": "Sessiooni enam ei salvestata",
-    "app.notification.recordingAriaLabel": "Salvestatud aeg",
+    "app.notification.recordingAriaLabel": "Salvestuse kestus",
     "app.notification.userJoinPushAlert": "{0} liitus sessiooniga",
     "app.shortcut-help.title": "Kiirklahvid",
     "app.shortcut-help.accessKeyNotAvailable": "Juurdepääsuklahvid pole saadaval",
@@ -506,8 +512,8 @@
     "app.shortcut-help.toggleUserList": "Ava/peida kasutajate nimekiri",
     "app.shortcut-help.toggleMute": "Vaigista / Eemalda vaigistus",
     "app.shortcut-help.togglePublicChat": "Ava/peida avalik sõnumivahetus (kasutajate nimekiri peab olema avatud)",
-    "app.shortcut-help.hidePrivateChat": "Peida privaatne sõnumivahetus",
-    "app.shortcut-help.closePrivateChat": "Sulge privaatne sõnumivahetus",
+    "app.shortcut-help.hidePrivateChat": "Peida privaatne vestlus",
+    "app.shortcut-help.closePrivateChat": "Sulge privaatne vestlus",
     "app.shortcut-help.openActions": "Ava tegevustemenüü",
     "app.shortcut-help.openStatus": "Ava staatusemenüü",
     "app.shortcut-help.togglePan": "Aktiveeri liigutamistööriist (Esitleja)",
@@ -554,7 +560,7 @@
     "app.video.notFoundError": "Veebikaamerat ei leitud. Palun kontrolli, kas see on ühendatud",
     "app.video.notAllowed": "Veebikaamera jagamiseks puuduvad õigused. Palun kontrolli veebilehitsejas jagamisõigusi",
     "app.video.notSupportedError": "Veebikaamera videot saab jagada vaid üle turvalise ühenduse. Veendu, et su SSL sertifikaat on kehtiv.",
-    "app.video.notReadableError": "Veebikaamera videot ei õnnestunud kätte saada. Palun kontrolli, et ükski teine programm veebikaamerat samal ajal ei kasuta.",
+    "app.video.notReadableError": "Veebikaamera videot ei õnnestunud kätte saada. Palun kontrolli, et ükski teine programm veebikaamerat samal ajal ei kasuta",
     "app.video.mediaFlowTimeout1020": "Meedia ei saanud serveriga ühendust (viga 1020)",
     "app.video.suggestWebcamLock": "Kas jõustada vaatajate veebikaamerate lukustamine?",
     "app.video.suggestWebcamLockReason": "(see parandab sessiooni stabiilsust)",
@@ -569,19 +575,6 @@
     "app.video.videoMenuDesc": "Ava videomenüü",
     "app.video.chromeExtensionError": "Sa pead installeerima",
     "app.video.chromeExtensionErrorLink": "selle Chrome'i laienduse",
-    "app.video.stats.title": "Ãœhenduse statistika",
-    "app.video.stats.packetsReceived": "Vastuvõetud pakette",
-    "app.video.stats.packetsSent": "Saadetud pakette",
-    "app.video.stats.packetsLost": "Kaotatud pakette",
-    "app.video.stats.bitrate": "Bitikiirus",
-    "app.video.stats.lostPercentage": "Kaotusprotsent kokku",
-    "app.video.stats.lostRecentPercentage": "Kaotusprotsent hiljuti",
-    "app.video.stats.dimensions": "Mõõdud",
-    "app.video.stats.codec": "Koodek",
-    "app.video.stats.decodeDelay": "Dekodeerimise viivitus",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Kodeerija kasutus",
-    "app.video.stats.currentDelay": "Praegune viivitus",
     "app.fullscreenButton.label": "Esita {0} täisekraanil",
     "app.deskshare.iceConnectionStateError": "Ühendumine ebaõnnestus ekraani jagamisel (ICE viga 1108)",
     "app.sfu.mediaServerConnectionError2000": "Meediaserveriga ei saa ühendust (viga 2000)",
@@ -678,7 +671,7 @@
     "app.externalVideo.noteLabel": "Märkus: jagatud väliseid videoid sessiooni salvestisse ei kaasata. Toetatakse linke YouTube'i, Vimeo, Instructure Media, Twitchi ja Daily Motioni videotele.",
     "app.actionsBar.actionsDropdown.shareExternalVideo": "Jaga välist videot",
     "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Lõpeta välise video jagamine",
-    "app.iOSWarning.label": "Palun uuenda iOS versioonile 12.2 või hilisemale",
+    "app.iOSWarning.label": "Palun uuenda iOS versiooniks 12.2 või hilisemaks",
     "app.legacy.unsupportedBrowser": "Paistab, et kasutad veebilehitsejat, mida ei toetata. Täielikuks toetuseks kasuta palun brauserit {0} või {1}.",
     "app.legacy.upgradeBrowser": "Paistab, et kasutad toetatud veebilehitseja vanemat versiooni. Täielikuks toetuseks uuenda palun oma veebilehitsejat.",
     "app.legacy.criosBrowser": "Täielikuks toetuseks kasuta palun iOSis Safarit."
diff --git a/bigbluebutton-html5/private/locales/eu.json b/bigbluebutton-html5/private/locales/eu.json
index 35f5a2ac2b4f1781e1d9f51367d24f2955efab7b..3ed75d0597ba3621176325556287c8d02c0e7d95 100644
--- a/bigbluebutton-html5/private/locales/eu.json
+++ b/bigbluebutton-html5/private/locales/eu.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Bilerari geratzen zaion denbora: {0}",
     "app.meeting.meetingTimeHasEnded": "Denbora agortu da. Bilera laster itxiko da.",
     "app.meeting.endedMessage": "Hasierako pantailara itzuliko zara",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Bilera minutu batean itxiko da.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Banatze-taldeko bilera minutu batean itxiko da.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Bilera minutu bat barru itxiko da.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Bilera {0} minutu barru itxiko da.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Banatze-taldea {0} minutu barru itxiko da.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Banatze-taldea minutu bat barru itxiko da.",
     "app.presentation.hide": "Ezkutatu aurkezpena",
     "app.presentation.notificationLabel": "Uneko aurkezpena",
     "app.presentation.slideContent": "Diapositiba aurkezpena",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Irten",
     "app.leaveConfirmation.confirmDesc": "Bileratik kanporatzen zaitu",
     "app.endMeeting.title": "Amaitu bilera",
-    "app.endMeeting.description": "Ziur zaude bilera amaitu nahi duzula?",
+    "app.endMeeting.description": "Ziur zaude bilera hau partaide guztientzako amaitu nahi duzula? Partaide guztiak deskonektatuko dira.",
     "app.endMeeting.yesLabel": "Bai",
     "app.endMeeting.noLabel": "Ez",
     "app.about.title": "Honi buruz",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "Ireki bideoaren goitik-beherako menua",
     "app.video.chromeExtensionError": "Instalatu behar duzu",
     "app.video.chromeExtensionErrorLink": "Chromeren gehigarri hau",
-    "app.video.stats.title": "Konexioen estatistikak",
-    "app.video.stats.packetsReceived": "Jasotako paketeak",
-    "app.video.stats.packetsSent": "Bidalitako paketeak",
-    "app.video.stats.packetsLost": "Galdutako paketeak",
-    "app.video.stats.bitrate": "Bit-emaria",
-    "app.video.stats.lostPercentage": "Guztira galdutakoen ehunekoa",
-    "app.video.stats.lostRecentPercentage": "Duela gutxi galdutakoen ehunekoa",
-    "app.video.stats.dimensions": "Neurriak",
-    "app.video.stats.codec": "Kodeketa",
-    "app.video.stats.decodeDelay": "Dekodetze-atzerapena",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Kodetzearen erabilera",
-    "app.video.stats.currentDelay": "Uneko atzerapena",
     "app.fullscreenButton.label": "Jarri  {0} pantaila osoan",
     "app.deskshare.iceConnectionStateError": "Konexioak huts egin du pantaila partekatzean (1108 ICE errorea)",
     "app.sfu.mediaServerConnectionError2000": "Ezin da konektatu multimedia zerbitzaria (2000 errorea)",
diff --git a/bigbluebutton-html5/private/locales/fa_IR.json b/bigbluebutton-html5/private/locales/fa_IR.json
index 0247ed5ed0c3c72829765ec9a28d812081683067..3bbf096c15cdad478ea3bf24dd503d91cb3a8bfc 100644
--- a/bigbluebutton-html5/private/locales/fa_IR.json
+++ b/bigbluebutton-html5/private/locales/fa_IR.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "زمان باقی مانده از جلسه: {0}",
     "app.meeting.meetingTimeHasEnded": "زمان جلسه به اتمام رسید. جلسه در اسرع وقت بسته خواهد شد",
     "app.meeting.endedMessage": "شما در حال انتقال به صفحه اصلی هستید",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "جلسه ظرف یک دقیقه آینده بسته خواهد شد.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "جلسه ظرف یک دقیقه آینده به اتمام خواهد رسید.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "جلسه تا یک دقیقه دیگر به پایان می رسد.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "جلسه تا {0} دقیقه دیگر به پایان می رسد.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "اتمام جلسه زیر مجموعه تا {0} دقیقه دیگر",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "اتمام جلسه زیر مجموعه تا یک دقیقه دیگر",
     "app.presentation.hide": "پنهان سازی ارائه",
     "app.presentation.notificationLabel": "ارائه کنونی",
     "app.presentation.slideContent": "محتوای اسلاید",
@@ -159,17 +161,17 @@
     "app.presentation.presentationToolbar.fitToPage": "اندازه تصویر را متناسب با عرض صفحه کن",
     "app.presentation.presentationToolbar.goToSlide": "اسلاید {0}",
     "app.presentationUploder.title": "ارائه",
-    "app.presentationUploder.message": "به عنوان یک ارائه دهنده شما قادرید انواع فایل های مجموعه آفیس و یا فایل pdf را بارگذاری نمایید\nپیشنهاد ما ارائه با فایل pdf میباشد.لطفا از انتخاب بودن ارائه مورد نظر در سمت راست اطمینان حاصل نمایید.",
-    "app.presentationUploder.uploadLabel": "بارگزاری",
+    "app.presentationUploder.message": "به عنوان ارائه دهنده شما قادرید انواع فایل های مجموعه آفیس و یا فایل PDF را بارگذاری نمایید.\nپیشنهاد ما ارائه با فایل PDF است. لطفا از انتخاب بودن ارائه مورد نظر با استفاده از دکمه دایره شکل سمت راست اطمینان حاصل نمایید.",
+    "app.presentationUploder.uploadLabel": "بارگذاری",
     "app.presentationUploder.confirmLabel": "تایید",
     "app.presentationUploder.confirmDesc": "تغییرات خود را ذخیره کنید و ارائه را آغاز نمایید.",
     "app.presentationUploder.dismissLabel": "لغو",
     "app.presentationUploder.dismissDesc": "بستن پنجره و حذف تغییرات شما",
-    "app.presentationUploder.dropzoneLabel": "فایل های خود را برای آپلود کشیده و در اینجا رها کنید",
-    "app.presentationUploder.dropzoneImagesLabel": "تصاویر را به منظور بارگزاری اینجا رها کنید",
-    "app.presentationUploder.browseFilesLabel": "یا برای انتخاب فایل کلیک کنید.",
+    "app.presentationUploder.dropzoneLabel": "حهت بارگذاری، فایل‌های خود را بکشید و اینجا رها کنید",
+    "app.presentationUploder.dropzoneImagesLabel": "تصاویر را جهت بارگذاری بکشید و اینجا رها کنید",
+    "app.presentationUploder.browseFilesLabel": "یا برای انتخاب فایل کلیک کنید",
     "app.presentationUploder.browseImagesLabel": "یا عکس ها را بروز/بگیر",
-    "app.presentationUploder.fileToUpload": "آماده بارگزاری ...",
+    "app.presentationUploder.fileToUpload": "آماده بارگذاری ...",
     "app.presentationUploder.currentBadge": "کنونی",
     "app.presentationUploder.rejectedError": "فایل(های) انتخاب شده رد شدند. لطفا نوع فایل(ها) را بررسی کنید",
     "app.presentationUploder.upload.progress": "در حال بارگزاری ({0}%)",
@@ -178,14 +180,14 @@
     "app.presentationUploder.upload.404": "404: شناسه بارگذاری نامعتبر می باشد.",
     "app.presentationUploder.upload.401": "درخواست  شناسه بارگذاری ارائه ناموفق بوده است.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "در حال پردازش صفحه {0} از {1}",
-    "app.presentationUploder.conversion.genericConversionStatus": "در حال تبدیل فایل ...",
+    "app.presentationUploder.conversion.genericConversionStatus": "در حال تبدیل فایل...",
     "app.presentationUploder.conversion.generatingThumbnail": "در حال تولید تصاویر کوچک ...",
     "app.presentationUploder.conversion.generatedSlides": "اسلاید ها تولید شدند ...",
     "app.presentationUploder.conversion.generatingSvg": "در حال تولید تصاویر SVG ...",
     "app.presentationUploder.conversion.pageCountExceeded": "تعداد صفحات بیشتر از مقدار مجاز شده است، لطفا به چند فایل تقسیم کنید.",
     "app.presentationUploder.conversion.officeDocConversionInvalid": "خطا در پردازش مستند افیس، لطفا به جای آن، فایل PDF آپلود کنید.",
     "app.presentationUploder.conversion.officeDocConversionFailed": "خطا در پردازش مستند افیس، لطفا به جای آن، فایل PDF آپلود کنید.",
-    "app.presentationUploder.conversion.pdfHasBigPage": "تبدیل فایل pdf موفق نبود. لطفا فایل خود را ویرایش کنید.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "تبدیل فایل PDF موفق نبود. لطفا فایل خود را ویرایش کنید.",
     "app.presentationUploder.conversion.timeout": "اوپس، عملیات تبدیل خیلی طول کشید",
     "app.presentationUploder.conversion.pageCountFailed": "خطا در مشخص کردن تعداد صفحات مستند.",
     "app.presentationUploder.isDownloadableLabel": "مجوز دانلود ارائه را نده",
@@ -235,7 +237,7 @@
     "app.polling.pollingTitle": "امکانات نظرسنجی",
     "app.polling.pollAnswerLabel": "پاسخ نظرسنجی {0}",
     "app.polling.pollAnswerDesc": "این گزینه را برای رای دادن به {0} انتخاب کنید.",
-    "app.failedMessage": "عذر خواهی، مشکلی در اتصال به سرور به وجود آمده است.",
+    "app.failedMessage": "پوزش، مشکلی در اتصال به سرور به وجود آمده است.",
     "app.downloadPresentationButton.label": "دانلود فایل اصلی ارائه",
     "app.connectingMessage": "در حال اتصال ...",
     "app.waitingMessage": "ارتباط قطع شد. در حال تلاش مجدد در {0} ثانیه ...",
@@ -254,20 +256,20 @@
     "app.navBar.settingsDropdown.hotkeysLabel": "میانبرهای صفحه کلید",
     "app.navBar.settingsDropdown.hotkeysDesc": "لیست کردن میانبرهای موجود صفحه کلید",
     "app.navBar.settingsDropdown.helpLabel": "راهنما",
-    "app.navBar.settingsDropdown.helpDesc": "کاربر را به آموزش های ویدئویی متصل میکند (یک تب جدید باز میکند)",
-    "app.navBar.settingsDropdown.endMeetingDesc": "جلسه کنونی را خاتمه میدهد",
+    "app.navBar.settingsDropdown.helpDesc": "کاربر را به آموزش های ویدئویی متصل میکند (یک تب جدید باز می‌کند)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "جلسه کنونی را خاتمه می‌دهد",
     "app.navBar.settingsDropdown.endMeetingLabel": "اتمام جلسه",
     "app.navBar.userListToggleBtnLabel": "تغییر وضعیت نمایش لیست کاربران",
     "app.navBar.toggleUserList.ariaLabel": "تغییر وضعیت نمایش کاربران و پیام ها",
     "app.navBar.toggleUserList.newMessages": "اعلان با پیام جدید",
     "app.navBar.recording": "جلسه در حال ضبط شدن است",
     "app.navBar.recording.on": "در حال ضبط",
-    "app.navBar.recording.off": "ضبط نمیشود",
-    "app.navBar.emptyAudioBrdige": "میکروفون فعالی پیدا نشد.میکروفن خود را به اشتراک بگذارید تا قادر به ضبط باشد",
+    "app.navBar.recording.off": "ضبط نمی‌شود",
+    "app.navBar.emptyAudioBrdige": "میکروفون فعالی پیدا نشد. میکروفن خود را به اشتراک بگذارید تا قادر به ضبط باشد.",
     "app.leaveConfirmation.confirmLabel": "ترک",
-    "app.leaveConfirmation.confirmDesc": "شما را از جلسه خارج میکند",
+    "app.leaveConfirmation.confirmDesc": "شما را از جلسه خارج می‌کند",
     "app.endMeeting.title": "اتمام جلسه",
-    "app.endMeeting.description": "آیا مطمئنید که میخواهید این جلسه را به اتمام برسانید؟",
+    "app.endMeeting.description": "آیا مطمئن هستید که می خواهید این جلسه را به اتمام برسانید ؟ ( تمامی کاربران از جلسه خارج می شوند)",
     "app.endMeeting.yesLabel": "بله",
     "app.endMeeting.noLabel": "خیر",
     "app.about.title": "درباره",
@@ -284,12 +286,12 @@
     "app.actionsBar.raiseLabel": "اجازه گرفتن از استاد",
     "app.actionsBar.label": "نوار فعالیت ها",
     "app.actionsBar.actionsDropdown.restorePresentationLabel": "بازیابی ارائه",
-    "app.actionsBar.actionsDropdown.restorePresentationDesc": "دگمه بازیابی ارائه بعد از اینکه بسته شد",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "دکمه بازیابی ارائه بعد از اینکه بسته شد",
     "app.screenshare.screenShareLabel" : "اشتراک صفحه",
     "app.submenu.application.applicationSectionTitle": "برنامه",
     "app.submenu.application.animationsLabel": "انیمیشن ها",
-    "app.submenu.application.audioAlertLabel": "اعلان های صوتی برای گفتگو",
-    "app.submenu.application.pushAlertLabel": "اعلان های پاپ اپ برای گفتگو",
+    "app.submenu.application.audioAlertLabel": "هشدارهای صوتی برای گفتگو",
+    "app.submenu.application.pushAlertLabel": "هشدارهای پاپ آپ برای گفتگو",
     "app.submenu.application.userJoinAudioAlertLabel": "هشدار صوتی برای کاربر وارد شده",
     "app.submenu.application.userJoinPushAlertLabel": "پنجره هشدار ورود کاربر جدید",
     "app.submenu.application.fontSizeControlLabel": "اندازه متن",
@@ -301,7 +303,7 @@
     "app.submenu.application.noLocaleOptionLabel": "هیچ زبان فعالی وجود ندارد",
     "app.submenu.audio.micSourceLabel": "ورودی صدای میکروفن",
     "app.submenu.audio.speakerSourceLabel": "ورودی صدای بلندگو",
-    "app.submenu.audio.streamVolumeLabel": "بلندی صدای میکروفن شما",
+    "app.submenu.audio.streamVolumeLabel": "بلندی صدای میکروفون شما",
     "app.submenu.video.title": "ویدئو",
     "app.submenu.video.videoSourceLabel": "منبع تصویر",
     "app.submenu.video.videoOptionLabel": "انتخاب منبع تصویر",
@@ -328,7 +330,7 @@
     "app.talkingIndicator.isTalking" : "{0} در حال صحبت کردن است",
     "app.talkingIndicator.wasTalking" : "{0} به صحبت خود پایان داد",
     "app.actionsBar.actionsDropdown.actionsLabel": "فعالیت ها",
-    "app.actionsBar.actionsDropdown.presentationLabel": "بارگزاری فایل ارائه",
+    "app.actionsBar.actionsDropdown.presentationLabel": "بارگذاری فایل ارائه",
     "app.actionsBar.actionsDropdown.initPollLabel": "ایجاد نظرسنجی",
     "app.actionsBar.actionsDropdown.desktopShareLabel": "اشتراک صفحه نمایش",
     "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "اشتراک گذاری قفل شد",
@@ -413,7 +415,7 @@
     "app.audioModal.settingsTitle": "تغییر تنظیمات صدا",
     "app.audioModal.helpTitle": "مشکلی در سخت افزار صوت و تصویر شما وجود دارد",
     "app.audioModal.helpText": "آیا شما مجوز استفاده از میکروفون خود را داده اید؟ شایان ذکر است که هنگام اتصال به بخش صدا یک کادر میبایست باز شود که از شما مجوز دسترسی به بخش مدیا را درخواست کند، لطفا آن را برای اتصال به بخش صدا قبول کنید. اگر مشکل این نیست، تنظیمات مجوزات میکروفون در مرورگر خود را تغییر دهید.",
-    "app.audioModal.help.noSSL": "مشکل ssl  در این صفحه وجود دارد. لطفا با مدیر سیستم تماس بگیرید.",
+    "app.audioModal.help.noSSL": "مشکل ssl در این صفحه وجود دارد. لطفا با مدیر سیستم تماس بگیرید.",
     "app.audioModal.help.macNotAllowed": "سیستم مک بوک شما دسترسی به میکروفون را محدود کرده از مسیر زیر مشکل را رفع کنید.\n System Preferences > Security & Privacy > Privacy > Microphone",
     "app.audioModal.audioDialTitle": "پیوستن به بخش صوتی با استفاده از تلفن خود",
     "app.audioDial.audioDialDescription": "شماره گیری",
@@ -441,13 +443,13 @@
     "app.audio.backLabel": "بازگشت",
     "app.audio.audioSettings.titleLabel": "انتخاب تنظیمات صدای شما",
     "app.audio.audioSettings.descriptionLabel": "لطفا توجه کنید، یک پیام در مرورگر شما ظاهر میشود، که از شما میخواهد اجازه اشتراک میکروفن خود را بدهید.",
-    "app.audio.audioSettings.microphoneSourceLabel": "منبع ورودی میکروفن",
+    "app.audio.audioSettings.microphoneSourceLabel": "منبع ورودی میکروفون",
     "app.audio.audioSettings.speakerSourceLabel": "منبع خروجی صدا",
     "app.audio.audioSettings.microphoneStreamLabel": "بلندی صدای میکروفن شما",
     "app.audio.audioSettings.retryLabel": "تلاش مجدد",
     "app.audio.listenOnly.backLabel": "بازگشت",
     "app.audio.listenOnly.closeLabel": "بستن",
-    "app.audio.permissionsOverlay.title": "اجازه دهید دسترسی به میکروفن شما وجود داشته باشد.",
+    "app.audio.permissionsOverlay.title": "اجازه دهید دسترسی به میکروفون شما وجود داشته باشد.",
     "app.audio.permissionsOverlay.hint": "ما برای متصل کردن شما به کنفرانس صوتی نیازمند داشتن مجوز دسترسی به دستگاه های صوتی شما هستیم :)",
     "app.error.removed": "شما از کنفرانس حذف شده اید",
     "app.error.meeting.ended": "شما از کنفرانس خارج شده اید",
@@ -496,8 +498,8 @@
     "app.toast.meetingMuteOn.label": "صدای همه کاربران به حالت بی صدا تغییر کرد",
     "app.toast.meetingMuteOff.label": "امکان بیصدا کردن جلسه غیر فعال شد",
     "app.notification.recordingStart": "جلسه در حال ضبط شدن است",
-    "app.notification.recordingStop": "این جلسه ضبط نمیشود",
-    "app.notification.recordingPaused": "جلسه دیگر ضبط نمیشود",
+    "app.notification.recordingStop": "این جلسه ضبط نمی‌شود",
+    "app.notification.recordingPaused": "جلسه دیگر ضبط نمی‌شود",
     "app.notification.recordingAriaLabel": "زمان رکورد شده",
     "app.notification.userJoinPushAlert": "{0} به کلاس پیوستند",
     "app.shortcut-help.title": "میانبرهای صفحه کلید",
@@ -536,7 +538,7 @@
     "app.recording.startTitle": "شروع ضبط",
     "app.recording.stopTitle": "متوقف کردن ضبط",
     "app.recording.resumeTitle": "از سر گرفتن ضبط",
-    "app.recording.startDescription": "شما میتوانید برای توقف ضبط ، مجددا دکمه ضبط را فشار دهید.",
+    "app.recording.startDescription": "جهت توقف ضبط، می‌توانید مجددا دکمه ضبط را فشار دهید.",
     "app.recording.stopDescription": "آیا از توقف ضبط اطمینان دارید؟شما میتوانید مجددا عملیات ضبط را فعال نمایید",
     "app.videoPreview.cameraLabel": "دوربین",
     "app.videoPreview.profileLabel": "کیفیت",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "باز کردن منوی تنظیمات دوربین",
     "app.video.chromeExtensionError": "شما باید نصب کنید",
     "app.video.chromeExtensionErrorLink": "این افزونه کروم",
-    "app.video.stats.title": "آمار اتصال",
-    "app.video.stats.packetsReceived": "بسته های دریافت شده",
-    "app.video.stats.packetsSent": "بسته های ارسال شده",
-    "app.video.stats.packetsLost": "بسته های از دست رفته",
-    "app.video.stats.bitrate": "بیت ریت",
-    "app.video.stats.lostPercentage": "درصد از دست رفته",
-    "app.video.stats.lostRecentPercentage": "درصد از دست رفته اخیر",
-    "app.video.stats.dimensions": "ابعاد",
-    "app.video.stats.codec": "کدک",
-    "app.video.stats.decodeDelay": "تاخیر بازگشایی",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "میزان استفاده از انکود",
-    "app.video.stats.currentDelay": "تاخیر جاری",
     "app.fullscreenButton.label": "تغییر {0} به تمام صفحه",
     "app.deskshare.iceConnectionStateError": "ارتباط هنگام اشتراک صفخه با خطا مواجه شد (خطای ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "امکان اتصال به مدیا سرور وجود ندارد (خطای 2000)",
@@ -629,7 +618,7 @@
     "app.whiteboard.toolbar.multiUserOff": "غیر فعال کردن حالت چند کاربره تخته سیاه",
     "app.whiteboard.toolbar.fontSize": "لیست اندازه قلم",
     "app.feedback.title": "شما از کنفرانس خارج شده اید",
-    "app.feedback.subtitle": "بسیار ممنون میشویم نظر خود را در خصوص استفاده از برنامه بیگ بلو باتن بفرمایید (اختیاری)",
+    "app.feedback.subtitle": "بسیار ممنون می‌شویم نظر خود را در خصوص استفاده از برنامه بیگ بلو باتن بفرمایید (اختیاری)",
     "app.feedback.textarea": "چگونه میتوانیم برنامه بیگ بلو باتن را بهبود دهیم؟",
     "app.feedback.sendFeedback": "ارسال بازخورد",
     "app.feedback.sendFeedbackDesc": "ارسال بازخورد و ترک جلسه",
@@ -644,7 +633,7 @@
     "app.createBreakoutRoom.title": "اتاق های زیرمجموعه",
     "app.createBreakoutRoom.ariaTitle": "پنهان سازی اتاق های زیرمجموعه",
     "app.createBreakoutRoom.breakoutRoomLabel": "اتاق های زیرمجموعه {0}",
-    "app.createBreakoutRoom.generatingURL": "در حال تولید ادرس",
+    "app.createBreakoutRoom.generatingURL": "در حال تولید آدرس",
     "app.createBreakoutRoom.generatedURL": "تولید شده",
     "app.createBreakoutRoom.duration": "طول {0}",
     "app.createBreakoutRoom.room": "اتاق {0}",
diff --git a/bigbluebutton-html5/private/locales/fi.json b/bigbluebutton-html5/private/locales/fi.json
index 2a7b80f831b3ef9ef8baa364717bd19efe91d69e..295f3f0386c85fa8c2fffaef89506442b0efa9b9 100644
--- a/bigbluebutton-html5/private/locales/fi.json
+++ b/bigbluebutton-html5/private/locales/fi.json
@@ -101,8 +101,6 @@
     "app.meeting.meetingTimeRemaining": "Aikaa jäljellä tapaamisessa: {0}",
     "app.meeting.meetingTimeHasEnded": "Aika päättyi, tapaaminen suljetaan pian",
     "app.meeting.endedMessage": "Sinut ohjataan automaattisesti takaisin kotinäkymään",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Tapaaminen suljetaan minuutin sisällä",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout-huone sulkeutuu minuutin sisällä",
     "app.presentation.hide": "Piilota esitys",
     "app.presentation.notificationLabel": "Nykyinen esitys",
     "app.presentation.slideContent": "Dian sisältö",
@@ -229,7 +227,6 @@
     "app.leaveConfirmation.confirmLabel": "Poistu",
     "app.leaveConfirmation.confirmDesc": "Kirjaa sinut ulos tapaamisesta.",
     "app.endMeeting.title": "Sulje tapaaminen",
-    "app.endMeeting.description": "Oletko varma että haluat sulkea tämän istunnon?",
     "app.endMeeting.yesLabel": "Kyllä",
     "app.endMeeting.noLabel": "Ei",
     "app.about.title": "Tietoja",
@@ -488,17 +485,6 @@
     "app.video.videoMenuDesc": "Avaa video-alasvetovalikko",
     "app.video.chromeExtensionError": "Sinun täytyy asentaa",
     "app.video.chromeExtensionErrorLink": "tämä Chrome-selaimen lisäosa",
-    "app.video.stats.title": "Yhteyden statistiikka",
-    "app.video.stats.packetsReceived": "Pakettia vastaanotettu",
-    "app.video.stats.packetsSent": "Pakettia lähetetty",
-    "app.video.stats.packetsLost": "Pakettia kadonnut",
-    "app.video.stats.bitrate": "Bittinopeus",
-    "app.video.stats.lostPercentage": "Kokonaisprosentteja menetetty",
-    "app.video.stats.lostRecentPercentage": "Äskettäin menetetty prosentteina",
-    "app.video.stats.dimensions": "Mittasuhteet",
-    "app.video.stats.codec": "Koodekki",
-    "app.video.stats.decodeDelay": "Dekoodauksen viive",
-    "app.video.stats.currentDelay": "Nykyinen viive",
     "app.fullscreenButton.label": "Aseta {0} kokoruuduntilaan.",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Kyselyn tulokset julkistettiin",
diff --git a/bigbluebutton-html5/private/locales/fr.json b/bigbluebutton-html5/private/locales/fr.json
index 4b3555d1957ecc782d8df6ade51c574c8b2feaa5..a42054606f41e06e71e63a31325710d2e0df6488 100644
--- a/bigbluebutton-html5/private/locales/fr.json
+++ b/bigbluebutton-html5/private/locales/fr.json
@@ -5,7 +5,7 @@
     "app.chat.disconnected": "Vous êtes déconnecté, les messages ne peuvent pas être envoyés",
     "app.chat.locked": "Le chat est verrouillé, les messages ne peuvent pas être envoyés",
     "app.chat.inputLabel": "Saisie des messages pour le chat {0}",
-    "app.chat.inputPlaceholder": "Envoyer message à {0}",
+    "app.chat.inputPlaceholder": "Envoyer un message à {0}",
     "app.chat.titlePublic": "Discussion publique",
     "app.chat.titlePrivate": "Discussion privée avec {0}",
     "app.chat.partnerDisconnected": "{0} a quitté la conférence",
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Temps de réunion restant : {0}",
     "app.meeting.meetingTimeHasEnded": "Le temps s'est écoulé. La réunion sera bientôt close",
     "app.meeting.endedMessage": "Vous serez redirigé vers l'écran d'accueil",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "La réunion se termine dans une minute.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "La réunion privée se ferme dans une minute.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "La conférence se fermera dans une minute.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "La conférence se fermera dans {0} minutes.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "La salle privée se fermera dans {0} minutes.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "La salle privée se fermera dans une minute.",
     "app.presentation.hide": "Masquer la présentation",
     "app.presentation.notificationLabel": "Présentation courante",
     "app.presentation.slideContent": "Contenu de la diapositive",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Quitter",
     "app.leaveConfirmation.confirmDesc": "Vous déconnecte de la conférence",
     "app.endMeeting.title": "Mettre fin à la réunion",
-    "app.endMeeting.description": "Êtes-vous sûr de vouloir terminer cette session ?",
+    "app.endMeeting.description": "Voulez-vous vraiment fermer cette conférence pour tout le monde (tous les utilisateurs seront déconnectés) ?",
     "app.endMeeting.yesLabel": "Oui",
     "app.endMeeting.noLabel": "Non",
     "app.about.title": "À propos",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "Ouvrir le menu déroulant de la vidéo",
     "app.video.chromeExtensionError": "Vous devez installer ",
     "app.video.chromeExtensionErrorLink": "cette extension Chrome",
-    "app.video.stats.title": "Statistiques de connexion",
-    "app.video.stats.packetsReceived": "Paquets reçus",
-    "app.video.stats.packetsSent": "Paquets envoyés",
-    "app.video.stats.packetsLost": "Paquets perdus",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Pourcentage perdu total",
-    "app.video.stats.lostRecentPercentage": "Pourcentage perdu récent",
-    "app.video.stats.dimensions": "Dimensions",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Délai de décodage",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Usage de l'encodage",
-    "app.video.stats.currentDelay": "Délai actuel",
     "app.fullscreenButton.label": "Rendre {0} plein écran",
     "app.deskshare.iceConnectionStateError": "Connexion échoué lors du partage d'écran (erreur ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Impossible de se connecter au serveur multimédia (erreur 2000)",
diff --git a/bigbluebutton-html5/private/locales/gl.json b/bigbluebutton-html5/private/locales/gl.json
index a37af171bc8b226567a4063b88d6f95b0730e97b..106341f499737888fc4ccf943f5117525f6be919 100644
--- a/bigbluebutton-html5/private/locales/gl.json
+++ b/bigbluebutton-html5/private/locales/gl.json
@@ -25,7 +25,7 @@
     "app.chat.two.typing": "{0} e {1} están a escribir",
     "app.captions.label": "Lendas",
     "app.captions.menu.close": "Pechar",
-    "app.captions.menu.start": "Iniciar",
+    "app.captions.menu.start": "Comezar",
     "app.captions.menu.ariaStart": "Comezar a escribir lendas",
     "app.captions.menu.ariaStartDesc": "Abre o editor de lendas e pecha a xanela modal",
     "app.captions.menu.select": "Seleccione idiomas dispoñíbeis",
@@ -44,7 +44,7 @@
     "app.captions.pad.ownershipTooltip": "Vai ser asignado coma propietario de {0} lendas",
     "app.captions.pad.interimResult": "Resultados provisionais",
     "app.captions.pad.dictationStart": "Iniciar ditado",
-    "app.captions.pad.dictationStop": "Deter ditado",
+    "app.captions.pad.dictationStop": "Deixar o ditado",
     "app.captions.pad.dictationOnDesc": "Activar o recoñecemento de voz",
     "app.captions.pad.dictationOffDesc": "Desactivar o recoñecemento de voz",
     "app.note.title": "Notas compartidas",
@@ -76,7 +76,7 @@
     "app.userList.menu.removeConfirmation.label": "Retirar o usuario ({0})",
     "app.userlist.menu.removeConfirmation.desc": " Impedir que este usuario se reincorpore á sesión.",
     "app.userList.menu.muteUserAudio.label": "Desactivar o son do usuario",
-    "app.userList.menu.unmuteUserAudio.label": "Activar o son do usuario",
+    "app.userList.menu.unmuteUserAudio.label": "Devolverlle o son ao usuario",
     "app.userList.userAriaLabel": "{0} {1} {2} estado {3}",
     "app.userList.menu.promoteUser.label": "Promover a moderador",
     "app.userList.menu.demoteUser.label": "Relegado a espectador",
@@ -92,7 +92,7 @@
     "app.userList.userOptions.muteAllExceptPresenterLabel": "Silenciar a todos os usuarios agás o presentador",
     "app.userList.userOptions.muteAllExceptPresenterDesc": "Silenciar a todos os usuarios na xuntanza agás o presentador",
     "app.userList.userOptions.unmuteAllLabel": "Desactivar o silencio na xuntanza",
-    "app.userList.userOptions.unmuteAllDesc": "Activar o son na xuntanza",
+    "app.userList.userOptions.unmuteAllDesc": "Devolverlle o son á xuntanza",
     "app.userList.userOptions.lockViewersLabel": "Bloquear espectadores",
     "app.userList.userOptions.lockViewersDesc": "Bloquear certas funcionalidades para os asistentes ao encontro",
     "app.userList.userOptions.disableCam": "As cámaras web dos espectadores están desactivadas",
@@ -124,10 +124,12 @@
     "app.screenshare.genericError": "Erro: produciuse un erro ao compartir a pantalla, ténteo de novo",
     "app.meeting.ended": "Rematou a sesión",
     "app.meeting.meetingTimeRemaining": "Tempo restante da xuntanza: {0}",
-    "app.meeting.meetingTimeHasEnded": "Rematou o tempo, A xuntanza pecharase en breve",
+    "app.meeting.meetingTimeHasEnded": "Rematou o tempo. A xuntanza pecharase en breve",
     "app.meeting.endedMessage": "Será reenviado á pantalla de inicio",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "A xuntanza pecharase nun minuto",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "A sala parcial pecharase nun minuto",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "A xuntanza pecharase nun minuto.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "A xuntanza pecharase en {0} minutos.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "A sala parcial pecharase en {0} minutos.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "A sala parcial pecharase nun minuto.",
     "app.presentation.hide": "Agochar a presentación",
     "app.presentation.notificationLabel": "Presentación actual",
     "app.presentation.slideContent": "Contido da diapositiva",
@@ -174,9 +176,9 @@
     "app.presentationUploder.rejectedError": "O(s) ficheiro(s) seleccionado(s) foi(foron) rexeitado(s). Revise o(os) tipo(s) de ficheiro.",
     "app.presentationUploder.upload.progress": "Enviando ({0}%)",
     "app.presentationUploder.upload.413": "O ficheiro é grande de máis, divídao en varios ficheiros",
-    "app.presentationUploder.upload.408": "Solicitar o tempo de espera da testemuña de envío.",
-    "app.presentationUploder.upload.404": "404: testemuña de envío non válida",
-    "app.presentationUploder.upload.401": "Produciuse un fallo na solicitude do tempo de espera da testemuña de envío.",
+    "app.presentationUploder.upload.408": "Solicitar o tempo de espera do testemuño de envío.",
+    "app.presentationUploder.upload.404": "404: o testemuño de envío non válido",
+    "app.presentationUploder.upload.401": "Produciuse un fallo na solicitude do tempo de espera do testemuño de envío.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Procesando páxina {0} de {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "Convertendo ficheiros…",
     "app.presentationUploder.conversion.generatingThumbnail": "Xerando miniaturas…",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Abandonar",
     "app.leaveConfirmation.confirmDesc": "Desconectarse da xuntanza",
     "app.endMeeting.title": "Rematar a xuntanza",
-    "app.endMeeting.description": "Confirma que quere rematar esta sesión?",
+    "app.endMeeting.description": "Confirma que quere rematar esta xuntanza para todos (todos os usuarios serán desconectados)?",
     "app.endMeeting.yesLabel": "Si",
     "app.endMeeting.noLabel": "Non",
     "app.about.title": "Sobre",
@@ -279,7 +281,7 @@
     "app.about.dismissDesc": "Pechar a información sobre o cliente",
     "app.actionsBar.changeStatusLabel": "Cambiar o estado",
     "app.actionsBar.muteLabel": "Desactivar o son",
-    "app.actionsBar.unmuteLabel": "Activar o son",
+    "app.actionsBar.unmuteLabel": "Devolver o son ",
     "app.actionsBar.camOffLabel": "Cámara apagada",
     "app.actionsBar.raiseLabel": "Erguer",
     "app.actionsBar.label": "Barra de accións",
@@ -373,7 +375,7 @@
     "app.audioNotification.audioFailedError1001": "WebSocket desconectado (error 1001)",
     "app.audioNotification.audioFailedError1002": "Non foi posíbel facer unha conexión WebSocket (erro 1002)",
     "app.audioNotification.audioFailedError1003": "A versión do navegador non é compatíbel (erro 1003)",
-    "app.audioNotification.audioFailedError1004": "Produciuse un fallo na chamada (razón={0}) (erro 1004)",
+    "app.audioNotification.audioFailedError1004": "Produciuse un fallo na chamada (motivo={0}) (erro 1004)",
     "app.audioNotification.audioFailedError1005": "A chamada rematou inesperadamente (erro 1005)",
     "app.audioNotification.audioFailedError1006": "Rematou o tempo de espera da chamada (erro 1006)",
     "app.audioNotification.audioFailedError1007": "Produciuse un fallo de conexión (erro ICE 1007)",
@@ -412,7 +414,7 @@
     "app.audioModal.echoTestTitle": "Esta é unha proba de eco privada. Diga unhas palabras. Escoitou o son?",
     "app.audioModal.settingsTitle": "Cambiar a súa configuración de son",
     "app.audioModal.helpTitle": "Houbo un problema cos seus dispositivos multimedia",
-    "app.audioModal.helpText": "Deu permiso para acceder ao seu micrófono? Teña en conta que debería aparecer un diálogo cando tente unirse ao son, solicitando os permisos do seu dispositivo multimedia, acépteos para unirse a conferencia de son. Se non é así, tente cambiar os permisos do micrófono na configuración do seu navegador.",
+    "app.audioModal.helpText": "Deu permiso para acceder ao seu micrófono? Teña en conta que debería aparecer un diálogo cando tente unirse ao son, solicitando os permisos do seu dispositivo multimedia, acépteos para unirse á conferencia de son. Se non é así, tente cambiar os permisos do micrófono na configuración do seu navegador.",
     "app.audioModal.help.noSSL": "Esta páxina non é segura. Para poder acceder ao micrófono a páxina ten que ser servida mediante HTTPS. Contacte co administrador do servidor.",
     "app.audioModal.help.macNotAllowed": "Parece que as preferencias do teu sistema Mac están a bloquear o acceso ao mícrofono. Abra Preferencias do sistema > Seguridade e privacidade > Privacidade > Micrófono, e verifique que o navegador que está a usar está marcado.",
     "app.audioModal.audioDialTitle": "Unirse usando o seu teléfono",
@@ -422,12 +424,12 @@
     "app.audioModal.playAudio": "Reproducir son",
     "app.audioModal.playAudio.arialabel" : "Reproducir son",
     "app.audioDial.tipIndicator": "Consello",
-    "app.audioDial.tipMessage": "Prema a tecla «0» no seu teléfono para silenciar/activar o seu propio son.",
+    "app.audioDial.tipMessage": "Prema a tecla «0» no seu teléfono para silenciar/devolver o seu propio son.",
     "app.audioModal.connecting": "Conectando",
     "app.audioModal.connectingEchoTest": "Conectando coa proba de eco",
     "app.audioManager.joinedAudio": "Vostede uniuse á conferencia de son",
     "app.audioManager.joinedEcho": "Vostede uniuse á proba de eco",
-    "app.audioManager.leftAudio": "Vostede abandonou á conferencia de son",
+    "app.audioManager.leftAudio": "Vostede abandonou a conferencia de son",
     "app.audioManager.reconnectingAudio": "Tentando volver conectar o son",
     "app.audioManager.genericError": "Erro: produciuse un erro, tenteo de novo",
     "app.audioManager.connectionError": "Erro: Produciuse un erro de conexión",
@@ -440,7 +442,7 @@
     "app.audio.playSoundLabel": "Reproducir son",
     "app.audio.backLabel": "Atrás",
     "app.audio.audioSettings.titleLabel": "Escolla os seus axustes do son",
-    "app.audio.audioSettings.descriptionLabel": "Teña en conta que aparecerá un diálogo no navegador que requira que acepte compartir o seu micrófono",
+    "app.audio.audioSettings.descriptionLabel": "Teña en conta que aparecerá un diálogo no navegador que lle requerirá que acepte compartir o seu micrófono",
     "app.audio.audioSettings.microphoneSourceLabel": "Fonte de micrófono",
     "app.audio.audioSettings.speakerSourceLabel": "Fonte de altofalante",
     "app.audio.audioSettings.microphoneStreamLabel": "O seu volume do fluxo de son",
@@ -454,7 +456,7 @@
     "app.meeting.logout.duplicateUserEjectReason": "Usuario duplicado tentando unirse á xuntanza",
     "app.meeting.logout.permissionEjectReason": "Expulsado por violación de permiso",
     "app.meeting.logout.ejectedFromMeeting": "Vostede foi retirado/a da xuntanza",
-    "app.meeting.logout.validateTokenFailedEjectReason": "Produciuse un erro ao validar a testemuña de autorización",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Produciuse un erro ao validar o testemuño de autorización",
     "app.meeting.logout.userInactivityEjectReason": "Usuario inactivo durante demasiado tempo",
     "app.meeting-ended.rating.legendLabel": "Valoración de comentarios",
     "app.meeting-ended.rating.starLabel": "Estrela",
@@ -508,7 +510,7 @@
     "app.shortcut-help.closeDesc": " Pecha a xanela modal de atallos do teclado",
     "app.shortcut-help.openOptions": "Abrir opcións",
     "app.shortcut-help.toggleUserList": "Alternar a lista de usuarios",
-    "app.shortcut-help.toggleMute": "Silenciar/Activar son",
+    "app.shortcut-help.toggleMute": "Silenciar/Devolver o son",
     "app.shortcut-help.togglePublicChat": "Alternar a conversa pública (a lista de usuarios debe estar aberta)",
     "app.shortcut-help.hidePrivateChat": "Agochar a conversa privada",
     "app.shortcut-help.closePrivateChat": "Pechar a conversa privada",
@@ -533,9 +535,9 @@
     "app.lock-viewers.button.cancel": "Cancelar",
     "app.lock-viewers.locked": "Bloqueado",
     "app.lock-viewers.unlocked": "Desbloqueado",
-    "app.recording.startTitle": "Iniciar gravación",
-    "app.recording.stopTitle": "Pausar gravación",
-    "app.recording.resumeTitle": "Continuar gravación",
+    "app.recording.startTitle": "Iniciar a gravación",
+    "app.recording.stopTitle": "Pausar a gravación",
+    "app.recording.resumeTitle": "Continuar coa gravación",
     "app.recording.startDescription": "Máis tarde pode usar o botón de gravación para deter a gravación.",
     "app.recording.stopDescription": "Confirma que quere deter a gravación? Pode continuala premendo de novo o botón de gravación.",
     "app.videoPreview.cameraLabel": "Cámara web",
@@ -544,6 +546,9 @@
     "app.videoPreview.closeLabel": "Pechar",
     "app.videoPreview.findingWebcamsLabel": "Buscando cámaras web",
     "app.videoPreview.startSharingLabel": "Comezar a compartir",
+    "app.videoPreview.stopSharingLabel": "Deixar de compartir",
+    "app.videoPreview.stopSharingAllLabel": " Deixalo todo",
+    "app.videoPreview.sharedCameraLabel": "Esta cámara xa está a ser compartida",
     "app.videoPreview.webcamOptionLabel": "Seleccionar a cámara web",
     "app.videoPreview.webcamPreviewLabel": "Vista preliminar de cámara web",
     "app.videoPreview.webcamSettingsTitle": "Axustes da cámara web",
@@ -558,7 +563,7 @@
     "app.video.notFoundError": "Non se atopou a cámara web. Asegúrese de que estea conectada",
     "app.video.notAllowed": "Fallo o permiso para a cámara web compartida, asegúrese de que os permisos do seu navegador son correctos",
     "app.video.notSupportedError": "Só é posíbel compartir cámaras web de fontes seguras, asegúrese de que o certificado SSL sexa valido",
-    "app.video.notReadableError": "Non se puido obter vídeo de webcam. Asegurate de que ningunha outra aplicación estea utilizandola.\n\nNon foi posíbel obter o vídeo da cámara web. Asegurese de que outro programa non estea a usar a cámara web",
+    "app.video.notReadableError": "Non foi posíbel obter o vídeo da cámara web. Asegurese de que outro programa non estea a usar a cámara web",
     "app.video.mediaFlowTimeout1020": "Os recursos multimedia non foron quen de acadar o servidor (erro 1020)",
     "app.video.suggestWebcamLock": "Forzar os axustes  de bloqueo para as cámaras web dos espectadores?",
     "app.video.suggestWebcamLockReason": "(isto mellorará a estabilidade da xuntanza)",
@@ -573,19 +578,6 @@
     "app.video.videoMenuDesc": "Abrir o menú despregable de vídeo",
     "app.video.chromeExtensionError": "Debe instalar",
     "app.video.chromeExtensionErrorLink": "esta extensión de Chrome",
-    "app.video.stats.title": "Estatísticas de conexión",
-    "app.video.stats.packetsReceived": "Paquetes recibidos",
-    "app.video.stats.packetsSent": "Paquetes enviados",
-    "app.video.stats.packetsLost": "Paquetes perdidos",
-    "app.video.stats.bitrate": "Taxa de bits",
-    "app.video.stats.lostPercentage": "Porcentaxe total de perda",
-    "app.video.stats.lostRecentPercentage": "Porcentaxe de perda recente",
-    "app.video.stats.dimensions": "Dimensións",
-    "app.video.stats.codec": "Códec",
-    "app.video.stats.decodeDelay": "Demora de decodificación",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Uso de codificador",
-    "app.video.stats.currentDelay": "Demora actual",
     "app.fullscreenButton.label": "Poñer {0} a pantalla completa",
     "app.deskshare.iceConnectionStateError": "Produciuse un fallo de conexión ao compartir a pantalla (erro ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Non foi posíbel conectar co servidor multimedia (erro 2000)",
@@ -599,6 +591,7 @@
     "app.sfu.noAvailableCodec2203": "O servidor non atopou un códec axeitado (erro 2203)",
     "app.meeting.endNotification.ok.label": "Aceptar",
     "app.whiteboard.annotations.poll": "Os resultados da enquisa foron publicados",
+    "app.whiteboard.annotations.pollResult": "Resultado da enquisa",
     "app.whiteboard.toolbar.tools": "Ferramentas",
     "app.whiteboard.toolbar.tools.hand": "Panorama",
     "app.whiteboard.toolbar.tools.pencil": "Lapis",
@@ -681,7 +674,7 @@
     "app.network.connection.effective.slow.help": "Máis información",
     "app.externalVideo.noteLabel": "Nota: os vídeos externos compartidos non aparecerán na gravación. Admítense os URL de YouTube, Vimeo, Instructure Media, Twitch e Daily Motion.",
     "app.actionsBar.actionsDropdown.shareExternalVideo": "Compartir un vídeo externo",
-    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Deter a compartición do vídeo externo",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Deixar de compartir o vídeo externo",
     "app.iOSWarning.label": "Actualice a iOS 12.2 ou superior",
     "app.legacy.unsupportedBrowser": "Parece que estás a usar un navegador que non é compatíbel. Utilice {0} ou {1} para obter unha compatibilidade completa.",
     "app.legacy.upgradeBrowser": "Parece que estás a usar unha versión antiga dun navegador compatíbel. Actualice o navegador para obter unha compatibilidade completa. ",
diff --git a/bigbluebutton-html5/private/locales/he.json b/bigbluebutton-html5/private/locales/he.json
index a3d1ce710807388f2645451cc417a8722d93a332..45aae44f33fa002b6a6738667c84f03cee843c58 100644
--- a/bigbluebutton-html5/private/locales/he.json
+++ b/bigbluebutton-html5/private/locales/he.json
@@ -63,6 +63,7 @@
     "app.userList.presenter": "מנחה",
     "app.userList.you": "את/ה",
     "app.userList.locked": "נעול",
+    "app.userList.byModerator": "ע\"י (מנהל הועידה)",
     "app.userList.label": "משתתפים",
     "app.userList.toggleCompactView.label": "עבור למצב צפיה מצומצם",
     "app.userList.guest": "אורח",
@@ -72,6 +73,8 @@
     "app.userList.menu.chat.label": "התחל שיחה פרטית",
     "app.userList.menu.clearStatus.label": "נקה סטטוס",
     "app.userList.menu.removeUser.label": "הוצא משתתף",
+    "app.userList.menu.removeConfirmation.label": "הסר משתמש ({0})",
+    "app.userlist.menu.removeConfirmation.desc": "אל תצרף בשנית את המשתמש לשיחה ",
     "app.userList.menu.muteUserAudio.label": "השתק",
     "app.userList.menu.unmuteUserAudio.label": "בטל השתקת משתמש",
     "app.userList.userAriaLabel": "{0} {1} {2}  במצב {3}",
@@ -111,6 +114,8 @@
     "app.media.autoplayAlertDesc": "אפשר גישה",
     "app.media.screenshare.start": "שיתוף מסך החל",
     "app.media.screenshare.end": "שיתוף מסך הסתיים",
+    "app.media.screenshare.unavailable": "שיתוף מסך אינו זמין",
+    "app.media.screenshare.notSupported": "שיתוף המסך אינו נתמך בדפדפן זה.",
     "app.media.screenshare.autoplayBlockedDesc": "נדרש אישור להצגת מסך המנחה.",
     "app.media.screenshare.autoplayAllowLabel": "צפה בשיתוף מסך",
     "app.screenshare.notAllowed": "Error: Permission to access screen wasn't granted.",
@@ -121,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "זמן נותר למפגש: {0}",
     "app.meeting.meetingTimeHasEnded": "המפגש הסתיים ויסגר בקרוב",
     "app.meeting.endedMessage": "תופנה למסך הבית",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "המפגש יסתיים בעוד כדקה.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout is closing in a minute.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "המפגש מסתיים בעוד דקה.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "המפגש מסתיים בעוד {0} דקות.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "החדר הפרטי נסגר בעוד {0} דקות.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "החדר הפרטי נסגר בעוד דקה.",
     "app.presentation.hide": "Hide presentation",
     "app.presentation.notificationLabel": "מצגת נוכחית",
     "app.presentation.slideContent": "שקופיות",
@@ -169,6 +176,9 @@
     "app.presentationUploder.rejectedError": "לא ניתן להעלות קבצים מסוג זה.",
     "app.presentationUploder.upload.progress": "מעלה ({0}%)",
     "app.presentationUploder.upload.413": "קובץ גדול מדי, אנא פצל את הקובץ למספר קבצים קטנים יותר.",
+    "app.presentationUploder.upload.408": "הסתיים הזמן לבקשת להעלאת קוד גישה. ",
+    "app.presentationUploder.upload.404": "404:הקוד גישה שהועלה אינו תקף.",
+    "app.presentationUploder.upload.401": "בקשת מצגת להעלאת קוד גישה נכשלה.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "מעבד דף {0} מתוך {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "ממיר קבצים ...",
     "app.presentationUploder.conversion.generatingThumbnail": "מייצר תצוגה מקדימה ...",
@@ -259,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "צא",
     "app.leaveConfirmation.confirmDesc": "מנתק אותך מהמפגש",
     "app.endMeeting.title": "סגור כיתה",
-    "app.endMeeting.description": "אתה בטוח שברצונך לסיים את המפגש?",
+    "app.endMeeting.description": "האם אתה בטוח שברצונך לסיים את המפגש לכולם (כל המשתתפים ינותקו)?",
     "app.endMeeting.yesLabel": "כן",
     "app.endMeeting.noLabel": "לא",
     "app.about.title": "אודות",
@@ -536,6 +546,9 @@
     "app.videoPreview.closeLabel": "סגור",
     "app.videoPreview.findingWebcamsLabel": "מחפש מצלמות רשת",
     "app.videoPreview.startSharingLabel": "התחל שיתוף",
+    "app.videoPreview.stopSharingLabel": "הפסק שיתוף",
+    "app.videoPreview.stopSharingAllLabel": "הפסק הכל",
+    "app.videoPreview.sharedCameraLabel": "המצלמה ככבר נמצאת בשיתוף",
     "app.videoPreview.webcamOptionLabel": "בחר מצלמה",
     "app.videoPreview.webcamPreviewLabel": "תצוגה מקדימה",
     "app.videoPreview.webcamSettingsTitle": "הגדרות מצלמה",
@@ -565,19 +578,6 @@
     "app.video.videoMenuDesc": "Open video menu dropdown",
     "app.video.chromeExtensionError": "You must install",
     "app.video.chromeExtensionErrorLink": "this Chrome extension",
-    "app.video.stats.title": "Connection Stats",
-    "app.video.stats.packetsReceived": "Packets received",
-    "app.video.stats.packetsSent": "Packets sent",
-    "app.video.stats.packetsLost": "Packets lost",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Total percentage lost",
-    "app.video.stats.lostRecentPercentage": "Recent percentage lost",
-    "app.video.stats.dimensions": "Dimensions",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Decode delay",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Encode usage",
-    "app.video.stats.currentDelay": "Current delay",
     "app.fullscreenButton.label": "Make {0} fullscreen",
     "app.deskshare.iceConnectionStateError": "Error 1108: ICE connection failed when sharing screen",
     "app.sfu.mediaServerConnectionError2000": "Error 2000: Unable to connect to media server",
@@ -591,6 +591,7 @@
     "app.sfu.noAvailableCodec2203": "Error 2203: Server could not find an appropriate codec",
     "app.meeting.endNotification.ok.label": "אישור",
     "app.whiteboard.annotations.poll": "תוצאות סקר פורסמו",
+    "app.whiteboard.annotations.pollResult": "תוצאות סקר",
     "app.whiteboard.toolbar.tools": "כלים",
     "app.whiteboard.toolbar.tools.hand": "×”×–×–×”",
     "app.whiteboard.toolbar.tools.pencil": "עפרון",
diff --git a/bigbluebutton-html5/private/locales/hi_IN.json b/bigbluebutton-html5/private/locales/hi_IN.json
index fd2dd983862dac36ddf332b5d85f3794707a62cd..59c3ac865ec01920e489cf1cf44628313860cadc 100644
--- a/bigbluebutton-html5/private/locales/hi_IN.json
+++ b/bigbluebutton-html5/private/locales/hi_IN.json
@@ -101,8 +101,6 @@
     "app.meeting.meetingTimeRemaining": "बैठक का समय शेष: {0}",
     "app.meeting.meetingTimeHasEnded": "समय समाप्त हुआ। बैठक जल्द ही बंद हो जाएगी",
     "app.meeting.endedMessage": "You will be forwarded back to the home screen",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "बैठक एक मिनट में बंद हो रही है।",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "ब्रेकआउट एक मिनट में बंद हो रहा है।",
     "app.presentation.hide": "प्रस्तुति छिपाएँ",
     "app.presentation.slideContent": "स्लाइड सामग्री",
     "app.presentation.startSlideContent": "स्लाइड सामग्री प्रारंभ",
@@ -213,7 +211,6 @@
     "app.leaveConfirmation.confirmLabel": "छोड़ना",
     "app.leaveConfirmation.confirmDesc": "आपको मीटिंग से बाहर कर देता है",
     "app.endMeeting.title": "मीटिंग खत्म",
-    "app.endMeeting.description": "क्या आप वाकई इस सत्र को समाप्त करना चाहते हैं?",
     "app.endMeeting.yesLabel": "हाँ",
     "app.endMeeting.noLabel": "नहीं",
     "app.about.title": "के बारे में",
@@ -450,19 +447,6 @@
     "app.video.videoMenuDesc": "खुला वीडियो मेनू ड्रॉपडाउन",
     "app.video.chromeExtensionError": "आपको स्थापित करना होगा",
     "app.video.chromeExtensionErrorLink": "यह क्रोम एक्सटेंशन है",
-    "app.video.stats.title": "कनेक्शन आँकड़े",
-    "app.video.stats.packetsReceived": "पैकेट मिले",
-    "app.video.stats.packetsSent": "पैकेट भेजे गए",
-    "app.video.stats.packetsLost": "पैकेट खो गए",
-    "app.video.stats.bitrate": "बिटरेट",
-    "app.video.stats.lostPercentage": "कुल प्रतिशत खो गया",
-    "app.video.stats.lostRecentPercentage": "हाल का प्रतिशत खो गया",
-    "app.video.stats.dimensions": "आयाम",
-    "app.video.stats.codec": "कोडेक",
-    "app.video.stats.decodeDelay": "देरी हो गई",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "उपयोग को एनकोड करें",
-    "app.video.stats.currentDelay": "वर्तमान देरी",
     "app.fullscreenButton.label": "फुलस्क्रीन बनाएं {0}",
     "app.meeting.endNotification.ok.label": "ठीक",
     "app.whiteboard.toolbar.tools": "उपकरण",
diff --git a/bigbluebutton-html5/private/locales/hr.json b/bigbluebutton-html5/private/locales/hr.json
index 512948e7ad4d1f281cf7bf66bb8f066a7067f3df..594d9baeb6acb705f3652684f3bc84a200a34e96 100644
--- a/bigbluebutton-html5/private/locales/hr.json
+++ b/bigbluebutton-html5/private/locales/hr.json
@@ -84,7 +84,6 @@
     "app.media.screenshare.autoplayBlockedDesc": "Trebamo vašu dozvolu kako bi vam podijelili zaslon prezentera.",
     "app.media.screenshare.autoplayAllowLabel": "Prikaži dijeljeni zaslon",
     "app.meeting.ended": "Ova sesija je završila",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Sesija se zatvara za minutu.",
     "app.presentation.hide": "Skrij prezentaciju",
     "app.presentation.notificationLabel": "Trenutačna prezentacija",
     "app.presentation.slideContent": "Sadržaj slajda",
@@ -151,7 +150,6 @@
     "app.navBar.recording.off": "Bez snimanja",
     "app.leaveConfirmation.confirmLabel": "Napusti",
     "app.endMeeting.title": "Završi sesiju",
-    "app.endMeeting.description": "Jeste li sigurni da želite završiti ovu sesiju?",
     "app.endMeeting.yesLabel": "Da",
     "app.endMeeting.noLabel": "Ne",
     "app.about.confirmLabel": "U redu",
@@ -250,9 +248,6 @@
     "app.video.videoButtonDesc": "Podijeli web-kameru",
     "app.video.videoMenu": "Video izbornik",
     "app.video.chromeExtensionError": "Morate instalirati",
-    "app.video.stats.dimensions": "Dimenzije",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.rtt": "RTT",
     "app.meeting.endNotification.ok.label": "U redu",
     "app.whiteboard.toolbar.tools": "Alati",
     "app.whiteboard.toolbar.tools.pencil": "Olovka",
diff --git a/bigbluebutton-html5/private/locales/hu_HU.json b/bigbluebutton-html5/private/locales/hu_HU.json
index 7036d814344eba524c988598cb49b3dec2881f52..ef73ca5d277a0d6ba43a98bd334d80acf3e51f07 100644
--- a/bigbluebutton-html5/private/locales/hu_HU.json
+++ b/bigbluebutton-html5/private/locales/hu_HU.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Az előadásból hátralévő idő: {0}",
     "app.meeting.meetingTimeHasEnded": "Az idő lejárt. Az előadás hamarosan véget ér",
     "app.meeting.endedMessage": "Visszairányítunk a kezdőképernyőre",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Az előadás egy perc múlva bezárul.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "A csapatszoba egy perc múlva bezárul.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Az előadás egy percen belül bezárul.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Az előadás {0} percen belül bezárul.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "A csapatszoba {0} percen belül bezárul.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "A csapatszoba egy percen belül bezárul.",
     "app.presentation.hide": "Prezentáció elrejtése",
     "app.presentation.notificationLabel": "Jelenlegi prezentáció",
     "app.presentation.slideContent": "Diatartalom",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Kilépés",
     "app.leaveConfirmation.confirmDesc": "Kiléptél az előadásból",
     "app.endMeeting.title": "Előadás befejezése",
-    "app.endMeeting.description": "Biztos, hogy bezárja ezt a munkamenetet?",
+    "app.endMeeting.description": "Biztos, hogy befejezi ezt a megbeszélését mindenki számára (az összes felhasználó kapcsolata megszűnik)?",
     "app.endMeeting.yesLabel": "Igen",
     "app.endMeeting.noLabel": "Nem",
     "app.about.title": "Névjegy",
@@ -544,6 +546,9 @@
     "app.videoPreview.closeLabel": "Bezárás",
     "app.videoPreview.findingWebcamsLabel": "Webkamerák keresése",
     "app.videoPreview.startSharingLabel": "Megosztás indítása",
+    "app.videoPreview.stopSharingLabel": "Megosztás befejezése",
+    "app.videoPreview.stopSharingAllLabel": "Összes befejezése",
+    "app.videoPreview.sharedCameraLabel": "Ezt a kamerát már megosztotta",
     "app.videoPreview.webcamOptionLabel": "Válassz webkamerát",
     "app.videoPreview.webcamPreviewLabel": "Webkamerám előnézete",
     "app.videoPreview.webcamSettingsTitle": "Webkamerám beállításai",
@@ -573,19 +578,6 @@
     "app.video.videoMenuDesc": "Videó lenyíló menü megnyitása",
     "app.video.chromeExtensionError": "Szükséges telepítenie",
     "app.video.chromeExtensionErrorLink": "ez a Chrome bővítmény",
-    "app.video.stats.title": "Kapcsolódási statisztikák",
-    "app.video.stats.packetsReceived": "Megérkezett csomagok",
-    "app.video.stats.packetsSent": "Elküldött csomagok",
-    "app.video.stats.packetsLost": "Elveszett csomagok",
-    "app.video.stats.bitrate": "Bitráta",
-    "app.video.stats.lostPercentage": "Összes veszteség százalékban",
-    "app.video.stats.lostRecentPercentage": "Jelenlegi veszteség százalékban",
-    "app.video.stats.dimensions": "Méretek",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Dekódolás késleltetése",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Kódolás használata",
-    "app.video.stats.currentDelay": "Jelenlegi elcsúszás",
     "app.fullscreenButton.label": "{0} teljes képernyős módra állítása",
     "app.deskshare.iceConnectionStateError": "Kapcsolódási hiba a képernyőmegosztáskor (ICE hiba 1108)",
     "app.sfu.mediaServerConnectionError2000": "Nem sikerült csatlakozni a médiaszerverhez (hiba 2000)",
@@ -599,6 +591,7 @@
     "app.sfu.noAvailableCodec2203": "A szerver nem találja a megfelelő kodeket (hiba 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "A szavazás eredményeit sikeresen közzétetted",
+    "app.whiteboard.annotations.pollResult": "Szavazás végeredménye",
     "app.whiteboard.toolbar.tools": "Eszközök",
     "app.whiteboard.toolbar.tools.hand": "Mozgatás",
     "app.whiteboard.toolbar.tools.pencil": "Ceruza",
diff --git a/bigbluebutton-html5/private/locales/id.json b/bigbluebutton-html5/private/locales/id.json
index 0bf995e19c54911d2c340ea52ee34d4600b677af..dc29a0f78096f64dd6dac6e8d8835409d71b4900 100644
--- a/bigbluebutton-html5/private/locales/id.json
+++ b/bigbluebutton-html5/private/locales/id.json
@@ -7,7 +7,7 @@
     "app.chat.inputLabel": "Masukan pesan untuk obrolan {0}",
     "app.chat.inputPlaceholder": "Kirim pesan ke {0}",
     "app.chat.titlePublic": "Obrolan Publik",
-    "app.chat.titlePrivate": "Obrolan pribadi dengan {0}",
+    "app.chat.titlePrivate": "Obrolan Pribadi dengan {0}",
     "app.chat.partnerDisconnected": "{0} sudah keluar dari pertemuan",
     "app.chat.closeChatLabel": "Tutup {0}",
     "app.chat.hideChatLabel": "Sembunyikan {0}",
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Sisa waktu pertemuan: {0}",
     "app.meeting.meetingTimeHasEnded": "Waktu berakhir. Pertemuan akan segera ditutup",
     "app.meeting.endedMessage": "Anda akan diteruskan kembali ke layar beranda",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Pertemuan berakhir dalam satu menit.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Pecahan akan ditutup dalam satu menit.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Pertemuan berakhir dalam satu menit.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Pertemuan berakhir dalam {0} menit.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Pertemuan pecahan akan ditutup dalam {0} menit.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Pertemuan pecahan akan ditutup dalam satu menit.",
     "app.presentation.hide": "Sembunyikan presentasi",
     "app.presentation.notificationLabel": "Presentasi saat ini",
     "app.presentation.slideContent": "Isi Salindia",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Keluar",
     "app.leaveConfirmation.confirmDesc": "Anda keluar dari meeting",
     "app.endMeeting.title": "Akhir pertemuan",
-    "app.endMeeting.description": "Anda yakin ingin mengakhiri sesi ini?",
+    "app.endMeeting.description": "Anda yakin ingin mengakhiri pertemuan ini untuk setiap orang (semua pengguna akan diputus)?",
     "app.endMeeting.yesLabel": "Ya",
     "app.endMeeting.noLabel": "Tidak",
     "app.about.title": "Tentang",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "Buka dropdown menu video",
     "app.video.chromeExtensionError": "Anda mesti memasang",
     "app.video.chromeExtensionErrorLink": "ekstensi Chrome ini",
-    "app.video.stats.title": "Statistik Koneksi",
-    "app.video.stats.packetsReceived": "Paket diterima",
-    "app.video.stats.packetsSent": "Paket dikirim",
-    "app.video.stats.packetsLost": "Paket hilang",
-    "app.video.stats.bitrate": "Laju bit",
-    "app.video.stats.lostPercentage": "Total persentase hilang",
-    "app.video.stats.lostRecentPercentage": "Baru-baru ini persentase hilang",
-    "app.video.stats.dimensions": "Dimensi",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Tundaan dekode",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Penggunaan enkode",
-    "app.video.stats.currentDelay": "Tundaan saat ini",
     "app.fullscreenButton.label": "Jadikan {0} layar penuh",
     "app.deskshare.iceConnectionStateError": "Koneksi gagal ketika berbagi layar (ICE galat 1108)",
     "app.sfu.mediaServerConnectionError2000": "Tidak bisa menyambung ke server media (galat 2000)",
diff --git a/bigbluebutton-html5/private/locales/it_IT.json b/bigbluebutton-html5/private/locales/it_IT.json
index be8ce230a034171e69f9242b9a1eb04a5a6352be..ca61627e498bb3561d928425efc8fa37e66716a1 100644
--- a/bigbluebutton-html5/private/locales/it_IT.json
+++ b/bigbluebutton-html5/private/locales/it_IT.json
@@ -63,6 +63,7 @@
     "app.userList.presenter": "Presentatore",
     "app.userList.you": "Tu",
     "app.userList.locked": "Bloccato",
+    "app.userList.byModerator": "dal (Moderatore)",
     "app.userList.label": "Lista utenti",
     "app.userList.toggleCompactView.label": "Attiva/Disattiva modalità compatta",
     "app.userList.guest": "Ospite",
@@ -71,7 +72,9 @@
     "app.userList.chatListItem.unreadPlural": "{0} Nuovi Messaggi",
     "app.userList.menu.chat.label": "Avvia una chat privata",
     "app.userList.menu.clearStatus.label": "Cancella stato",
-    "app.userList.menu.removeUser.label": "Rimuovi Utente",
+    "app.userList.menu.removeUser.label": "Rimuovi utente",
+    "app.userList.menu.removeConfirmation.label": "Rimuovi utente ({0})",
+    "app.userlist.menu.removeConfirmation.desc": "Impedire a questo utente di riconnettersi alla sessione.",
     "app.userList.menu.muteUserAudio.label": "Silenzia utente",
     "app.userList.menu.unmuteUserAudio.label": "Riattiva utente",
     "app.userList.userAriaLabel": "{0} {1} {2} Stato {3}",
@@ -112,18 +115,21 @@
     "app.media.screenshare.start": "Condivisione schermo avviata",
     "app.media.screenshare.end": "Condivisione schermo terminata",
     "app.media.screenshare.unavailable": "Condivisione schermo non disponibile",
+    "app.media.screenshare.notSupported": "La condivisione dello schermo non è supportata in questo browser.",
     "app.media.screenshare.autoplayBlockedDesc": "Abbiamo bisogno del tuo permesso per mostrarti lo schermo del presentatore",
     "app.media.screenshare.autoplayAllowLabel": "Visualizza schermo condiviso",
     "app.screenshare.notAllowed": "Errore: non è stato permesso l'accesso",
-    "app.screenshare.notSupportedError": "Errore: la condivisione schermo è disponibile solo sulle connessioni sicure (SSL)",
+    "app.screenshare.notSupportedError": "Errore: la condivisione dello schermo è disponibile solo sulle connessioni sicure (SSL)",
     "app.screenshare.notReadableError": "Errore: non è stato possibile acquisire il tuo schermo",
-    "app.screenshare.genericError": "Errore: si è verificato un problema con la condivisione schermo, riprova",
+    "app.screenshare.genericError": "Errore: si è verificato un problema con la condivisione dello schermo, riprova",
     "app.meeting.ended": "La sessione è terminata",
     "app.meeting.meetingTimeRemaining": "Tempo rimanente al termine del meeting: {0}",
     "app.meeting.meetingTimeHasEnded": "Tempo scaduto. Il meeting terminerà a breve",
     "app.meeting.endedMessage": "Verrai riportato alla pagina iniziale",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Il meeting terminerà entro un minuto.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout terminerà entro un minuto",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Il meeting termino tra un minuto.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Il meeting termino tra {0} minuti.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "La stanza breakout termina tra {0} minuti.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "La stanza breakout termina tra uno minuto.",
     "app.presentation.hide": "Nascondi presentazione",
     "app.presentation.notificationLabel": "Presentazione corrente",
     "app.presentation.slideContent": "Contenuto della slide",
@@ -261,7 +267,7 @@
     "app.leaveConfirmation.confirmLabel": "Abbandona",
     "app.leaveConfirmation.confirmDesc": "Abbandona il meeting",
     "app.endMeeting.title": "Fine Meeting",
-    "app.endMeeting.description": "Sei sicuro di voler terminare il meeting?",
+    "app.endMeeting.description": "Vuoi chiudere questo meeting per tutti (tutti gli utenti verranno disconnessi)?",
     "app.endMeeting.yesLabel": "Si",
     "app.endMeeting.noLabel": "No",
     "app.about.title": "Informazioni",
@@ -566,19 +572,6 @@
     "app.video.videoMenuDesc": "Apre il menu video",
     "app.video.chromeExtensionError": "Devi installare",
     "app.video.chromeExtensionErrorLink": "questa estensione per Chrome",
-    "app.video.stats.title": "Statistiche connessione",
-    "app.video.stats.packetsReceived": "Pacchetti ricevuti",
-    "app.video.stats.packetsSent": "Pacchetti inviati",
-    "app.video.stats.packetsLost": "Pacchetti persi",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Percentuale totale persi",
-    "app.video.stats.lostRecentPercentage": "Percentuale recenti persi",
-    "app.video.stats.dimensions": "Dimensioni",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Ritardo di decodifica",
-    "app.video.stats.rtt": "Real Time",
-    "app.video.stats.encodeUsagePercent": "Utilizzo decodifica",
-    "app.video.stats.currentDelay": "Ritardo attuale",
     "app.fullscreenButton.label": "Metti {0} a schermo intero",
     "app.deskshare.iceConnectionStateError": "Connessione fallita nella condivisione dello schermo (errore ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Impossibile connettersi al server dei media (errore 2000)",
diff --git a/bigbluebutton-html5/private/locales/ja.json b/bigbluebutton-html5/private/locales/ja.json
index 441f1c68c8844a4e84b93501ed2f74be7c57016b..21160934ae5f25ffd2819530335951319fedaa3e 100644
--- a/bigbluebutton-html5/private/locales/ja.json
+++ b/bigbluebutton-html5/private/locales/ja.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "会議の残り時間:{0}",
     "app.meeting.meetingTimeHasEnded": "時間終了。会議はまもなく終了します。",
     "app.meeting.endedMessage": "ホームスクリーンに戻ります",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "あと1分で会議は終了します。",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "あと1分でブレイクアウトセッションは終了します。",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "会議はあと一分で終了します。",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "会議はあと{0}分で終了します。",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "この小会議はあと{0}分で終了します。",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "この小会議はあと一分で終了します。",
     "app.presentation.hide": "プレゼンテーションを非表示",
     "app.presentation.notificationLabel": "現在のプレゼンテーション",
     "app.presentation.slideContent": "スライドコンテンツ",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "退室",
     "app.leaveConfirmation.confirmDesc": "自分を会議からログアウトさせる",
     "app.endMeeting.title": "会議を終了する",
-    "app.endMeeting.description": "この会議を終了しますか?",
+    "app.endMeeting.description": "本当にこの会議を終了(すべての参加者の接続を切断)してよろしいですか?",
     "app.endMeeting.yesLabel": "はい",
     "app.endMeeting.noLabel": "いいえ",
     "app.about.title": "製品情報",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "ビデオメニューのドロップダウンを開く",
     "app.video.chromeExtensionError": "インストールしてください",
     "app.video.chromeExtensionErrorLink": "このChromeの拡張機能",
-    "app.video.stats.title": "接続情報",
-    "app.video.stats.packetsReceived": "パケット受信",
-    "app.video.stats.packetsSent": "パケット送信",
-    "app.video.stats.packetsLost": "エラーパケット",
-    "app.video.stats.bitrate": "ビットレート",
-    "app.video.stats.lostPercentage": "総損失率",
-    "app.video.stats.lostRecentPercentage": "最新の損失率",
-    "app.video.stats.dimensions": "解像度",
-    "app.video.stats.codec": "コーデック",
-    "app.video.stats.decodeDelay": "遅延(ディコード)",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "エンコードの使用状況",
-    "app.video.stats.currentDelay": "遅延(最新)",
     "app.fullscreenButton.label": "{0}を全画面に切り替える",
     "app.deskshare.iceConnectionStateError": "画面共有の接続に失敗しました (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "メディアサーバーに接続できません (error 2000)",
@@ -599,6 +588,7 @@
     "app.sfu.noAvailableCodec2203": "適切なコーデックが見つかりませんでした (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "投票結果が公開されました",
+    "app.whiteboard.annotations.pollResult": "投票結果",
     "app.whiteboard.toolbar.tools": "ツール",
     "app.whiteboard.toolbar.tools.hand": "パン",
     "app.whiteboard.toolbar.tools.pencil": "ペン",
diff --git a/bigbluebutton-html5/private/locales/ja_JP.json b/bigbluebutton-html5/private/locales/ja_JP.json
index 98faea372fc8a574e6a6e4eeafe557584494c283..95f42bdc3e6f855754ece26204d53105b7852563 100644
--- a/bigbluebutton-html5/private/locales/ja_JP.json
+++ b/bigbluebutton-html5/private/locales/ja_JP.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "会議の残り時間:{0}",
     "app.meeting.meetingTimeHasEnded": "終了時間です。まもなく会議を終了します。",
     "app.meeting.endedMessage": "ホームスクリーンに戻ります。",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "あと1分で会議が終了します。",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "あと1分でブレイクアウトセッションが終了します。",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "会議はあと一分で終了します。",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "会議はあと{0}分で終了します。",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "この小会議はあと{0}分で終了します。",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "この小会議はあと一分で終了します。",
     "app.presentation.hide": "プレゼンテーションを非表示",
     "app.presentation.notificationLabel": "現在のプレゼンテーション",
     "app.presentation.slideContent": "スライドコンテンツ",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "退室",
     "app.leaveConfirmation.confirmDesc": "自分を会議からログアウトさせる",
     "app.endMeeting.title": "会議を終了する",
-    "app.endMeeting.description": "この会議を終了しますか?",
+    "app.endMeeting.description": "本当にこの会議を終了(すべての参加者の接続を切断)してよろしいですか?",
     "app.endMeeting.yesLabel": "はい",
     "app.endMeeting.noLabel": "いいえ",
     "app.about.title": "製品情報",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "ビデオメニューのドロップダウンを開く",
     "app.video.chromeExtensionError": "インストールしてください",
     "app.video.chromeExtensionErrorLink": "Chromeの拡張機能",
-    "app.video.stats.title": "接続状態",
-    "app.video.stats.packetsReceived": "パケット受信",
-    "app.video.stats.packetsSent": "パケット送信",
-    "app.video.stats.packetsLost": "エラーパケット",
-    "app.video.stats.bitrate": "ビットレート",
-    "app.video.stats.lostPercentage": "総損失率",
-    "app.video.stats.lostRecentPercentage": "最新の損失率",
-    "app.video.stats.dimensions": "解像度",
-    "app.video.stats.codec": "コーデック",
-    "app.video.stats.decodeDelay": "遅延(ディコード)",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "エンコードの使用状況",
-    "app.video.stats.currentDelay": "遅延(最新)",
     "app.fullscreenButton.label": "{0}を全画面に切り替える",
     "app.deskshare.iceConnectionStateError": "画面共有の接続に失敗しました (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "メディアサーバーに接続できません (error 2000)",
@@ -599,6 +588,7 @@
     "app.sfu.noAvailableCodec2203": "適切なコーデックが見つかりませんでした (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "投票結果が公開されました",
+    "app.whiteboard.annotations.pollResult": "投票結果",
     "app.whiteboard.toolbar.tools": "ツール",
     "app.whiteboard.toolbar.tools.hand": "パン",
     "app.whiteboard.toolbar.tools.pencil": "ペン",
diff --git a/bigbluebutton-html5/private/locales/ka_GE.json b/bigbluebutton-html5/private/locales/ka_GE.json
index df4977d517a48d2f34d4e6a0f60dca3086d816ee..622cac7cb846c6f5457796a6e9404cf46ddf7420 100644
--- a/bigbluebutton-html5/private/locales/ka_GE.json
+++ b/bigbluebutton-html5/private/locales/ka_GE.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "შეხვედრისთვის დარჩენილი დრო: {0}",
     "app.meeting.meetingTimeHasEnded": "დრო ამოიწურა. სესია მალე დაიხურება",
     "app.meeting.endedMessage": "თქვენ დაბრუნდებით საწყის ეკრანზე",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "შეხვედრა ერთ წუთში დასრულდება",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "განხილვის ოთახი ერთ წუთში დაიხურება",
     "app.presentation.hide": "პრეზენტაციის დამალვა",
     "app.presentation.notificationLabel": "მიმდინარე პრეზენტაცია",
     "app.presentation.slideContent": "სლაიდის შინაარსი",
@@ -259,7 +257,6 @@
     "app.leaveConfirmation.confirmLabel": "დატოვება",
     "app.leaveConfirmation.confirmDesc": "გამოყავხართ შეხვედრიდან",
     "app.endMeeting.title": "შეხვედრის დასრულება",
-    "app.endMeeting.description": "დარწმუნებული ხართ, რომ გსურთ ამ სესიის დასრულება?",
     "app.endMeeting.yesLabel": "დიახ",
     "app.endMeeting.noLabel": "არა",
     "app.about.title": "შესახებ",
@@ -565,19 +562,6 @@
     "app.video.videoMenuDesc": "გახსენით ვიდეოს ჩამოსაშლელი მენიუ",
     "app.video.chromeExtensionError": "თქვენ უნდა დააინსტალიროთ",
     "app.video.chromeExtensionErrorLink": "Chrome-ის ეს გაფართოება",
-    "app.video.stats.title": "კავშირის სტატისტიკა",
-    "app.video.stats.packetsReceived": "მიღებული პაკეტები",
-    "app.video.stats.packetsSent": "გაგზავნილი პაკეტები",
-    "app.video.stats.packetsLost": "დაკარგული პაკეტები",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "დაკარგული პროცენტი ჯამურად",
-    "app.video.stats.lostRecentPercentage": "ბოლოს დაკარგული პროცენტი",
-    "app.video.stats.dimensions": "განზომილება",
-    "app.video.stats.codec": "კოდეკი",
-    "app.video.stats.decodeDelay": "დეკოდირების შეყოვნება",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "კოდირების/დაშიფრვის გამოყენება",
-    "app.video.stats.currentDelay": "მიმდინარე შეყოვნება",
     "app.fullscreenButton.label": "გამოიტანე {0} სრულ ეკრანზე",
     "app.deskshare.iceConnectionStateError": "ეკრანის გაზირებისას კავშირი შეწყდა (ICE შეცდომა 1108)",
     "app.sfu.mediaServerConnectionError2000": "ვერ ხერხდება მედია სერვერთან დაკავშირება (შეცდომა 2000)",
diff --git a/bigbluebutton-html5/private/locales/km.json b/bigbluebutton-html5/private/locales/km.json
index 1d6b744c58592af5ab0d0b22caf6b0b20ed27447..b89db012ccbe76e627976bf5551fdefbaeeecdd3 100644
--- a/bigbluebutton-html5/private/locales/km.json
+++ b/bigbluebutton-html5/private/locales/km.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "ពេលប្រជុំនៅសល់៖  {0}",
     "app.meeting.meetingTimeHasEnded": "ដល់ពេលកំណត់។ កិច្ចប្រជុំនឹងបញ្ចប់បន្តិចទៀតនេះ។",
     "app.meeting.endedMessage": "អ្នកនឹងត្រូវបាននាំទៅកាន់ទំព័រដើម",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "កិច្ចប្រជុំនឹងបិទនៅពេលបន្តិចទៀត",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "បន្ទប់បំបែកនឹងបិទនាពេលបន្តិចទៀត",
     "app.presentation.hide": "លាក់បទបង្ហាញ",
     "app.presentation.notificationLabel": "បទបង្ហាញបច្ចុប្បន្ន",
     "app.presentation.slideContent": "ខ្លឹមសារក្នុងស្លាយ",
@@ -250,7 +248,6 @@
     "app.leaveConfirmation.confirmLabel": "ចាកចេញ",
     "app.leaveConfirmation.confirmDesc": "ដក​អ្នក​ចេញ​ពី​ការ​ប្រជុំ",
     "app.endMeeting.title": "បញ្ចប់កិច្ចប្រជុំ",
-    "app.endMeeting.description": "តើអ្នកពិតជាចង់បញ្ចប់សម័យប្រជុំនេះមែនទេ?",
     "app.endMeeting.yesLabel": "បាទ/ចាស",
     "app.endMeeting.noLabel": "ទេ",
     "app.about.title": "អំពី",
@@ -522,19 +519,6 @@
     "app.video.videoMenuDesc": "បើកម៉ឺនុយទម្លាក់ចុះសម្រាប់វីដេអូ",
     "app.video.chromeExtensionError": "អ្នកត្រូវតែដំឡើង",
     "app.video.chromeExtensionErrorLink": "កម្មវិធីបន្ថែម Chrome នេះ",
-    "app.video.stats.title": "ស្ថិតិនៃការតភ្ជាប់",
-    "app.video.stats.packetsReceived": "កញ្ចប់បានទទួល",
-    "app.video.stats.packetsSent": "កញ្ចប់បានផ្ញើ",
-    "app.video.stats.packetsLost": "កញ្ចប់បានបាត់បង់",
-    "app.video.stats.bitrate": "អត្រាប៊ីត",
-    "app.video.stats.lostPercentage": "ចំនួនភាគរយសរុបដែលបានបាត់បង់",
-    "app.video.stats.lostRecentPercentage": "ភាគរយថ្មីៗដែលបានបាត់បង់",
-    "app.video.stats.dimensions": "វិមាត្រ",
-    "app.video.stats.codec": "កូដឌិក",
-    "app.video.stats.decodeDelay": "ពេលពន្យាសម្រាប់ការបម្លែង",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "ការប្រើប្រាស់កូដ",
-    "app.video.stats.currentDelay": "ពន្យាពេលបច្ចុប្បន្ន",
     "app.fullscreenButton.label": "ធ្វើឱ្យ {0} អេក្រង់ពេញ",
     "app.meeting.endNotification.ok.label": "យល់ព្រម",
     "app.whiteboard.annotations.poll": "លទ្ធផលការស្ទង់មតិត្រូវបានចេញផ្សាយ",
diff --git a/bigbluebutton-html5/private/locales/kn.json b/bigbluebutton-html5/private/locales/kn.json
index 9bb3d2d453a03f88bd60f70c34fabac8a15a6553..aa92d24df195f3bf43152fb525a120ef3e33661a 100644
--- a/bigbluebutton-html5/private/locales/kn.json
+++ b/bigbluebutton-html5/private/locales/kn.json
@@ -122,8 +122,6 @@
     "app.meeting.meetingTimeRemaining": "ಸಭೆಯ ಸಮಯ ಉಳಿದಿದೆ: {0}",
     "app.meeting.meetingTimeHasEnded": "ಸಮಯ ಕೊನೆಗೊಂಡಿತು. ಸಭೆ ಶೀಘ್ರದಲ್ಲೇ ಮುಚ್ಚಲಿದೆ",
     "app.meeting.endedMessage": "ನಿಮ್ಮನ್ನು ಮತ್ತೆ ಮುಖಪುಟಕ್ಕೆ ರವಾನಿಸಲಾಗುತ್ತದೆ",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "ಸಭೆ ಒಂದು ನಿಮಿಷದಲ್ಲಿ ಮುಚ್ಚುತ್ತಿದೆ.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "ಬ್ರೇಕ್ out ಟ್ ಒಂದು ನಿಮಿಷದಲ್ಲಿ ಮುಚ್ಚುತ್ತಿದೆ.",
     "app.presentation.hide": "ಪ್ರಸ್ತುತಿಯನ್ನು ಮರೆಮಾಡಿ",
     "app.presentation.notificationLabel": "ಪ್ರಸ್ತುತ ಪ್ರಸ್ತುತಿ",
     "app.presentation.slideContent": "ಜಾರುಕ ವಿಷಯ",
@@ -263,7 +261,6 @@
     "app.leaveConfirmation.confirmLabel": "ಹೊರಬನ್ನಿ",
     "app.leaveConfirmation.confirmDesc": "ನಿಮ್ಮನ್ನು ಸಭೆಯಿಂದ ಹೊರಹಾಕುತ್ತದೆ",
     "app.endMeeting.title": "ಸಭೆಯನ್ನು ಕೊನೆಗೊಳಿಸಿ",
-    "app.endMeeting.description": "ಈ ಅಧಿವೇಶನವನ್ನು ಕೊನೆಗೊಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?",
     "app.endMeeting.yesLabel": "ಹೌದು",
     "app.endMeeting.noLabel": "ಇಲ್ಲ",
     "app.about.title": "ಬಗ್ಗೆ",
@@ -569,19 +566,6 @@
     "app.video.videoMenuDesc": "ವೀಡಿಯೊ ಮೆನು ಡ್ರಾಪ್‌ಡೌನ್ ತೆರೆಯಿರಿ",
     "app.video.chromeExtensionError": "ನೀವು ಸ್ಥಾಪಿಸಬೇಕು",
     "app.video.chromeExtensionErrorLink": "ಈ ಕ್ರೋಮ್‌ ವಿಸ್ತರಣೆ",
-    "app.video.stats.title": "ಸಂಪರ್ಕ ಅಂಕಿಅಂಶಗಳು",
-    "app.video.stats.packetsReceived": "ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ",
-    "app.video.stats.packetsSent": "ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ",
-    "app.video.stats.packetsLost": "ಪ್ಯಾಕೆಟ್‌ಗಳು ಕಳೆದುಹೋಗಿವೆ",
-    "app.video.stats.bitrate": "ಬಿಟ್‌ ರೇಟ್‌ ",
-    "app.video.stats.lostPercentage": "ಒಟ್ಟು ಶೇಕಡಾವಾರು ಕಳೆದುಹೋಗಿದೆ",
-    "app.video.stats.lostRecentPercentage": "ಇತ್ತೀಚಿನ ಶೇಕಡಾವಾರು ನಷ್ಟವಾಗಿದೆ",
-    "app.video.stats.dimensions": "ಆಯಾಮಗಳು",
-    "app.video.stats.codec": "ಕೋಡೆಕ್",
-    "app.video.stats.decodeDelay": "ಡಿಕೋಡ್ ವಿಳಂಬ",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "ಎನ್ಕೋಡ್ ಬಳಕೆ",
-    "app.video.stats.currentDelay": "ಪ್ರಸ್ತುತ ವಿಳಂಬ",
     "app.fullscreenButton.label": "{0} ಪೂರ್ಣಪರದೆ ಮಾಡಿ",
     "app.deskshare.iceConnectionStateError": "ಪರದೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವಾಗ ಸಂಪರ್ಕ ವಿಫಲವಾಗಿದೆ (ICE ದೋಷ 1108)",
     "app.sfu.mediaServerConnectionError2000": "ಮಾಧ್ಯಮ ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ (ದೋಷ 2000)",
diff --git a/bigbluebutton-html5/private/locales/ko_KR.json b/bigbluebutton-html5/private/locales/ko_KR.json
index 466902f36c3d9fef387fc51b0ab02c6ceedd812a..3c540170760670827ff888b22e2d740f7ece973d 100644
--- a/bigbluebutton-html5/private/locales/ko_KR.json
+++ b/bigbluebutton-html5/private/locales/ko_KR.json
@@ -122,8 +122,6 @@
     "app.meeting.meetingTimeRemaining": "미팅시간은 {0} 남았습니다 ",
     "app.meeting.meetingTimeHasEnded": "시간종료. 미팅은 조만간 종료 됩니다 ",
     "app.meeting.endedMessage": "홈화면으로 돌아갑니다 ",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "미팅은 1분 후에 종료됩니다. ",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "브레이크아웃이 1분 후에 종료됩니다 ",
     "app.presentation.hide": "프리젠테이션 숨기기",
     "app.presentation.notificationLabel": "현재 프리젠테이션",
     "app.presentation.slideContent": "슬라이드 컨텐츠",
@@ -263,7 +261,6 @@
     "app.leaveConfirmation.confirmLabel": "떠나기",
     "app.leaveConfirmation.confirmDesc": "미팅에서 로그 아웃",
     "app.endMeeting.title": "미팅 끝",
-    "app.endMeeting.description": "이 세션을 종료 하시겠습니까 ?",
     "app.endMeeting.yesLabel": "예",
     "app.endMeeting.noLabel": "아니요",
     "app.about.title": "개요",
@@ -569,19 +566,6 @@
     "app.video.videoMenuDesc": "비디오 메뉴를 드롭다운 메뉴로 열기 ",
     "app.video.chromeExtensionError": "설치 하셔야 합니다 ",
     "app.video.chromeExtensionErrorLink": "이 크롬 확장프로그램",
-    "app.video.stats.title": "접속 현황",
-    "app.video.stats.packetsReceived": "패킷 접수 ",
-    "app.video.stats.packetsSent": "패킷 전송",
-    "app.video.stats.packetsLost": "패킷 손실",
-    "app.video.stats.bitrate": "비트레이트",
-    "app.video.stats.lostPercentage": "총 실패율",
-    "app.video.stats.lostRecentPercentage": "최근 실패율",
-    "app.video.stats.dimensions": "치수",
-    "app.video.stats.codec": "코덱",
-    "app.video.stats.decodeDelay": "디코딩 지연",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "인코딩 사용율",
-    "app.video.stats.currentDelay": "현재 지연",
     "app.fullscreenButton.label": "{0} 을 꽉찬화면으로 ",
     "app.deskshare.iceConnectionStateError": "스크린 공유 중 연결 실패(ICE 오류 1108)",
     "app.sfu.mediaServerConnectionError2000": "미디어 서버에 연결할 수 없음(오류 2000)",
diff --git a/bigbluebutton-html5/private/locales/lt_LT.json b/bigbluebutton-html5/private/locales/lt_LT.json
index 0beb49c7dcb5ef2e1830e042719aa2e2087fa651..ea45371018a3ae5bddcb1c31d1e2e7760a7677b0 100644
--- a/bigbluebutton-html5/private/locales/lt_LT.json
+++ b/bigbluebutton-html5/private/locales/lt_LT.json
@@ -63,6 +63,7 @@
     "app.userList.presenter": "VedÄ—jas",
     "app.userList.you": "JÅ«s",
     "app.userList.locked": "Užrakinta",
+    "app.userList.byModerator": "(Moderatoriaus) ",
     "app.userList.label": "Vartotojų sąrašas",
     "app.userList.toggleCompactView.label": "Perjungti kompaktišką rodinį",
     "app.userList.guest": "Svečias",
@@ -73,6 +74,7 @@
     "app.userList.menu.clearStatus.label": "Išvalyti būseną",
     "app.userList.menu.removeUser.label": "Pašalinti vartotoją",
     "app.userList.menu.removeConfirmation.label": "Pašalinti naudotoją ({0})",
+    "app.userlist.menu.removeConfirmation.desc": "Apsaugoti šį naudotoją nuo pakartotinės sesijos. ",
     "app.userList.menu.muteUserAudio.label": "Nutildyti vartotojÄ…",
     "app.userList.menu.unmuteUserAudio.label": "Atitildyti vartotojÄ…",
     "app.userList.userAriaLabel": "{0} {1} {2} Statusas {3}",
@@ -84,11 +86,19 @@
     "app.userList.userOptions.manageUsersLabel": "Tvarkyti naudotojus ",
     "app.userList.userOptions.muteAllLabel": "Nutildyti visus naudotojus",
     "app.userList.userOptions.muteAllDesc": "Nutildyti visus naudotojus susitikime. ",
+    "app.userList.userOptions.clearAllLabel": "Naikinti visas statuso piktogramas",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Nutildyti visus naudotojus, išskyrus pranešėją",
+    "app.userList.userOptions.lockViewersLabel": "Užrakinti žiūrovus ",
+    "app.userList.userOptions.disablePrivChat": "Privatus susirašinėjimas išjungtas ",
+    "app.userList.userOptions.enableCam": "Dalyvių kameros yra įjungtos ",
+    "app.userList.userOptions.enableMic": "Dalyvių mikrofonai yra įjungti ",
+    "app.userList.userOptions.enablePrivChat": "Privatus susirašinėjimas yra įjungtas ",
     "app.userList.userOptions.enablePubChat": "Viešasis susirašinėjimas yra įjungtas",
+    "app.userList.userOptions.showUserList": "Naudotojų sąrasas yra rodomas dalyviams",
     "app.media.label": "Medija",
     "app.media.screenshare.start": "Ekrano dalinimasis prasidÄ—jo ",
+    "app.media.screenshare.autoplayAllowLabel": "Žiūrėti pasidalintą ekraną",
     "app.meeting.ended": "Sesija pasibaigÄ—",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Susitikimas uždaromas minutės bėgyje. ",
     "app.presentation.hide": "SlÄ—pti prezentacija",
     "app.presentation.slideContent": "SkaidrÄ—s turinys",
     "app.presentation.presentationToolbar.noNextSlideDesc": "Prezentacijos pabaiga",
@@ -147,22 +157,35 @@
     "app.navBar.settingsDropdown.hotkeysLabel": "Klaviatūros greitieji klavišai ",
     "app.navBar.settingsDropdown.helpLabel": "Pagalba",
     "app.navBar.settingsDropdown.endMeetingLabel": "Baigti susitikimÄ… ",
+    "app.navBar.recording": "Ši sesija yra įrašoma ",
     "app.navBar.recording.on": "Įrašas ",
     "app.navBar.recording.off": "Neįrašinėjama",
+    "app.navBar.emptyAudioBrdige": "Nėra aktyvaus mikrofono. Dalinkitės mikrofonu, kad pridėtumėte garsą šiam įrašui. ",
+    "app.leaveConfirmation.confirmLabel": "Palikti",
     "app.endMeeting.title": "Baigti susitikimÄ… ",
     "app.endMeeting.yesLabel": "Taip",
     "app.endMeeting.noLabel": "Ne",
     "app.about.title": "Apie",
+    "app.about.confirmLabel": "Gerai",
+    "app.about.confirmDesc": "Gerai",
     "app.about.dismissLabel": "Atšaukti",
+    "app.actionsBar.changeStatusLabel": "Pakeisti statusÄ…",
     "app.actionsBar.muteLabel": "Nutildyti",
+    "app.actionsBar.unmuteLabel": "Nebetildyti",
+    "app.actionsBar.camOffLabel": "IÅ¡jungti kamerÄ…",
     "app.actionsBar.raiseLabel": "Kelti",
+    "app.actionsBar.label": "Veiksmų eilutė ",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Atkurti pristatymÄ… ",
+    "app.screenshare.screenShareLabel" : "Ekrano dalijimasis ",
     "app.submenu.application.animationsLabel": "Animacijos ",
     "app.submenu.application.fontSizeControlLabel": "Å rifto dydis ",
     "app.submenu.application.languageOptionLabel": "Pasirinkti kalbÄ…",
+    "app.submenu.video.videoQualityLabel": "Vaizdo įrašo kokybė",
     "app.settings.usersTab.label": "Dalyviai",
     "app.settings.main.label": "Nuostatos ",
     "app.settings.main.cancel.label": "Atšaukti",
     "app.settings.main.save.label": "IÅ¡saugoti",
+    "app.settings.dataSavingTab.webcam": "Įgalinti kameras",
     "app.actionsBar.actionsDropdown.saveUserNames": "Išsaugoti naudotojų vardus",
     "app.actionsBar.emojiMenu.raiseHandLabel": "Kelti",
     "app.actionsBar.emojiMenu.sadLabel": "Liūdnas",
@@ -174,6 +197,7 @@
     "app.audioModal.closeLabel": "Uždaryti",
     "app.audioModal.yes": "Taip",
     "app.audioModal.no": "Ne",
+    "app.audioModal.settingsTitle": "Keisti jūsų garso nustatymus",
     "app.audioModal.connecting": "Jungiamasi",
     "app.audio.playSoundLabel": "Groti garsÄ…",
     "app.audio.backLabel": "Atgal",
@@ -181,24 +205,47 @@
     "app.audio.listenOnly.backLabel": "Atgal",
     "app.audio.listenOnly.closeLabel": "Uždaryti",
     "app.modal.close": "Uždaryti",
+    "app.modal.confirm": "Baigta",
+    "app.modal.newTab": "(atidarys naujÄ… skirtukÄ…) ",
     "app.dropdown.close": "Uždaryti",
     "app.error.404": "Nerasta",
     "app.error.410": "Susitikimas baigÄ—si",
     "app.error.leaveLabel": "Prisijungti dar kartÄ… ",
     "app.userList.guest.waitingUsers": "Laukiama naudotojų",
+    "app.userList.guest.allowAllGuests": "Leisti visus svečius ",
+    "app.userList.guest.allowEveryone": "Leisti visus",
+    "app.userList.guest.denyEveryone": "Atmesti visus",
+    "app.userList.guest.pendingUsers": "{0} Laukiantys naudotojai",
+    "app.userList.guest.pendingGuestUsers": "{0} Laukiantys naudotojai svečiai ",
+    "app.toast.chat.system": "Sistema",
+    "app.notification.recordingAriaLabel": "Įrašo laikas",
     "app.shortcut-help.title": "Klaviatūros greitieji klavišai ",
+    "app.shortcut-help.functionLabel": "Funkcija ",
     "app.shortcut-help.closeLabel": "Uždaryti",
+    "app.shortcut-help.openOptions": "Atidaryti nuostatas",
+    "app.shortcut-help.toggleMute": "Tildyti/Nebetildyti",
+    "app.shortcut-help.hidePrivateChat": "Slėpti privatų susirašinėjimą ",
+    "app.shortcut-help.closePrivateChat": "Uždaryti privatų susirašinėjimą ",
+    "app.shortcut-help.openActions": "Atidaryti veiksmų meniu",
+    "app.shortcut-help.openStatus": "Atidaryti statusų meniu",
+    "app.shortcut-help.nextSlideDesc": "Sekanti skaidrė (Pranešėjas) ",
+    "app.shortcut-help.previousSlideDesc": "Ankstesnė skaidrė (Pranešėjas) ",
+    "app.lock-viewers.title": "Užrakinti žiūrovus ",
     "app.lock-viewers.lockStatusLabel": "Statusas",
     "app.lock-viewers.webcamLabel": "Dalintis kamera",
+    "app.lock-viewers.otherViewersWebcamLabel": "Matyti kitų dalyvių kameras",
+    "app.lock-viewers.microphoneLable": "Dalintis mikrofonu ",
     "app.lock-viewers.button.cancel": "Atšaukti",
     "app.lock-viewers.locked": "Užrakinta",
     "app.videoPreview.cameraLabel": "Kamera",
     "app.videoPreview.cancelLabel": "Atšaukti",
     "app.videoPreview.closeLabel": "Uždaryti",
+    "app.videoPreview.findingWebcamsLabel": "Ieškoma kamerų",
     "app.videoPreview.webcamNotFoundLabel": "Kamera nerasta",
     "app.video.joinVideo": "Dalintis kamera",
     "app.video.cancel": "Atšaukti",
     "app.video.videoButtonDesc": "Dalintis kamera",
+    "app.meeting.endNotification.ok.label": "Gerai",
     "app.whiteboard.toolbar.tools": "Įrankiai",
     "app.whiteboard.toolbar.tools.pencil": "Pieštukas ",
     "app.whiteboard.toolbar.tools.triangle": "Trikampis ",
@@ -219,6 +266,7 @@
     "app.createBreakoutRoom.room": "Kambarys {0}",
     "app.createBreakoutRoom.join": "Prisijungti prie kambario ",
     "app.createBreakoutRoom.numberOfRooms": "Kambarių skaičius ",
+    "app.createBreakoutRoom.doneLabel": "Baigta",
     "app.createBreakoutRoom.roomTime": "{0} minutÄ—s",
     "app.externalVideo.start": "Dalintis nauju vaizdo įrašu",
     "app.externalVideo.close": "Uždaryti"
diff --git a/bigbluebutton-html5/private/locales/lv.json b/bigbluebutton-html5/private/locales/lv.json
index 15e95d9a5c0535f05c7a186eaf4b115137da83dd..5d161c48d3ea2c6fd9349c7678bbb908b6013997 100644
--- a/bigbluebutton-html5/private/locales/lv.json
+++ b/bigbluebutton-html5/private/locales/lv.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "Atlikušais sapulces laiks: {0}",
     "app.meeting.meetingTimeHasEnded": "Laiks beidzies. Sapulce drīz tiks slēgta",
     "app.meeting.endedMessage": "Jūs tiksiet pārsūtīts atpakaļ uz sākuma ekrānu",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Sapulce tiks slēgta pēc minūtes.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Grupas telpas laiks beidzas pēc minūtes.",
     "app.presentation.hide": "Nerādīt/paslēpt prezentāciju",
     "app.presentation.notificationLabel": "Pašreizējā prezentācija",
     "app.presentation.slideContent": "Slaidu saturs",
@@ -259,7 +257,6 @@
     "app.leaveConfirmation.confirmLabel": "Pamest",
     "app.leaveConfirmation.confirmDesc": "JÅ«s izliek no sapulces",
     "app.endMeeting.title": "Beigt sapulci",
-    "app.endMeeting.description": "Patiešām vēlaties beigt šo sesiju?",
     "app.endMeeting.yesLabel": "Jā",
     "app.endMeeting.noLabel": "NÄ“",
     "app.about.title": "Par",
@@ -565,19 +562,6 @@
     "app.video.videoMenuDesc": "Atveriet nolaižamo Video izvēlni",
     "app.video.chromeExtensionError": "Jums jāuzinstalē",
     "app.video.chromeExtensionErrorLink": "šo Chromium paplašinājumu ",
-    "app.video.stats.title": "Savienojuma statistika",
-    "app.video.stats.packetsReceived": "Paketes saņemtas",
-    "app.video.stats.packetsSent": "Paketes nosūtītas",
-    "app.video.stats.packetsLost": "Paketes zudušas",
-    "app.video.stats.bitrate": "Bitreits",
-    "app.video.stats.lostPercentage": "Kopā zaudētas %",
-    "app.video.stats.lostRecentPercentage": "Nesen zaudētas %",
-    "app.video.stats.dimensions": "Dimensijas/izmēri",
-    "app.video.stats.codec": "Kodeks",
-    "app.video.stats.decodeDelay": "Dekodēšanas iekave",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Kodēšanas (encode) lietojums",
-    "app.video.stats.currentDelay": "Pašreizējā iekave",
     "app.fullscreenButton.label": "{0} rādīt pilnekrāna režīmā",
     "app.deskshare.iceConnectionStateError": "Savienojums neizdevās, kopīgojot ekrānu (ICE kļūme 1108)",
     "app.sfu.mediaServerConnectionError2000": "Nevar izveidot savienojumu ar multimediju serveri (kļūme 2000)",
diff --git a/bigbluebutton-html5/private/locales/nb_NO.json b/bigbluebutton-html5/private/locales/nb_NO.json
index 58bdfd9de76113d002cfa5617a9b6c32733dad6c..9f9281475fa1439f42b83e93fa20e0dd30ed3f86 100644
--- a/bigbluebutton-html5/private/locales/nb_NO.json
+++ b/bigbluebutton-html5/private/locales/nb_NO.json
@@ -124,8 +124,6 @@
     "app.meeting.meetingTimeRemaining": "Gjenværende tid: {0}",
     "app.meeting.meetingTimeHasEnded": "Tiden er ute. Møtet avsluttes straks",
     "app.meeting.endedMessage": "Du blir videreført til hjemskjermen",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Møtet avsluttes om ett minutt",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Grupperom avsluttes om ett minutt",
     "app.presentation.hide": "Skjul presentasjon",
     "app.presentation.notificationLabel": "Nåværende presentasjon",
     "app.presentation.slideContent": "Sideinnhold",
@@ -265,7 +263,6 @@
     "app.leaveConfirmation.confirmLabel": "GÃ¥ ut",
     "app.leaveConfirmation.confirmDesc": "Logger deg ut av møtet",
     "app.endMeeting.title": "Avslutt møtet",
-    "app.endMeeting.description": "Er du sikker på at du vil avslutte dette møtet?",
     "app.endMeeting.yesLabel": "Ja",
     "app.endMeeting.noLabel": "Nei",
     "app.about.title": "Om",
@@ -571,19 +568,6 @@
     "app.video.videoMenuDesc": "Ã…pne videomenyen",
     "app.video.chromeExtensionError": "Du må installere",
     "app.video.chromeExtensionErrorLink": "denne Chrome utvidelsen",
-    "app.video.stats.title": "Tilkoblingsstatistikk",
-    "app.video.stats.packetsReceived": "Pakker mottatt",
-    "app.video.stats.packetsSent": "Pakker sendt",
-    "app.video.stats.packetsLost": "Pakker tapt",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Total prosent tapt",
-    "app.video.stats.lostRecentPercentage": "Nylig prosent tapt",
-    "app.video.stats.dimensions": "Dimensjoner",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Decode forsinkelse",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Encodeforbruk",
-    "app.video.stats.currentDelay": "Nåværende forsinkelse",
     "app.fullscreenButton.label": "Gjør {0} fullskjerm",
     "app.deskshare.iceConnectionStateError": "Connection failed when sharing screen (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "Unable to connect to media server (error 2000)",
diff --git a/bigbluebutton-html5/private/locales/nl.json b/bigbluebutton-html5/private/locales/nl.json
index 9fe621ff71ee71e9dddc245a551295b7e99cf835..dfba8a7d3861b07286ba4d4ba76a02651680b593 100644
--- a/bigbluebutton-html5/private/locales/nl.json
+++ b/bigbluebutton-html5/private/locales/nl.json
@@ -1,7 +1,7 @@
 {
     "app.home.greeting": "Uw presentatie begint binnenkort ...",
     "app.chat.submitLabel": "Bericht verzenden",
-    "app.chat.errorMaxMessageLength": "Het bericht is {0} tekens (s) te lang",
+    "app.chat.errorMaxMessageLength": "Het bericht is {0} teken(s) te lang",
     "app.chat.disconnected": "De verbinding is verbroken, berichten kunnen niet worden verzonden",
     "app.chat.locked": "Chat is vergrendeld, berichten kunnen niet worden verzonden",
     "app.chat.inputLabel": "Berichtinvoer voor chat {0}",
@@ -26,20 +26,20 @@
     "app.captions.label": "Bijschriften",
     "app.captions.menu.close": "Sluiten",
     "app.captions.menu.start": "Starten",
-    "app.captions.menu.ariaStart": "Begin bijschriften te schrijven",
+    "app.captions.menu.ariaStart": "Start schrijven bijschriften",
     "app.captions.menu.ariaStartDesc": "Opent de ondertitelingseditor en sluit de modal",
     "app.captions.menu.select": "Selecteer beschikbare taal",
     "app.captions.menu.ariaSelect": "Taal ondertitels",
     "app.captions.menu.subtitle": "Selecteer een taal en stijlen voor ondertitels in uw sessie.",
-    "app.captions.menu.title": "Gesloten bijschriften",
+    "app.captions.menu.title": "Ondertitels",
     "app.captions.menu.fontSize": "Grootte",
     "app.captions.menu.fontColor": "Tekstkleur",
-    "app.captions.menu.fontFamily": "Font",
+    "app.captions.menu.fontFamily": "Lettertype",
     "app.captions.menu.backgroundColor": "Achtergrondkleur",
-    "app.captions.menu.previewLabel": "Preview",
+    "app.captions.menu.previewLabel": "Voorbeeld",
     "app.captions.menu.cancelLabel": "Annuleren",
     "app.captions.pad.hide": "Verberg ondertitels",
-    "app.captions.pad.tip": "Druk op Esc om de werkbalk van de editor scherp te stellen",
+    "app.captions.pad.tip": "Druk op Esc om de werkbalk van de editor te activeren",
     "app.captions.pad.ownership": "Overnemen",
     "app.captions.pad.ownershipTooltip": "U wordt toegewezen als de eigenaar van {0} bijschriften",
     "app.captions.pad.interimResult": "Tussentijdse resultaten",
@@ -49,18 +49,18 @@
     "app.captions.pad.dictationOffDesc": "Schakelt spraakherkenning uit",
     "app.note.title": "Gedeelde notities",
     "app.note.label": "Notitie",
-    "app.note.hideNoteLabel": "Notitie verbergen",
+    "app.note.hideNoteLabel": "Verberg notitie",
     "app.user.activityCheck": "Controle gebruikersactiviteit",
     "app.user.activityCheck.label": "Controleer of de gebruiker nog steeds in vergadering is ({0})",
-    "app.user.activityCheck.check": "Controleer",
-    "app.note.tipLabel": "Druk op Esc om de werkbalk van de editor scherp te stellen",
+    "app.user.activityCheck.check": "Controleren",
+    "app.note.tipLabel": "Druk op Esc om de werkbalk van de editor te activeren",
     "app.userList.usersTitle": "Gebruikers",
     "app.userList.participantsTitle": "Deelnemers",
     "app.userList.messagesTitle": "Berichten",
     "app.userList.notesTitle": "Notities",
     "app.userList.notesListItem.unreadContent": "Nieuwe inhoud is beschikbaar in het gedeelte met gedeelde notities",
-    "app.userList.captionsTitle": "Captions",
-    "app.userList.presenter": "Presenter",
+    "app.userList.captionsTitle": "Bijschriften",
+    "app.userList.presenter": "Presentator",
     "app.userList.you": "U",
     "app.userList.locked": "Vergrendeld",
     "app.userList.byModerator": "door (Moderator)",
@@ -71,8 +71,8 @@
     "app.userList.chatListItem.unreadSingular": "{0} Nieuw bericht",
     "app.userList.chatListItem.unreadPlural": "{0} Nieuwe berichten",
     "app.userList.menu.chat.label": "Start een privéchat",
-    "app.userList.menu.clearStatus.label": "Status wissen",
-    "app.userList.menu.removeUser.label": "Gebruiker verwijderen",
+    "app.userList.menu.clearStatus.label": "Wis status",
+    "app.userList.menu.removeUser.label": "Verwijder gebruiker",
     "app.userList.menu.removeConfirmation.label": "Verwijder gebruiker ({0})",
     "app.userlist.menu.removeConfirmation.desc": "Voorkom dat deze gebruiker opnieuw deelneemt aan de sessie.",
     "app.userList.menu.muteUserAudio.label": "Gebruiker dempen",
@@ -93,7 +93,7 @@
     "app.userList.userOptions.muteAllExceptPresenterDesc": "Dempt alle gebruikers in de vergadering behalve de presentator",
     "app.userList.userOptions.unmuteAllLabel": "Demping van vergadering uitschakelen",
     "app.userList.userOptions.unmuteAllDesc": "Demping van de vergadering ongedaan maken",
-    "app.userList.userOptions.lockViewersLabel": "Vergrendel toeschouwers",
+    "app.userList.userOptions.lockViewersLabel": "Vergrendel kijkers",
     "app.userList.userOptions.lockViewersDesc": "Bepaalde functies vergrendelen voor deelnemers aan de vergadering",
     "app.userList.userOptions.disableCam": "De webcams van kijkers zijn uitgeschakeld",
     "app.userList.userOptions.disableMic": "Microfoons van kijkers zijn uitgeschakeld",
@@ -113,8 +113,8 @@
     "app.media.label": "Media",
     "app.media.autoplayAlertDesc": "Toegang toestaan",
     "app.media.screenshare.start": "Screenshare is gestart",
-    "app.media.screenshare.end": "Screenshare is afgelopen",
-    "app.media.screenshare.unavailable": "Screenshare Onbeschikbaar",
+    "app.media.screenshare.end": "Screenshare is beëindigd",
+    "app.media.screenshare.unavailable": "Screenshare niet beschikbaar",
     "app.media.screenshare.notSupported": "Screensharing wordt niet ondersteund in deze browser.",
     "app.media.screenshare.autoplayBlockedDesc": "We hebben uw toestemming nodig om u het scherm van de presentator te tonen.",
     "app.media.screenshare.autoplayAllowLabel": "Bekijk gedeeld scherm",
@@ -124,17 +124,19 @@
     "app.screenshare.genericError": "Fout: er is een fout opgetreden met screensharing, probeer het opnieuw",
     "app.meeting.ended": "Deze sessie is beëindigd",
     "app.meeting.meetingTimeRemaining": "Resterende vergadertijd: {0}",
-    "app.meeting.meetingTimeHasEnded": "Tijd beëindigd. Vergadering wordt binnenkort gesloten",
+    "app.meeting.meetingTimeHasEnded": "Tijd verstreken. Vergadering wordt spoedig afgesloten",
     "app.meeting.endedMessage": "U wordt teruggestuurd naar het startscherm",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "De vergadering wordt over een minuut gesloten.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Brainstormruimte sluit over een minuut.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Vergadering sluit over één minuut.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Vergadering sluit over {0} minuten.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Brainstormruimte sluit over {0} minuten.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Brainstormruimte sluit over één minuut.",
     "app.presentation.hide": "Presentatie verbergen",
     "app.presentation.notificationLabel": "Huidige presentatie",
     "app.presentation.slideContent": "Dia inhoud",
     "app.presentation.startSlideContent": "Start dia-inhoud",
     "app.presentation.endSlideContent": "Einde van dia-inhoud",
     "app.presentation.emptySlideContent": "Geen inhoud voor huidige dia",
-    "app.presentation.presentationToolbar.noNextSlideDesc": "Einde presentatie",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Einde van presentatie",
     "app.presentation.presentationToolbar.noPrevSlideDesc": "Start van presentatie",
     "app.presentation.presentationToolbar.selectLabel": "Selecteer dia",
     "app.presentation.presentationToolbar.prevSlideLabel": "Vorige dia",
@@ -153,13 +155,13 @@
     "app.presentation.presentationToolbar.zoomInDesc": "Inzoomen op de presentatie",
     "app.presentation.presentationToolbar.zoomOutLabel": "Uitzoomen",
     "app.presentation.presentationToolbar.zoomOutDesc": "Uitzoomen op de presentatie",
-    "app.presentation.presentationToolbar.zoomReset": "Zoom resetten",
+    "app.presentation.presentationToolbar.zoomReset": "Zoom opnieuw instellen",
     "app.presentation.presentationToolbar.zoomIndicator": "Huidig zoompercentage",
     "app.presentation.presentationToolbar.fitToWidth": "Aanpassen aan breedte",
     "app.presentation.presentationToolbar.fitToPage": "Aanpassen aan pagina",
     "app.presentation.presentationToolbar.goToSlide": "Dia {0}",
     "app.presentationUploder.title": "Presentatie",
-    "app.presentationUploder.message": "Als presentator kunt u elk kantoordocument of PDF-bestand uploaden. We raden het PDF-bestand aan voor de beste resultaten. Zorg ervoor dat een presentatie is geselecteerd met behulp van het selectievakje aan de rechterkant. ",
+    "app.presentationUploder.message": "Als presentator kunt u elk Office-document of PDF-bestand uploaden. We raden het PDF-bestand aan voor de beste resultaten. Zorg ervoor dat een presentatie is geselecteerd met behulp van het selectievakje aan de rechterkant. ",
     "app.presentationUploder.uploadLabel": "Upload",
     "app.presentationUploder.confirmLabel": "Bevestigen",
     "app.presentationUploder.confirmDesc": "Sla uw wijzigingen op en start de presentatie",
@@ -170,8 +172,8 @@
     "app.presentationUploder.browseFilesLabel": "of blader naar bestanden",
     "app.presentationUploder.browseImagesLabel": "of bladeren / vastleggen voor afbeeldingen",
     "app.presentationUploder.fileToUpload": "Wordt geüpload ...",
-    "app.presentationUploder.currentBadge": "Current",
-    "app.presentationUploder.rejectedError": "De geselecteerde bestanden zijn geweigerd. Controleer de bestandstype (s).",
+    "app.presentationUploder.currentBadge": "Huidig",
+    "app.presentationUploder.rejectedError": "De geselecteerde bestanden zijn geweigerd. Controleer bestandstype(s).",
     "app.presentationUploder.upload.progress": "Uploaden ({0}%)",
     "app.presentationUploder.upload.413": "Bestand is te groot. Splitsen in meerdere bestanden.",
     "app.presentationUploder.upload.408": "Verzoek time-out voor uploadtoken.",
@@ -186,29 +188,29 @@
     "app.presentationUploder.conversion.officeDocConversionInvalid": "Kan Office-document niet verwerken. Upload in plaats daarvan een PDF.",
     "app.presentationUploder.conversion.officeDocConversionFailed": "Kan Office-document niet verwerken. Upload in plaats daarvan een PDF.",
     "app.presentationUploder.conversion.pdfHasBigPage": "We konden het PDF-bestand niet converteren, probeer het te optimaliseren",
-    "app.presentationUploder.conversion.timeout": "Ops, de conversie heeft te lang geduurd",
+    "app.presentationUploder.conversion.timeout": "Oeps, de conversie heeft te lang geduurd",
     "app.presentationUploder.conversion.pageCountFailed": "Bepalen van het aantal pagina's is mislukt.",
-    "app.presentationUploder.isDownloadableLabel": "Sta niet toe dat de presentatie wordt gedownload",
-    "app.presentationUploder.isNotDownloadableLabel": "Presentatie toestaan ​​om te worden gedownload",
+    "app.presentationUploder.isDownloadableLabel": "Sta niet toe dat presentatie wordt gedownload",
+    "app.presentationUploder.isNotDownloadableLabel": "Toestaan dat presentatie wordt gedownload",
     "app.presentationUploder.removePresentationLabel": "Presentatie verwijderen",
-    "app.presentationUploder.setAsCurrentPresentation": "Presentatie instellen als actueel",
+    "app.presentationUploder.setAsCurrentPresentation": "Presentatie instellen als huidige",
     "app.presentationUploder.tableHeading.filename": "Bestandsnaam",
     "app.presentationUploder.tableHeading.options": "Opties",
     "app.presentationUploder.tableHeading.status": "Status",
-    "app.poll.pollPaneTitle": "Polling",
+    "app.poll.pollPaneTitle": "Peiling",
     "app.poll.quickPollTitle": "Snelle peiling",
     "app.poll.hidePollDesc": "Verbergt het peilmenupaneel",
     "app.poll.customPollInstruction": "Om een ​​aangepaste peiling te maken, selecteert u de onderstaande knop en voert u uw opties in.",
     "app.poll.quickPollInstruction": "Selecteer hieronder een optie om uw peiling te starten.",
-    "app.poll.customPollLabel": "Aangepaste poll",
+    "app.poll.customPollLabel": "Aangepaste peiling",
     "app.poll.startCustomLabel": "Start aangepaste peiling",
-    "app.poll.activePollInstruction": "Laat dit paneel open om live reacties op uw enquête te zien. Wanneer u klaar bent, selecteert u 'Pollingsresultaten publiceren' om de resultaten te publiceren en de poll te beëindigen.",
-    "app.poll.publishLabel": "Polling-resultaten publiceren",
-    "app.poll.backLabel": "Terug naar polling-opties",
+    "app.poll.activePollInstruction": "Laat dit paneel open om live reacties op uw peiling te zien. Wanneer u klaar bent, selecteert u 'Peilingsresultaten publiceren' om de resultaten te publiceren en de peiling te beëindigen.",
+    "app.poll.publishLabel": "Peilingsresultaten publiceren",
+    "app.poll.backLabel": "Terug naar peiling-opties",
     "app.poll.closeLabel": "Sluiten",
-    "app.poll.waitingLabel": "Wachten op antwoorden ({0} / {1})",
-    "app.poll.ariaInputCount": "Aangepaste poll-optie {0} van {1}",
-    "app.poll.customPlaceholder": "Poll-optie toevoegen",
+    "app.poll.waitingLabel": "Wachten op reacties ({0} / {1})",
+    "app.poll.ariaInputCount": "Aangepaste peiling-optie {0} van {1}",
+    "app.poll.customPlaceholder": "Peiling-optie toevoegen",
     "app.poll.noPresentationSelected": "Geen presentatie geselecteerd! Selecteer er één.",
     "app.poll.clickHereToSelect": "Klik hier om te selecteren",
     "app.poll.t": "Waar",
@@ -231,9 +233,9 @@
     "app.poll.answer.d": "D",
     "app.poll.answer.e": "E",
     "app.poll.liveResult.usersTitle": "Gebruikers",
-    "app.poll.liveResult.responsesTitle": "Antwoord",
-    "app.polling.pollingTitle": "Polling-opties",
-    "app.polling.pollAnswerLabel": "Poll-antwoord {0}",
+    "app.poll.liveResult.responsesTitle": "Reactie",
+    "app.polling.pollingTitle": "Peiling-opties",
+    "app.polling.pollAnswerLabel": "Peiling-antwoord {0}",
     "app.polling.pollAnswerDesc": "Selecteer deze optie om op {0} te stemmen",
     "app.failedMessage": "Excuses, problemen bij het verbinden met de server.",
     "app.downloadPresentationButton.label": "Download de originele presentatie",
@@ -254,20 +256,20 @@
     "app.navBar.settingsDropdown.hotkeysLabel": "Sneltoetsen",
     "app.navBar.settingsDropdown.hotkeysDesc": "Lijst met beschikbare sneltoetsen",
     "app.navBar.settingsDropdown.helpLabel": "Help",
-    "app.navBar.settingsDropdown.helpDesc": "Koppel gebruiker naar videotutorials (opent nieuw tabblad)",
+    "app.navBar.settingsDropdown.helpDesc": "Koppelt gebruiker aan videotutorials (opent nieuw tabblad)",
     "app.navBar.settingsDropdown.endMeetingDesc": "Beëindigt de huidige vergadering",
     "app.navBar.settingsDropdown.endMeetingLabel": "Vergadering beëindigen",
     "app.navBar.userListToggleBtnLabel": "Gebruikerslijst tonen/verbergen",
-    "app.navBar.toggleUserList.ariaLabel": "Gebruikers en berichten schakelen",
+    "app.navBar.toggleUserList.ariaLabel": "Gebruikers en berichten tonen/verbergen",
     "app.navBar.toggleUserList.newMessages": "met melding van nieuwe berichten",
     "app.navBar.recording": "Deze sessie wordt opgenomen",
-    "app.navBar.recording.on": "Opname",
+    "app.navBar.recording.on": "Opnemen",
     "app.navBar.recording.off": "Niet opnemen",
     "app.navBar.emptyAudioBrdige": "Geen actieve microfoon. Deel je microfoon om audio toe te voegen aan deze opname.",
     "app.leaveConfirmation.confirmLabel": "Verlaten",
     "app.leaveConfirmation.confirmDesc": "Logt u uit van de vergadering",
     "app.endMeeting.title": "Vergadering beëindigen",
-    "app.endMeeting.description": "Weet u zeker dat u deze sessie wilt beëindigen?",
+    "app.endMeeting.description": "Weet u zeker dat u deze vergadering voor iedereen wilt beëindigen (de verbinding van alle gebruikers zal worden verbroken)?",
     "app.endMeeting.yesLabel": "Ja",
     "app.endMeeting.noLabel": "Nee",
     "app.about.title": "Over",
@@ -281,7 +283,7 @@
     "app.actionsBar.muteLabel": "Dempen",
     "app.actionsBar.unmuteLabel": "Dempen opheffen",
     "app.actionsBar.camOffLabel": "Camera uit",
-    "app.actionsBar.raiseLabel": "Raise",
+    "app.actionsBar.raiseLabel": "Hand opsteken",
     "app.actionsBar.label": "Actiesbalk",
     "app.actionsBar.actionsDropdown.restorePresentationLabel": "Presentatie herstellen",
     "app.actionsBar.actionsDropdown.restorePresentationDesc": "Knop om de presentatie te herstellen nadat deze is gesloten",
@@ -314,16 +316,16 @@
     "app.settings.usersTab.label": "Deelnemers",
     "app.settings.main.label": "Instellingen",
     "app.settings.main.cancel.label": "Annuleren",
-    "app.settings.main.cancel.label.description": "Gaat de wijzigingen weg en sluit het instellingenmenu",
+    "app.settings.main.cancel.label.description": "Gooit de wijzigingen weg en sluit het instellingenmenu",
     "app.settings.main.save.label": "Opslaan",
     "app.settings.main.save.label.description": "Slaat de wijzigingen op en sluit het instellingenmenu",
     "app.settings.dataSavingTab.label": "Gegevensbesparing",
     "app.settings.dataSavingTab.webcam": "Webcams inschakelen",
     "app.settings.dataSavingTab.screenShare": "Desktop delen inschakelen",
     "app.settings.dataSavingTab.description": "Om uw bandbreedte te besparen, kunt u aanpassen wat momenteel wordt weergegeven.",
-    "app.settings.save-notification.label": "Instellingen werden opgeslagen",
-    "app.switch.onLabel": "ON",
-    "app.switch.offLabel": "OFF",
+    "app.settings.save-notification.label": "Instellingen zijn opgeslagen",
+    "app.switch.onLabel": "AAN",
+    "app.switch.offLabel": "UIT",
     "app.talkingIndicator.ariaMuteDesc" : "Selecteer om gebruiker te dempen",
     "app.talkingIndicator.isTalking" : "{0} is aan het spreken",
     "app.talkingIndicator.wasTalking" : "{0} is gestopt met spreken",
@@ -338,13 +340,13 @@
     "app.actionsBar.actionsDropdown.desktopShareDesc": "Deel uw scherm met anderen",
     "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Stop met het delen van uw scherm met",
     "app.actionsBar.actionsDropdown.pollBtnLabel": "Start een peiling",
-    "app.actionsBar.actionsDropdown.pollBtnDesc": "Schakelt poll deelvenster",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Toont/verbergt peilingspaneel",
     "app.actionsBar.actionsDropdown.saveUserNames": "Gebruikersnamen opslaan",
     "app.actionsBar.actionsDropdown.createBreakoutRoom": "Brainstormruimtes maken",
-    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "breakouts maken voor het splitsen van de huidige vergadering",
-    "app.actionsBar.actionsDropdown.captionsLabel": "Schrijf gesloten bijschriften",
-    "app.actionsBar.actionsDropdown.captionsDesc": "Schakelt het deelvenster bijschriften",
-    "app.actionsBar.actionsDropdown.takePresenter": "Presenter nemen",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "brainstormruimtes maken voor het splitsen van de huidige vergadering",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Schrijf ondertitels",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Toont/verbergt bijschriftenpaneel",
+    "app.actionsBar.actionsDropdown.takePresenter": "Presentator-rol nemen",
     "app.actionsBar.actionsDropdown.takePresenterDesc": "Wijs uzelf toe als de nieuwe presentator",
     "app.actionsBar.emojiMenu.statusTriggerLabel": "Status instellen",
     "app.actionsBar.emojiMenu.awayLabel": "Afwezig",
@@ -355,8 +357,8 @@
     "app.actionsBar.emojiMenu.neutralDesc": "Wijzig uw status in onbeslist",
     "app.actionsBar.emojiMenu.confusedLabel": "Verward",
     "app.actionsBar.emojiMenu.confusedDesc": "Wijzig uw status in verward",
-    "app.actionsBar.emojiMenu.sadLabel": "Ongelukkig",
-    "app.actionsBar.emojiMenu.sadDesc": "Wijzig uw status in ongelukkig",
+    "app.actionsBar.emojiMenu.sadLabel": "Verdrietig",
+    "app.actionsBar.emojiMenu.sadDesc": "Wijzig uw status in verdrietig",
     "app.actionsBar.emojiMenu.happyLabel": "Gelukkig",
     "app.actionsBar.emojiMenu.happyDesc": "Wijzig uw status in gelukkig",
     "app.actionsBar.emojiMenu.noneLabel": "Status wissen",
@@ -368,9 +370,9 @@
     "app.actionsBar.emojiMenu.thumbsDownLabel": "Duim omlaag",
     "app.actionsBar.emojiMenu.thumbsDownDesc": "Wijzig uw status in duim omlaag",
     "app.actionsBar.currentStatusDesc": "huidige status {0}",
-    "app.actionsBar.captions.start": "Begin met het bekijken van ondertitels",
+    "app.actionsBar.captions.start": "Start met het bekijken van ondertitels",
     "app.actionsBar.captions.stop": "Stop met het bekijken van ondertitels",
-    "app.audioNotification.audioFailedError1001": "WebSocket verbroken (fout 1001)",
+    "app.audioNotification.audioFailedError1001": "WebSocket verbinding verbroken (fout 1001)",
     "app.audioNotification.audioFailedError1002": "Kon geen WebSocket-verbinding maken (fout 1002)",
     "app.audioNotification.audioFailedError1003": "Browserversie niet ondersteund (fout 1003)",
     "app.audioNotification.audioFailedError1004": "Fout bij oproep (reden = {0}) (fout 1004)",
@@ -388,21 +390,21 @@
     "app.audioNotificaion.reconnectingAsListenOnly": "Microfoon is vergrendeld voor kijkers, u bent verbonden als alleen luisteren",
     "app.breakoutJoinConfirmation.title": "Deelnemen aan brainstormruimte",
     "app.breakoutJoinConfirmation.message": "Wilt u deelnemen",
-    "app.breakoutJoinConfirmation.confirmDesc": "Ga met je mee naar de brainstormruimte",
+    "app.breakoutJoinConfirmation.confirmDesc": "Deelnemen aan de brainstormruimte",
     "app.breakoutJoinConfirmation.dismissLabel": "Annuleren",
     "app.breakoutJoinConfirmation.dismissDesc": "Sluit en weigert toegang tot de brainstormruimte",
     "app.breakoutJoinConfirmation.freeJoinMessage": "Kies een brainstormruimte om lid te worden",
     "app.breakoutTimeRemainingMessage": "Resterende brainstorm-tijd: {0}",
-    "app.breakoutWillCloseMessage": "Tijd beëindigd. Brainstormruimte wordt binnenkort gesloten",
+    "app.breakoutWillCloseMessage": "Tijd verstreken. Brainstormruimte wordt spoedig afgesloten",
     "app.calculatingBreakoutTimeRemaining": "Resterende tijd berekenen ...",
-    "app.audioModal.ariaTitle": "Deelnemen aan audiomodaal",
+    "app.audioModal.ariaTitle": "Deelnemen aan audio modaal",
     "app.audioModal.microphoneLabel": "Microfoon",
     "app.audioModal.listenOnlyLabel": "Alleen luisteren",
     "app.audioModal.audioChoiceLabel": "Hoe wilt u deelnemen aan de audio?",
     "app.audioModal.iOSBrowser": "Audio / Video niet ondersteund",
     "app.audioModal.iOSErrorDescription": "Op dit moment worden audio en video niet ondersteund in Chrome voor iOS.",
     "app.audioModal.iOSErrorRecommendation": "We raden het gebruik van Safari iOS aan.",
-    "app.audioModal.audioChoiceDesc": "Selecteer hoe u aan de audio deelneemt aan deze vergadering",
+    "app.audioModal.audioChoiceDesc": "Selecteer hoe u aan de audio deelneemt in deze vergadering",
     "app.audioModal.unsupportedBrowserLabel": "Het lijkt erop dat u een browser gebruikt die niet volledig wordt ondersteund. Gebruik {0} of {1} voor volledige ondersteuning.",
     "app.audioModal.closeLabel": "Sluiten",
     "app.audioModal.yes": "Ja",
@@ -416,7 +418,7 @@
     "app.audioModal.help.noSSL": "Deze pagina is niet beveiligd. Voor toegang tot de microfoon moet de pagina via HTTPS worden aangeboden. Neem contact op met de serverbeheerder.",
     "app.audioModal.help.macNotAllowed": "Het lijkt erop dat uw Mac-systeemvoorkeuren de toegang tot uw microfoon blokkeren. Open Systeemvoorkeuren> Beveiliging en privacy> Privacy> Microfoon en controleer of de browser die u gebruikt is aangevinkt.",
     "app.audioModal.audioDialTitle": "Doe mee met uw telefoon",
-    "app.audioDial.audioDialDescription": "Dial",
+    "app.audioDial.audioDialDescription": "Inbellen",
     "app.audioDial.audioDialConfrenceText": "en voer de pincode van de conferentie in:",
     "app.audioModal.autoplayBlockedDesc": "We hebben uw toestemming nodig om audio af te spelen.",
     "app.audioModal.playAudio": "Audio afspelen",
@@ -444,15 +446,15 @@
     "app.audio.audioSettings.microphoneSourceLabel": "Microfoonbron",
     "app.audio.audioSettings.speakerSourceLabel": "Luidsprekerbron",
     "app.audio.audioSettings.microphoneStreamLabel": "Het volume van uw audiostream",
-    "app.audio.audioSettings.retryLabel": "Retry",
-    "app.audio.listenOnly.backLabel": "Back",
+    "app.audio.audioSettings.retryLabel": "Opnieuw proberen",
+    "app.audio.listenOnly.backLabel": "Terug",
     "app.audio.listenOnly.closeLabel": "Sluiten",
     "app.audio.permissionsOverlay.title": "Toegang tot uw microfoon toestaan",
-    "app.audio.permissionsOverlay.hint": "We moeten u toestemming geven om uw media-apparaten te gebruiken om u bij de spraakconferentie te voegen :)",
+    "app.audio.permissionsOverlay.hint": "We moeten uw toestemming hebben om uw media-apparaten te gebruiken om u aan de spraakconferentie te laten deelnemen :)",
     "app.error.removed": "U bent verwijderd uit de conferentie",
     "app.error.meeting.ended": "U bent uitgelogd van de conferentie",
     "app.meeting.logout.duplicateUserEjectReason": "Dubbele gebruiker die aan de vergadering probeert deel te nemen",
-    "app.meeting.logout.permissionEjectReason": "Uitgevoerd wegens schending van de rechten",
+    "app.meeting.logout.permissionEjectReason": "Uitgeworpen wegens schending van de rechten",
     "app.meeting.logout.ejectedFromMeeting": "U bent uit de vergadering verwijderd",
     "app.meeting.logout.validateTokenFailedEjectReason": "Kan autorisatietoken niet valideren",
     "app.meeting.logout.userInactivityEjectReason": "Gebruiker te lang inactief",
@@ -469,25 +471,25 @@
     "app.error.403": "U bent verwijderd uit de vergadering",
     "app.error.404": "Niet gevonden",
     "app.error.410": "Vergadering is beëindigd",
-    "app.error.500": "Ops, er is iets misgegaan",
+    "app.error.500": "Oeps, er is iets misgegaan",
     "app.error.leaveLabel": "Log opnieuw in",
     "app.error.fallback.presentation.title": "Er is een fout opgetreden",
     "app.error.fallback.presentation.description": "Het is vastgelegd. Probeer de pagina opnieuw te laden.",
     "app.error.fallback.presentation.reloadButton": "Herladen",
-    "app.guest.waiting": "Wachten op goedkeuring",
+    "app.guest.waiting": "Wachten op goedkeuring om deel te nemen",
     "app.userList.guest.waitingUsers": "Wachtende gebruikers",
     "app.userList.guest.waitingUsersTitle": "Gebruikersbeheer",
-    "app.userList.guest.optionTitle": "Gebruikers in behandeling beoordelen",
+    "app.userList.guest.optionTitle": "Gebruikers in afwachting beoordelen",
     "app.userList.guest.allowAllAuthenticated": "Alle geverifieerde toestaan",
     "app.userList.guest.allowAllGuests": "Alle gasten toestaan",
     "app.userList.guest.allowEveryone": "Iedereen toestaan",
     "app.userList.guest.denyEveryone": "Iedereen weigeren",
-    "app.userList.guest.pendingUsers": "{0} Gebruikers in behandeling",
+    "app.userList.guest.pendingUsers": "{0} Gebruikers in afwachting",
     "app.userList.guest.pendingGuestUsers": "{0} Wachtende gastgebruikers",
     "app.userList.guest.pendingGuestAlert": "Heeft zich bij de sessie aangesloten en wacht op uw goedkeuring.",
     "app.userList.guest.rememberChoice": "Keuze onthouden",
     "app.user-info.title": "Woordenboek zoekopdracht",
-    "app.toast.breakoutRoomEnded": "De brainstormruimte is beëindigd. Doe opnieuw mee met de audio.",
+    "app.toast.breakoutRoomEnded": "De brainstormruimte is beëindigd. Neem opnieuw deel aan de audio.",
     "app.toast.chat.public": "Nieuw openbaar chatbericht",
     "app.toast.chat.private": "Nieuw privéchatbericht",
     "app.toast.chat.system": "Systeem",
@@ -505,11 +507,11 @@
     "app.shortcut-help.comboLabel": "Combo",
     "app.shortcut-help.functionLabel": "Functie",
     "app.shortcut-help.closeLabel": "Sluiten",
-    "app.shortcut-help.closeDesc": "Sluit modale sneltoetsen",
+    "app.shortcut-help.closeDesc": "Sluit modal voor sneltoetsen",
     "app.shortcut-help.openOptions": "Open opties",
-    "app.shortcut-help.toggleUserList": "Schakel gebruikerlijst",
-    "app.shortcut-help.toggleMute": "Mute / Unmute",
-    "app.shortcut-help.togglePublicChat": "Schakel openbare chat (Gebruikerslijst moet open zijn)",
+    "app.shortcut-help.toggleUserList": "Toon/verberg gebruikerslijst",
+    "app.shortcut-help.toggleMute": "Dempen / Dempen opheffen",
+    "app.shortcut-help.togglePublicChat": "Toon/verberg openbare chat (Gebruikerslijst moet open zijn)",
     "app.shortcut-help.hidePrivateChat": "Verberg privéchat",
     "app.shortcut-help.closePrivateChat": "Sluit privéchat",
     "app.shortcut-help.openActions": "Actiesmenu openen",
@@ -517,17 +519,17 @@
     "app.shortcut-help.togglePan": "Activeer Pan-tool (Presentator)",
     "app.shortcut-help.nextSlideDesc": "Volgende dia (Presentator)",
     "app.shortcut-help.previousSlideDesc": "Vorige dia (Presentator)",
-    "app.lock-viewers.title": "Vergrendel toeschouwers",
+    "app.lock-viewers.title": "Vergrendel kijkers",
     "app.lock-viewers.description": "Met deze opties kunt u ervoor zorgen dat kijkers geen specifieke functies gebruiken.",
-    "app.lock-viewers.featuresLable": "Feature",
+    "app.lock-viewers.featuresLable": "Kenmerk",
     "app.lock-viewers.lockStatusLabel": "Status",
     "app.lock-viewers.webcamLabel": "Webcam delen",
-    "app.lock-viewers.otherViewersWebcamLabel": "Toegang andere webcams",
+    "app.lock-viewers.otherViewersWebcamLabel": "Bekijk andere webcams",
     "app.lock-viewers.microphoneLable": "Deel microfoon",
-    "app.lock-viewers.PublicChatLabel": "Openbare chatberichten verzenden",
+    "app.lock-viewers.PublicChatLabel": "Stuur openbare chatberichten",
     "app.lock-viewers.PrivateChatLable": "Stuur privéchatberichten",
     "app.lock-viewers.notesLabel": "Bewerk gedeelde notities",
-    "app.lock-viewers.userListLabel": "Zie andere kijkers in de gebruikerslijst",
+    "app.lock-viewers.userListLabel": "Bekijk andere kijkers in de gebruikerslijst",
     "app.lock-viewers.ariaTitle": "Modal van kijkersinstellingen vergrendelen",
     "app.lock-viewers.button.apply": "Toepassen",
     "app.lock-viewers.button.cancel": "Annuleren",
@@ -544,6 +546,9 @@
     "app.videoPreview.closeLabel": "Sluiten",
     "app.videoPreview.findingWebcamsLabel": "Webcams zoeken",
     "app.videoPreview.startSharingLabel": "Beginnen met delen",
+    "app.videoPreview.stopSharingLabel": "Stop delen",
+    "app.videoPreview.stopSharingAllLabel": "Stop alles",
+    "app.videoPreview.sharedCameraLabel": "Deze camera wordt al gedeeld",
     "app.videoPreview.webcamOptionLabel": "Kies webcam",
     "app.videoPreview.webcamPreviewLabel": "Webcamvoorbeeld",
     "app.videoPreview.webcamSettingsTitle": "Webcaminstellingen",
@@ -558,9 +563,9 @@
     "app.video.notFoundError": "Kon de webcam niet vinden. Controleer of deze is verbonden",
     "app.video.notAllowed": "Ontbrekende toestemming voor gedeelde webcam, zorg ervoor dat uw browsermachtigingen",
     "app.video.notSupportedError": "Kan webcamvideo alleen delen met veilige bronnen, zorg ervoor dat uw SSL-certificaat geldig is",
-    "app.video.notReadableError": "Kon geen webcamvideo krijgen. Zorg ervoor dat een ander programma de webcam niet gebruikt",
+    "app.video.notReadableError": "Kon geen webcamvideo ophalen. Zorg ervoor dat andere programma's de webcam niet gebruiken",
     "app.video.mediaFlowTimeout1020": "Media konden de server niet bereiken (fout 1020)",
-    "app.video.suggestWebcamLock": "Lock-instelling afdwingen voor webcams van kijkers?",
+    "app.video.suggestWebcamLock": "Vergrendel-instelling afdwingen voor webcams van kijkers?",
     "app.video.suggestWebcamLockReason": "(dit zal de stabiliteit van de vergadering verbeteren)",
     "app.video.enable": "Inschakelen",
     "app.video.cancel": "Annuleren",
@@ -573,24 +578,11 @@
     "app.video.videoMenuDesc": "Vervolgkeuzelijst Videomenu openen",
     "app.video.chromeExtensionError": "U moet installeren",
     "app.video.chromeExtensionErrorLink": "deze Chrome-extensie",
-    "app.video.stats.title": "Verbindingsstatistieken",
-    "app.video.stats.packetsReceived": "Pakketten ontvangen",
-    "app.video.stats.packetsSent": "Pakketten verzonden",
-    "app.video.stats.packetsLost": "Pakketten verloren",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Totaal verloren percentage",
-    "app.video.stats.lostRecentPercentage": "Recent percentage verloren",
-    "app.video.stats.dimensions": "Dimensions",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Decodeer vertraging",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Gebruik coderen",
-    "app.video.stats.currentDelay": "Huidige vertraging",
     "app.fullscreenButton.label": "Maak {0} volledig scherm",
     "app.deskshare.iceConnectionStateError": "Verbinding mislukt tijdens delen van scherm (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "Kan geen verbinding maken met mediaserver (fout 2000)",
     "app.sfu.mediaServerOffline2001": "Mediaserver is offline. Probeer het later opnieuw (fout 2001)",
-    "app.sfu.mediaServerNoResources2002": "Mediaserver heeft geen beschikbare middelen (fout 2002)",
+    "app.sfu.mediaServerNoResources2002": "Mediaserver heeft geen beschikbare bronnen (fout 2002)",
     "app.sfu.mediaServerRequestTimeout2003": "Mediaserververzoeken duren te lang (fout 2003)",
     "app.sfu.serverIceGatheringFailed2021": "Mediaserver kan geen verbindingskandidaten verzamelen (ICE error 2021)",
     "app.sfu.serverIceGatheringFailed2022": "Mediaserververbinding mislukt (ICE-fout 2022)",
@@ -598,7 +590,8 @@
     "app.sfu.invalidSdp2202":"Client heeft een ongeldig mediaverzoek gegenereerd (SDP-fout 2202)",
     "app.sfu.noAvailableCodec2203": "Server kan geen geschikte codec vinden (fout 2203)",
     "app.meeting.endNotification.ok.label": "OK",
-    "app.whiteboard.annotations.poll": "Poll-resultaten zijn gepubliceerd",
+    "app.whiteboard.annotations.poll": "Peiling-resultaten zijn gepubliceerd",
+    "app.whiteboard.annotations.pollResult": "Poll-resultaat",
     "app.whiteboard.toolbar.tools": "Gereedschappen",
     "app.whiteboard.toolbar.tools.hand": "Hand",
     "app.whiteboard.toolbar.tools.pencil": "Potlood",
@@ -607,8 +600,8 @@
     "app.whiteboard.toolbar.tools.ellipse": "Ellips",
     "app.whiteboard.toolbar.tools.line": "Lijn",
     "app.whiteboard.toolbar.tools.text": "Tekst",
-    "app.whiteboard.toolbar.thickness": "Tekening dikte",
-    "app.whiteboard.toolbar.thicknessDisabled": "Tekeningdikte is uitgeschakeld",
+    "app.whiteboard.toolbar.thickness": "Tekendikte",
+    "app.whiteboard.toolbar.thicknessDisabled": "Tekendikte is uitgeschakeld",
     "app.whiteboard.toolbar.color": "Kleuren",
     "app.whiteboard.toolbar.colorDisabled": "Kleuren is uitgeschakeld",
     "app.whiteboard.toolbar.color.black": "Zwart",
@@ -629,10 +622,10 @@
     "app.whiteboard.toolbar.multiUserOff": "Whiteboard voor meerdere gebruikers uitschakelen",
     "app.whiteboard.toolbar.fontSize": "Lijst met lettertypegroottes",
     "app.feedback.title": "U bent uitgelogd van de conferentie",
-    "app.feedback.subtitle": "We horen graag over uw ervaring met BigBlueButton (optioneel)",
+    "app.feedback.subtitle": "We horen graag over uw ervaringen met BigBlueButton (optioneel)",
     "app.feedback.textarea": "Hoe kunnen we BigBlueButton beter maken?",
     "app.feedback.sendFeedback": "Feedback verzenden",
-    "app.feedback.sendFeedbackDesc": "Stuur een feedback en verlaat de vergadering",
+    "app.feedback.sendFeedbackDesc": "Stuur feedback en verlaat de vergadering",
     "app.videoDock.webcamFocusLabel": "Focus",
     "app.videoDock.webcamFocusDesc": "Focus de geselecteerde webcam",
     "app.videoDock.webcamUnfocusLabel": "Unfocus",
@@ -654,13 +647,13 @@
     "app.createBreakoutRoom.returnAudio": "Return audio",
     "app.createBreakoutRoom.alreadyConnected": "Al in kamer",
     "app.createBreakoutRoom.confirm": "Maken",
-    "app.createBreakoutRoom.record": "Record",
+    "app.createBreakoutRoom.record": "Opnemen",
     "app.createBreakoutRoom.numberOfRooms": "Aantal kamers",
     "app.createBreakoutRoom.durationInMinutes": "Duur (minuten)",
     "app.createBreakoutRoom.randomlyAssign": "Willekeurig toewijzen",
     "app.createBreakoutRoom.endAllBreakouts": "Alle brainstormruimtes beëindigen",
     "app.createBreakoutRoom.roomName": "{0} (Kamer - {1})",
-    "app.createBreakoutRoom.doneLabel": "Done",
+    "app.createBreakoutRoom.doneLabel": "Gereed",
     "app.createBreakoutRoom.nextLabel": "Volgende",
     "app.createBreakoutRoom.minusRoomTime": "Tijd voor brainstormruimte verlagen tot",
     "app.createBreakoutRoom.addRoomTime": "Tijd voor brainstormruimte verhogen tot",
@@ -685,7 +678,7 @@
     "app.iOSWarning.label": "Upgrade naar iOS 12.2 of hoger",
     "app.legacy.unsupportedBrowser": "Het lijkt erop dat u een browser gebruikt die niet wordt ondersteund. Gebruik {0} of {1} voor volledige ondersteuning.",
     "app.legacy.upgradeBrowser": "Het lijkt erop dat u een oudere versie van een ondersteunde browser gebruikt. Upgrade uw browser voor volledige ondersteuning.",
-    "app.legacy.criosBrowser": "Gebruik op iOS Safari voor volledige ondersteuning."
+    "app.legacy.criosBrowser": "Gebruik Safari op iOS voor volledige ondersteuning."
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/pl_PL.json b/bigbluebutton-html5/private/locales/pl_PL.json
index ce7bd707b20922dc45e90d5436c71a6a247f8156..fbdc74757c39ecd2bc3147902878af92db04d5ac 100644
--- a/bigbluebutton-html5/private/locales/pl_PL.json
+++ b/bigbluebutton-html5/private/locales/pl_PL.json
@@ -122,8 +122,6 @@
     "app.meeting.meetingTimeRemaining": "Czas do końca spotkania: {0}",
     "app.meeting.meetingTimeHasEnded": "Koniec czasu. Spotkanie wkrótce się zakończy",
     "app.meeting.endedMessage": "Zostaniesz przekierowany do strony domowej",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Spotkanie skończy się za minutę",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Praca w podgrupie zakończy się za minutę",
     "app.presentation.hide": "Ukryj prezentacjÄ™",
     "app.presentation.notificationLabel": "Bieżąca prezentacja",
     "app.presentation.slideContent": "Zawartość slajdu",
@@ -260,7 +258,6 @@
     "app.leaveConfirmation.confirmLabel": "Wyjdź",
     "app.leaveConfirmation.confirmDesc": "Wylogowuje CiÄ™ ze spotkania",
     "app.endMeeting.title": "Zakończ spotkanie",
-    "app.endMeeting.description": "Czy chcesz zakończyć tę sesję?",
     "app.endMeeting.yesLabel": "Tak",
     "app.endMeeting.noLabel": "Nie",
     "app.about.title": "O kliencie",
@@ -566,19 +563,6 @@
     "app.video.videoMenuDesc": "Otwiera menu wideo",
     "app.video.chromeExtensionError": "Musisz zainstalować",
     "app.video.chromeExtensionErrorLink": "to rozszerzenie Chrome",
-    "app.video.stats.title": "Statystyki połączenia",
-    "app.video.stats.packetsReceived": "Odebrane pakiety",
-    "app.video.stats.packetsSent": "Wysłane pakiety",
-    "app.video.stats.packetsLost": "Utracone pakiety",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Procent utraconych pakietów",
-    "app.video.stats.lostRecentPercentage": "Procent ostatnio utraconych pakietów",
-    "app.video.stats.dimensions": "Rozmiar",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Opóźnienie dekodowania",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Wskaźnik użycia kodowania",
-    "app.video.stats.currentDelay": "Bieżące opóźnienie",
     "app.fullscreenButton.label": "Przełącz {0} na pełny ekran",
     "app.deskshare.iceConnectionStateError": "Błąd połączenia podczas współdzielenia ekranu (ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Nie można połączyć się z serwerem multimediów (błąd 2000)",
diff --git a/bigbluebutton-html5/private/locales/pt.json b/bigbluebutton-html5/private/locales/pt.json
index ccb57fb8436806a6bb952e1ae9ef947b2cf97a0e..8d3eea8ac0395ebfac37d5e1b8be2c12cd6b23e9 100644
--- a/bigbluebutton-html5/private/locales/pt.json
+++ b/bigbluebutton-html5/private/locales/pt.json
@@ -126,8 +126,6 @@
     "app.meeting.meetingTimeRemaining": "Tempo restante da sessão: {0}",
     "app.meeting.meetingTimeHasEnded": "Tempo limite atingido. A sessão vai fechar dentro de momentos",
     "app.meeting.endedMessage": "Vai ser redirecionado para o ecrã inicial",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Sessão vai terminar dentro de 1 minuto",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Sala de grupo vai terminar dentro de 1 minuto",
     "app.presentation.hide": "Ocultar a apresentação",
     "app.presentation.notificationLabel": "Apresentação atual",
     "app.presentation.slideContent": "Conteúdo de slide",
@@ -267,7 +265,6 @@
     "app.leaveConfirmation.confirmLabel": "Sair",
     "app.leaveConfirmation.confirmDesc": "Sai da sessão",
     "app.endMeeting.title": "Terminar sessão",
-    "app.endMeeting.description": "Tem certeza que pretende terminar a sessão?",
     "app.endMeeting.yesLabel": "Sim",
     "app.endMeeting.noLabel": "Não",
     "app.about.title": "Sobre",
@@ -573,19 +570,6 @@
     "app.video.videoMenuDesc": "Abra o menu de vídeo",
     "app.video.chromeExtensionError": "Deve instalar o seguinte:",
     "app.video.chromeExtensionErrorLink": "esta extensão Chrome",
-    "app.video.stats.title": "Estatísticas da ligação",
-    "app.video.stats.packetsReceived": "Pacotes recebidos",
-    "app.video.stats.packetsSent": "Pacotes enviados",
-    "app.video.stats.packetsLost": "Pacotes perdidos",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Percentual de perda total",
-    "app.video.stats.lostRecentPercentage": "Percentual de perda recentemente",
-    "app.video.stats.dimensions": "Dimensões",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Atraso de descodificação",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Uso de codificação",
-    "app.video.stats.currentDelay": "Atraso atual",
     "app.fullscreenButton.label": "Passar {0} a ecrã inteiro",
     "app.deskshare.iceConnectionStateError": "A ligação falhou ao partilhar o ecrã (erro ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Não foi possível ligar ao media server (erro 2000)",
diff --git a/bigbluebutton-html5/private/locales/pt_BR.json b/bigbluebutton-html5/private/locales/pt_BR.json
index eae53e7a252a1c6babdf1053012c3ad0b92b38d3..a37c4bf8787a490920c582bc32773d38e09bbbc4 100644
--- a/bigbluebutton-html5/private/locales/pt_BR.json
+++ b/bigbluebutton-html5/private/locales/pt_BR.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Tempo restante da sessão: {0}",
     "app.meeting.meetingTimeHasEnded": "Tempo esgotado. A sessão será fechada em breve",
     "app.meeting.endedMessage": "Você será redirecionado para a tela inicial",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Sessão será fechada em um minuto.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Sala de apoio será fechada em um minuto.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "A reunião será encerrada em um minuto.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "A reunião será encerrada em {0} minutos.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "A sala de apoio será encerrada em {0} minutos.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "A sala de apoio será encerrada em um minuto.",
     "app.presentation.hide": "Minimizar apresentação",
     "app.presentation.notificationLabel": "Apresentação atual",
     "app.presentation.slideContent": "Conteúdo do slide",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Sair",
     "app.leaveConfirmation.confirmDesc": "Desconecta da sessão",
     "app.endMeeting.title": "Encerrar sessão",
-    "app.endMeeting.description": "Você tem certeza que deseja encerrar a sessão?",
+    "app.endMeeting.description": "Tem certeza de que deseja encerrar esta reunião para todos (todos os usuários serão desconectados)?",
     "app.endMeeting.yesLabel": "Sim",
     "app.endMeeting.noLabel": "Não",
     "app.about.title": "Sobre",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "Abra o menu de vídeo",
     "app.video.chromeExtensionError": "Você deve instalar o seguinte:",
     "app.video.chromeExtensionErrorLink": "esta extensão do Chrome",
-    "app.video.stats.title": "Estatísticas de conexão",
-    "app.video.stats.packetsReceived": "Pacotes recebidos",
-    "app.video.stats.packetsSent": "Pacotes enviados",
-    "app.video.stats.packetsLost": "Pacotes perdidos",
-    "app.video.stats.bitrate": "Taxa de bits",
-    "app.video.stats.lostPercentage": "Percentuais de perda total",
-    "app.video.stats.lostRecentPercentage": "Percentuais de perda recentemente",
-    "app.video.stats.dimensions": "Dimensões",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Atraso de decodificação",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Uso de codificação",
-    "app.video.stats.currentDelay": "Atraso atual",
     "app.fullscreenButton.label": "Alternar {0} para tela cheia",
     "app.deskshare.iceConnectionStateError": "Falha na conexão ao compartilhar a tela (erro ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Não foi possível conectar ao servidor de mídia (erro 2000)",
diff --git a/bigbluebutton-html5/private/locales/ro_RO.json b/bigbluebutton-html5/private/locales/ro_RO.json
index a4fa8413262604c642c32e7789e0287d9911355f..a616c0e4123c9b411c021cc86f3e7ac751bcd29e 100644
--- a/bigbluebutton-html5/private/locales/ro_RO.json
+++ b/bigbluebutton-html5/private/locales/ro_RO.json
@@ -1,6 +1,6 @@
 {
     "app.home.greeting": "Prezentarea dvs va incepe in curand ...",
-    "app.chat.submitLabel": "Trimit mesaj",
+    "app.chat.submitLabel": "Trimite mesaj",
     "app.chat.errorMaxMessageLength": "Mesajul este cu {0} caracter(e) prea lung",
     "app.chat.disconnected": "Esti deconectat, nu poti trimite mesaje",
     "app.chat.locked": "Discutia este blocata, nu poti trimite mesaje",
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "Timp ramas din sedinta: {0}",
     "app.meeting.meetingTimeHasEnded": "Timpul s-a sfarsit. Sedinta se va incheia in scurt timp",
     "app.meeting.endedMessage": "Veti fi redirectionat in ecranul de pornire",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Sedinta se va incheia intr-un minut.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout-ul se inchide intr-un minut.",
     "app.presentation.hide": "Ascunde prezentarea ",
     "app.presentation.notificationLabel": "Prezentarea curenta",
     "app.presentation.slideContent": "Glisare continut",
@@ -255,7 +253,6 @@
     "app.leaveConfirmation.confirmLabel": "Paraseste",
     "app.leaveConfirmation.confirmDesc": "Scoatere din sedinta",
     "app.endMeeting.title": "Sfarsit sedinta",
-    "app.endMeeting.description": "Esti sigur ca vrei sa parasesti sedinta?",
     "app.endMeeting.yesLabel": "Da",
     "app.endMeeting.noLabel": "Nu",
     "app.about.title": "Despre",
@@ -529,7 +526,7 @@
     "app.video.leaveVideo": "Opreste partajarea camerei web",
     "app.video.iceCandidateError": "Eroare la adaugarea unui candidat ICE",
     "app.video.permissionError": "Eroare la partajarea camerei web. Va rog sa verificati permisiunile",
-    "app.video.sharingError": "Eroare la partajarea camrei web",
+    "app.video.sharingError": "Eroare la partajarea camerei web",
     "app.video.notFoundError": "Nu pot gasi camera web.Va rog asigurati-va ca este conectata",
     "app.video.notAllowed": "Lipsesc permisiunile pentru partajarea camerei web, va rog asigurati-va de permisiunile din browser",
     "app.video.notSupportedError": "Se poate partaja camera web doar daca certificatul SSL este valid",
@@ -547,19 +544,6 @@
     "app.video.videoMenuDesc": "Deschideti dropdown-ul de meniu Video",
     "app.video.chromeExtensionError": "Trebuie sa instalezi",
     "app.video.chromeExtensionErrorLink": "acesta extensie de Chrome",
-    "app.video.stats.title": "Statistici de Conectare",
-    "app.video.stats.packetsReceived": "Pachete receptionate",
-    "app.video.stats.packetsSent": "Pachete trimise",
-    "app.video.stats.packetsLost": "Pachete pierdute",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Procent de Pierdere Total",
-    "app.video.stats.lostRecentPercentage": "Procent de Pierdere recent",
-    "app.video.stats.dimensions": "Dimensiuni",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "Intarziere de decodare",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Folosire decodare",
-    "app.video.stats.currentDelay": "Intarziere curenta",
     "app.fullscreenButton.label": "Faceti {0} ecran complet",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Rezultatul sondajului a fost publicat",
diff --git a/bigbluebutton-html5/private/locales/ru.json b/bigbluebutton-html5/private/locales/ru.json
index 748be1e5e6640b1a273985c6042562d811f84760..2ba3f26e69de2d7a556f4a7d584d3ec6a13c620c 100644
--- a/bigbluebutton-html5/private/locales/ru.json
+++ b/bigbluebutton-html5/private/locales/ru.json
@@ -125,8 +125,6 @@
     "app.meeting.meetingTimeRemaining": "До окончания конференции осталось: {0}",
     "app.meeting.meetingTimeHasEnded": "Время вышло. Конференция скоро закроется.",
     "app.meeting.endedMessage": "Вы будете перенаправлены назад на главный экран",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Конференция закроется через 1 минуту",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Комната для групповой работы закроется через минуту",
     "app.presentation.hide": "Скрыть презентацию",
     "app.presentation.notificationLabel": "Текущая презентация",
     "app.presentation.slideContent": "Содержимое слайда",
@@ -264,7 +262,6 @@
     "app.leaveConfirmation.confirmLabel": "Выйти",
     "app.leaveConfirmation.confirmDesc": "Выйти из конференции",
     "app.endMeeting.title": "Закончить конференцию",
-    "app.endMeeting.description": "Вы уверены, что хотите закончить этот сеанс?",
     "app.endMeeting.yesLabel": "Да",
     "app.endMeeting.noLabel": "Нет",
     "app.about.title": "О программе",
@@ -570,19 +567,6 @@
     "app.video.videoMenuDesc": "Открыть выпадающее меню видео",
     "app.video.chromeExtensionError": "Вы должны установить",
     "app.video.chromeExtensionErrorLink": "это расширение Chrome",
-    "app.video.stats.title": "Статистика подключений",
-    "app.video.stats.packetsReceived": "Полученные пакеты",
-    "app.video.stats.packetsSent": "Пакеты отправлены",
-    "app.video.stats.packetsLost": "Пакеты потеряны",
-    "app.video.stats.bitrate": "Битрейт",
-    "app.video.stats.lostPercentage": "Общий процент потерянных",
-    "app.video.stats.lostRecentPercentage": "Нынешний процент потерянных",
-    "app.video.stats.dimensions": "Размеры",
-    "app.video.stats.codec": "Кодек",
-    "app.video.stats.decodeDelay": "Задержка декодирования",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Использование кодировкой",
-    "app.video.stats.currentDelay": "Текущая задержка",
     "app.fullscreenButton.label": "Включить {0} на полный экран",
     "app.deskshare.iceConnectionStateError": "Не удалось установить соединение при совместном просмотре экрана (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "Невозможно подключиться к медиа-серверу (error 2000)",
diff --git a/bigbluebutton-html5/private/locales/ru_RU.json b/bigbluebutton-html5/private/locales/ru_RU.json
index 0515dab5ebda7563f6ed650634d85660cb4b5e56..05e9eabee8b760e8261366b86cb2803bf22e2217 100644
--- a/bigbluebutton-html5/private/locales/ru_RU.json
+++ b/bigbluebutton-html5/private/locales/ru_RU.json
@@ -122,8 +122,6 @@
     "app.meeting.meetingTimeRemaining": "До окончания конференции осталось: {0}",
     "app.meeting.meetingTimeHasEnded": "Время вышло. Конференция скоро закроется.",
     "app.meeting.endedMessage": "Вы будете перенаправлены назад на главный экран",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Конференция закроется через 1 минуту",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Комната для групповой работы закроется через минуту",
     "app.presentation.hide": "Скрыть презентацию",
     "app.presentation.notificationLabel": "Текущая презентация",
     "app.presentation.slideContent": "Содержимое слайда",
@@ -260,7 +258,6 @@
     "app.leaveConfirmation.confirmLabel": "Выйти",
     "app.leaveConfirmation.confirmDesc": "Выйти из конференции",
     "app.endMeeting.title": "Закончить конференцию",
-    "app.endMeeting.description": "Вы уверены, что хотите закончить этот сеанс?",
     "app.endMeeting.yesLabel": "Да",
     "app.endMeeting.noLabel": "Нет",
     "app.about.title": "О программе",
@@ -564,19 +561,6 @@
     "app.video.videoMenuDesc": "Открыть выпадающее меню видео",
     "app.video.chromeExtensionError": "Вы должны установить",
     "app.video.chromeExtensionErrorLink": "это расширение Chrome",
-    "app.video.stats.title": "Статистика подключений",
-    "app.video.stats.packetsReceived": "Полученные пакеты",
-    "app.video.stats.packetsSent": "Пакеты отправлены",
-    "app.video.stats.packetsLost": "Пакеты потеряны",
-    "app.video.stats.bitrate": "Битрейт",
-    "app.video.stats.lostPercentage": "Общий процент потерянных",
-    "app.video.stats.lostRecentPercentage": "Нынешний процент потерянных",
-    "app.video.stats.dimensions": "Размеры",
-    "app.video.stats.codec": "Кодек",
-    "app.video.stats.decodeDelay": "Задержка декодирования",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Использование кодировкой",
-    "app.video.stats.currentDelay": "Текущая задержка",
     "app.fullscreenButton.label": "Включить {0} на полный экран",
     "app.meeting.endNotification.ok.label": "ОК",
     "app.whiteboard.annotations.poll": "Результаты опроса были опубликованы",
diff --git a/bigbluebutton-html5/private/locales/sk_SK.json b/bigbluebutton-html5/private/locales/sk_SK.json
index 538ef8af208a5235260eed3d901c3b132efcbfcf..6081b8a7e6b5ecc7d102d117a5a39476d4c58da2 100644
--- a/bigbluebutton-html5/private/locales/sk_SK.json
+++ b/bigbluebutton-html5/private/locales/sk_SK.json
@@ -63,6 +63,7 @@
     "app.userList.presenter": "Prednášajúci",
     "app.userList.you": "Vy",
     "app.userList.locked": "Zamknutý",
+    "app.userList.byModerator": "od (Moderator)",
     "app.userList.label": "Zoznam užívateľov",
     "app.userList.toggleCompactView.label": "Prepnúť na kompaktné rozloženie",
     "app.userList.guest": "Hosť",
@@ -72,6 +73,8 @@
     "app.userList.menu.chat.label": "Začnite súkromný chat",
     "app.userList.menu.clearStatus.label": "Vyčistiť stav",
     "app.userList.menu.removeUser.label": "Odstrániť užívateľa",
+    "app.userList.menu.removeConfirmation.label": "Odstrániť užívateľa ({0})",
+    "app.userlist.menu.removeConfirmation.desc": "Zabrániť tomuto užívateľovi znova sa pripojiť.",
     "app.userList.menu.muteUserAudio.label": "Stlmiť užívateľa",
     "app.userList.menu.unmuteUserAudio.label": "Zrušiť stlmenie užívateľa",
     "app.userList.userAriaLabel": "{0} {1} {2}  Stav {3}",
@@ -111,6 +114,8 @@
     "app.media.autoplayAlertDesc": "Povoliť prístup",
     "app.media.screenshare.start": "Zdieľanie obrazovky bolo spustené",
     "app.media.screenshare.end": "Zdieľanie obrazovky bolo ukončené",
+    "app.media.screenshare.unavailable": "Zdieľanie obrazovky je nedostupné",
+    "app.media.screenshare.notSupported": "Zdieľanie obrazovky nie je dostupné v tomto prehliadači.",
     "app.media.screenshare.autoplayBlockedDesc": "Potrebujeme od Vás povolenie pre zobrazenie obrazovky prednášajúceho.",
     "app.media.screenshare.autoplayAllowLabel": "Zobraziť zdieľanú obrazovku",
     "app.screenshare.notAllowed": "Chyba: Právo na zdieľanie obrazovky nebolo povolené.",
@@ -121,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Zostávajúci čas: {0}",
     "app.meeting.meetingTimeHasEnded": "Čas vypršal. Konferencia sa čoskoro skončí",
     "app.meeting.endedMessage": "Budete presmerovaný(á) na Vašu domovskú obrazovku",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Konferencia bude ukončená behom minúty.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Vedľajšia miestnosť bude ukončená behom minúty",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Konferencia skončí o 1 minútu.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Konferencia skončí o {0} minút.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Vedľajšie miestnosti skončia o {0} minút.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Vedľajšie miestnosti skončia o 1 minútu.",
     "app.presentation.hide": "Skyť prezentáciu",
     "app.presentation.notificationLabel": "Aktuálna prezentácia",
     "app.presentation.slideContent": "Obsah snímku",
@@ -134,8 +141,8 @@
     "app.presentation.presentationToolbar.selectLabel": "Vyberte si snímok",
     "app.presentation.presentationToolbar.prevSlideLabel": "Predchádzajúci snímok",
     "app.presentation.presentationToolbar.prevSlideDesc": "Posunie prezentáciu na predchádzajúci snímok",
-    "app.presentation.presentationToolbar.nextSlideLabel": "Ďalší snímok",
-    "app.presentation.presentationToolbar.nextSlideDesc": "Posunie prezentáciu na ďalší snímok",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Nasledujúci snímok",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Posunie prezentáciu na nasledujúci snímok",
     "app.presentation.presentationToolbar.skipSlideLabel": "Preskočiť snímok",
     "app.presentation.presentationToolbar.skipSlideDesc": "Posunie prezentáciu na vybraný snímok",
     "app.presentation.presentationToolbar.fitWidthLabel": "Prispôsobiť na šírku",
@@ -169,13 +176,20 @@
     "app.presentationUploder.rejectedError": "Vybratý súbor bol odmietnutý. prosím skontrolujte typ súboru.",
     "app.presentationUploder.upload.progress": "Nahrávanie ({0}%)",
     "app.presentationUploder.upload.413": "Súbor je príliš veľký. Prosím rozdeľte ho na viacero menších súborov.",
+    "app.presentationUploder.upload.408": "Požiadavke pre nahratie súboru vypršal časový limit.",
+    "app.presentationUploder.upload.404": "404: Neplatná značka pre nahratie súboru",
+    "app.presentationUploder.upload.401": "Požiadavka pre nahratie prezentácie zlyhala.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Spracúvam stránku {0} z {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "Konvertujem súbor ...",
     "app.presentationUploder.conversion.generatingThumbnail": "Generujem náhľady ...",
     "app.presentationUploder.conversion.generatedSlides": "Snímky boli vygenerované ...",
     "app.presentationUploder.conversion.generatingSvg": "Generujem obrázky SVG ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Prekročený maximálny počet strán. Prosím rozdeľte súbor na viacero menších súborov.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Spracovanie dokumentu office bolo neúspešné. Prosím nahrajte dokument vo formáte PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Spracovanie dokumentu office bolo neúspešné. Prosím nahrajte dokument vo formáte PDF.",
     "app.presentationUploder.conversion.pdfHasBigPage": "Nebolo možné skonvertovať .PDF súbor, prosím skúste ho optimalizovať",
     "app.presentationUploder.conversion.timeout": "Ops, konverzia trvala príliš dlho",
+    "app.presentationUploder.conversion.pageCountFailed": "Nepodarilo sa zistiť počet strán.",
     "app.presentationUploder.isDownloadableLabel": "Zakázať sťahovanie prezentácie",
     "app.presentationUploder.isNotDownloadableLabel": "Zakázať sťahovanie prezentácie",
     "app.presentationUploder.removePresentationLabel": "Odstrániť prezentáciu",
@@ -255,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Opustiť",
     "app.leaveConfirmation.confirmDesc": "Opustenie tejto konferencie",
     "app.endMeeting.title": "Ukončiť konferenciu",
-    "app.endMeeting.description": "Ste si istý(á), že chcete ukončiť túto konferenciu?",
+    "app.endMeeting.description": "Určite chcete ukončiť túto konferenciu (všetci účastníci budú odpojení!) ?",
     "app.endMeeting.yesLabel": "Áno",
     "app.endMeeting.noLabel": "Nie",
     "app.about.title": "O aplikácii",
@@ -280,7 +294,7 @@
     "app.submenu.application.pushAlertLabel": "Vyskakovacie upozornenia pre chat",
     "app.submenu.application.userJoinAudioAlertLabel": "Akustické upozornenia pre pripojenie užívateľa",
     "app.submenu.application.userJoinPushAlertLabel": "Vyskakovacie upozornenia pre pripojenie užívateľa",
-    "app.submenu.application.fontSizeControlLabel": "Veľkost písma",
+    "app.submenu.application.fontSizeControlLabel": "Veľkosť písma",
     "app.submenu.application.increaseFontBtnLabel": "Zväčšiť písmo aplikácie",
     "app.submenu.application.decreaseFontBtnLabel": "Zmenšiť písmo aplikácie",
     "app.submenu.application.currentSize": "aktuálne {0}",
@@ -491,7 +505,7 @@
     "app.shortcut-help.openActions": "Otvoriť menu akcií",
     "app.shortcut-help.openStatus": "Otvoriť menu stavov",
     "app.shortcut-help.togglePan": "Aktivovať nástroje tabule (Prednášajúci)",
-    "app.shortcut-help.nextSlideDesc": "Nasledovný snímok (Prednášajúci)",
+    "app.shortcut-help.nextSlideDesc": "Nasledujúci snímok (Prednášajúci)",
     "app.shortcut-help.previousSlideDesc": "Predchádzajúci snímok (Prednášajúci)",
     "app.lock-viewers.title": "Uzamknúť funkcie pre poslucháčov",
     "app.lock-viewers.description": "Pomocou týchto volieb dokážete obmedziť prístup poslucháčov k špecifických funkciám.",
@@ -513,7 +527,7 @@
     "app.recording.stopTitle": "Pozastaviť nahrávanie",
     "app.recording.resumeTitle": "Obnoviť nahrávanie",
     "app.recording.startDescription": "Opätovným kliknutím na nahrávacie tlačítko môžete neskôr nahrávanie pozastaviť.",
-    "app.recording.stopDescription": "Ste si istý(á), že chcete nahrávanie pozastaviť? V nahrávaní môžete pokračovať neskôr po opätovným kliknutí na nahrávacie tlačítko.",
+    "app.recording.stopDescription": "Ste si istý(á), že chcete nahrávanie pozastaviť? V nahrávaní môžete neskôr pokračovať po opätovným kliknutí na nahrávacie tlačítko.",
     "app.videoPreview.cameraLabel": "Kamera",
     "app.videoPreview.profileLabel": "Kvalita",
     "app.videoPreview.cancelLabel": "Zrušiť",
@@ -547,19 +561,6 @@
     "app.video.videoMenuDesc": "Otvoriť video menu",
     "app.video.chromeExtensionError": "Musíte nainštalovať",
     "app.video.chromeExtensionErrorLink": "toto rozšírenie pre Chrome",
-    "app.video.stats.title": "Å tatistiky pripojenia",
-    "app.video.stats.packetsReceived": "Paketov prijatých",
-    "app.video.stats.packetsSent": "Paketov odoslaných",
-    "app.video.stats.packetsLost": "Paketov stratených",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Percento stratených",
-    "app.video.stats.lostRecentPercentage": "Percento naposledy stratených",
-    "app.video.stats.dimensions": "Rozmery",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Oneskorenie pri dekódovaní",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Využitie enkodéra",
-    "app.video.stats.currentDelay": "Aktuálne oneskorenie",
     "app.fullscreenButton.label": "Nastaviť {0} na celú obrazovku",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Výsledky ankety boli publikované",
diff --git a/bigbluebutton-html5/private/locales/sl.json b/bigbluebutton-html5/private/locales/sl.json
index 478b07989eac67e4e1658fbd24951bc9a28710f8..cff5da2017410001780bda59f8932b1ca8e3143d 100644
--- a/bigbluebutton-html5/private/locales/sl.json
+++ b/bigbluebutton-html5/private/locales/sl.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Preostali čas srečanja: {0}",
     "app.meeting.meetingTimeHasEnded": "Čas je potekel. Srečanje bo kmalu končano.",
     "app.meeting.endedMessage": "Stran bo preusmerjena na začetni zaslon",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Sestanek bo v naslednji minuti končan.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Ločene skupine čez minuto zaprte",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Sestanek bo samodejno končan v eni minuti.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Sestanek bo samodejno končan v {0} minutah.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Skupine bodo razpuščene v {0} minutah.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Skupine bodo razpuščene v eni minuti.",
     "app.presentation.hide": "Skrij predstavitev",
     "app.presentation.notificationLabel": "Trenutna predstavitev",
     "app.presentation.slideContent": "Vsebina strani",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Zapusti",
     "app.leaveConfirmation.confirmDesc": "Odjavi od sestanka",
     "app.endMeeting.title": "Končaj sestanek",
-    "app.endMeeting.description": "Ali ste prepričani, da želite končati predstavitev?",
+    "app.endMeeting.description": "Ali ste prepričani, da želite končati sestanek za vse udeležence (povezava bo za vse prekinjena)",
     "app.endMeeting.yesLabel": "Da",
     "app.endMeeting.noLabel": "Ne",
     "app.about.title": "O programu",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "Odpre spustno polje menija videa",
     "app.video.chromeExtensionError": "Namestiti je treba",
     "app.video.chromeExtensionErrorLink": "razširitev za Chrome",
-    "app.video.stats.title": "Statistika povezave",
-    "app.video.stats.packetsReceived": "Prejeti paketi",
-    "app.video.stats.packetsSent": "Poslani paketi",
-    "app.video.stats.packetsLost": "Izgubljeni paketi",
-    "app.video.stats.bitrate": "Bitna hitrost",
-    "app.video.stats.lostPercentage": "Skupni odstotek izgubljenih paketov",
-    "app.video.stats.lostRecentPercentage": "Nedavni odstotek izgubljenih paketov",
-    "app.video.stats.dimensions": "Dimenzije",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "ÄŒasovni zamik odkodiranja",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Uporaba kodirnika",
-    "app.video.stats.currentDelay": "Trenutni časovni zamik",
     "app.fullscreenButton.label": "Postavite {0} v celozaslonski način",
     "app.deskshare.iceConnectionStateError": "Povezava za souporabo zaslona je spodletela (Napaka ICE 1108)",
     "app.sfu.mediaServerConnectionError2000": "Ni se mogoče povezati s predstavnim strežnikom (napaka 2000)",
diff --git a/bigbluebutton-html5/private/locales/sr.json b/bigbluebutton-html5/private/locales/sr.json
index 5079e2f9011b4c29d69ca62aa22d700de63d3193..36e2e1e965c1d9b3cc42371b914f7ad1ab564097 100644
--- a/bigbluebutton-html5/private/locales/sr.json
+++ b/bigbluebutton-html5/private/locales/sr.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "Preostalo vreme za predavanje: {0}",
     "app.meeting.meetingTimeHasEnded": "Vreme je isteklo. Predavanje će se uskoro završiti",
     "app.meeting.endedMessage": "Bićete preusmereni na početni ekran",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Predavanje se uskoro završava.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Odvojena soba se uskoro zatvara.",
     "app.presentation.hide": "Sklonite prezentaciju",
     "app.presentation.notificationLabel": "Trenutna prezentacija",
     "app.presentation.slideContent": "Sadržaj slajda",
@@ -255,7 +253,6 @@
     "app.leaveConfirmation.confirmLabel": "Napustite",
     "app.leaveConfirmation.confirmDesc": "Odjavite se sa predavanja",
     "app.endMeeting.title": "Završite predavanje",
-    "app.endMeeting.description": "Da li ste sigurni da želite da završite ovu sesiju?",
     "app.endMeeting.yesLabel": "Da",
     "app.endMeeting.noLabel": "Ne",
     "app.about.title": "Više o",
@@ -520,6 +517,8 @@
     "app.videoPreview.closeLabel": "Zatvorite",
     "app.videoPreview.findingWebcamsLabel": "Pretraga veb kamera",
     "app.videoPreview.startSharingLabel": "Započnite deljenje",
+    "app.videoPreview.stopSharingLabel": "Zaustavite deljenje",
+    "app.videoPreview.sharedCameraLabel": "Prikaz sa ove kamere je već podeljen",
     "app.videoPreview.webcamOptionLabel": "Odaberite veb kameru",
     "app.videoPreview.webcamPreviewLabel": "Probni prikaz veb kamere",
     "app.videoPreview.webcamSettingsTitle": "Podešavanje veb kamere",
@@ -547,19 +546,6 @@
     "app.video.videoMenuDesc": "Otvori meni za video",
     "app.video.chromeExtensionError": "Morate instalirati",
     "app.video.chromeExtensionErrorLink": "ovu Chrome ekstenziju",
-    "app.video.stats.title": "Statistika povezivanja",
-    "app.video.stats.packetsReceived": "Primljenih paketa",
-    "app.video.stats.packetsSent": "Poslatih paketa",
-    "app.video.stats.packetsLost": "Izgubljenih paketa",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Procenat gubitka",
-    "app.video.stats.lostRecentPercentage": "Nedavni procenat gubitka",
-    "app.video.stats.dimensions": "Dimenzije",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Kašnjenje dekodiranja",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Korišćenje enkodera",
-    "app.video.stats.currentDelay": "Trenutno kašnjenje",
     "app.fullscreenButton.label": "Postavite {0} na ceo ekran",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Rezultati ankete su objavljeni",
diff --git a/bigbluebutton-html5/private/locales/sv_SE.json b/bigbluebutton-html5/private/locales/sv_SE.json
index 3aeb59bd7e6c509910f07bfd806eb94a5d550637..88c2c7647834551a0826f95953dbe17132ffa9c2 100644
--- a/bigbluebutton-html5/private/locales/sv_SE.json
+++ b/bigbluebutton-html5/private/locales/sv_SE.json
@@ -44,7 +44,7 @@
     "app.captions.pad.dictationStop": "Sluta diktat",
     "app.captions.pad.dictationOnDesc": "Slår på taligenkänning",
     "app.captions.pad.dictationOffDesc": "Slår av taligenkänning",
-    "app.note.title": "Delad notiser",
+    "app.note.title": "Delade notiser",
     "app.note.label": "Notis",
     "app.note.hideNoteLabel": "Göm notis",
     "app.user.activityCheck": "Användaraktivitetskontroll",
@@ -118,8 +118,6 @@
     "app.meeting.meetingTimeRemaining": "Återstående mötestid: {0}",
     "app.meeting.meetingTimeHasEnded": "Tid slutade. Mötet stängs snart",
     "app.meeting.endedMessage": "Du kommer att vidarebefodras till startskärmen",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Mötet slutar om en minut",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Gruppmötet stängs om en minut.",
     "app.presentation.hide": "Göm presentationen",
     "app.presentation.notificationLabel": "Nuvarande presentation",
     "app.presentation.slideContent": "Bildspelsinnehåll",
@@ -247,7 +245,6 @@
     "app.leaveConfirmation.confirmLabel": "Lämna",
     "app.leaveConfirmation.confirmDesc": "Loggar dig ur mötet",
     "app.endMeeting.title": "Avsluta mötet",
-    "app.endMeeting.description": "Är du säker på att du vill avsluta den här sessionen?",
     "app.endMeeting.yesLabel": "Ja",
     "app.endMeeting.noLabel": "Nej",
     "app.about.title": "Om",
@@ -361,7 +358,7 @@
     "app.audioModal.ariaTitle": "GÃ¥ med i ljudmodal",
     "app.audioModal.microphoneLabel": "Mikrofon",
     "app.audioModal.listenOnlyLabel": "Lyssna bara",
-    "app.audioModal.audioChoiceLabel": "Hur skull edu vilja gå med ljud?",
+    "app.audioModal.audioChoiceLabel": "Hur skulle du vilja gå med ljud?",
     "app.audioModal.iOSBrowser": "Audio/video stöds inte",
     "app.audioModal.iOSErrorDescription": "Vid denna tidpunkt stöds inte ljud och video på Chrome för iOS.",
     "app.audioModal.iOSErrorRecommendation": "Vi rekommenderar att du använder Safari iOS.",
@@ -522,19 +519,6 @@
     "app.video.videoMenuDesc": "Öppna videomenyns rullgardin",
     "app.video.chromeExtensionError": "Du måste installera",
     "app.video.chromeExtensionErrorLink": "det här Chrome-tillägget",
-    "app.video.stats.title": "Anslutningsstatistik",
-    "app.video.stats.packetsReceived": "Paket mottagna",
-    "app.video.stats.packetsSent": "Paket skickade",
-    "app.video.stats.packetsLost": "Packet förlorade",
-    "app.video.stats.bitrate": "Bitrate",
-    "app.video.stats.lostPercentage": "Total procentuell förlust",
-    "app.video.stats.lostRecentPercentage": "Senaste procentuella förlusten",
-    "app.video.stats.dimensions": "MÃ¥tt",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Avkodningsfördröjning",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Koda användningen",
-    "app.video.stats.currentDelay": "Nuvarande fördröjning",
     "app.fullscreenButton.label": "Gör {0} fullskärm",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Omröstningsresultaten publicerades",
diff --git a/bigbluebutton-html5/private/locales/te.json b/bigbluebutton-html5/private/locales/te.json
new file mode 100644
index 0000000000000000000000000000000000000000..a370597d9ade797eb4a48cdcc96c8ab5f4c0859f
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/te.json
@@ -0,0 +1,680 @@
+{
+    "app.home.greeting": "మీ ప్రదర్శన త్వరలో ప్రారంభమవుతుంది ...",
+    "app.chat.submitLabel": "సందేశము పంపు",
+    "app.chat.errorMaxMessageLength": "సందేశం {0} అక్షరాలు (లు) చాలా పొడవుగా ఉంది",
+    "app.chat.disconnected": "మీరు డిస్కనెక్ట్ చేయబడ్డారు, సందేశాలు పంపబడవు",
+    "app.chat.locked": "చాట్ లాక్ చేయబడింది, సందేశాలు పంపబడవు",
+    "app.chat.inputLabel": "చాట్ కోసం సందేశ ఇన్పుట్ {0}",
+    "app.chat.inputPlaceholder": "{0}  కు సందేశాన్ని పంపండి",
+    "app.chat.titlePublic": "పబ్లిక్ చాట్",
+    "app.chat.titlePrivate": "{0} తో ప్రైవేట్ చాట్",
+    "app.chat.partnerDisconnected": "{0} సమావేశం నుండి నిష్క్రమించారు",
+    "app.chat.closeChatLabel": "{0} మూసివేయి",
+    "app.chat.hideChatLabel": "{0} దాచు",
+    "app.chat.moreMessages": "దిగువున మరిన్ని సందేశాలు",
+    "app.chat.dropdown.options": "చాట్ ఎంపికలు",
+    "app.chat.dropdown.clear": "క్లియర్ చాట్",
+    "app.chat.dropdown.copy": "కాపీ చాట్",
+    "app.chat.dropdown.save": "సేవ్ చాట్",
+    "app.chat.label": "చాట్",
+    "app.chat.offline": "ఆఫ్లైన్",
+    "app.chat.emptyLogLabel": "చాట్ లాగ్ ఖాళీగా ఉంది",
+    "app.chat.clearPublicChatMessage": "పబ్లిక్ చాట్ చరిత్రను మోడరేటర్ క్లియర్ చేశారు",
+    "app.chat.multi.typing": "బహుళ వినియోగదారులు టైప్ చేస్తున్నారు",
+    "app.chat.one.typing": "{0} టైప్ చేస్తున్నారు",
+    "app.chat.two.typing": "{0} , {1} టైప్ చేస్తున్నారు",
+    "app.captions.label": "శీర్షికలు",
+    "app.captions.menu.close": "మూసివేయి",
+    "app.captions.menu.start": "ప్రారంభించు",
+    "app.captions.menu.ariaStart": "శీర్షికలు రాయడం ప్రారంభించు",
+    "app.captions.menu.ariaStartDesc": "శీర్షికల ఎడిటర్‌ను తెరిచి మోడల్‌ను మూసివేస్తుంది",
+    "app.captions.menu.select": "అందుబాటులో ఉన్న భాషను ఎంచుకోండి",
+    "app.captions.menu.ariaSelect": "శీర్షికల భాష",
+    "app.captions.menu.subtitle": "దయచేసి మీ సెషన్‌లో శీర్షికల కోసం భాష మరియు శైలిని ఎంచుకోండి.",
+    "app.captions.menu.title": "శీర్షికలు",
+    "app.captions.menu.fontSize": "పరిమాణం",
+    "app.captions.menu.fontColor": "వచన రంగు",
+    "app.captions.menu.fontFamily": "ఫాంట్",
+    "app.captions.menu.backgroundColor": "బ్యాక్ గ్రౌండ్ రంగు",
+    "app.captions.menu.previewLabel": "ప్రివ్యూ",
+    "app.captions.menu.cancelLabel": "రద్దు చేయి",
+    "app.captions.pad.hide": "శీర్షికలు దాచు",
+    "app.captions.pad.tip": "ఎడిటర్ టూల్‌బార్‌ పై దృష్టి పెట్టడానికి  Esc నొక్కండి",
+    "app.captions.pad.ownership": "స్వాధీనం చేసుకోండి",
+    "app.captions.pad.ownershipTooltip": "మీరు {0} శీర్షికల యజమానిగా కేటాయించబడతారు",
+    "app.captions.pad.interimResult": "మధ్యంతర ఫలితాలు",
+    "app.captions.pad.dictationStart": "డిక్టేషన్ ప్రారంభించండి",
+    "app.captions.pad.dictationStop": "డిక్టేషన్ ఆపుము",
+    "app.captions.pad.dictationOnDesc": "మాటల గుర్తింపును ఆన్ చేయండి",
+    "app.captions.pad.dictationOffDesc": " మాటల గుర్తింపును ఆపివేస్తుంది",
+    "app.note.title": "షేర్డ్ నోట్సు",
+    "app.note.label": "నోటు",
+    "app.note.hideNoteLabel": "నోటును దాచండి",
+    "app.user.activityCheck": "వినియోగదారుని పనిని పరిశీలించండి",
+    "app.user.activityCheck.label": "వినియోగదారుడు ఇంకా సమావేశంలో ఉన్నారో లేదో పరిశీలించండి ({0})",
+    "app.user.activityCheck.check": "పరిశీలించండి",
+    "app.note.tipLabel": "ఎడిటర్ టూల్‌బార్‌ పై దృష్టి పెట్టడానికి  Esc నొక్కండి",
+    "app.userList.usersTitle": "వినియోగదారులు",
+    "app.userList.participantsTitle": "పాల్గొనేవారు",
+    "app.userList.messagesTitle": "సందేశాలు",
+    "app.userList.notesTitle": "నోట్స్",
+    "app.userList.notesListItem.unreadContent": "షేర్డ్ నోట్సు విభాగంలో క్రొత్త కంటెంట్ అందుబాటులో ఉంది",
+    "app.userList.captionsTitle": "శీర్షికలు",
+    "app.userList.presenter": "ప్రెజెంటర్",
+    "app.userList.you": "మీరు",
+    "app.userList.locked": "లాక్ చేయబడింది",
+    "app.userList.byModerator": "(మోడరేటర్) ద్వారా",
+    "app.userList.label": "వినియోగదారుని జాబితా",
+    "app.userList.toggleCompactView.label": "కాంపాక్ట్ వ్యూ మోడ్‌ను టోగుల్ చేయండి",
+    "app.userList.guest": "అతిథి",
+    "app.userList.menuTitleContext": "అందుబాటులో ఉన్న ఎంపికలు",
+    "app.userList.chatListItem.unreadSingular": "{0} కొత్త సందేశం",
+    "app.userList.chatListItem.unreadPlural": "{0} కొత్త సందేశాలు",
+    "app.userList.menu.chat.label": "ప్రైవేట్ చాట్ ప్రారంభించండి",
+    "app.userList.menu.clearStatus.label": "స్టేటస్ ని క్లియర్ చేయండి",
+    "app.userList.menu.removeUser.label": "వినియోగదారుని తొలగించండి",
+    "app.userList.menu.removeConfirmation.label": "వినియోగదారుని తొలగించండి ({0})",
+    "app.userlist.menu.removeConfirmation.desc": "ఈ వినియోగదారుని సెషన్‌లో తిరిగి చేరకుండా ఆపేయండి",
+    "app.userList.menu.muteUserAudio.label": "మ్యూట్ చేయి",
+    "app.userList.menu.unmuteUserAudio.label": "అన్‌మ్యూట్ చేయి",
+    "app.userList.userAriaLabel": "{0} {1} {2} స్థితి {3}",
+    "app.userList.menu.promoteUser.label": "మోడరేటర్‌గా చేయి",
+    "app.userList.menu.demoteUser.label": "వీక్షకుడిగా మార్చుము",
+    "app.userList.menu.unlockUser.label": "అన్ లాక్ {0}",
+    "app.userList.menu.lockUser.label": "లాక్{0}",
+    "app.userList.menu.directoryLookup.label": "డైరెక్టరీ చూడండి",
+    "app.userList.menu.makePresenter.label": "ప్రెజెంటర్ చేయండి",
+    "app.userList.userOptions.manageUsersLabel": "వినియోగదారులను మ్యానేజ్ చేయండి",
+    "app.userList.userOptions.muteAllLabel": "అందరినీ మ్యూట్ చేయి",
+    "app.userList.userOptions.muteAllDesc": "సమావేశంలో అందరినీ మ్యూట్ చేయి",
+    "app.userList.userOptions.clearAllLabel": "అన్ని స్థితి చిహ్నాలను క్లియర్ చేయండి",
+    "app.userList.userOptions.clearAllDesc": "అందరి స్థితి చిహ్నాలను క్లియర్ చేయి",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "ప్రెజెంటర్ మినహా అందరినీ మ్యూట్ చేయి",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "ప్రెజెంటర్ మినహా సమావేశంలోని అందరినీ మ్యూట్ చేయి",
+    "app.userList.userOptions.unmuteAllLabel": "సమావేశాన్ని మ్యూట్ ఆఫ్ చేయండి",
+    "app.userList.userOptions.unmuteAllDesc": "సమావేశాన్ని అన్‌మ్యూట్ చేస్తుంది",
+    "app.userList.userOptions.lockViewersLabel": "వీక్షకులను లాక్ చేయి",
+    "app.userList.userOptions.lockViewersDesc": "సమావేశానికి హాజరయ్యేవారికి కొన్ని కార్యాచరణలను లాక్ చేయండి",
+    "app.userList.userOptions.disableCam": "వీక్షకుల వెబ్‌క్యామ్‌లు ఆఫ్ చేయబడ్డాయి",
+    "app.userList.userOptions.disableMic": "వీక్షకుల మైక్రోఫోన్లు ఆఫ్ చేయబడ్డాయి",
+    "app.userList.userOptions.disablePrivChat": "ప్రైవేట్ చాట్ ఆఫ్ చేయబడింది",
+    "app.userList.userOptions.disablePubChat": "పబ్లిక్ చాట్ ఆఫ్ చేయబడింది",
+    "app.userList.userOptions.disableNote": "షేర్డ్ నోట్సులు ఇప్పుడు లాక్ చేయబడ్డాయి",
+    "app.userList.userOptions.hideUserList": "వినియోగదారు ని జాబితా ఇప్పుడు వీక్షకులకు దాగి ఉంది",
+    "app.userList.userOptions.webcamsOnlyForModerator": "మోడరేటర్లు మాత్రమే వీక్షకుల వెబ్‌క్యామ్‌లను చూడగలరు (లాక్ సెట్టింగ్‌ల కారణంగా)",
+    "app.userList.content.participants.options.clearedStatus": "అందరి స్థితి క్లియర్ చేయబడింది",
+    "app.userList.userOptions.enableCam": "వీక్షకుల వెబ్‌క్యామ్ ‌లు ఆన్ చేయబడ్డాయి",
+    "app.userList.userOptions.enableMic": "వీక్షకుల మైక్రోఫోన్లు ఆన్ చేయబడ్డాయి",
+    "app.userList.userOptions.enablePrivChat": "ప్రైవేట్ చాట్ ఆన్ చేయబడింది",
+    "app.userList.userOptions.enablePubChat": "పబ్లిక్ చాట్ ఆన్ చేయబడింది",
+    "app.userList.userOptions.enableNote": "షేర్డ్ నోట్సులు  ఇప్పుడు ప్రారంభించబడ్డాయి",
+    "app.userList.userOptions.showUserList": "వినియోగదారుని  జాబితా ఇప్పుడు వీక్షకులకు చూపబడింది",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "మీరు ఇప్పుడు మీ వెబ్‌క్యామ్‌ను ఆన్ చేయవచ్చు,అందరూ మిమ్మల్ని చూస్తారు",
+    "app.media.label": "మీడియా",
+    "app.media.autoplayAlertDesc": "యాక్సెస్ ఇవ్వండి",
+    "app.media.screenshare.start": "స్క్రీన్ షేర్ ప్రారంభమైంది",
+    "app.media.screenshare.end": "స్క్రీన్ షేర్ ముగిసింది",
+    "app.media.screenshare.unavailable": "స్క్రీన్ షేర్ అందుబాటులో లేదు",
+    "app.media.screenshare.notSupported": "ఈ బ్రౌజర్‌లో స్క్రీన్‌షేరింగ్‌కు మద్దతు లేదు.",
+    "app.media.screenshare.autoplayBlockedDesc": "ప్రెజెంటర్ స్క్రీన్‌ను మీకు చూపించడానికి మాకు మీ అనుమతి అవసరం.",
+    "app.media.screenshare.autoplayAllowLabel": "షేర్ద్ స్క్రీన్ ‌ను చూడండి",
+    "app.screenshare.notAllowed": "లోపం: స్క్రీన్‌ను యాక్సెస్ చేయడానికి అనుమతి ఇవ్వబడలేదు.",
+    "app.screenshare.notSupportedError": "లోపం: స్క్రీన్ షేరింగ్ సురక్షితమైన (SSL) డొమైన్లలో మాత్రమే అనుమతించబడుతుంది",
+    "app.screenshare.notReadableError": "లోపం: ప్రయత్నిస్తున్నప్పుడు వైఫల్యం ఉంది",
+    "app.screenshare.genericError": "లోపం: స్క్రీన్ షేరింగ్‌లో లోపం సంభవించింది, దయచేసి మళ్లీ ప్రయత్నించండి",
+    "app.meeting.ended": "ఈ సెషన్ ముగిసింది",
+    "app.meeting.meetingTimeRemaining": "సమావేశ సమయం మిగిలి ఉంది: {0}",
+    "app.meeting.meetingTimeHasEnded": "సమయం ముగిసింది. సమావేశం త్వరలో ముగుస్తుంది",
+    "app.meeting.endedMessage": "మీరు హోమ్ స్క్రీన్‌కు తిరిగి ఫార్ వర్డ్ చేయబడతారు",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "సమావేశం ఒక నిమిషంలో ముగుస్తుంది.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "సమావేశం {0} నిమిషాల్లో ముగుస్తుంది.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "బ్రేక్ అవుట్ {0} నిమిషాల్లో మూసివేయబడుతుంది.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "బ్రేక్ అవుట్ ఒక నిమిషంలో ముగుస్తుంది.",
+    "app.presentation.hide": "ప్రదర్శనను దాచండి",
+    "app.presentation.notificationLabel": "ప్రస్తుత ప్రదర్శన",
+    "app.presentation.slideContent": "స్లయిడ్ కంటెంట్",
+    "app.presentation.startSlideContent": "స్లయిడ్ కంటెంట్ ప్రారంభం అయ్యింది",
+    "app.presentation.endSlideContent": "స్లయిడ్ కంటెంట్ ముగిసింది",
+    "app.presentation.emptySlideContent": "ప్రస్తుత స్లయిడ్ కోసం కంటెంట్ లేదు",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "ప్రదర్శన ముగింపు",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "ప్రదర్శన ప్రారంభం",
+    "app.presentation.presentationToolbar.selectLabel": "స్లయిడ్ ఎంచుకోండి",
+    "app.presentation.presentationToolbar.prevSlideLabel": "మునుపటి స్లయిడ్",
+    "app.presentation.presentationToolbar.prevSlideDesc": "ప్రదర్శనను మునుపటి స్లయిడ్ కి మార్చండి",
+    "app.presentation.presentationToolbar.nextSlideLabel": "తరువాతి స్లయిడ్",
+    "app.presentation.presentationToolbar.nextSlideDesc": "ప్రదర్శనను తదుపరి స్లయిడ్‌కు మార్చండి",
+    "app.presentation.presentationToolbar.skipSlideLabel": "స్లయిడ్ దాటివేయండి",
+    "app.presentation.presentationToolbar.skipSlideDesc": "ప్రదర్శనను నిర్దిష్ట స్లయిడ్ ‌కి మార్చండి",
+    "app.presentation.presentationToolbar.fitWidthLabel": "వెడల్పుకు సరిపెట్టు",
+    "app.presentation.presentationToolbar.fitWidthDesc": "స్లయిడ్ యొక్క మొత్తం వెడల్పును ప్రదర్శించండి",
+    "app.presentation.presentationToolbar.fitScreenLabel": "స్క్రీన్‌కు సరిపెట్టు",
+    "app.presentation.presentationToolbar.fitScreenDesc": "మొత్తం స్లయిడ్ ను ప్రదర్శించు",
+    "app.presentation.presentationToolbar.zoomLabel": "జూమ్ చెయ్యండి",
+    "app.presentation.presentationToolbar.zoomDesc": "ప్రదర్శన యొక్క జూమ్ స్థాయిని మార్చండి",
+    "app.presentation.presentationToolbar.zoomInLabel": "జూమ్ ఇన్",
+    "app.presentation.presentationToolbar.zoomInDesc": "ప్రదర్శనలో జూమ్ చేయండి",
+    "app.presentation.presentationToolbar.zoomOutLabel": "జూమ్ అవుట్",
+    "app.presentation.presentationToolbar.zoomOutDesc": "ప్రదర్శన నుండి జూమ్ అవుట్ చేయండి",
+    "app.presentation.presentationToolbar.zoomReset": "జూమ్‌ను రీసెట్ చేయండి",
+    "app.presentation.presentationToolbar.zoomIndicator": "ప్రస్తుత జూమ్ శాతం",
+    "app.presentation.presentationToolbar.fitToWidth": "వెడల్పుకు సరిపెట్టు",
+    "app.presentation.presentationToolbar.fitToPage": "పేజీకి సరిపెట్టు",
+    "app.presentation.presentationToolbar.goToSlide": "స్లయిడ్ {0}",
+    "app.presentationUploder.title": "ప్రదర్శన",
+    "app.presentationUploder.message": "ప్రెజెంటర్గా మీకు ఏదైనా కార్యాలయ పత్రం లేదా PDF ఫైల్‌ను అప్‌లోడ్ చేసే సామర్థ్యం ఉంది. ఉత్తమ ఫలితాల కోసం మేము PDF ఫైల్‌ను సిఫార్సు చేస్తున్నాము. దయచేసి కుడి వైపున ఉన్న సర్కిల్ చెక్‌బాక్స్ ఉపయోగించి ప్రదర్శనను ఎంచుకున్నారని నిర్ధారించుకోండి.",
+    "app.presentationUploder.uploadLabel": "అప్లోడ్ ",
+    "app.presentationUploder.confirmLabel": "కన్ఫర్మ్",
+    "app.presentationUploder.confirmDesc": "మీ మార్పులను సేవ్ చేసి ప్రదర్శనను ప్రారంభించండి",
+    "app.presentationUploder.dismissLabel": "రద్దు చేయి ",
+    "app.presentationUploder.dismissDesc": "మోడల్ విండోను మూసివేసి, మీ మార్పులను వదిలివెయ్యండి",
+    "app.presentationUploder.dropzoneLabel": "ఫైల్‌లను అప్‌లోడ్ చేయడానికి ఇక్కడ డ్రాగ్ చేయండి",
+    "app.presentationUploder.dropzoneImagesLabel": "చిత్రాలను అప్‌లోడ్ చేయడానికి ఇక్కడ డ్రాగ్ చేయండి",
+    "app.presentationUploder.browseFilesLabel": "లేదా ఫైళ్ళ కోసం వెతకండి",
+    "app.presentationUploder.browseImagesLabel": "లేదా చిత్రాల కోసం బ్రౌజ్ / క్యాప్చర్ చేయండి",
+    "app.presentationUploder.fileToUpload": "అప్‌లోడ్ చేయబడాలి ...",
+    "app.presentationUploder.currentBadge": "ప్రస్తుత",
+    "app.presentationUploder.rejectedError": "ఎంచుకున్న ఫైల్ (లు) తిరస్కరించబడ్డాయి. దయచేసి ఫైల్ రకం (ల) ను పరిశీలించండి.",
+    "app.presentationUploder.upload.progress": "అప్‌లోడ్ అవుతోంది ({0}%)",
+    "app.presentationUploder.upload.413": "ఫైల్ చాలా పెద్దది. దయచేసి బహుళ ఫైల్‌లుగా విభజించండి.",
+    "app.presentationUploder.upload.408": "కొరుకున్న అప్‌లోడ్ టోకెన్ సమయం ముగిసింది.",
+    "app.presentationUploder.upload.404": "404:  అప్‌లోడ్ టోకెన్ చెల్లనిది",
+    "app.presentationUploder.upload.401": "కొరుకున్న ప్రదర్శన అప్‌లోడ్ టోకెన్ విఫలమైంది.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": " {1} యొక్క {0} పేజీని ప్రాసెస్ చేస్తోంది",
+    "app.presentationUploder.conversion.genericConversionStatus": "ఫైల్ను మారుస్తోంది ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "తంబ్ నైల్స్ రూపొందుతున్నాయి ...",
+    "app.presentationUploder.conversion.generatedSlides": "స్లయిడ్ ‌లు రూపొందాయి ...",
+    "app.presentationUploder.conversion.generatingSvg": "SVG చిత్రాలు రూపొందుతున్నాయి...",
+    "app.presentationUploder.conversion.pageCountExceeded": "పేజీల సంఖ్య మించిపోయింది. దయచేసి ఫైల్‌ను బహుళ ఫైల్‌లుగా విభజించండి.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "ఆఫీస్ డాక్యుమెంట్ ప్రాసెస్ చేయడంలో విఫలమైంది. బదులుగా ఒక PDF ని అప్‌లోడ్ చేయండి.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "ఆఫీస్ డాక్యుమెంట్ ప్రాసెస్ చేయడంలో విఫలమైంది. బదులుగా ఒక PDF ని అప్‌లోడ్ చేయండి.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "మేము PDF ఫైల్‌ను మార్చలేకపోయాము, దయచేసి దాన్ని అనుగుణంగా చేయడానికి ప్రయత్నించండి",
+    "app.presentationUploder.conversion.timeout": "అయ్యో, మార్పిడి చాలా సమయం పట్టింది",
+    "app.presentationUploder.conversion.pageCountFailed": "పేజీల సంఖ్యను నిర్ణయించడంలో విఫలమైంది.",
+    "app.presentationUploder.isDownloadableLabel": "ప్రదర్శనను డౌన్‌లోడ్ చేయడానికి అనుమతించవద్దు",
+    "app.presentationUploder.isNotDownloadableLabel": "ప్రదర్శనను డౌన్‌లోడ్ చేయడానికి అనుమతించండి",
+    "app.presentationUploder.removePresentationLabel": "ప్రదర్శనను తొలగించండి",
+    "app.presentationUploder.setAsCurrentPresentation": "ప్రదర్శనను ప్రస్తుతంగా సెట్ చేయండి",
+    "app.presentationUploder.tableHeading.filename": "ఫైల్ పేరు",
+    "app.presentationUploder.tableHeading.options": "ఎంపికలు",
+    "app.presentationUploder.tableHeading.status": "స్థితి",
+    "app.poll.pollPaneTitle": "పోలింగ్",
+    "app.poll.quickPollTitle": "తక్షణ ఎన్నిక",
+    "app.poll.hidePollDesc": "పోల్‌ మెను పేన్‌ను దాచిపెడుతుంది",
+    "app.poll.customPollInstruction": "అనుకూల పోల్‌ను సృష్టించడానికి, దిగువ బటన్‌ను ఎంచుకోండి మరియు మీ ఎంపికలను ఇన్‌పుట్ చేయండి.",
+    "app.poll.quickPollInstruction": "మీ పోల్ ప్రారంభించడానికి క్రింది ఎంపికను ఎంచుకోండి.",
+    "app.poll.customPollLabel": "అనుకూల పోల్",
+    "app.poll.startCustomLabel": "అనుకూల పోల్‌ను ప్రారంభించండి",
+    "app.poll.activePollInstruction": "మీ పోల్‌కు ప్రత్యక్ష ప్రతిస్పందనలను చూడటానికి ఈ ప్యానెల్ ను వదిలివేయండి.మీరు సిద్ధంగా ఉన్నప్పుడు, ఫలితాలను ప్రచురించడానికి 'పోలింగ్ ఫలితాలను ప్రచురించండి' ఎంచుకోండి మరియు పోల్  ను ముగించండి.",
+    "app.poll.publishLabel": "పోలింగ్ ఫలితాలను ప్రచురించండి",
+    "app.poll.backLabel": "పోలింగ్ ఫలితాలకు తిరిగి వెళ్ళు",
+    "app.poll.closeLabel": "మూసివేయి",
+    "app.poll.waitingLabel": "స్పందనల కోసం వేచి ఉంది ({0} / {1})",
+    "app.poll.ariaInputCount": "అనుకూలించిన పోల్ ఎంపిక {1} లో {0}",
+    "app.poll.customPlaceholder": "పోల్ ఎంపికను చేర్చండి",
+    "app.poll.noPresentationSelected": "ప్రదర్శన ఏదీ ఎంచుకోబడలేదు! దయచేసి ఒకదాన్ని ఎంచుకోండి.",
+    "app.poll.clickHereToSelect": "ఎంచుకోవడానికి ఇక్కడ క్లిక్ చేయండి",
+    "app.poll.t": "ఒప్పు",
+    "app.poll.f": "తప్పు",
+    "app.poll.tf": "ఒప్పు / తప్పు",
+    "app.poll.y": "అవును",
+    "app.poll.n": "కాదు",
+    "app.poll.yn": "అవును / కాదు",
+    "app.poll.a2": "A / B",
+    "app.poll.a3": "A / B / C",
+    "app.poll.a4": "A / B / C / D",
+    "app.poll.a5": "A / B / C / D / E",
+    "app.poll.answer.true": "ఒప్పు",
+    "app.poll.answer.false": "తప్పు",
+    "app.poll.answer.yes": "అవును",
+    "app.poll.answer.no": "కాదు",
+    "app.poll.answer.a": "A",
+    "app.poll.answer.b": "B",
+    "app.poll.answer.c": "C",
+    "app.poll.answer.d": "D",
+    "app.poll.answer.e": "E",
+    "app.poll.liveResult.usersTitle": "వినియోగదారులు",
+    "app.poll.liveResult.responsesTitle": "స్పందన",
+    "app.polling.pollingTitle": "పోలింగ్ ఎంపికలు",
+    "app.polling.pollAnswerLabel": "పోల్ సమాధానం {0}",
+    "app.polling.pollAnswerDesc": "{0}  కు ఓటు వేయడానికి ఈ ఎంపికను ఎంచుకోండి",
+    "app.failedMessage": "క్షమాపణలు, సర్వర్‌కు కనెక్ట్ చేయడంలో ఇబ్బంది ఉంది.",
+    "app.downloadPresentationButton.label": "అసలు ప్రదర్శనను డౌన్‌లోడ్ చేయండి",
+    "app.connectingMessage": "కనెక్ట్ అవుతోంది ...",
+    "app.waitingMessage": "డిస్కనెక్ట్ అయ్యారు. {0} సెకన్లలో తిరిగి కనెక్ట్ చేయడానికి ప్రయత్నిస్తున్నాము ...",
+    "app.retryNow": "ఇప్పుడు మళ్లీ ప్రయత్నించండి",
+    "app.navBar.settingsDropdown.optionsLabel": "ఎంపికలు",
+    "app.navBar.settingsDropdown.fullscreenLabel": "పూర్తి స్క్రీన్ చేయండి",
+    "app.navBar.settingsDropdown.settingsLabel": "సెట్టింగులు",
+    "app.navBar.settingsDropdown.aboutLabel": "గురించి",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "లాగ్ అవుట్",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "పూర్తి స్క్రీన్ నుండి నిష్క్రమించండి",
+    "app.navBar.settingsDropdown.fullscreenDesc": "సెట్టింగుల మెను పూర్తి స్క్రీన్‌గా చేయండి",
+    "app.navBar.settingsDropdown.settingsDesc": "సాధారణ సెట్టింగులను మార్చండి",
+    "app.navBar.settingsDropdown.aboutDesc": "క్లయింట్ గురించి సమాచారాన్ని చూపించు",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "సమావేశాన్ని వదిలివేయండి",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "పూర్తి స్క్రీన్ మోడ్ నుండి నిష్క్రమించండి",
+    "app.navBar.settingsDropdown.hotkeysLabel": "కీబోర్డ్ షార్ట్ కట్ లు",
+    "app.navBar.settingsDropdown.hotkeysDesc": "అందుబాటులో ఉన్న షార్ట్ కట్ ల  జాబితా",
+    "app.navBar.settingsDropdown.helpLabel": "సహాయం",
+    "app.navBar.settingsDropdown.helpDesc": "వీడియో ట్యుటోరియల్‌లకు వినియోగదారుని లింక్ చేస్తుంది (కొత్తట్యాబ్‌ను తెరుస్తుంది)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "ప్రస్తుత సమావేశం ఆగిపోతుంది",
+    "app.navBar.settingsDropdown.endMeetingLabel": "సమావేశం ముగించండి",
+    "app.navBar.userListToggleBtnLabel": "వినియోగదారుని జాబితాను టోగుల్ చేయండి",
+    "app.navBar.toggleUserList.ariaLabel": "వినియోగదారులను మరియు సందేశాల ను టోగుల్ చేస్తాయి",
+    "app.navBar.toggleUserList.newMessages": "కొత్త సందేశ నోటిఫికేషన్‌తో",
+    "app.navBar.recording": "ఈ సెషన్ రికార్డ్ చేయబడుతోంది",
+    "app.navBar.recording.on": "రికార్డింగ్",
+    "app.navBar.recording.off": "రికార్డింగ్ అవ్వట్లెదు",
+    "app.navBar.emptyAudioBrdige": "మైక్రోఫోన్ ఆన్ లో లేదు. ఈ రికార్డింగ్‌కు ఆడియోను జోడించడానికి మీ మైక్రోఫోన్‌ను షేర్ చేయండి.",
+    "app.leaveConfirmation.confirmLabel": " వదిలివేయండి",
+    "app.leaveConfirmation.confirmDesc": "మిమ్మల్ని సమావేశం నుండి లాగ్ అవుట్ చేస్తుంది",
+    "app.endMeeting.title": "సమావేశం ముగించండి",
+    "app.endMeeting.description": "మీరు ప్రతి ఒక్కరి కోసం ఈ సమావేశాన్ని ముగించాలనుకుంటున్నారా? (వినియోగదారులందరూ డిస్కనెక్ట్ చేయబడతారు)?",
+    "app.endMeeting.yesLabel": "అవును",
+    "app.endMeeting.noLabel": "కాదు",
+    "app.about.title": "గురించి",
+    "app.about.version": "క్లయింట్ బిల్డ్:",
+    "app.about.copyright": "కాపీరైట్:",
+    "app.about.confirmLabel": "సరే",
+    "app.about.confirmDesc": "సరే",
+    "app.about.dismissLabel": "రద్దు చేయి",
+    "app.about.dismissDesc": "క్లయింట్ సమాచారం గురించి మూసివేయండి",
+    "app.actionsBar.changeStatusLabel": "స్థితిని మార్చండి",
+    "app.actionsBar.muteLabel": "మ్యూట్",
+    "app.actionsBar.unmuteLabel": "అన్‌ మ్యూట్",
+    "app.actionsBar.camOffLabel": "కెమెరా ఆఫ్",
+    "app.actionsBar.raiseLabel": "పెంచడం",
+    "app.actionsBar.label": "చర్యల పట్టీ",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "ప్రదర్శనను పునరుద్ధరించండి",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "ఈ బటన్, ప్రదర్శన మూసివేయబడిన తర్వాత దాన్ని పునరుద్ధరిస్తుంది",
+    "app.screenshare.screenShareLabel" : "స్క్రీన్ షేర్",
+    "app.submenu.application.applicationSectionTitle": "అప్లికేషన్",
+    "app.submenu.application.animationsLabel": "యానిమేషన్లు",
+    "app.submenu.application.audioAlertLabel": "చాట్ కోసం ఆడియో హెచ్చరికలు",
+    "app.submenu.application.pushAlertLabel": "చాట్ కోసం పాపప్ హెచ్చరికలు",
+    "app.submenu.application.userJoinAudioAlertLabel": "వినియోగదారుడు చేరడానికి ఆడియో హెచ్చరికలు",
+    "app.submenu.application.userJoinPushAlertLabel": "వినియోగదారుడు చేరడానికి పాపప్ హెచ్చరికలు",
+    "app.submenu.application.fontSizeControlLabel": "ఫాంట్ పరిమాణం",
+    "app.submenu.application.increaseFontBtnLabel": "ఫాంట్ పరిమాణాన్ని పెంచు",
+    "app.submenu.application.decreaseFontBtnLabel": "ఫాంట్ పరిమాణాన్ని తగ్గించు",
+    "app.submenu.application.currentSize": "ప్రస్తుతం {0}",
+    "app.submenu.application.languageLabel": "అప్లికేషన్ భాష",
+    "app.submenu.application.languageOptionLabel": "భాషను ఎంచుకోండి",
+    "app.submenu.application.noLocaleOptionLabel": "చురుకైన స్థానికులు లేరు",
+    "app.submenu.audio.micSourceLabel": "మైక్రోఫోన్ మూలం",
+    "app.submenu.audio.speakerSourceLabel": "స్పీకర్ మూలం",
+    "app.submenu.audio.streamVolumeLabel": "మీ ఆడియో స్ట్రీమ్ వాల్యూమ్",
+    "app.submenu.video.title": "వీడియో",
+    "app.submenu.video.videoSourceLabel": "మూలాన్ని చూడండి",
+    "app.submenu.video.videoOptionLabel": "వీక్షణ మూలాన్ని ఎంచుకోండి",
+    "app.submenu.video.videoQualityLabel": "వీడియో నాణ్యత",
+    "app.submenu.video.qualityOptionLabel": "వీడియో నాణ్యతను ఎంచుకోండి",
+    "app.submenu.video.participantsCamLabel": "పాల్గొనేవారి వెబ్‌క్యామ్‌లను చూస్తున్నారు",
+    "app.settings.applicationTab.label": "అప్లికేషన్",
+    "app.settings.audioTab.label": "ఆడియో",
+    "app.settings.videoTab.label": "వీడియో",
+    "app.settings.usersTab.label": "పాల్గొనేవారు",
+    "app.settings.main.label": "సెట్టింగులు",
+    "app.settings.main.cancel.label": "రద్దు చేయి ",
+    "app.settings.main.cancel.label.description": "మార్పులను వదిలివేస్తుంది మరియు సెట్టింగ్‌ల మెనుని మూసివేస్తుంది",
+    "app.settings.main.save.label": "సేవ్",
+    "app.settings.main.save.label.description": "మార్పులను సేవ్ చేస్తుంది మరియు సెట్టింగుల మెనుని మూసివేస్తుంది",
+    "app.settings.dataSavingTab.label": "డేటా పొదుపు",
+    "app.settings.dataSavingTab.webcam": "వెబ్‌క్యామ్‌లను ప్రారంభించండి",
+    "app.settings.dataSavingTab.screenShare": "డెస్క్టాప్ షేరింగ్  ను ప్రారంభించండి",
+    "app.settings.dataSavingTab.description": "మీ బ్యాండ్‌విడ్త్‌ను సేవ్ చేయడానికి ప్రస్తుతం ప్రదర్శించబడుతున్న వాటిని సర్దుబాటు చేయండి.",
+    "app.settings.save-notification.label": "సెట్టింగులు సేవ్ చేయబడ్డాయి",
+    "app.switch.onLabel": "ఆన్",
+    "app.switch.offLabel": "ఆఫ్",
+    "app.talkingIndicator.ariaMuteDesc" : "వినియోగదారుని మ్యూట్ చేయడానికి ఎంచుకోండి",
+    "app.talkingIndicator.isTalking" : "{0} మాట్లాడుతున్నారు",
+    "app.talkingIndicator.wasTalking" : "{0} మాట్లాడటం మానేసారు",
+    "app.actionsBar.actionsDropdown.actionsLabel": "చర్యలు",
+    "app.actionsBar.actionsDropdown.presentationLabel": "ప్రదర్శనను అప్‌లోడ్ చేయండి",
+    "app.actionsBar.actionsDropdown.initPollLabel": "పోల్ ప్రారంభించండి",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "మీ స్క్రీన్‌ను షేర్ చేయండి",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "స్క్రీన్ షేర్ లాక్ చేయబడింది",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "మీ స్క్రీన్‌ను షేర్ చేయడం ఆపివేయండి",
+    "app.actionsBar.actionsDropdown.presentationDesc": "మీ ప్రదర్శనను అప్‌లోడ్ చేయండి",
+    "app.actionsBar.actionsDropdown.initPollDesc": "పోల్ ప్రారంభించండి",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "మీ స్క్రీన్‌ను ఇతరులతో పంచుకోండి",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "మీ స్క్రీన్‌ను షేర్ చేయడాన్ని ఆపివేయండి",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "పోల్ ప్రారంభించండి",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "పోల్ పేన్‌ను టోగుల్ చేస్తుంది",
+    "app.actionsBar.actionsDropdown.saveUserNames": "వినియోగదారుల పేర్లను సేవ్ చేయి",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "బ్రేక్అవుట్ గదులను సృష్టించు",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "ప్రస్తుత సమావేశాన్ని విభజించడానికి బ్రేక్‌అవుట్‌లను సృష్టించండి",
+    "app.actionsBar.actionsDropdown.captionsLabel": "శీర్షికలను వ్రాయండి",
+    "app.actionsBar.actionsDropdown.captionsDesc": "శీర్షికల పేన్‌ను టోగుల్ చేస్తుంది",
+    "app.actionsBar.actionsDropdown.takePresenter": "ప్రెజెంటర్ తీసుకోండి",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "కొత్త ప్రెజెంటర్గా మీరే కేటాయించుకోండి",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "స్థితిని సెట్ చేయండి",
+    "app.actionsBar.emojiMenu.awayLabel": "దూరంగా",
+    "app.actionsBar.emojiMenu.awayDesc": "మీ స్థితిని దూరంగా మార్చండి",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "పెంచడం",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "ప్రశ్న అడగడానికి మీ చేయి పైకెత్తండి",
+    "app.actionsBar.emojiMenu.neutralLabel": "నిశ్చయం లేని",
+    "app.actionsBar.emojiMenu.neutralDesc": "మీ స్థితిని  నిశ్చయం లేనిదిగా మార్చండి",
+    "app.actionsBar.emojiMenu.confusedLabel": "అయోమయంలో",
+    "app.actionsBar.emojiMenu.confusedDesc": " మీ స్థితిని అయోమయంలో కి మార్చండి",
+    "app.actionsBar.emojiMenu.sadLabel": "విచారం",
+    "app.actionsBar.emojiMenu.sadDesc": "మీ స్థితిని విచారంగా మార్చండి",
+    "app.actionsBar.emojiMenu.happyLabel": "సంతోషం",
+    "app.actionsBar.emojiMenu.happyDesc": "మీ స్థితిని సంతోషంగా మార్చండి",
+    "app.actionsBar.emojiMenu.noneLabel": "స్థితిని క్లియర్ చేయి",
+    "app.actionsBar.emojiMenu.noneDesc": "మీ స్థితిని క్లియర్ చేయండి",
+    "app.actionsBar.emojiMenu.applauseLabel": "చప్పట్లు ",
+    "app.actionsBar.emojiMenu.applauseDesc": "మీ స్థితిని చప్పట్లుగా మార్చండి",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "బాగుంది",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "మీ స్థితిని బాగుందికి మార్చండి",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "బాగాలేదు",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "మీ స్థితిని బాగాలేదు గా  మార్చండి",
+    "app.actionsBar.currentStatusDesc": "ప్రస్తుత స్థితి {0}",
+    "app.actionsBar.captions.start": " శీర్షికలను చూడటం ప్రారంభించండి",
+    "app.actionsBar.captions.stop": " శీర్షికలను చూడటం ఆపండి",
+    "app.audioNotification.audioFailedError1001": "వెబ్‌సాకెట్ డిస్కనెక్ట్ చేయబడింది (లోపం 1001)",
+    "app.audioNotification.audioFailedError1002": "వెబ్‌సాకెట్ కనెక్షన్ చేయలేకపోయింది (లోపం 1002)",
+    "app.audioNotification.audioFailedError1003": "బ్రౌజర్ వెర్షన్ కు మద్దతు లేదు (లోపం 1003)",
+    "app.audioNotification.audioFailedError1004": "కాల్‌లో వైఫల్యం (కారణం = {0}) (లోపం 1004)",
+    "app.audioNotification.audioFailedError1005": "కాల్ అనుకోకుండా ముగిసింది (లోపం 1005)",
+    "app.audioNotification.audioFailedError1006": "కాల్ సమయం ముగిసింది (లోపం 1006)",
+    "app.audioNotification.audioFailedError1007": "కనెక్షన్ వైఫల్యం (ICE లోపం 1007)",
+    "app.audioNotification.audioFailedError1008": "బదిలీ విఫలమైంది (లోపం 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN / TURN సర్వర్ సమాచారాన్ని పొందలేకపోయాము (లోపం 1009)",
+    "app.audioNotification.audioFailedError1010": "కనెక్షన్ సంధి సమయం ముగిసింది (ICE లోపం 1010)",
+    "app.audioNotification.audioFailedError1011": "కనెక్షన్ సమయం ముగిసింది (ICE లోపం 1011)",
+    "app.audioNotification.audioFailedError1012": "కనెక్షన్ మూసివేయబడింది (ICE లోపం 1012)",
+    "app.audioNotification.audioFailedMessage": "మీ ఆడియో కనెక్ట్ చేయడంలో విఫలమైంది",
+    "app.audioNotification.mediaFailedMessage": "సురక్షిత మూలాలు మాత్రమే అనుమతించబడుతున్నందున getUserMicMedia విఫలమైంది",
+    "app.audioNotification.closeLabel": "మూసివేయి",
+    "app.audioNotificaion.reconnectingAsListenOnly": "వీక్షకుల మైక్రోఫోన్ లాక్ చేయబడింది, మీరు వినడానికి మాత్రమే కనెక్ట్ అవుతున్నారు",
+    "app.breakoutJoinConfirmation.title": "బ్రేక్అవుట్ గదిలో చేరండి",
+    "app.breakoutJoinConfirmation.message": "మీరు చేరాలనుకుంటున్నారా",
+    "app.breakoutJoinConfirmation.confirmDesc": "మిమ్మల్ని బ్రేక్అవుట్ గదికి చేరుస్తుంది",
+    "app.breakoutJoinConfirmation.dismissLabel": "రద్దు చేయి",
+    "app.breakoutJoinConfirmation.dismissDesc": "మూసివేస్తుంది మరియు బ్రేక్అవుట్ గదిలో చేరడాన్ని తిరస్కరిస్తుంది",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "చేరడానికి బ్రేక్అవుట్ గదిని ఎంచుకోండి",
+    "app.breakoutTimeRemainingMessage": "బ్రేక్అవుట్ గది సమయం మిగిలి ఉంది: {0}",
+    "app.breakoutWillCloseMessage": "సమయం ముగిసింది. బ్రేక్అవుట్ గది త్వరలో మూసివేయబడుతుంది",
+    "app.calculatingBreakoutTimeRemaining": "మిగిలిన సమయాన్ని లెక్కిస్తోంది ...",
+    "app.audioModal.ariaTitle": "ఆడియో మోడల్‌లో చేరండి",
+    "app.audioModal.microphoneLabel": "మైక్రోఫోన్",
+    "app.audioModal.listenOnlyLabel": "వినడానికి మాత్రమే",
+    "app.audioModal.audioChoiceLabel": "మీరు ఆడియోలో ఎలా చేరాలనుకుంటున్నారు?",
+    "app.audioModal.iOSBrowser": "ఆడియో / వీడియో మద్దతు లేదు",
+    "app.audioModal.iOSErrorDescription": "ఈ సమయంలో iOS కోసం Chrome లో ఆడియో మరియు వీడియో మద్దతు లేదు.",
+    "app.audioModal.iOSErrorRecommendation": "సఫారి iOS ని ఉపయోగించమని మేము సిఫార్సు చేస్తున్నాము.",
+    "app.audioModal.audioChoiceDesc": "ఈ సమావేశంలో ఆడియోలో ఎలా చేరాలో ఎంచుకోండి",
+    "app.audioModal.unsupportedBrowserLabel": "మీరు పూర్తిగా మద్దతు లేని బ్రౌజర్‌ను ఉపయోగిస్తున్నట్లు కనిపిస్తోంది. పూర్తి మద్దతు కోసం దయచేసి {0} లేదా {1}ఉపయోగించండి.",
+    "app.audioModal.closeLabel": "మూసివేయి",
+    "app.audioModal.yes": "అవును",
+    "app.audioModal.no": "కాదు",
+    "app.audioModal.yes.arialabel" : "ప్రతిధ్వని వినపడుతుండి",
+    "app.audioModal.no.arialabel" : "ప్రతిధ్వని వినబడదు",
+    "app.audioModal.echoTestTitle": "ఇది ప్రైవేట్ ప్రతిధ్వని పరీక్ష. కొన్ని మాటలు మాట్లాడండి. మీరు ఆడియో విన్నారా?",
+    "app.audioModal.settingsTitle": "మీ ఆడియో సెట్టింగ్‌లను మార్చండి",
+    "app.audioModal.helpTitle": "మీ మీడియా పరికరాలతో సమస్య ఉంది",
+    "app.audioModal.helpText": "మీ మైక్రోఫోన్‌కు యాక్సెస్  చేయడానికి మీరు అనుమతి ఇచ్చారా? మీరు ఆడియోలో చేరడానికి ప్రయత్నించినప్పుడు, మీ మీడియా పరికర అనుమతులను అడుగుతున్నప్పుడు డైలాగ్ కనిపించాలని గమనించండి, దయచేసి ఆడియో సమావేశంలో చేరడానికి అంగీకరించండి. అలా కాకపోతే, మీ బ్రౌజర్ సెట్టింగులలో మీ మైక్రోఫోన్ అనుమతులను మార్చడానికి ప్రయత్నించండి.",
+    "app.audioModal.help.noSSL": "ఈ పేజీ అసురక్షితమైనది. మైక్రోఫోన్ యాక్సెస్ అనుమతించబడటానికి పేజీ తప్పనిసరిగా HTTPS ద్వారా అందించబడుతుంది. దయచేసి సర్వర్ నిర్వాహకుడిని సంప్రదించండి.",
+    "app.audioModal.help.macNotAllowed": "మీ Mac సిస్టమ్ ప్రాధాన్యతలు మీ మైక్రోఫోన్‌కు యాక్సెస్ ను అడ్డుకుంటున్నట్లు కనిపిస్తోంది. సిస్టమ్ ప్రాధాన్యతలు> భద్రత & గోప్యత> గోప్యత> మైక్రోఫోన్ తెరిచి, మీరు ఉపయోగిస్తున్న బ్రౌజర్ తనిఖీ చేయబడిందని ధృవీకరించండి.",
+    "app.audioModal.audioDialTitle": "మీ ఫోన్‌ను ఉపయోగించి చేరండి",
+    "app.audioDial.audioDialDescription": "డయల్",
+    "app.audioDial.audioDialConfrenceText": "మరియు కాన్ఫరెన్స్ పిన్ నంబర్‌ను నమోదు చేయండి:",
+    "app.audioModal.autoplayBlockedDesc": "ఆడియో ప్లే చేయడానికి మాకు మీ అనుమతి అవసరం.",
+    "app.audioModal.playAudio": "ఆడియో ప్లే చేయండి",
+    "app.audioModal.playAudio.arialabel" : "ఆడియో ప్లే చేయండి",
+    "app.audioDial.tipIndicator": "చిట్కా",
+    "app.audioDial.tipMessage": "మిమ్మల్ని మీరు మ్యూట్ / అన్‌మ్యూట్ చేయడానికి మీ ఫోన్‌లోని '0' కీని నొక్కండి.",
+    "app.audioModal.connecting": "కనెక్ట్ అవుతోంది",
+    "app.audioModal.connectingEchoTest": "ప్రతిధ్వని పరీక్షకు కనెక్ట్ అవుతోంది",
+    "app.audioManager.joinedAudio": "మీరు ఆడియో సమావేశంలో చేరారు",
+    "app.audioManager.joinedEcho": "మీరు ప్రతిధ్వని పరీక్షలో చేరారు",
+    "app.audioManager.leftAudio": "మీరు ఆడియో సమావేశం నుండి వదిలి వెళ్ళారు",
+    "app.audioManager.reconnectingAudio": "ఆడియోను తిరిగి కనెక్ట్ చేయడానికి ప్రయత్నిస్తోంది",
+    "app.audioManager.genericError": "లోపం: లోపం సంభవించింది, దయచేసి మళ్ళీ ప్రయత్నించండి",
+    "app.audioManager.connectionError": "లోపం: కనెక్షన్ లోపం",
+    "app.audioManager.requestTimeout": "లోపం: అభ్యర్థన సమయం ముగిసింది",
+    "app.audioManager.invalidTarget": "లోపం: చెల్లని లక్ష్యానికి ఏదైనా అభ్యర్థించడానికి ప్రయత్నించారు",
+    "app.audioManager.mediaError": "లోపం: మీ మీడియా పరికరాలను పొందడంలో సమస్య ఉంది",
+    "app.audio.joinAudio": "ఆడియోలో చేరండి",
+    "app.audio.leaveAudio": "ఆడియోను వదిలివేయండి",
+    "app.audio.enterSessionLabel": "సెషన్‌ను నమోదు చేయండి",
+    "app.audio.playSoundLabel": "ప్లే సౌండ్",
+    "app.audio.backLabel": "వెనక్కి",
+    "app.audio.audioSettings.titleLabel": "మీ ఆడియో సెట్టింగ్‌లను ఎంచుకోండి",
+    "app.audio.audioSettings.descriptionLabel": "దయచేసి గమనించండి, మీ బ్రౌజర్‌లో డైలాగ్ కనిపిస్తుంది, మీ మైక్రోఫోన్‌ను షేర్ చేయడాన్ని మీరు అంగీకరించాలి.",
+    "app.audio.audioSettings.microphoneSourceLabel": "మైక్రోఫోన్ మూలం",
+    "app.audio.audioSettings.speakerSourceLabel": "స్పీకర్ మూలం",
+    "app.audio.audioSettings.microphoneStreamLabel": "మీ ఆడియో స్ట్రీమ్ వాల్యూమ్",
+    "app.audio.audioSettings.retryLabel": "మళ్లీ ప్రయత్నించండి",
+    "app.audio.listenOnly.backLabel": "వెనక్కి",
+    "app.audio.listenOnly.closeLabel": "మూసివేయి",
+    "app.audio.permissionsOverlay.title": "మీ మైక్రోఫోన్‌కి అనుమతి ఇవ్వండి ",
+    "app.audio.permissionsOverlay.hint": "మీతో వాయిస్ కాన్ఫరెన్స్‌కు చేరడానికి మీ మీడియా పరికరాలను ఉపయోగించడానికి మాకు మీరు అనుమతించాల్సిన అవసరం ఉంది :)",
+    "app.error.removed": "మీరు సమావేశం నుండి తొలగించబడ్డారు",
+    "app.error.meeting.ended": "మీరు సమావేశం నుండి లాగ్ అవుట్ అయ్యారు",
+    "app.meeting.logout.duplicateUserEjectReason": "సమావేశంలో చేరడానికి ప్రయత్నిస్తున్న నకిలీ వినియోగదారుడు",
+    "app.meeting.logout.permissionEjectReason": "అనుమతి ఉల్లంఘన కారణంగా తొలగించబడింది",
+    "app.meeting.logout.ejectedFromMeeting": "మిమ్మల్ని సమావేశం నుండి తొలగించారు",
+    "app.meeting.logout.validateTokenFailedEjectReason": "అధికార టోకెన్  ను  ధృవీకరించడంలో విఫలమైంది",
+    "app.meeting.logout.userInactivityEjectReason": "వినియోగదారుడు ఎక్కువసేపు యాక్టివ్ గా లేరు",
+    "app.meeting-ended.rating.legendLabel": "అభిప్రాయ రేటింగ్",
+    "app.meeting-ended.rating.starLabel": "స్టార్",
+    "app.modal.close": "మూసివేయి",
+    "app.modal.close.description": "మార్పులను విస్మరిస్తుంది మరియు మోడల్‌ను మూసివేస్తుంది",
+    "app.modal.confirm": "పూర్తి  అయ్యింది",
+    "app.modal.newTab": "(కొత్త టాబ్ తెరుస్తుంది)",
+    "app.modal.confirm.description": "మార్పులను ఆదా చేస్తుంది మరియు మోడల్‌ను మూసివేస్తుంది",
+    "app.dropdown.close": "మూసివేయి",
+    "app.error.400": "తప్పుడు విన్నపం",
+    "app.error.401": "అనధికార",
+    "app.error.403": "మిమ్మల్ని సమావేశం నుండి తొలగించారు",
+    "app.error.404": "దొరకలేదు",
+    "app.error.410": "సమావేశం ముగిసింది",
+    "app.error.500": "అయ్యో, ఏదో తప్పు జరిగింది",
+    "app.error.leaveLabel": "మళ్ళీ లాగిన్ అవ్వండి",
+    "app.error.fallback.presentation.title": "లోపం సంభవించింది",
+    "app.error.fallback.presentation.description": "ఇది లాగిన్ చేయబడింది. దయచేసి పేజీని మళ్లీ లోడ్ చేయడానికి ప్రయత్నించండి.",
+    "app.error.fallback.presentation.reloadButton": "మళ్లీ లోడ్ చేయి",
+    "app.guest.waiting": "చేరడానికి అనుమతి కోసం వేచి ఉంది",
+    "app.userList.guest.waitingUsers": "వినియోగదారులు వేచి ఉన్నారు",
+    "app.userList.guest.waitingUsersTitle": "వినియోగదారుని నిర్వహణ",
+    "app.userList.guest.optionTitle": "పెండింగ్ వినియోగదారులను రివ్యు చేయండి",
+    "app.userList.guest.allowAllAuthenticated": "ప్రమాణీకరించిన వినియోగదారులను అనుమతించండి",
+    "app.userList.guest.allowAllGuests": "అతిథులందరినీ అనుమతించండి",
+    "app.userList.guest.allowEveryone": "అందరినీ అనుమతించండి",
+    "app.userList.guest.denyEveryone": "ప్రతి ఒక్కరినీ తిరస్కరించండి",
+    "app.userList.guest.pendingUsers": "{0} పెండింగ్‌లో ఉన్న వినియోగదారులు",
+    "app.userList.guest.pendingGuestUsers": "{0 } అతిథి వినియోగదారులు పెండింగ్‌లో ఉన్నారు",
+    "app.userList.guest.pendingGuestAlert": "సెషన్‌లో చేరారు మరియు మీ ఆమోదం కోసం వేచి ఉన్నారు.",
+    "app.userList.guest.rememberChoice": "ఎంపిక గుర్తుంచుకో",
+    "app.user-info.title": "డైరెక్టరీ చూడండి",
+    "app.toast.breakoutRoomEnded": "బ్రేక్అవుట్ గది ముగిసింది. దయచేసి ఆడియోలో తిరిగి చేరండి.",
+    "app.toast.chat.public": "కొత్త పబ్లిక్ చాట్ సందేశం",
+    "app.toast.chat.private": "కొత్త ప్రైవేట్ చాట్ సందేశం",
+    "app.toast.chat.system": "సిస్టమ్",
+    "app.toast.clearedEmoji.label": "ఎమోజి స్థితి క్లియర్ చేయబడింది",
+    "app.toast.setEmoji.label": "ఎమోజి స్థితి {0 } కు సెట్ చేయబడింది",
+    "app.toast.meetingMuteOn.label": "అందరూ మ్యూట్ చేయబడ్డారు",
+    "app.toast.meetingMuteOff.label": "మీటింగ్ మ్యూట్ ఆపివేయబడింది",
+    "app.notification.recordingStart": "ఈ సెషన్ ఇప్పుడు రికార్డ్ చేయబడుతోంది",
+    "app.notification.recordingStop": "ఈ సెషన్ రికార్డ్ చేయబడదు",
+    "app.notification.recordingPaused": "ఈ సెషన్ ఇకపై రికార్డ్ చేయబడదు",
+    "app.notification.recordingAriaLabel": "రికార్డ్ చేసిన సమయం",
+    "app.notification.userJoinPushAlert": "{0 } సెషన్‌లో చేరారు",
+    "app.shortcut-help.title": "కీబోర్డ్ షార్ట్ కట్",
+    "app.shortcut-help.accessKeyNotAvailable": "యాక్సెస్ కీలు అందుబాటులో లేవు",
+    "app.shortcut-help.comboLabel": "కాంబో",
+    "app.shortcut-help.functionLabel": "ఫంక్షన్",
+    "app.shortcut-help.closeLabel": "మూసివేయి",
+    "app.shortcut-help.closeDesc": "కీబోర్డ్  షార్ట్ కట్ ల మోడల్‌ను మూసివేస్తుంది",
+    "app.shortcut-help.openOptions": "ఎన్నికలు తెరవండి",
+    "app.shortcut-help.toggleUserList": "వినియోగదారు జాబితాను టోగుల్ చేయండి",
+    "app.shortcut-help.toggleMute": "మ్యూట్ / అన్‌మ్యూట్",
+    "app.shortcut-help.togglePublicChat": "పబ్లిక్ చాట్‌ను టోగుల్ చేయండి (వినియోగదారు జాబితా తెరిచి ఉండాలి)",
+    "app.shortcut-help.hidePrivateChat": "ప్రైవేట్ చాట్ దాచండి",
+    "app.shortcut-help.closePrivateChat": "ప్రైవేట్ చాట్‌ను మూసివేయండి",
+    "app.shortcut-help.openActions": "చర్యల మెనుని తెరవండి",
+    "app.shortcut-help.openStatus": "స్థితి మెనుని తెరవండి",
+    "app.shortcut-help.togglePan": "పాన్ సాధనాన్ని యాక్టివేట్  చేయండి (ప్రెజెంటర్)",
+    "app.shortcut-help.nextSlideDesc": "తదుపరి స్లయిడ్ (ప్రెజెంటర్)",
+    "app.shortcut-help.previousSlideDesc": "మునుపటి స్లయిడ్ (ప్రెజెంటర్)",
+    "app.lock-viewers.title": "వీక్షకులను లాక్ చేయి",
+    "app.lock-viewers.description": " ఈ ఎంపికలు నిర్దిష్ట ఎంపికలను ఉపయోగించకుండా వీక్షకులను పరిమితం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.",
+    "app.lock-viewers.featuresLable": "లక్షణము",
+    "app.lock-viewers.lockStatusLabel": "స్థితి",
+    "app.lock-viewers.webcamLabel": "వెబ్‌క్యామ్‌ను షేర్ చేయండి",
+    "app.lock-viewers.otherViewersWebcamLabel": "ఇతర వీక్షకుల వెబ్‌క్యామ్‌లను చూడండి",
+    "app.lock-viewers.microphoneLable": "మైక్రోఫోన్ ను షేర్ చేయండి",
+    "app.lock-viewers.PublicChatLabel": "పబ్లిక్ చాట్ సందేశాలను పంపండి",
+    "app.lock-viewers.PrivateChatLable": "ప్రైవేట్ చాట్ సందేశాలను పంపండి",
+    "app.lock-viewers.notesLabel": " షేర్డ్ నోట్సును మార్చండి",
+    "app.lock-viewers.userListLabel": "వినియోగదారుల జాబితాలో ఇతర వీక్షకులను చూడండి",
+    "app.lock-viewers.ariaTitle": "వీక్షకుల సెట్టింగ్‌ల మోడల్‌ను లాక్ చేయండి",
+    "app.lock-viewers.button.apply": "అమలు  చేయి",
+    "app.lock-viewers.button.cancel": "రద్దు చేయి",
+    "app.lock-viewers.locked": "లాక్ చేయబడింది",
+    "app.lock-viewers.unlocked": "అన్ లాక్ చేయబడింది",
+    "app.recording.startTitle": "రికార్డింగ్ ప్రారంభించు",
+    "app.recording.stopTitle": "రికార్డింగ్‌ను పాజ్ చేయి",
+    "app.recording.resumeTitle": "రికార్డింగ్‌ను తిరిగి ప్రారంభించు",
+    "app.recording.startDescription": "రికార్డింగ్‌ను పాజ్ చేయడానికి మీరు తర్వాత మళ్లీ రికార్డ్ బటన్‌ను ఎంచుకోవచ్చు.",
+    "app.recording.stopDescription": "మీరు రికార్డింగ్‌ను పాజ్ చేయాలనుకుంటున్నారా? రికార్డ్ బటన్‌ను మళ్లీ ఎంచుకోవడం ద్వారా మీరు తిరిగి ప్రారంభించవచ్చు.",
+    "app.videoPreview.cameraLabel": "కెమెరా",
+    "app.videoPreview.profileLabel": "లక్షణము",
+    "app.videoPreview.cancelLabel": "రద్దు చేయి",
+    "app.videoPreview.closeLabel": "మూసివేయి",
+    "app.videoPreview.findingWebcamsLabel": "వెబ్‌క్యామ్‌లను కనుగొనడం",
+    "app.videoPreview.startSharingLabel": "షేరింగ్ చేయడం ప్రారంభించండి",
+    "app.videoPreview.webcamOptionLabel": "వెబ్‌క్యామ్‌ను ఎంచుకోండి",
+    "app.videoPreview.webcamPreviewLabel": "వెబ్‌క్యామ్ ప్రివ్యూ",
+    "app.videoPreview.webcamSettingsTitle": "వెబ్‌క్యామ్ సెట్టింగులు",
+    "app.videoPreview.webcamNotFoundLabel": "వెబ్‌క్యామ్ కనుగొనబడలేదు",
+    "app.videoPreview.profileNotFoundLabel": "కెమెరా ప్రొఫైల్ కు మద్దతు లేదు",
+    "app.video.joinVideo": "వెబ్‌క్యామ్‌ను షేర్ చేయండి",
+    "app.video.leaveVideo": "వెబ్‌క్యామ్‌ ను షేర్ చేయడం ఆపివేయండి",
+    "app.video.iceCandidateError": "ICE అభ్యర్థిని జోడించడంలో లోపం",
+    "app.video.iceConnectionStateError": "కనెక్షన్ వైఫల్యం (ICE లోపం 1107)",
+    "app.video.permissionError": "వెబ్‌క్యామ్‌ను  షేర్ చేయడంలో లోపం. దయచేసి అనుమతులను పరిశీలించండి",
+    "app.video.sharingError": "వెబ్‌క్యామ్‌ను షేర్ చేయడంలో లోపం",
+    "app.video.notFoundError": "వెబ్‌క్యామ్ కనుగొనబడలేదు. దయచేసి ఇది కనెక్ట్ అయ్యిందని నిర్ధారించుకోండి",
+    "app.video.notAllowed": "షేర్  వెబ్‌క్యామ్ కోసం అనుమతి లేదు, దయచేసి మీ బ్రౌజర్ అనుమతులను నిర్ధారించుకోండి",
+    "app.video.notSupportedError": "వెబ్‌క్యామ్ వీడియోను సురక్షిత మూలాలతో మాత్రమే షేర్ చేయవచ్చు, మీ SSL సర్టిఫికెట్ చెల్లుబాటు అయ్యేలా చూసుకోండి",
+    "app.video.notReadableError": "వెబ్‌క్యామ్ వీడియో పొందలేకపోయాము. దయచేసి మరొక ప్రోగ్రామ్ ,వెబ్‌క్యామ్‌ను ఉపయోగించడం లేదని నిర్ధారించుకోండి",
+    "app.video.mediaFlowTimeout1020": "మీడియా సర్వర్‌కు చేరుకోలేదు (లోపం 1020)",
+    "app.video.suggestWebcamLock": "వీక్షకుల వెబ్‌క్యామ్‌కు లాక్ సెట్టింగ్‌ను అమలు చేయాలా?",
+    "app.video.suggestWebcamLockReason": "(ఇది సమావేశం యొక్క స్థిరత్వాన్ని మెరుగుపరుస్తుంది)",
+    "app.video.enable": "ఆన్",
+    "app.video.cancel": "రద్దు చేయి",
+    "app.video.swapCam": "మార్పిడి",
+    "app.video.swapCamDesc": "వెబ్‌క్యామ్‌ల దిశను మార్చండి",
+    "app.video.videoLocked": "వెబ్‌క్యామ్ షేరింగ్ ,లాక్ చేయబడింది",
+    "app.video.videoButtonDesc": "వెబ్‌క్యామ్‌ను షేర్ చేయండి",
+    "app.video.videoMenu": "వీడియో మెను",
+    "app.video.videoMenuDisabled": "వీడియో మెను సెట్టింగ్‌లలో వెబ్‌క్యామ్ నిలిపివేయబడింది",
+    "app.video.videoMenuDesc": "వీడియో మెను డ్రాప్‌డౌన్ తెరవండి",
+    "app.video.chromeExtensionError": "మీరు తప్పనిసరిగా ఇన్‌స్టాల్ చేయాలి",
+    "app.video.chromeExtensionErrorLink": "ఈ Chrome పొడిగింపు",
+    "app.fullscreenButton.label": "పూర్తి స్క్రీన్{0} చేయండి",
+    "app.deskshare.iceConnectionStateError": "స్క్రీన్‌ను పంచుకునేటప్పుడు కనెక్షన్ విఫలమైంది (ICE లోపం 1108)",
+    "app.sfu.mediaServerConnectionError2000": "మీడియా సర్వర్‌కు కనెక్ట్ చేయడం సాధ్యం కాలేదు (లోపం 2000)",
+    "app.sfu.mediaServerOffline2001": "మీడియా సర్వర్ ఆఫ్‌లైన్‌లో ఉంది. దయచేసి తరువాత మళ్ళీ ప్రయత్నించండి (లోపం 2001)",
+    "app.sfu.mediaServerNoResources2002": "మీడియా సర్వర్‌కు అందుబాటులో ఉన్న వనరులు లేవు (లోపం 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "మీడియా సర్వర్ అభ్యర్థనలు సమయం ముగిసింది (లోపం 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "మీడియా సర్వర్ కనెక్షన్ అభ్యర్థులను సేకరించదు (ICE లోపం 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "మీడియా సర్వర్ కనెక్షన్ విఫలమైంది (ICE లోపం 2022)",
+    "app.sfu.mediaGenericError2200": "అభ్యర్థనను ప్రాసెస్ చేయడంలో మీడియా సర్వర్ విఫలమైంది (లోపం 2200)",
+    "app.sfu.invalidSdp2202":"క్లయింట్ చెల్లని మీడియా అభ్యర్థనను రూపొందించారు (SDP లోపం 2202)",
+    "app.sfu.noAvailableCodec2203": "సర్వర్ తగిన కోడెక్‌ను కనుగొనలేకపోయింది (లోపం 2203)",
+    "app.meeting.endNotification.ok.label": "సరే",
+    "app.whiteboard.annotations.poll": "పోల్ ఫలితాలు ప్రచురించబడ్డాయి",
+    "app.whiteboard.toolbar.tools": "పరికరములు",
+    "app.whiteboard.toolbar.tools.hand": "పాన్",
+    "app.whiteboard.toolbar.tools.pencil": "పెన్సిల్",
+    "app.whiteboard.toolbar.tools.rectangle": "దీర్ఘ చతురస్రం",
+    "app.whiteboard.toolbar.tools.triangle": "త్రిభుజము",
+    "app.whiteboard.toolbar.tools.ellipse": "దీర్ఘ వృత్తము",
+    "app.whiteboard.toolbar.tools.line": "లైన్",
+    "app.whiteboard.toolbar.tools.text": "టెక్ట్స్",
+    "app.whiteboard.toolbar.thickness": "డ్రాయింగ్ మందం",
+    "app.whiteboard.toolbar.thicknessDisabled": "డ్రాయింగ్ మందం నిలిపివేయబడింది",
+    "app.whiteboard.toolbar.color": "రంగులు",
+    "app.whiteboard.toolbar.colorDisabled": "రంగులు నిలిపివేయబడ్డాయి",
+    "app.whiteboard.toolbar.color.black": "నలుపు రంగు",
+    "app.whiteboard.toolbar.color.white": "తెలుపు రంగు",
+    "app.whiteboard.toolbar.color.red": "ఎరుపు రంగు",
+    "app.whiteboard.toolbar.color.orange": "కమలాపండు రంగు",
+    "app.whiteboard.toolbar.color.eletricLime": "విద్యుత్ సున్నం",
+    "app.whiteboard.toolbar.color.lime": "సున్నం",
+    "app.whiteboard.toolbar.color.cyan": "ఆకాశ నీలం రంగు",
+    "app.whiteboard.toolbar.color.dodgerBlue": "మోసగాడు నీలం",
+    "app.whiteboard.toolbar.color.blue": "నీలం",
+    "app.whiteboard.toolbar.color.violet": "ఊదా రంగు",
+    "app.whiteboard.toolbar.color.magenta": "మెజెంటా రంగు",
+    "app.whiteboard.toolbar.color.silver": "వెండి రంగు",
+    "app.whiteboard.toolbar.undo": "వ్యాఖ్యానము రద్దు చేయండి",
+    "app.whiteboard.toolbar.clear": "అన్ని  వ్యాఖ్యానాలను క్లియర్ చేయండి",
+    "app.whiteboard.toolbar.multiUserOn": "బహుళ-వినియోగదారి వైట్‌బోర్డ్‌ను ఆన్ చేయండి",
+    "app.whiteboard.toolbar.multiUserOff": "బహుళ-వినియోగదారి వైట్‌బోర్డ్‌ను ఆపివేయండి",
+    "app.whiteboard.toolbar.fontSize": "ఫాంట్ పరిమాణ జాబితా",
+    "app.feedback.title": "మీరు సమావేశం నుండి లాగ్ అవుట్ అయ్యారు",
+    "app.feedback.subtitle": "బిగ్‌బ్లూబటన్ తో మీ అనుభవం గురించి వినడానికి మేము ఇష్టపడతాము (మీ ఇష్ట ప్రకారం ) .",
+    "app.feedback.textarea": "బిగ్‌బ్లూబటన్‌ను ఎలా మెరుగుపరుస్తాము?",
+    "app.feedback.sendFeedback": "అభిప్రాయాన్ని పంపండి",
+    "app.feedback.sendFeedbackDesc": "అభిప్రాయాన్ని పంపండి మరియు సమావేశాన్ని వదిలివేయండి",
+    "app.videoDock.webcamFocusLabel": "దృష్టి",
+    "app.videoDock.webcamFocusDesc": "ఎంచుకున్న వెబ్‌క్యామ్‌పై దృష్టి పెట్టండి",
+    "app.videoDock.webcamUnfocusLabel": "దృష్టి లేని",
+    "app.videoDock.webcamUnfocusDesc": "ఎంచుకున్న వెబ్‌క్యామ్‌ను ఫోకస్ చేయండి",
+    "app.videoDock.autoplayBlockedDesc": "ఇతర వినియోగదారుల వెబ్‌క్యామ్‌లను మీకు చూపించడానికి మాకు మీ అనుమతి అవసరం.",
+    "app.videoDock.autoplayAllowLabel": "వెబ్‌క్యామ్‌లను చూడండి",
+    "app.invitation.title": "బ్రేక్అవుట్ గదికి ఆహ్వానం",
+    "app.invitation.confirm": "ఆహ్వానించండి",
+    "app.createBreakoutRoom.title": "బ్రేక్అవుట్ రూములు",
+    "app.createBreakoutRoom.ariaTitle": "బ్రేక్అవుట్ గదులను దాచండి",
+    "app.createBreakoutRoom.breakoutRoomLabel": "బ్రేక్అవుట్ రూములు {0}",
+    "app.createBreakoutRoom.generatingURL": "URL ను సృష్టిస్తోంది",
+    "app.createBreakoutRoom.generatedURL": "ఉత్పత్తి చేసినది",
+    "app.createBreakoutRoom.duration": "వ్యవధి {0}",
+    "app.createBreakoutRoom.room": "గది {0}",
+    "app.createBreakoutRoom.notAssigned": "కేటాయించబడలేదు ({0})",
+    "app.createBreakoutRoom.join": "గదిలో చేరండి",
+    "app.createBreakoutRoom.joinAudio": "ఆడియోలో చేరండి",
+    "app.createBreakoutRoom.returnAudio": "ఆడియో కు తిరిగి రండి",
+    "app.createBreakoutRoom.alreadyConnected": "గది లోనె ఉన్నారు",
+    "app.createBreakoutRoom.confirm": "సృష్టించండి",
+    "app.createBreakoutRoom.record": "రికార్డు",
+    "app.createBreakoutRoom.numberOfRooms": "గదుల సంఖ్య",
+    "app.createBreakoutRoom.durationInMinutes": "వ్యవధి (నిమిషాలు)",
+    "app.createBreakoutRoom.randomlyAssign": "అస్తవ్యస్తంగా కేటాయించండి",
+    "app.createBreakoutRoom.endAllBreakouts": "అన్ని బ్రేక్అవుట్ గదులను ముగించండి",
+    "app.createBreakoutRoom.roomName": "{0} (గది - {1})",
+    "app.createBreakoutRoom.doneLabel": "పూర్తి  అయ్యింది",
+    "app.createBreakoutRoom.nextLabel": "తరువాత",
+    "app.createBreakoutRoom.minusRoomTime": "బ్రేక్అవుట్ గది సమయాన్ని తగ్గించండి",
+    "app.createBreakoutRoom.addRoomTime": "బ్రేక్అవుట్ గది సమయాన్ని పెంచండి",
+    "app.createBreakoutRoom.addParticipantLabel": "+ పాల్గొనేవారిని జోడించండి",
+    "app.createBreakoutRoom.freeJoin": "వినియోగదారులు చేరడానికి ఒక బ్రేక్అవుట్ గది ఎంచుకొవడానికి అనుమతి ని ఇవ్వండి",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "మీరు కనీసం ఒక వినియోగదారుడ్ని బ్రేక్అవుట్ గదిలో ఉంచాలి.",
+    "app.createBreakoutRoom.modalDesc": "చిట్కా: మీరు ఒక నిర్దిష్ట బ్రేక్అవుట్ గదికి కేటాయించడానికి వినియోగదారు పేరును డ్రాగ్ మరియు డ్రాప్  చేయండి.",
+    "app.createBreakoutRoom.roomTime": "{0}నిమిషాలు",
+    "app.createBreakoutRoom.numberOfRoomsError": "గదుల సంఖ్య చెల్లదు.",
+    "app.externalVideo.start": "కొత్త వీడియోను షేర్ చేయండి",
+    "app.externalVideo.title": "బాహ్య వీడియోను షేర్ చేయండి",
+    "app.externalVideo.input": "బాహ్య వీడియో URL",
+    "app.externalVideo.urlInput": "వీడియో URL ని జోడించండి",
+    "app.externalVideo.urlError": "ఈ వీడియో URL కి మద్దతు లేదు",
+    "app.externalVideo.close": "మూసివేయి",
+    "app.externalVideo.autoPlayWarning": "మీడియా సమకాలీకరణను ప్రారంభించడానికి వీడియోను ప్లే చేయండి",
+    "app.network.connection.effective.slow": "కనెక్టివిటీ సమస్యలను మేము గమనిస్తున్నాము",
+    "app.network.connection.effective.slow.help": "మరింత సమాచారం",
+    "app.externalVideo.noteLabel": "గమనిక: భాగస్వామ్య బాహ్య వీడియోలు రికార్డింగ్‌లో కనిపించవు. యూట్యూబ్, విమియో, ఇన్‌స్ట్రక్చర్ మీడియా, ట్విచ్ మరియు డైలీ మోషన్ URL లకు మద్దతు ఉంది.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "బాహ్య వీడియోను షేర్ చేయండి",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "బాహ్య వీడియోను షేర్ చేయడం ఆపివేయండి",
+    "app.iOSWarning.label": "దయచేసి iOS 12.2 లేదా అంతకంటే ఎక్కువకు అప్‌గ్రేడ్ చేయండి",
+    "app.legacy.unsupportedBrowser": "మీరు మద్దతు లేని బ్రౌజర్‌ను ఉపయోగిస్తున్నట్లు కనిపిస్తోంది. పూర్తి మద్దతు కోసం దయచేసి {0} లేదా {1} ఉపయోగించండి.",
+    "app.legacy.upgradeBrowser": "మీరు మద్దతు ఉన్న బ్రౌజర్ యొక్క పాత సంస్కరణను ఉపయోగిస్తున్నట్లు కనిపిస్తోంది. పూర్తి మద్దతు కోసం దయచేసి మీ బ్రౌజర్‌ను అప్‌గ్రేడ్ చేయండి.",
+    "app.legacy.criosBrowser": "IOS లో దయచేసి పూర్తి మద్దతు కోసం Safari ని ఉపయోగించండి."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/th.json b/bigbluebutton-html5/private/locales/th.json
index e89ed27c66201f5655538743ed155e24fc7b394d..2d29485a1354a0219efd41515f37811daf39753b 100644
--- a/bigbluebutton-html5/private/locales/th.json
+++ b/bigbluebutton-html5/private/locales/th.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "เหลือเวลาประชุม: {0}",
     "app.meeting.meetingTimeHasEnded": "หมดเวลาแล้ว การประชุมจะปิดในไม่ช้า",
     "app.meeting.endedMessage": "คุณจะถูกส่งต่อกลับไปที่หน้าจอหลัก",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "การประชุมจะปิดในเวลาไม่กี่นาที",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "กำลังจะปิดในหนึ่งนาที",
     "app.presentation.hide": "ซ่อนงานนำเสนอ",
     "app.presentation.notificationLabel": "งานนำเสนอปัจจุบัน",
     "app.presentation.slideContent": "เลื่อนเนื้อหา",
@@ -259,7 +257,6 @@
     "app.leaveConfirmation.confirmLabel": "ออกจาก",
     "app.leaveConfirmation.confirmDesc": "นำคุณออกจากการประชุม",
     "app.endMeeting.title": "สิ้นสุดการประชุม",
-    "app.endMeeting.description": "คุณแน่ใจหรือว่าต้องการสิ้นสุดเซสชันนี้",
     "app.endMeeting.yesLabel": "ใช่",
     "app.endMeeting.noLabel": "ไม่ใช่",
     "app.about.title": "เกี่ยวกับ",
@@ -551,19 +548,6 @@
     "app.video.videoMenuDesc": "เปิดเมนูวิดีโอแบบเลื่อนลง",
     "app.video.chromeExtensionError": "คุณต้องติดตั้ง",
     "app.video.chromeExtensionErrorLink": "ส่วนขยาย Chrome นี้",
-    "app.video.stats.title": "สถิติการเชื่อมต่อ",
-    "app.video.stats.packetsReceived": "รับแพ็คเก็ต",
-    "app.video.stats.packetsSent": "ส่งแพ็คเก็ต",
-    "app.video.stats.packetsLost": "แพ็คเก็ตที่หายไป",
-    "app.video.stats.bitrate": "บิตเรท",
-    "app.video.stats.lostPercentage": "เปอร์เซ็นต์ที่หายไปทั้งหมด",
-    "app.video.stats.lostRecentPercentage": "เปอร์เซ็นต์ล่าสุดที่หายไป",
-    "app.video.stats.dimensions": "ขนาด",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "หน่วงเวลาการถอดรหัส",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "ใช้งานการเข้ารหัส",
-    "app.video.stats.currentDelay": "หน่วงเวลาปัจจุบัน",
     "app.fullscreenButton.label": "กำหนด {0} เต็มหน้าจอ",
     "app.meeting.endNotification.ok.label": "ตกลง",
     "app.whiteboard.annotations.poll": "เผยแพร่ผลการสำรวจความคิดเห็นแล้ว",
diff --git a/bigbluebutton-html5/private/locales/th_TH.json b/bigbluebutton-html5/private/locales/th_TH.json
index f21e219988d7df54fdb5385f6c246e16311273aa..f640c2330298023d7290404a98804e6cae659f31 100644
--- a/bigbluebutton-html5/private/locales/th_TH.json
+++ b/bigbluebutton-html5/private/locales/th_TH.json
@@ -121,8 +121,6 @@
     "app.meeting.meetingTimeRemaining": "เหลือเวลาประชุม: {0}",
     "app.meeting.meetingTimeHasEnded": "หมดเวลาแล้ว การประชุมจะปิดในไม่ช้า",
     "app.meeting.endedMessage": "คุณจะถูกส่งต่อกลับไปที่หน้าจอหลัก",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "การประชุมจะปิดในเวลาไม่กี่นาที",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "กำลังจะปิดในหนึ่งนาที",
     "app.presentation.hide": "ซ่อนงานนำเสนอ",
     "app.presentation.notificationLabel": "งานนำเสนอปัจจุบัน",
     "app.presentation.slideContent": "เลื่อนเนื้อหา",
@@ -255,7 +253,6 @@
     "app.leaveConfirmation.confirmLabel": "ออกจาก",
     "app.leaveConfirmation.confirmDesc": "นำคุณออกจากการประชุม",
     "app.endMeeting.title": "สิ้นสุดการประชุม",
-    "app.endMeeting.description": "คุณแน่ใจหรือว่าต้องการสิ้นสุดเซสชันนี้",
     "app.endMeeting.yesLabel": "ใช่",
     "app.endMeeting.noLabel": "ไม่ใช่",
     "app.about.title": "เกี่ยวกับ",
@@ -547,19 +544,6 @@
     "app.video.videoMenuDesc": "เปิดเมนูวิดีโอแบบเลื่อนลง",
     "app.video.chromeExtensionError": "คุณต้องติดตั้ง",
     "app.video.chromeExtensionErrorLink": "ส่วนขยาย Chrome นี้",
-    "app.video.stats.title": "สถิติการเชื่อมต่อ",
-    "app.video.stats.packetsReceived": "รับแพ็คเก็ต",
-    "app.video.stats.packetsSent": "ส่งแพ็คเก็ต",
-    "app.video.stats.packetsLost": "แพ็คเก็ตที่หายไป",
-    "app.video.stats.bitrate": "บิตเรท",
-    "app.video.stats.lostPercentage": "เปอร์เซ็นต์ที่หายไปทั้งหมด",
-    "app.video.stats.lostRecentPercentage": "เปอร์เซ็นต์ล่าสุดที่หายไป",
-    "app.video.stats.dimensions": "ขนาด",
-    "app.video.stats.codec": "Codec",
-    "app.video.stats.decodeDelay": "หน่วงเวลาการถอดรหัส",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "ใช้งานการเข้ารหัส",
-    "app.video.stats.currentDelay": "หน่วงเวลาปัจจุบัน",
     "app.fullscreenButton.label": "กำหนด {0} เต็มหน้าจอ",
     "app.meeting.endNotification.ok.label": "ตกลง",
     "app.whiteboard.annotations.poll": "เผยแพร่ผลการสำรวจความคิดเห็นแล้ว",
diff --git a/bigbluebutton-html5/private/locales/tr.json b/bigbluebutton-html5/private/locales/tr.json
index b8a84389bc0f4fcbf88927c3374be58799a98ced..cd7d6041eb9b3e6b2eef214a8e324dd188451c17 100644
--- a/bigbluebutton-html5/private/locales/tr.json
+++ b/bigbluebutton-html5/private/locales/tr.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Toplantının bitmesine kalan süre: {0}",
     "app.meeting.meetingTimeHasEnded": "Zaman doldu. Toplantı birazdan bitirilecek",
     "app.meeting.endedMessage": "Açılış ekranına geri döneceksiniz",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Toplantı bir dakika içinde bitirilecek.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Grup çalışması bir dakika içinde sone erecek.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Toplantı bir dakika içinde bitirilecek.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Toplantı {0} dakika içinde bitirilecek.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Grup çalışması {0} dakika içinde bitirilecek.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Grup çalışması bir dakika içinde sona erecek.",
     "app.presentation.hide": "Sunumu gizle",
     "app.presentation.notificationLabel": "Geçerli sunum",
     "app.presentation.slideContent": "Slayt İçeriği",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Ayrıl",
     "app.leaveConfirmation.confirmDesc": "Sizi görüşmeden çıkarır",
     "app.endMeeting.title": "Toplantıyı bitir",
-    "app.endMeeting.description": "Bu oturumu sonlandırmak istediğinize emin misiniz?",
+    "app.endMeeting.description": "Bu oturumu herkes için sonlandırmak istediğinize emin misiniz (tüm kullanıcıların bağlantısı kesilecek)?",
     "app.endMeeting.yesLabel": "Evet",
     "app.endMeeting.noLabel": "Hayır",
     "app.about.title": "Hakkında",
@@ -432,7 +434,7 @@
     "app.audioManager.genericError": "Hata: Bir sorun çıktı. Lütfen yeniden deneyin",
     "app.audioManager.connectionError": "Hata: Bağlantı sorunu",
     "app.audioManager.requestTimeout": "Hata: İstek zaman aşımına uğradı",
-    "app.audioManager.invalidTarget": "Hata: Geçersiz hedeften talep denemesi hatası",
+    "app.audioManager.invalidTarget": "Hata: Geçersiz bir hedef için bir istekte bulunuldu",
     "app.audioManager.mediaError": "Hata: Ortam aygıtlarınıza erişilirken bir sorun çıktı",
     "app.audio.joinAudio": "Sesli katıl",
     "app.audio.leaveAudio": "Sesli Katılımı Kapat",
@@ -454,7 +456,7 @@
     "app.meeting.logout.duplicateUserEjectReason": "Aynı kullanıcı toplantıya ikinci kez katılmaya çalışıyor",
     "app.meeting.logout.permissionEjectReason": "İzin ihlali nedeniyle çıkarıldı",
     "app.meeting.logout.ejectedFromMeeting": "Toplantıdan çıkarıldınız",
-    "app.meeting.logout.validateTokenFailedEjectReason": "Yetkilendirme belirteci/token doğrulanamadı",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Kimlik doğrulama kodu doğrulanamadı",
     "app.meeting.logout.userInactivityEjectReason": "Kullanıcı uzun süredir etkin değil",
     "app.meeting-ended.rating.legendLabel": "Geri bildirim deÄŸerlendirmesi",
     "app.meeting-ended.rating.starLabel": "Yıldız",
@@ -573,30 +575,17 @@
     "app.video.videoMenuDesc": "Görüntü menüsü listesini aç",
     "app.video.chromeExtensionError": "Şunu kurmalısınız:",
     "app.video.chromeExtensionErrorLink": "Chrome eklentisi",
-    "app.video.stats.title": "Bağlantı İstatistikleri",
-    "app.video.stats.packetsReceived": "Gelen paket",
-    "app.video.stats.packetsSent": "Giden paket",
-    "app.video.stats.packetsLost": "Kayıp paket",
-    "app.video.stats.bitrate": "Bit hızı",
-    "app.video.stats.lostPercentage": "Toplam kayıp yüzdesi",
-    "app.video.stats.lostRecentPercentage": "Son kayıp yüzdesi",
-    "app.video.stats.dimensions": "Boyutlar",
-    "app.video.stats.codec": "Kodlayıcı/çözücü",
-    "app.video.stats.decodeDelay": "Kod çözme gecikmesi",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Kodlama kullanımı",
-    "app.video.stats.currentDelay": "Åžu andaki gecikme",
     "app.fullscreenButton.label": "{0} tam ekran yap",
-    "app.deskshare.iceConnectionStateError": "Ekran paylaşımı sırasında bağlantı hatası (ICE hatası 1108)",
-    "app.sfu.mediaServerConnectionError2000": "Medya sunucusuna ulaşılamıyor (hata 2000)",
-    "app.sfu.mediaServerOffline2001": "Medya sunucusu çevrimdışı. Lütfen daha sonra tekrar deneyin (hata 2001)",
-    "app.sfu.mediaServerNoResources2002": "Medya sunucunun kullanım için uygun kaynağı yok (hata 2002)",
-    "app.sfu.mediaServerRequestTimeout2003": "Medya sunucu istekleri zaman aşımına uğruyor (hata 2003)",
-    "app.sfu.serverIceGatheringFailed2021": "Medya sunucu bağlantı parametrelerini alamıyor (ICE hatası 2021)",
-    "app.sfu.serverIceGatheringFailed2022": "Medya sunucu bağlantı hatası (ICE hatası 2022)",
-    "app.sfu.mediaGenericError2200": "Medya sunucusu isteği işleyemiyor (ICE hatası 2200)",
-    "app.sfu.invalidSdp2202":"İstemci geçersiz medya isteği talebi oluşturdu (SDP hatası 2202)",
-    "app.sfu.noAvailableCodec2203": "Sunucu uygun medya kodlaması bulamadı (hata 2203)",
+    "app.deskshare.iceConnectionStateError": "Ekran paylaşılırken bağlantı kesildi (ICE hatası 1108)",
+    "app.sfu.mediaServerConnectionError2000": "Ortam sunucusu ile bağlantı kurulamadı (hata 2000)",
+    "app.sfu.mediaServerOffline2001": "Ortam sunucusu çevrimdışı. Lütfen daha sonra yeniden deneyin (hata 2001)",
+    "app.sfu.mediaServerNoResources2002": "Ortam sunucunda kullanılabilecek kaynak yok (hata 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Ortam sunucu istekleri zaman aşımına uğradı (hata 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Ortam sunucusu bağlantı adaylarını alamadı (ICE hatası 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Ortam sunucusu bağlantısı kurulamadı (ICE hatası 2022)",
+    "app.sfu.mediaGenericError2200": "Ortam sunucusu isteği işleyemedi (ICE hatası 2200)",
+    "app.sfu.invalidSdp2202":"İstemci geçersiz bir ortam isteğinde bulundu (SDP hatası 2202)",
+    "app.sfu.noAvailableCodec2203": "Sunucu uygun bir ortam kodlayıcı/çözücüsü bulamadı (hata 2203)",
     "app.meeting.endNotification.ok.label": "Tamam",
     "app.whiteboard.annotations.poll": "Oylama sonuçları yayınlandı",
     "app.whiteboard.toolbar.tools": "Araçlar",
@@ -627,9 +616,9 @@
     "app.whiteboard.toolbar.clear": "Tüm Ek Açıklamaları Temizle",
     "app.whiteboard.toolbar.multiUserOn": "Çoklu kullanıcı modunu aç",
     "app.whiteboard.toolbar.multiUserOff": "Çoklu kullanıcı modunu kapat",
-    "app.whiteboard.toolbar.fontSize": "Yazı tipi boyutu listesi",
+    "app.whiteboard.toolbar.fontSize": "Yazı tipi listesi",
     "app.feedback.title": "Görüşmeden çıktınız",
-    "app.feedback.subtitle": "BigBlueButton deneyiminizi bizimle paylaşın (zorunlu değil)",
+    "app.feedback.subtitle": "BigBlueButton deneyiminizi bizimle paylaşın (isteğe bağlı)",
     "app.feedback.textarea": "BigBlueButton'ı nasıl daha iyi yapabiliriz?",
     "app.feedback.sendFeedback": "Geri Bildirim Gönder",
     "app.feedback.sendFeedbackDesc": "Bir geri bildirim gönderip toplantıdan çıkın",
diff --git a/bigbluebutton-html5/private/locales/tr_TR.json b/bigbluebutton-html5/private/locales/tr_TR.json
index 52f983f46cdc290dacf356d4893eb24c572b7e54..b4de865bf4746d9e0f7dea53145bbf2d1795b599 100644
--- a/bigbluebutton-html5/private/locales/tr_TR.json
+++ b/bigbluebutton-html5/private/locales/tr_TR.json
@@ -126,8 +126,6 @@
     "app.meeting.meetingTimeRemaining": "Oturumun bitmesine kalan süre: {0}",
     "app.meeting.meetingTimeHasEnded": "Zaman bitti. Oturum kısa süre sonra kapanacak",
     "app.meeting.endedMessage": "Ana ekrana geri yönlendirileceksiniz",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Oturum bir dakika içinde kapanacak.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Çalışma odası bir dakika içinde kapanıyor.",
     "app.presentation.hide": "Sunumu gizle",
     "app.presentation.notificationLabel": "Geçerli sunum",
     "app.presentation.slideContent": "Slayt içeriği",
@@ -267,7 +265,6 @@
     "app.leaveConfirmation.confirmLabel": "Ayrıl",
     "app.leaveConfirmation.confirmDesc": "Sizi görüşmeden çıkarır",
     "app.endMeeting.title": "Oturumu sonlandır",
-    "app.endMeeting.description": "Bu oturumu sonlandırmak istediğinize emin misiniz?",
     "app.endMeeting.yesLabel": "Evet",
     "app.endMeeting.noLabel": "Hayır",
     "app.about.title": "Hakkında",
@@ -573,19 +570,6 @@
     "app.video.videoMenuDesc": "Video menüsünü liste olarak aç",
     "app.video.chromeExtensionError": "Yüklemeniz gerekiyor",
     "app.video.chromeExtensionErrorLink": "bu Chrome uzantısı",
-    "app.video.stats.title": "Bağlantı İstatistikleri",
-    "app.video.stats.packetsReceived": "Gelen paketler",
-    "app.video.stats.packetsSent": "Giden paketler",
-    "app.video.stats.packetsLost": "Kayıp paketler",
-    "app.video.stats.bitrate": "Bit hızı",
-    "app.video.stats.lostPercentage": "Toplam kayıp yüzdesi",
-    "app.video.stats.lostRecentPercentage": "Son kayıp yüzdesi",
-    "app.video.stats.dimensions": "Boyutlar",
-    "app.video.stats.codec": "Kodek",
-    "app.video.stats.decodeDelay": "Kod çözme gecikmesi",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Çözümleme kullanımı",
-    "app.video.stats.currentDelay": "Mevcut gecikme",
     "app.fullscreenButton.label": "{0} tam ekran yap",
     "app.deskshare.iceConnectionStateError": "Ekran paylaşımı sırasında bağlantı hatası (ICE hatası 1108)",
     "app.sfu.mediaServerConnectionError2000": "Medya sunucusuna ulaşılamıyor (hata 2000)",
diff --git a/bigbluebutton-html5/private/locales/uk_UA.json b/bigbluebutton-html5/private/locales/uk_UA.json
index dfc7d2664f631ddb1725ab0cbba18462f402b344..d9490f19c01331ef0a5abf299b0bd8bb70ecedff 100644
--- a/bigbluebutton-html5/private/locales/uk_UA.json
+++ b/bigbluebutton-html5/private/locales/uk_UA.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "Залишилось часу зустрічі: {0}",
     "app.meeting.meetingTimeHasEnded": "Час закінчився. Зустріч буде закрито незабаром",
     "app.meeting.endedMessage": "Переспрямування на головний екран",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Зустріч закінчується через хвилину.",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Зустріч закінчується через хвилину.",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "Зустріч завершується за 1 хв.",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "Зустріч завершується за {0} хв.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Кімнату буде зачинено за {0} хв.",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "Кімнату буде зачинено за 1 хв.",
     "app.presentation.hide": "Згорнути презентацію",
     "app.presentation.notificationLabel": "Поточна презентація",
     "app.presentation.slideContent": "Вміст слайду",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "Вийти",
     "app.leaveConfirmation.confirmDesc": "Вийти з конференції",
     "app.endMeeting.title": "Завершити зустріч",
-    "app.endMeeting.description": "Ви точно хочете завершити цю зустріч?",
+    "app.endMeeting.description": "Дійсно завершити цю зустріч? Усіх користувачів буде від'єднано.",
     "app.endMeeting.yesLabel": "Так",
     "app.endMeeting.noLabel": "Ні",
     "app.about.title": "Про застосунок",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "Відкрити контекстне меню відео",
     "app.video.chromeExtensionError": "Ви маєте встановити",
     "app.video.chromeExtensionErrorLink": "це розширення Chrome",
-    "app.video.stats.title": "Статистика з'єднань",
-    "app.video.stats.packetsReceived": "Отримані пакети",
-    "app.video.stats.packetsSent": "Надіслані пакети",
-    "app.video.stats.packetsLost": "Втрачені пакети",
-    "app.video.stats.bitrate": "Бітрейт",
-    "app.video.stats.lostPercentage": "Загальний відсоток втрачених",
-    "app.video.stats.lostRecentPercentage": "Нинішній відсоток втрачених",
-    "app.video.stats.dimensions": "Розміри",
-    "app.video.stats.codec": "Кодек",
-    "app.video.stats.decodeDelay": "Затримка декодування",
-    "app.video.stats.rtt": "Час RTT",
-    "app.video.stats.encodeUsagePercent": "Використання кодування",
-    "app.video.stats.currentDelay": "Поточна затримка",
     "app.fullscreenButton.label": "{0} на весь екран",
     "app.deskshare.iceConnectionStateError": "Не вдалося встановити з'єднання під час демонстрації екрану (ICE помилка 1108)",
     "app.sfu.mediaServerConnectionError2000": "Не можливо з'єднатися з мультимедійним сервером (помилка 2000)",
diff --git a/bigbluebutton-html5/private/locales/vi_VN.json b/bigbluebutton-html5/private/locales/vi_VN.json
index b83a24302cd977b359869ac1b7b312e52f6e82aa..d7d7514b04cfe8a94bab6b94bc10da1b417ff087 100644
--- a/bigbluebutton-html5/private/locales/vi_VN.json
+++ b/bigbluebutton-html5/private/locales/vi_VN.json
@@ -122,8 +122,6 @@
     "app.meeting.meetingTimeRemaining": "Thời gian còn lại của cuộc họp: {0}",
     "app.meeting.meetingTimeHasEnded": "Hết giờ. Cuộc họp sẽ đóng lại",
     "app.meeting.endedMessage": "Bạn sẽ được chuyển hướng về lại trang chủ màn hình",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "Cuộc họp sẽ kết thúc trong một phút nữa",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "Giải lao sẽ kết thúc trong một phúc nữa ",
     "app.presentation.hide": "Ẩn Trình bày",
     "app.presentation.notificationLabel": "Phần trình bày hiện tại",
     "app.presentation.slideContent": "Ná»™i dung slide",
@@ -259,7 +257,6 @@
     "app.leaveConfirmation.confirmLabel": "Rời khỏi",
     "app.leaveConfirmation.confirmDesc": "Đăng xuất khỏi cuộc họp",
     "app.endMeeting.title": "Kết thúc cuộc họp",
-    "app.endMeeting.description": "Bạn thực sự muốn kết thúc phiên hoạt động ?",
     "app.endMeeting.yesLabel": "Có",
     "app.endMeeting.noLabel": "Không",
     "app.about.title": "Giới thiệu",
@@ -551,19 +548,6 @@
     "app.video.videoMenuDesc": "Mở thanh menu video trượt xuống",
     "app.video.chromeExtensionError": "Bạn phải cài đặt",
     "app.video.chromeExtensionErrorLink": "tiện ích mở rộng Chrome này",
-    "app.video.stats.title": "Các chỉ số kết nối",
-    "app.video.stats.packetsReceived": "Các gói đã nhận",
-    "app.video.stats.packetsSent": "Các gói đã gửi",
-    "app.video.stats.packetsLost": "Các gói bị mất",
-    "app.video.stats.bitrate": "Tốc độ bit",
-    "app.video.stats.lostPercentage": "Tổng phần trăm bị mất",
-    "app.video.stats.lostRecentPercentage": "Phần trăm bị mất gần đây",
-    "app.video.stats.dimensions": "Kích thước",
-    "app.video.stats.codec": "Tiền mã hóa",
-    "app.video.stats.decodeDelay": "Đỗ trễ giải mã",
-    "app.video.stats.rtt": "RTT",
-    "app.video.stats.encodeUsagePercent": "Sử dụng mã hóa",
-    "app.video.stats.currentDelay": "Độ trễ hiện tại",
     "app.fullscreenButton.label": "Tạo {0} toàn màn hình",
     "app.meeting.endNotification.ok.label": "Đồng ý",
     "app.whiteboard.annotations.poll": "Đã công bố kết quả thăm dò ý kiến",
diff --git a/bigbluebutton-html5/private/locales/zh_CN.json b/bigbluebutton-html5/private/locales/zh_CN.json
index d503fa7210b9d28157ae04844f4722255af97490..83837ecb681adc0de55c89836f81ded58d349918 100644
--- a/bigbluebutton-html5/private/locales/zh_CN.json
+++ b/bigbluebutton-html5/private/locales/zh_CN.json
@@ -126,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "会议时间剩余:{0} ",
     "app.meeting.meetingTimeHasEnded": "结束时间到。会议即将结束 ",
     "app.meeting.endedMessage": "您将被跳转回首页",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "会议将在一分钟之内结束。 ",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "分组讨论将在一分钟之内结束。",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "会议一分钟后就要结束了。",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "会议 {0} 分钟后就要结束了。",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "分组讨论 {0} 分钟后就要结束了。",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "分组讨论一分钟后就要结束了。",
     "app.presentation.hide": "隐藏演示",
     "app.presentation.notificationLabel": "当前演示文稿",
     "app.presentation.slideContent": "幻灯片内容 ",
@@ -267,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "退出",
     "app.leaveConfirmation.confirmDesc": "您将从会议退出",
     "app.endMeeting.title": "结束会议",
-    "app.endMeeting.description": "确定要结束会议吗?将所有人踢出会议室!",
+    "app.endMeeting.description": "真的要结束会议吗(所有用户都将断开连接)?",
     "app.endMeeting.yesLabel": "是",
     "app.endMeeting.noLabel": "否",
     "app.about.title": "关于",
@@ -340,8 +342,8 @@
     "app.actionsBar.actionsDropdown.pollBtnLabel": "发起投票",
     "app.actionsBar.actionsDropdown.pollBtnDesc": "打开投票面板",
     "app.actionsBar.actionsDropdown.saveUserNames": "保存用户名",
-    "app.actionsBar.actionsDropdown.createBreakoutRoom": "创建分组会议室",
-    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "为当前会议创建分组会议室",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "创建分组讨论会议室",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "为当前会议创建分组讨论会议室",
     "app.actionsBar.actionsDropdown.captionsLabel": "编写隐藏式字幕",
     "app.actionsBar.actionsDropdown.captionsDesc": "切换字幕面板",
     "app.actionsBar.actionsDropdown.takePresenter": "我当演示者",
@@ -386,14 +388,14 @@
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia 失败,因为只允许安全的来源",
     "app.audioNotification.closeLabel": "关闭",
     "app.audioNotificaion.reconnectingAsListenOnly": "观众的麦克风被锁定,您现在仅能聆听。",
-    "app.breakoutJoinConfirmation.title": "加入分组会议室",
+    "app.breakoutJoinConfirmation.title": "加入分组讨论会议室",
     "app.breakoutJoinConfirmation.message": "您想加入吗?",
-    "app.breakoutJoinConfirmation.confirmDesc": "将您加入分组会议室",
+    "app.breakoutJoinConfirmation.confirmDesc": "将您加入分组讨论会议室",
     "app.breakoutJoinConfirmation.dismissLabel": "取消",
-    "app.breakoutJoinConfirmation.dismissDesc": "关闭并拒绝加入分组会议室",
-    "app.breakoutJoinConfirmation.freeJoinMessage": "选择并加入分组会议室",
-    "app.breakoutTimeRemainingMessage": "分组讨论剩余时间:{0}",
-    "app.breakoutWillCloseMessage": "分组讨论结束。分组会议室将被关闭。",
+    "app.breakoutJoinConfirmation.dismissDesc": "关闭并拒绝加入分组讨论会议室",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "选择并加入分组讨论会议室",
+    "app.breakoutTimeRemainingMessage": "分组讨论会议室剩余时间:{0}",
+    "app.breakoutWillCloseMessage": "时间结束了。分组讨论会议室马上就要关闭。",
     "app.calculatingBreakoutTimeRemaining": "计算剩余时间...",
     "app.audioModal.ariaTitle": "加入音频模式",
     "app.audioModal.microphoneLabel": "麦克风",
@@ -487,7 +489,7 @@
     "app.userList.guest.pendingGuestAlert": "已经加入到会议,并且正在等待您的批准。",
     "app.userList.guest.rememberChoice": "记住选择",
     "app.user-info.title": "目录查找",
-    "app.toast.breakoutRoomEnded": "分组讨论结束。请重新加入音频交流。",
+    "app.toast.breakoutRoomEnded": "分组讨论会议已结束。请重新加入音频交流。",
     "app.toast.chat.public": "新的公共聊天消息",
     "app.toast.chat.private": "新的私人聊天消息",
     "app.toast.chat.system": "系统",
@@ -573,19 +575,6 @@
     "app.video.videoMenuDesc": "打开视频下拉菜单",
     "app.video.chromeExtensionError": "您必须安装",
     "app.video.chromeExtensionErrorLink": "这个Chrome浏览器扩展插件",
-    "app.video.stats.title": "连接状态",
-    "app.video.stats.packetsReceived": "收到的数据包",
-    "app.video.stats.packetsSent": "发送的数据包",
-    "app.video.stats.packetsLost": "丢失的数据包",
-    "app.video.stats.bitrate": "比特率",
-    "app.video.stats.lostPercentage": "总丢包率",
-    "app.video.stats.lostRecentPercentage": "最近丢包率",
-    "app.video.stats.dimensions": "规格",
-    "app.video.stats.codec": "编码解码器",
-    "app.video.stats.decodeDelay": "解码延迟",
-    "app.video.stats.rtt": "往返时间",
-    "app.video.stats.encodeUsagePercent": "编码usage",
-    "app.video.stats.currentDelay": "当前延迟",
     "app.fullscreenButton.label": "全屏显示{0}",
     "app.deskshare.iceConnectionStateError": "分线屏幕时连接失败 (ICE error 1108)",
     "app.sfu.mediaServerConnectionError2000": "无法连接到媒体服务器 (error 2000)",
@@ -639,7 +628,7 @@
     "app.videoDock.webcamUnfocusDesc": "取消对焦选中的摄像头",
     "app.videoDock.autoplayBlockedDesc": "我们需要您的许可才能向您显示其他用户的摄像头。",
     "app.videoDock.autoplayAllowLabel": "查看摄像头",
-    "app.invitation.title": "分组讨论邀请",
+    "app.invitation.title": "分组讨论会议室邀请",
     "app.invitation.confirm": "邀请",
     "app.createBreakoutRoom.title": "分组讨论会议室",
     "app.createBreakoutRoom.ariaTitle": "隐藏分组讨论会议室",
@@ -658,16 +647,16 @@
     "app.createBreakoutRoom.numberOfRooms": "会议室数量",
     "app.createBreakoutRoom.durationInMinutes": "持续时间(分钟)",
     "app.createBreakoutRoom.randomlyAssign": "随机指派",
-    "app.createBreakoutRoom.endAllBreakouts": "结束所有分组讨论",
+    "app.createBreakoutRoom.endAllBreakouts": "结束所有分组讨论会议室",
     "app.createBreakoutRoom.roomName": "{0}(会议室-{1})",
     "app.createBreakoutRoom.doneLabel": "完成",
     "app.createBreakoutRoom.nextLabel": "下一步",
-    "app.createBreakoutRoom.minusRoomTime": "将临时会议室时间减少到",
-    "app.createBreakoutRoom.addRoomTime": "将临时会议室时间增加到",
+    "app.createBreakoutRoom.minusRoomTime": "将分组讨论会议时间减少到",
+    "app.createBreakoutRoom.addRoomTime": "将分组讨论会议时间增加到",
     "app.createBreakoutRoom.addParticipantLabel": "+ 添加参会人",
-    "app.createBreakoutRoom.freeJoin": "允许人员选择并加入分组讨论",
-    "app.createBreakoutRoom.leastOneWarnBreakout": "您必须至少指派一位人员到每一个分组讨论",
-    "app.createBreakoutRoom.modalDesc": "提示:您可以拖放用户名以将其分配给特定的分组会议室。",
+    "app.createBreakoutRoom.freeJoin": "允许用户选择并加入分组讨论会议",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "您必须至少指派一个用户到分组讨论会议室",
+    "app.createBreakoutRoom.modalDesc": "提示:您可以拖放用户名以将其分配给特定的分组讨论会议室。",
     "app.createBreakoutRoom.roomTime": "{0} 分钟",
     "app.createBreakoutRoom.numberOfRoomsError": "会议室数量无效。",
     "app.externalVideo.start": "分享一个新视频",
diff --git a/bigbluebutton-html5/private/locales/zh_TW.json b/bigbluebutton-html5/private/locales/zh_TW.json
index 52afebc12c44b88e4050ccfcffa11dd269bc1674..c5f7f31afb5af9a10a4a93be3776400577186f1f 100644
--- a/bigbluebutton-html5/private/locales/zh_TW.json
+++ b/bigbluebutton-html5/private/locales/zh_TW.json
@@ -74,6 +74,7 @@
     "app.userList.menu.clearStatus.label": "清除狀態",
     "app.userList.menu.removeUser.label": "移除用戶",
     "app.userList.menu.removeConfirmation.label": "刪除使用者({0})",
+    "app.userlist.menu.removeConfirmation.desc": "阻止該用戶重新加入會話。",
     "app.userList.menu.muteUserAudio.label": "用戶靜音",
     "app.userList.menu.unmuteUserAudio.label": "取消用戶靜音",
     "app.userList.userAriaLabel": "{0}{1}{2}狀態{3}",
@@ -114,6 +115,7 @@
     "app.media.screenshare.start": "畫面分享已開始",
     "app.media.screenshare.end": "畫面分享已結束",
     "app.media.screenshare.unavailable": "畫面分享不能用",
+    "app.media.screenshare.notSupported": "這個瀏覽器不支援螢幕共享。",
     "app.media.screenshare.autoplayBlockedDesc": "我們需要您的許可才能向您顯示簡報者畫面。",
     "app.media.screenshare.autoplayAllowLabel": "查看分享畫面",
     "app.screenshare.notAllowed": "錯誤: 未授與畫面存取權限",
@@ -124,8 +126,10 @@
     "app.meeting.meetingTimeRemaining": "剩餘會議時間: {0}",
     "app.meeting.meetingTimeHasEnded": "時間結束,很快會議即將關閉。",
     "app.meeting.endedMessage": "您很快將被帶回首頁",
-    "app.meeting.alertMeetingEndsUnderOneMinute": "會議將在一分鐘內結束",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "分組討論將在一分鐘之內結束",
+    "app.meeting.alertMeetingEndsUnderMinutesSingular": "會議將在一分鐘內結束。",
+    "app.meeting.alertMeetingEndsUnderMinutesPlural": "會議將關閉在 {0} 分鐘後.",
+    "app.meeting.alertBreakoutEndsUnderMinutesPlural": "在 {0} 分鐘內,分組會議就會結束",
+    "app.meeting.alertBreakoutEndsUnderMinutesSingular": "一分鐘內,分組會議就會結束",
     "app.presentation.hide": "隱藏簡報",
     "app.presentation.notificationLabel": "目前簡報",
     "app.presentation.slideContent": "投影片內容",
@@ -265,7 +269,7 @@
     "app.leaveConfirmation.confirmLabel": "離開",
     "app.leaveConfirmation.confirmDesc": "將您登出會議",
     "app.endMeeting.title": "結束會議",
-    "app.endMeeting.description": "您確定將結束會議嗎?",
+    "app.endMeeting.description": "您確定要結束會議(所有用戶都將斷開連接)嗎?",
     "app.endMeeting.yesLabel": "是",
     "app.endMeeting.noLabel": "否",
     "app.about.title": "關於",
@@ -571,19 +575,6 @@
     "app.video.videoMenuDesc": "打開視訊下拉選單",
     "app.video.chromeExtensionError": "您必需安裝",
     "app.video.chromeExtensionErrorLink": "這個Chrome擴充",
-    "app.video.stats.title": "連線狀態",
-    "app.video.stats.packetsReceived": "收到的封包",
-    "app.video.stats.packetsSent": "送出的封包",
-    "app.video.stats.packetsLost": "遺失的封包",
-    "app.video.stats.bitrate": "位元率",
-    "app.video.stats.lostPercentage": "遺失全部全百分",
-    "app.video.stats.lostRecentPercentage": "最近百分比遺失",
-    "app.video.stats.dimensions": "規格",
-    "app.video.stats.codec": "編解碼器",
-    "app.video.stats.decodeDelay": "解碼延遲",
-    "app.video.stats.rtt": "往返時間",
-    "app.video.stats.encodeUsagePercent": "編碼使用",
-    "app.video.stats.currentDelay": "目前延遲",
     "app.fullscreenButton.label": "全螢幕顯示 {0}",
     "app.deskshare.iceConnectionStateError": "分享螢幕時連線失敗(ICE 錯誤 1108)",
     "app.sfu.mediaServerConnectionError2000": "無法連接媒體伺服器(錯誤 2000)",
diff --git a/bigbluebutton-web/grails-app/conf/bigbluebutton.properties b/bigbluebutton-web/grails-app/conf/bigbluebutton.properties
index 0d79486ed4505e9c814558852dc1833ee16bfdd0..ae142853ab75eaa6736d7664437c62d31d6c077b 100755
--- a/bigbluebutton-web/grails-app/conf/bigbluebutton.properties
+++ b/bigbluebutton-web/grails-app/conf/bigbluebutton.properties
@@ -161,8 +161,8 @@ defaultGuestPolicy=ALWAYS_ACCEPT
 #
 # native2ascii -encoding UTF8 bigbluebutton.properties bigbluebutton.properties
 #
-defaultWelcomeMessage=Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="event:https://bigbluebutton.org/html5"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the phone button.  Use a headset to avoid causing background noise for others.
-defaultWelcomeMessageFooter=This server is running <a href="https://docs.bigbluebutton.org" target="_blank"><u>BigBlueButton</u></a>.
+defaultWelcomeMessage=Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="https://www.bigbluebutton.org/html5"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the phone button.  Use a headset to avoid causing background noise for others.
+defaultWelcomeMessageFooter=This server is running <a href="https://docs.bigbluebutton.org/" target="_blank"><u>BigBlueButton</u></a>.
 
 # Default maximum number of users a meeting can have.
 # Current default is 0 (meeting doesn't have a user limit).