diff --git a/bigbluebutton-html5/imports/startup/client/intl.jsx b/bigbluebutton-html5/imports/startup/client/intl.jsx
index 37bc4600f0a6695aa86efc4e56813e1237c77ad5..41687658139ed1183c04b30b37c38ff2f43d01da 100644
--- a/bigbluebutton-html5/imports/startup/client/intl.jsx
+++ b/bigbluebutton-html5/imports/startup/client/intl.jsx
@@ -27,6 +27,7 @@ import ru from 'react-intl/locale-data/ru';
 import sv from 'react-intl/locale-data/sv';
 import tr from 'react-intl/locale-data/tr';
 import uk from 'react-intl/locale-data/uk';
+import vi from 'react-intl/locale-data/vi';
 import zh from 'react-intl/locale-data/zh';
 
 
@@ -53,6 +54,7 @@ addLocaleData([
   ...sv,
   ...tr,
   ...uk,
+  ...vi,
   ...zh,
 ]);
 
@@ -126,7 +128,7 @@ class IntlStartup extends Component {
 
   saveLocale(localeName) {
     Settings.application.locale = localeName;
-    if (RTL_LANGUAGES.includes(localeName.substring(0,2))) {
+    if (RTL_LANGUAGES.includes(localeName.substring(0, 2))) {
       document.body.parentNode.setAttribute('dir', 'rtl');
       Settings.application.isRTL = true;
     } else {
diff --git a/bigbluebutton-html5/private/locales/bg_BG.json b/bigbluebutton-html5/private/locales/bg_BG.json
index 70d29523d559edd58b22d452d72554268cf91114..ff8b310b967db17bd3818a29c437bd4924455dfd 100644
--- a/bigbluebutton-html5/private/locales/bg_BG.json
+++ b/bigbluebutton-html5/private/locales/bg_BG.json
@@ -38,6 +38,7 @@
     "app.presentation.presentationToolbar.fitToWidth": "Fit to width",
     "app.presentationUploder.dismissLabel": "Cancel",
     "app.presentationUploder.genericError": "Ops, something went wrong",
+    "app.presentationUploder.tableHeading.options": "Options",
     "app.poll.closeLabel": "Close",
     "app.poll.liveResult.usersTitle": "Потребители",
     "app.failedMessage": "Apologies, trouble connecting to the server.",
@@ -154,6 +155,7 @@
     "app.audio.listenOnly.backLabel": "Back",
     "app.audio.listenOnly.closeLabel": "Close",
     "app.error.meeting.ended": "You have logged out of the conference",
+    "app.modal.close": "Close",
     "app.dropdown.close": "Close",
     "app.error.401": "Unauthorized",
     "app.error.404": "Not found",
diff --git a/bigbluebutton-html5/private/locales/cs_CZ.json b/bigbluebutton-html5/private/locales/cs_CZ.json
index 63f804d581a3c532f797adfff0abc9da3a6023dc..012eaf11f8033326bd41d83fcb6411e9170669e6 100644
--- a/bigbluebutton-html5/private/locales/cs_CZ.json
+++ b/bigbluebutton-html5/private/locales/cs_CZ.json
@@ -104,6 +104,7 @@
     "app.presentationUploder.conversion.generatedSlides": "Generování snímků...",
     "app.presentationUploder.conversion.generatingSvg": "Generování SVG obrázků...",
     "app.presentationUploder.conversion.timeout": "O ou, čas konverze prezentace překročil limit",
+    "app.presentationUploder.tableHeading.options": "Volby",
     "app.poll.pollPaneTitle": "Anketa (hlasování)",
     "app.poll.hidePollDesc": "Schová panel ankety",
     "app.poll.customPollInstruction": "Pro vytvoření vlastní ankety stiskněte tlačítko a zadejte vlastní volby",
@@ -342,6 +343,8 @@
     "app.audio.permissionsOverlay.hint": "Abyste se mohli zúčastnit audio konference, musíte povolit přístup ke svým audiozařízením",
     "app.error.removed": "Vaše účast na setkání byla ukončena",
     "app.error.meeting.ended": "Ukončil jste svou účast na setkání",
+    "app.modal.close": "Zavřít",
+    "app.modal.confirm": "Hotovo",
     "app.dropdown.close": "Zavřít",
     "app.error.400": "Špatný požadavek",
     "app.error.401": "Neautorizováno",
diff --git a/bigbluebutton-html5/private/locales/de.json b/bigbluebutton-html5/private/locales/de.json
index 38626e8a8e24b4f1ad01a0d8d36b301ee97e0b70..0c40ab6f14408c32a894aec385b51fd801663097 100644
--- a/bigbluebutton-html5/private/locales/de.json
+++ b/bigbluebutton-html5/private/locales/de.json
@@ -78,6 +78,7 @@
     "app.meeting.alertMeetingEndsUnderOneMinute": "Die Konferenz wird in einer Minute beendet.",
     "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout-Sitzung wird in einer Minute beendet.",
     "app.presentation.hide": "Präsentation verbergen",
+    "app.presentation.notificationLabel": "Aktuelle Präsentation",
     "app.presentation.slideContent": "Folieninhalt",
     "app.presentation.startSlideContent": "Beginn des Folieninhalts",
     "app.presentation.endSlideContent": "Ende des Folieninhalts",
@@ -131,6 +132,9 @@
     "app.presentationUploder.isNotDownloadableLabel": "Präsentation darf heruntergeladen werden",
     "app.presentationUploder.removePresentationLabel": "Präsentation entfernen",
     "app.presentationUploder.setAsCurrentPresentation": "Diese Präsentation auswählen",
+    "app.presentationUploder.tableHeading.filename": "Dateiname",
+    "app.presentationUploder.tableHeading.options": "Optionen",
+    "app.presentationUploder.tableHeading.status": "Status",
     "app.poll.pollPaneTitle": "Umfrage",
     "app.poll.quickPollTitle": "Schnellumfrage",
     "app.poll.hidePollDesc": "Versteckt das Umfragemenü",
@@ -397,6 +401,10 @@
     "app.meeting.logout.userInactivityEjectReason": "Teilnehmer war zu lange inaktiv",
     "app.meeting-ended.rating.legendLabel": "Feedbackbewertung",
     "app.meeting-ended.rating.starLabel": "Stern",
+    "app.modal.close": "Schließen",
+    "app.modal.close.description": "Änderungen verwerfen und Dialog schließen",
+    "app.modal.confirm": "Fertig",
+    "app.modal.confirm.description": "Änderungen speichern und Dialog schließen",
     "app.dropdown.close": "Schließen",
     "app.error.400": "Ungültige Anfrage",
     "app.error.401": "Nicht erlaubt",
diff --git a/bigbluebutton-html5/private/locales/el_GR.json b/bigbluebutton-html5/private/locales/el_GR.json
index b58761073eb09a689ff79d039532d5ff75810bb5..3e578ef109cf9ea37323bbc33d8feb72dad5d6ab 100644
--- a/bigbluebutton-html5/private/locales/el_GR.json
+++ b/bigbluebutton-html5/private/locales/el_GR.json
@@ -30,6 +30,7 @@
     "app.presentationUploder.dismissLabel": "Ακύρωση",
     "app.presentationUploder.genericError": "Ωχ, κάτι πήγε στραβά",
     "app.presentationUploder.upload.progress": "Μεταφόρτωση ({0}%)",
+    "app.presentationUploder.tableHeading.options": "Επιλογές",
     "app.poll.liveResult.usersTitle": "Χρήστες",
     "app.navBar.settingsDropdown.optionsLabel": "Επιλογές",
     "app.navBar.settingsDropdown.settingsLabel": "Άνοιγμα ρυθμίσεων",
diff --git a/bigbluebutton-html5/private/locales/es.json b/bigbluebutton-html5/private/locales/es.json
index 97896fdeff7b6434a38ed14a01825241369cae82..d4883bc4a278514ddb15a456130286cad757fda9 100644
--- a/bigbluebutton-html5/private/locales/es.json
+++ b/bigbluebutton-html5/private/locales/es.json
@@ -98,6 +98,7 @@
     "app.presentationUploder.conversion.generatedSlides": "Diapositivas han sido generadas ...",
     "app.presentationUploder.conversion.generatingSvg": "Generando imágenes SVG ...",
     "app.presentationUploder.conversion.timeout": "La conversión tomó demasiado tiempo ...",
+    "app.presentationUploder.tableHeading.options": "Opciones",
     "app.poll.pollPaneTitle": "Encuesta",
     "app.poll.hidePollDesc": "Ocultar el menu de la encuesta",
     "app.poll.customPollInstruction": "Para crear una encuesta personalizada presiona el botón de abajo e introduce las respuestas.",
@@ -329,6 +330,8 @@
     "app.audio.permissionsOverlay.hint": "Necesitamos tu autorización para acceder tus dipositivos de medios para poder ingresar a la conferencia de voz :)",
     "app.error.removed": "Has sido eliminado de la conferencia",
     "app.error.meeting.ended": "Haz salido de la conferencia",
+    "app.modal.close": "Cerrar",
+    "app.modal.confirm": "Finalizado",
     "app.dropdown.close": "Cerrar",
     "app.error.400": "Solicitud incorrecta",
     "app.error.401": "No autorizado",
diff --git a/bigbluebutton-html5/private/locales/es_ES.json b/bigbluebutton-html5/private/locales/es_ES.json
index aab38fd276da5ece96bb4b1121803ae28ec53b86..7bb8e246410686614c7b52c6795708cc698c2574 100644
--- a/bigbluebutton-html5/private/locales/es_ES.json
+++ b/bigbluebutton-html5/private/locales/es_ES.json
@@ -42,6 +42,7 @@
     "app.presentation.presentationToolbar.fitToWidth": "Ajustar a lo ancho",
     "app.presentationUploder.dismissLabel": "Cancelar",
     "app.presentationUploder.genericError": "Ups, algo salio mal",
+    "app.presentationUploder.tableHeading.options": "Opciones",
     "app.poll.closeLabel": "Cerrar",
     "app.poll.liveResult.usersTitle": "Usuarios",
     "app.failedMessage": "Disculpas, problemas conectando al servidor.",
@@ -168,6 +169,7 @@
     "app.audio.listenOnly.backLabel": "Atrás",
     "app.audio.listenOnly.closeLabel": "Cerrar",
     "app.error.meeting.ended": "Haz salido de la conferencia",
+    "app.modal.close": "Cerrar",
     "app.dropdown.close": "Cerrar",
     "app.error.401": "No autorizado",
     "app.error.404": "No se encontró",
diff --git a/bigbluebutton-html5/private/locales/es_MX.json b/bigbluebutton-html5/private/locales/es_MX.json
index 501ccc838b745682263771bcdbfff1aec362489b..de88f503bdff6b7bcf367ae48f2a36472ed8a956 100644
--- a/bigbluebutton-html5/private/locales/es_MX.json
+++ b/bigbluebutton-html5/private/locales/es_MX.json
@@ -129,6 +129,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "Permitir descarga de diapositivas",
     "app.presentationUploder.removePresentationLabel": "Eliminar la presentación",
     "app.presentationUploder.setAsCurrentPresentation": "Establecer la presentación actual",
+    "app.presentationUploder.tableHeading.options": "Opciones",
     "app.poll.pollPaneTitle": "Encuesta",
     "app.poll.quickPollTitle": "Encuesta rápida",
     "app.poll.hidePollDesc": "Ocultar el menu de la encuesta",
@@ -383,6 +384,8 @@
     "app.meeting.logout.ejectedFromMeeting": "Has sido expulsado de la sesión",
     "app.meeting.logout.validateTokenFailedEjectReason": "Falló la validación de token de autorización",
     "app.meeting.logout.userInactivityEjectReason": "Usuario inactivo por demasiado tiempo",
+    "app.modal.close": "Cerrar",
+    "app.modal.confirm": "Finalizado",
     "app.dropdown.close": "Cerrar",
     "app.error.400": "Solicitud incorrecta",
     "app.error.401": "No autorizado",
diff --git a/bigbluebutton-html5/private/locales/eu.json b/bigbluebutton-html5/private/locales/eu.json
index e40102f6b284e853df56e837d04ce710840e10e9..fa393049785fe8be00ca6b3ab1e52913d08856cf 100644
--- a/bigbluebutton-html5/private/locales/eu.json
+++ b/bigbluebutton-html5/private/locales/eu.json
@@ -129,6 +129,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "Baimena eman aurkezpena deskargatzeko",
     "app.presentationUploder.removePresentationLabel": "Kendu aurkezpena",
     "app.presentationUploder.setAsCurrentPresentation": "Ezarri uneko aurkezpen gisa",
+    "app.presentationUploder.tableHeading.options": "Aukerak",
     "app.poll.pollPaneTitle": "Inkesta",
     "app.poll.quickPollTitle": "Inkesta azkarra",
     "app.poll.hidePollDesc": "Ezkutatu inkestaren menu-panela",
@@ -387,6 +388,8 @@
     "app.meeting.logout.ejectedFromMeeting": "Bileratik bidali zaituzte",
     "app.meeting.logout.validateTokenFailedEjectReason": "Huts egin du baimenaren tokena balidatzeak",
     "app.meeting.logout.userInactivityEjectReason": "Erabiltzaile inaktiboa denbora luzez",
+    "app.modal.close": "Itxi",
+    "app.modal.confirm": "Egina",
     "app.dropdown.close": "Itxi",
     "app.error.400": "Eskaera okerra",
     "app.error.401": "Baimenik gabe",
diff --git a/bigbluebutton-html5/private/locales/fa_IR.json b/bigbluebutton-html5/private/locales/fa_IR.json
index 6a3ba35b3d5fd349d1708e7215d0d2287b8be597..32545680af5f4a10e1f14403050de313be7fa0c3 100644
--- a/bigbluebutton-html5/private/locales/fa_IR.json
+++ b/bigbluebutton-html5/private/locales/fa_IR.json
@@ -63,6 +63,7 @@
     "app.presentationUploder.genericError": "اشتباهی اتفاق افتاد.",
     "app.presentationUploder.upload.progress": "در حال آپلود ({0}%)",
     "app.presentationUploder.conversion.conversionProcessingSlides": "در حال پردازش صفحه {0} از {1}",
+    "app.presentationUploder.tableHeading.options": "گزینه ها",
     "app.poll.closeLabel": "بستن",
     "app.poll.y": "بله",
     "app.poll.n": "خیر",
@@ -224,6 +225,7 @@
     "app.audio.permissionsOverlay.title": "اجازه دهید کلاس به میکروفن  شما دسترسی داشته باشد.",
     "app.error.removed": "شما از کنفرانس کنار گذاشته شده اید.",
     "app.error.meeting.ended": "شما از کنفرانس خارج شده اید",
+    "app.modal.close": "بستن",
     "app.dropdown.close": "بستن",
     "app.error.401": "شناسایی نشد",
     "app.error.404": "پیدا نشد",
diff --git a/bigbluebutton-html5/private/locales/fr.json b/bigbluebutton-html5/private/locales/fr.json
index 16ae94310c6497efa49400b0930fcdbb58c3002c..fb1eb690824ec70773f09afca3eb38816f29fa80 100644
--- a/bigbluebutton-html5/private/locales/fr.json
+++ b/bigbluebutton-html5/private/locales/fr.json
@@ -129,6 +129,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "Autoriser le téléchargement de la présentation",
     "app.presentationUploder.removePresentationLabel": "Supprimer la présentation",
     "app.presentationUploder.setAsCurrentPresentation": "Définir la présentation comme courante",
+    "app.presentationUploder.tableHeading.options": "Options",
     "app.poll.pollPaneTitle": "Sondage",
     "app.poll.quickPollTitle": "Sondage Rapide",
     "app.poll.hidePollDesc": "Masque le volet du menu du sondage",
@@ -383,6 +384,8 @@
     "app.meeting.logout.ejectedFromMeeting": "Vous avez été éjecté de la réunion",
     "app.meeting.logout.validateTokenFailedEjectReason": "Échec de la validation du jeton d'autorisation",
     "app.meeting.logout.userInactivityEjectReason": "Utilisateur inactif trop longtemps",
+    "app.modal.close": "Fermer",
+    "app.modal.confirm": "Terminé",
     "app.dropdown.close": "Fermer",
     "app.error.400": "Mauvaise Requête",
     "app.error.401": "Non autorisé",
diff --git a/bigbluebutton-html5/private/locales/hi_IN.json b/bigbluebutton-html5/private/locales/hi_IN.json
index 1878a9266162b64e760eb1286b98bbf59d33028d..d67e590e1d6d8573bfb2f7f3df5a66a3365ba8da 100644
--- a/bigbluebutton-html5/private/locales/hi_IN.json
+++ b/bigbluebutton-html5/private/locales/hi_IN.json
@@ -130,6 +130,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "प्रस्तुति को डाउनलोड करने दें",
     "app.presentationUploder.removePresentationLabel": "प्रस्तुति निकालें",
     "app.presentationUploder.setAsCurrentPresentation": "प्रस्तुति को वर्तमान के रूप में सेट करें",
+    "app.presentationUploder.tableHeading.options": "विकल्प",
     "app.poll.pollPaneTitle": "पोलिंग",
     "app.poll.quickPollTitle": "तुर्रन्त पोल",
     "app.poll.hidePollDesc": "पोल मेनू छुपाती है",
@@ -388,6 +389,8 @@
     "app.meeting.logout.ejectedFromMeeting": "आपको मीटिंग से निकाल दिया गया है",
     "app.meeting.logout.validateTokenFailedEjectReason": "प्राधिकरण टोकन को मान्य करने में विफल",
     "app.meeting.logout.userInactivityEjectReason": "प्राधिकरण टोकन को मान्य करने में विफल",
+    "app.modal.close": "बंद करे",
+    "app.modal.confirm": "किया हुआ",
     "app.dropdown.close": "बंद करे",
     "app.error.400": "खराब अनुरोध",
     "app.error.401": "अनधिकृत",
diff --git a/bigbluebutton-html5/private/locales/id.json b/bigbluebutton-html5/private/locales/id.json
index 846a5859cf7292800661783555ee59eea0674147..1c930ae2c9a88a736a13c5693f25e3678a8bc728 100644
--- a/bigbluebutton-html5/private/locales/id.json
+++ b/bigbluebutton-html5/private/locales/id.json
@@ -54,6 +54,7 @@
     "app.presentationUploder.dropzoneLabel": "Drag file untuk unggah",
     "app.presentationUploder.browseFilesLabel": "atau telusuri file",
     "app.presentationUploder.genericError": "Ops, terjadi kesalahan",
+    "app.presentationUploder.tableHeading.options": "Pilihan",
     "app.poll.closeLabel": "Tutup",
     "app.poll.liveResult.usersTitle": "Pengguna",
     "app.failedMessage": "Mohon maaf, ada kesulitan terhubung ke server",
@@ -170,6 +171,7 @@
     "app.audio.listenOnly.backLabel": "Kembali",
     "app.audio.listenOnly.closeLabel": "Tutup",
     "app.error.meeting.ended": "Anda telah keluar dari konferensi",
+    "app.modal.close": "Tutup",
     "app.dropdown.close": "Tutup",
     "app.error.401": "Tidak memiliki izin",
     "app.error.404": "Tidak ditemukan",
diff --git a/bigbluebutton-html5/private/locales/it_IT.json b/bigbluebutton-html5/private/locales/it_IT.json
index 6231a3f551d057105d904177d7f0f83011a9b1b5..eade0ba936087845f921ee5dd13d14ce7482ef18 100644
--- a/bigbluebutton-html5/private/locales/it_IT.json
+++ b/bigbluebutton-html5/private/locales/it_IT.json
@@ -78,6 +78,7 @@
     "app.meeting.alertMeetingEndsUnderOneMinute": "Il meeting terminerà entro un minuto.",
     "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout terminerà entro un minuto",
     "app.presentation.hide": "Nascondi presentazione",
+    "app.presentation.notificationLabel": "Presentazione corrente",
     "app.presentation.slideContent": "Contenuto della slide",
     "app.presentation.startSlideContent": "Inizio contenuto slide",
     "app.presentation.endSlideContent": "Termine contenuto slide",
@@ -118,9 +119,9 @@
     "app.presentationUploder.currentBadge": "Attuale",
     "app.presentationUploder.genericError": "Dannazione, qualcosa è andato storto",
     "app.presentationUploder.rejectedError": "Alcuni dei file selezionati sono stati rifiutati. Per favore controllare il tipo di file.",
-    "app.presentationUploder.upload.progress": "Caricamento ({0%})",
+    "app.presentationUploder.upload.progress": "Caricamento ({0}%)",
     "app.presentationUploder.upload.413": "Il file è troppo grande, il numero massimo di 200 pagine è stato raggiunto",
-    "app.presentationUploder.conversion.conversionProcessingSlides": "Elaboro pagina {0} di {1}",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Elaborazione pagina {0} di {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "Conversione file...",
     "app.presentationUploder.conversion.generatingThumbnail": "Elaborazione anteprima...",
     "app.presentationUploder.conversion.generatedSlides": "Slide elaborate...",
@@ -131,6 +132,9 @@
     "app.presentationUploder.isNotDownloadableLabel": "Permetti il download della presentazione",
     "app.presentationUploder.removePresentationLabel": "Rimuovi presentazione",
     "app.presentationUploder.setAsCurrentPresentation": "Imposta presentazione come attuale",
+    "app.presentationUploder.tableHeading.filename": "Nome del file",
+    "app.presentationUploder.tableHeading.options": "Opzioni",
+    "app.presentationUploder.tableHeading.status": "Stato",
     "app.poll.pollPaneTitle": "Domande/Sondaggi",
     "app.poll.quickPollTitle": "Sondaggio rapido",
     "app.poll.hidePollDesc": "Nascondi il menu sondaggi",
@@ -142,7 +146,7 @@
     "app.poll.publishLabel": "Pubblica i risultati",
     "app.poll.backLabel": "Torna alle opzioni del sondaggio",
     "app.poll.closeLabel": "Chiudi",
-    "app.poll.waitingLabel": "In attesa di risposte ({0}/{1})",
+    "app.poll.waitingLabel": "In attesa delle risposte ({0}/{1})",
     "app.poll.ariaInputCount": "Opzione sondaggio personalizzato {0} di {1}",
     "app.poll.customPlaceholder": "Aggiungi opzione",
     "app.poll.noPresentationSelected": "Nessuna presentazione selezionata! Per favore selezionane una.",
@@ -279,11 +283,11 @@
     "app.switch.onLabel": "ON",
     "app.switch.offLabel": "OFF",
     "app.actionsBar.actionsDropdown.actionsLabel": "Azioni",
-    "app.actionsBar.actionsDropdown.presentationLabel": "Carica una presentazione",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Gestisci Presentazione",
     "app.actionsBar.actionsDropdown.initPollLabel": "Crea un sondaggio",
     "app.actionsBar.actionsDropdown.desktopShareLabel": "Condividi lo schermo",
     "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Termina condivisione schermo",
-    "app.actionsBar.actionsDropdown.presentationDesc": "Carica una presentazione",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Gestisci Presentazione",
     "app.actionsBar.actionsDropdown.initPollDesc": "Crea un sondaggio",
     "app.actionsBar.actionsDropdown.desktopShareDesc": "Condividi il tuo schermo con gli altri",
     "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Termina condivisione schermo con ",
@@ -367,7 +371,7 @@
     "app.audioModal.connectingEchoTest": "Connessione al test audio",
     "app.audioManager.joinedAudio": "Stai partecipando al meeting audio",
     "app.audioManager.joinedEcho": "Stai partecipando al test audio",
-    "app.audioManager.leftAudio": "Hai lasciato il meeting audio",
+    "app.audioManager.leftAudio": "L'audio del meeting è disattivato",
     "app.audioManager.genericError": "Errore: c'è stato un errore, riprova",
     "app.audioManager.connectionError": "Errore: Problema di connessione",
     "app.audioManager.requestTimeout": "Errore: E' scaduto il tempo in attesa della risposta",
@@ -397,6 +401,10 @@
     "app.meeting.logout.userInactivityEjectReason": "Limite del tempo di inattività utente superato",
     "app.meeting-ended.rating.legendLabel": "Parere sul servizio",
     "app.meeting-ended.rating.starLabel": "Stella",
+    "app.modal.close": "Chiudi",
+    "app.modal.close.description": "Annula le modifiche e chiudi la finestra",
+    "app.modal.confirm": "Fatto",
+    "app.modal.confirm.description": "Salva le modifiche e chiudi la finestra",
     "app.dropdown.close": "Chiudi",
     "app.error.400": "Richiesta Errata",
     "app.error.401": "Non autorizzato",
@@ -430,7 +438,7 @@
     "app.notification.recordingAriaLabel": "Durata registrazione",
     "app.shortcut-help.title": "Scorciatoie da tastiera",
     "app.shortcut-help.accessKeyNotAvailable": "Non sono disponibili chiavi di accesso",
-    "app.shortcut-help.comboLabel": "Menu a tendina",
+    "app.shortcut-help.comboLabel": "Combinazione",
     "app.shortcut-help.functionLabel": "Funzione",
     "app.shortcut-help.closeLabel": "Chiudi",
     "app.shortcut-help.closeDesc": "Chidui menu scorciatoie da tastiera",
@@ -442,8 +450,8 @@
     "app.shortcut-help.closePrivateChat": "Chiudi chat privata",
     "app.shortcut-help.openActions": "Apre il menu strumenti",
     "app.shortcut-help.openStatus": "Apre il menu di stato",
-    "app.shortcut-help.togglePan": "Attiva lo strumento PAN (Presentatore)",
-    "app.shortcut-help.nextSlideDesc": "Prossima slide (Presentatore)",
+    "app.shortcut-help.togglePan": "Attiva lo strumento Panoramico (Presentatore)",
+    "app.shortcut-help.nextSlideDesc": "Slide seguente (Presentatore)",
     "app.shortcut-help.previousSlideDesc": "Slide precedente (Presentatore)",
     "app.lock-viewers.title": "Blocca spettatori",
     "app.lock-viewers.description": "Queste impostazioni ti permettono di limitare le caratteristiche dei video utilizzate dagli spettatori (Queste impostazioni non si applicano ai moderatori)",
@@ -565,7 +573,7 @@
     "app.createBreakoutRoom.generatedURL": "Generato",
     "app.createBreakoutRoom.duration": "Durata {0}",
     "app.createBreakoutRoom.room": "Stanza {0}",
-    "app.createBreakoutRoom.notAssigned": "Non assegnata {0}",
+    "app.createBreakoutRoom.notAssigned": "Non assegnata ({0})",
     "app.createBreakoutRoom.join": "Entra nella stanza",
     "app.createBreakoutRoom.joinAudio": "Attiva audio",
     "app.createBreakoutRoom.returnAudio": "Ritorno audio",
diff --git a/bigbluebutton-html5/private/locales/ja.json b/bigbluebutton-html5/private/locales/ja.json
index a6e6dbb275f786598e8b3b4a0c0c5fb19062a478..8cd672994b2bb133e8118835aeeac51cacd8c9d6 100644
--- a/bigbluebutton-html5/private/locales/ja.json
+++ b/bigbluebutton-html5/private/locales/ja.json
@@ -120,6 +120,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "プレゼンテーションのダウンロードを許可する",
     "app.presentationUploder.removePresentationLabel": "プレゼンテーション削除",
     "app.presentationUploder.setAsCurrentPresentation": "現在のプレゼンテーションを表示する",
+    "app.presentationUploder.tableHeading.options": "オプション",
     "app.poll.pollPaneTitle": "投票",
     "app.poll.quickPollTitle": "簡易投票",
     "app.poll.hidePollDesc": "投票メニュー枠を隠す",
@@ -371,6 +372,8 @@
     "app.meeting.logout.ejectedFromMeeting": "会議から退室しました",
     "app.meeting.logout.validateTokenFailedEjectReason": "認証トークンが確認できませんでした",
     "app.meeting.logout.userInactivityEjectReason": "一定時間操作がなかったため、接続が中断されました",
+    "app.modal.close": "閉じる",
+    "app.modal.confirm": "完了",
     "app.dropdown.close": "閉じる",
     "app.error.400": "不正なリクエスト",
     "app.error.401": "権限がありません",
diff --git a/bigbluebutton-html5/private/locales/ja_JP.json b/bigbluebutton-html5/private/locales/ja_JP.json
index 30ea1662d245d9945865c9abb8de5e95b5debf1d..e2642d8164cfa19858b3a3685407b222d33a4c4b 100644
--- a/bigbluebutton-html5/private/locales/ja_JP.json
+++ b/bigbluebutton-html5/private/locales/ja_JP.json
@@ -120,6 +120,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "プレゼンテーションのダウンロードを許可する",
     "app.presentationUploder.removePresentationLabel": "プレゼンテーションを削除する",
     "app.presentationUploder.setAsCurrentPresentation": "現在のプレゼンテーションを表示する",
+    "app.presentationUploder.tableHeading.options": "オプション",
     "app.poll.pollPaneTitle": "投票",
     "app.poll.quickPollTitle": "簡易投票",
     "app.poll.hidePollDesc": "投票メニュー画面を隠す",
@@ -371,6 +372,8 @@
     "app.meeting.logout.ejectedFromMeeting": "会議から退室しました",
     "app.meeting.logout.validateTokenFailedEjectReason": "認証トークンが確認できませんでした",
     "app.meeting.logout.userInactivityEjectReason": "一定時間操作がなかったため、接続が中断されました",
+    "app.modal.close": "閉じる",
+    "app.modal.confirm": "完了",
     "app.dropdown.close": "閉じる",
     "app.error.400": "不正なリクエスト",
     "app.error.401": "権限がありません",
diff --git a/bigbluebutton-html5/private/locales/km.json b/bigbluebutton-html5/private/locales/km.json
index 155e13f2aef69e24e16b06e277f834cb742041f6..9c6367e379d16a432b201f8951790328cce84871 100644
--- a/bigbluebutton-html5/private/locales/km.json
+++ b/bigbluebutton-html5/private/locales/km.json
@@ -1,4 +1,5 @@
 {
+    "app.home.greeting": "បទ​បង្ហាញ​របស់​អ្នក​នឹង​ចាប់ផ្តើម​បន្តិច​ទៀត​នេះ",
     "app.chat.submitLabel": "ផ្ញើ​សារ",
     "app.chat.errorMinMessageLength": "សារ​នេះ​នៅ​ខ្វះ {0} តួ​អក្សរ​ទៀត",
     "app.chat.errorMaxMessageLength": "សារ​នេះ​លើស {0} តួ​អក្សរ",
@@ -16,6 +17,12 @@
     "app.chat.dropdown.save": "រក្សាទុក",
     "app.chat.label": "ការជជែក",
     "app.chat.emptyLogLabel": "កំណត់ត្រា​ការ​ជជែក​ទទេ",
+    "app.note.title": "ចំណាំរួមគ្នា",
+    "app.note.label": "ចំណាំ",
+    "app.note.hideNoteLabel": "លាក់ចំណាំ",
+    "app.user.activityCheck": "ការពិនិត្យសកម្មភាពអ្នកប្រើ",
+    "app.user.activityCheck.label": "ពិនិត្យថាតើអ្នកប្រើនៅក្នុងការប្រជុំទៀតទេ ({0})",
+    "app.user.activityCheck.check": "ពិនិត្យ",
     "app.userList.usersTitle": "អ្នកប្រើប្រាស់",
     "app.userList.participantsTitle": "អ្នកចូលរួម",
     "app.userList.messagesTitle": "សារ",
@@ -44,6 +51,7 @@
     "app.presentation.presentationToolbar.fitToWidth": "ទំហំ​សម​នឹង​ប្រវែង​ទទឹង",
     "app.presentationUploder.dismissLabel": "បោះបង់",
     "app.presentationUploder.genericError": "អុញ! មាន​បញ្ហា​អ្វី​មួយ​ហើយ",
+    "app.presentationUploder.tableHeading.options": "ជម្រើស",
     "app.poll.closeLabel": "បិទ",
     "app.poll.y": "បាទ/ចាស",
     "app.poll.n": "ទេ",
@@ -187,6 +195,7 @@
     "app.audio.listenOnly.backLabel": "ត្រឡប់",
     "app.audio.listenOnly.closeLabel": "បិទ",
     "app.error.meeting.ended": "អ្នកបានចាកចេញពីសន្និសិត",
+    "app.modal.close": "បិទ",
     "app.dropdown.close": "បិទ",
     "app.error.401": "មិន​អនុញ្ញាត",
     "app.error.404": "រក​មិន​ឃើញ",
diff --git a/bigbluebutton-html5/private/locales/pl_PL.json b/bigbluebutton-html5/private/locales/pl_PL.json
index 700c113d3a2ef1cb2d9b5a10fe3dc4f82e44baed..0c3959ffd13f323bcc3ef367c5bd349724969a91 100644
--- a/bigbluebutton-html5/private/locales/pl_PL.json
+++ b/bigbluebutton-html5/private/locales/pl_PL.json
@@ -28,6 +28,7 @@
     "app.audioNotification.closeLabel": "Zamknij",
     "app.audioModal.closeLabel": "Zamknij",
     "app.audio.listenOnly.closeLabel": "Zamknij",
+    "app.modal.close": "Zamknij",
     "app.dropdown.close": "Zamknij",
     "app.shortcut-help.closeLabel": "Zamknij",
     "app.videoPreview.closeLabel": "Zamknij",
diff --git a/bigbluebutton-html5/private/locales/pt.json b/bigbluebutton-html5/private/locales/pt.json
index a8ba2686408d81f3056cbee345ca1f0d9047c956..e5d30d1c3bd93f2d38104aad3d0a76c99e4d41bd 100644
--- a/bigbluebutton-html5/private/locales/pt.json
+++ b/bigbluebutton-html5/private/locales/pt.json
@@ -131,6 +131,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "Permitir que a apresentação seja descarregada",
     "app.presentationUploder.removePresentationLabel": "Eliminar apresentação",
     "app.presentationUploder.setAsCurrentPresentation": "Definir apresentação como atual",
+    "app.presentationUploder.tableHeading.options": "Opções",
     "app.poll.pollPaneTitle": "Sondagem",
     "app.poll.quickPollTitle": "Sondagem rápida",
     "app.poll.hidePollDesc": "Ocultar menu de sondagem",
@@ -393,6 +394,8 @@
     "app.meeting.logout.ejectedFromMeeting": "Foi removido da sessão",
     "app.meeting.logout.validateTokenFailedEjectReason": "A validação do token de autorização falhou",
     "app.meeting.logout.userInactivityEjectReason": "Utilizador inativo por demasiado tempo",
+    "app.modal.close": "Fechar",
+    "app.modal.confirm": "Terminado",
     "app.dropdown.close": "Fechar",
     "app.error.400": "400 Pedido incorreto",
     "app.error.401": "Não autorizado",
diff --git a/bigbluebutton-html5/private/locales/pt_BR.json b/bigbluebutton-html5/private/locales/pt_BR.json
index 526148850039c805fb710d91d85a37ad096cfff6..cf954e7ec084e79201ee35d888745f743d967805 100644
--- a/bigbluebutton-html5/private/locales/pt_BR.json
+++ b/bigbluebutton-html5/private/locales/pt_BR.json
@@ -78,6 +78,7 @@
     "app.meeting.alertMeetingEndsUnderOneMinute": "Sessão será fechada em um minuto.",
     "app.meeting.alertBreakoutEndsUnderOneMinute": "Sala de apoio será fechada em um minuto.",
     "app.presentation.hide": "Minimizar apresentação",
+    "app.presentation.notificationLabel": "Apresentação atual",
     "app.presentation.slideContent": "Conteúdo do slide",
     "app.presentation.startSlideContent": "Início do conteúdo do slide",
     "app.presentation.endSlideContent": "Fim do conteúdo do slide",
@@ -109,7 +110,7 @@
     "app.presentationUploder.confirmLabel": "Enviar",
     "app.presentationUploder.confirmDesc": "Salvar as alterações e inicie a apresentação",
     "app.presentationUploder.dismissLabel": "Cancelar",
-    "app.presentationUploder.dismissDesc": "Fechar a janela e descarte as alterações",
+    "app.presentationUploder.dismissDesc": "Feche a janela e descarte as alterações",
     "app.presentationUploder.dropzoneLabel": "Arraste arquivos aqui para carregar",
     "app.presentationUploder.dropzoneImagesLabel": "Arraste imagens aqui para carregar",
     "app.presentationUploder.browseFilesLabel": "ou procure arquivos",
@@ -131,6 +132,9 @@
     "app.presentationUploder.isNotDownloadableLabel": "Permitir download da apresentação",
     "app.presentationUploder.removePresentationLabel": "Remover apresentação",
     "app.presentationUploder.setAsCurrentPresentation": "Usar apresentação",
+    "app.presentationUploder.tableHeading.filename": "Nome do arquivo",
+    "app.presentationUploder.tableHeading.options": "Opções",
+    "app.presentationUploder.tableHeading.status": "Status",
     "app.poll.pollPaneTitle": "Enquete",
     "app.poll.quickPollTitle": "Enquete rápida",
     "app.poll.hidePollDesc": "Ocultar menu de enquetes",
@@ -143,6 +147,7 @@
     "app.poll.backLabel": "Voltar para opções de enquete",
     "app.poll.closeLabel": "Fechar",
     "app.poll.waitingLabel": "Aguardando respostas ({0}/{1})",
+    "app.poll.ariaInputCount": "Opção de enquete personalizada {0} de {1}",
     "app.poll.customPlaceholder": "Adicionar opção na enquete",
     "app.poll.noPresentationSelected": "Nenhuma apresentação selecionada! Por favor, selecione uma.",
     "app.poll.clickHereToSelect": "Clique aqui para selecionar",
@@ -179,6 +184,7 @@
     "app.navBar.settingsDropdown.hotkeysLabel": "Atalhos de teclado",
     "app.navBar.settingsDropdown.hotkeysDesc": "Lista de atalhos disponíveis",
     "app.navBar.settingsDropdown.helpLabel": "Ajuda",
+    "app.navBar.settingsDropdown.helpDesc": "Link para tutoriais em vídeo (abre uma nova guia do navegador)",
     "app.navBar.settingsDropdown.endMeetingDesc": "Encerra a sessão atual",
     "app.navBar.settingsDropdown.endMeetingLabel": "Encerrar sessão",
     "app.navBar.userListToggleBtnLabel": "Alternar lista de usuários",
@@ -273,6 +279,7 @@
     "app.settings.dataSavingTab.webcam": "Ativar webcams",
     "app.settings.dataSavingTab.screenShare": "Ativar o compartilhamento de tela",
     "app.settings.dataSavingTab.description": "Para economizar o volume de transferência de dados, ajuste o que está sendo exibido no momento.",
+    "app.settings.save-notification.label": "As configurações foram salvas",
     "app.switch.onLabel": "Ligar",
     "app.switch.offLabel": "Desligar",
     "app.actionsBar.actionsDropdown.actionsLabel": "Ações",
@@ -392,6 +399,12 @@
     "app.meeting.logout.ejectedFromMeeting": "Você foi removido da conferência",
     "app.meeting.logout.validateTokenFailedEjectReason": "Falha ao validar o token de autorização",
     "app.meeting.logout.userInactivityEjectReason": "Participante inativo por muito tempo",
+    "app.meeting-ended.rating.legendLabel": "Avaliação de feedback",
+    "app.meeting-ended.rating.starLabel": "Estrela",
+    "app.modal.close": "Fechar",
+    "app.modal.close.description": "Descartar alterações e fechar janela",
+    "app.modal.confirm": "Confirmar",
+    "app.modal.confirm.description": "Salvar alterações e fechar janela",
     "app.dropdown.close": "Fechar",
     "app.error.400": "400 Solicitação incorreta",
     "app.error.401": "Não autorizado",
@@ -428,7 +441,7 @@
     "app.shortcut-help.comboLabel": "Comandos",
     "app.shortcut-help.functionLabel": "Função",
     "app.shortcut-help.closeLabel": "Fechar",
-    "app.shortcut-help.closeDesc": "Fecha a caixa de diálogo de atalhos do teclado",
+    "app.shortcut-help.closeDesc": "Fecha a janela de atalhos do teclado",
     "app.shortcut-help.openOptions": "Abrir Configurações",
     "app.shortcut-help.toggleUserList": "Abrir / fechar a lista de usuários",
     "app.shortcut-help.toggleMute": "Mudo / Falar",
@@ -512,6 +525,7 @@
     "app.sfu.invalidSdp2202":"Erro 2202: Cliente gerou um SDP inválido",
     "app.sfu.noAvailableCodec2203": "Erro 2203: O servidor não encontrou um codec apropriado",
     "app.meeting.endNotification.ok.label": "OK",
+    "app.whiteboard.annotations.poll": "Os resultados da enquete foram publicados",
     "app.whiteboard.toolbar.tools": "Ferramentas",
     "app.whiteboard.toolbar.tools.hand": "Mover",
     "app.whiteboard.toolbar.tools.pencil": "Lápis",
@@ -570,7 +584,7 @@
     "app.createBreakoutRoom.randomlyAssign": "Atribuir aleatoriamente",
     "app.createBreakoutRoom.endAllBreakouts": "Encerrar todas as salas de apoio",
     "app.createBreakoutRoom.roomName": "{0} (Sala - {1})",
-    "app.createBreakoutRoom.doneLabel": "Pronto",
+    "app.createBreakoutRoom.doneLabel": "Confirmar",
     "app.createBreakoutRoom.nextLabel": "Próximo",
     "app.createBreakoutRoom.minusRoomTime": "Reduzir tempo de sala de apoio",
     "app.createBreakoutRoom.addRoomTime": "Aumentar tempo de sala de apoio",
diff --git a/bigbluebutton-html5/private/locales/ru_RU.json b/bigbluebutton-html5/private/locales/ru_RU.json
index f99f70e568d36644aa24672fca06ea35cab31951..ee67a9272a4ac3d550464c47e274fdbe978bd0b8 100644
--- a/bigbluebutton-html5/private/locales/ru_RU.json
+++ b/bigbluebutton-html5/private/locales/ru_RU.json
@@ -68,6 +68,7 @@
     "app.presentationUploder.genericError": "Ой, что-то пошло не так",
     "app.presentationUploder.upload.progress": "Загрузка ({0}%)",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Обработка страницы {0} из {1}",
+    "app.presentationUploder.tableHeading.options": "Опции",
     "app.poll.closeLabel": "Закрыть",
     "app.poll.y": "Да",
     "app.poll.n": "Нет",
@@ -233,6 +234,7 @@
     "app.audio.permissionsOverlay.title": "Разрешите BigBlueButton использовать ваши медиа-устройства",
     "app.error.removed": "Вас удалили из конференции",
     "app.error.meeting.ended": "Вы вышли из конференции",
+    "app.modal.close": "Закрыть",
     "app.dropdown.close": "Закрыть",
     "app.error.401": "Не авторизирован",
     "app.error.404": "Не найдено",
diff --git a/bigbluebutton-html5/private/locales/tr_TR.json b/bigbluebutton-html5/private/locales/tr_TR.json
index 84e7808594dd01d36bbd362f9bb29de382b8093f..399b86787be523a3ab6e62e5572e92007a65e04c 100644
--- a/bigbluebutton-html5/private/locales/tr_TR.json
+++ b/bigbluebutton-html5/private/locales/tr_TR.json
@@ -62,6 +62,7 @@
     "app.presentationUploder.genericError": "Hops, birÅŸeyler ters gitti",
     "app.presentationUploder.upload.progress": "Yükleniyor ({0}%)",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Sayfalar iÅŸleniyor: {0} / {1}",
+    "app.presentationUploder.tableHeading.options": "Seçenekler",
     "app.poll.closeLabel": "Kapat",
     "app.poll.y": "Evet",
     "app.poll.n": "Hayır",
@@ -225,6 +226,7 @@
     "app.audio.permissionsOverlay.title": "BigBlueButton'un Medya Cihazlarınızı kullanmasına izin verin",
     "app.error.removed": "Konferanstan uzaklaştırıldınız",
     "app.error.meeting.ended": "Konferanstan ayrıldınız",
+    "app.modal.close": "Kapat",
     "app.dropdown.close": "Kapat",
     "app.error.401": "Yetkisiz",
     "app.error.404": "Bulunamadı",
diff --git a/bigbluebutton-html5/private/locales/uk_UA.json b/bigbluebutton-html5/private/locales/uk_UA.json
index d8b0432d2cc9e0d7e15404b043cf2758a2d747c8..533610ef45e2688504d48efd8c474fe5759ad57d 100644
--- a/bigbluebutton-html5/private/locales/uk_UA.json
+++ b/bigbluebutton-html5/private/locales/uk_UA.json
@@ -112,6 +112,7 @@
     "app.presentationUploder.isNotDownloadableLabel": "Дозволити скачувати презентацію",
     "app.presentationUploder.removePresentationLabel": "Видалити презентацію",
     "app.presentationUploder.setAsCurrentPresentation": "Встановити презентацію поточною",
+    "app.presentationUploder.tableHeading.options": "Опції",
     "app.poll.pollPaneTitle": "Опитування",
     "app.poll.hidePollDesc": "Ховає панель меню опитувань",
     "app.poll.customPollInstruction": "Щоб створити своє опитування, оберіть кнопку нижче і введіть свої опції.",
@@ -353,6 +354,8 @@
     "app.audio.permissionsOverlay.hint": "Нам потрібно, щоб ви дозволили нам використовувати свої медіа-пристрої, щоб приєднатись до голосової конференції :)",
     "app.error.removed": "Ви були вилучені з конференції",
     "app.error.meeting.ended": "Ви вийшли з конференції",
+    "app.modal.close": "Закрити",
+    "app.modal.confirm": "Готово",
     "app.dropdown.close": "Закрити",
     "app.error.400": "Поганий запит",
     "app.error.401": "Неавторизований",
diff --git a/bigbluebutton-html5/private/locales/vi.json b/bigbluebutton-html5/private/locales/vi.json
new file mode 100644
index 0000000000000000000000000000000000000000..fb74959d86de521d7112396a0d5644ecd111794c
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/vi.json
@@ -0,0 +1,5 @@
+{
+    "app.home.greeting": "Bài thuyết trình của bạn sẽ bắt đầu ngay ..."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/vi_VN.json b/bigbluebutton-html5/private/locales/vi_VN.json
new file mode 100644
index 0000000000000000000000000000000000000000..16ab98ba11159f33e7708ac5fe6ec2a15a97bcd2
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/vi_VN.json
@@ -0,0 +1,75 @@
+{
+    "app.home.greeting": "Phần trình bày của bạn sẽ bắt đầu trong trong ít phút",
+    "app.chat.submitLabel": "Gửi tin nhắn",
+    "app.chat.errorMinMessageLength": "Thông báo là {0} kí tự quá ngắn",
+    "app.chat.errorMaxMessageLength": "Thông báo là{0} kí tự quá dài",
+    "app.chat.inputLabel": "Tin nhắn nhập vào cuộc trò chuyện{0}",
+    "app.chat.inputPlaceholder": "Thông báo {0}",
+    "app.chat.titlePublic": "Cuộc trò chuyện công khai",
+    "app.chat.titlePrivate": "Trò chuyện riêng tư với {0}",
+    "app.chat.closeChatLabel": "Đóng {0}",
+    "app.chat.hideChatLabel": "Ẩn {0}",
+    "app.chat.dropdown.options": "Tùy chọn trò chuyện",
+    "app.chat.dropdown.clear": "Xóa",
+    "app.chat.dropdown.copy": "Sao chép",
+    "app.chat.dropdown.save": "LÆ°u",
+    "app.chat.label": "Trò chuyện",
+    "app.chat.emptyLogLabel": "Nhật kí trò chuyện trống",
+    "app.chat.clearPublicChatMessage": "Lịch sử trò chuyện công khai được xóa bởi người quản lí",
+    "app.note.title": "Chia sẻ ghi chú",
+    "app.note.label": "Ghi chú",
+    "app.note.hideNoteLabel": "Ẩn ghi chú",
+    "app.user.activityCheck.label": "Kiểm tra nếu người dùng đang ở trong cuộc thảo luận {0}",
+    "app.user.activityCheck.check": "Kiểm tra",
+    "app.note.tipLabel": "Nhấn ESC dể chuyển ra thanh công cụ",
+    "app.userList.usersTitle": "Người dùng",
+    "app.userList.participantsTitle": "Người tham gia",
+    "app.userList.messagesTitle": "Thông báo",
+    "app.userList.notesTitle": "Ghi chú",
+    "app.userList.presenter": "Người trình bày",
+    "app.userList.you": "Bạn",
+    "app.userList.locked": "Bị khóa",
+    "app.userList.label": "Danh sách người dùng",
+    "app.userList.toggleCompactView.label": "Chuyển sang chế độ thu nhỏ",
+    "app.userList.guest": "Khách ",
+    "app.userList.menuTitleContext": "Tùy chọn khả dụng",
+    "app.userList.chatListItem.unreadSingular": "{0} Thông báo mới",
+    "app.userList.chatListItem.unreadPlural": "{0} Thông báo mới",
+    "app.userList.menu.chat.label": "Bắt đầu cuộc trò chuyện riêng tư ",
+    "app.userList.menu.clearStatus.label": "Xóa trạng thái",
+    "app.userList.menu.removeUser.label": "Xóa người dùng",
+    "app.userList.menu.muteUserAudio.label": "Chặn người dùng",
+    "app.userList.menu.unmuteUserAudio.label": "Bỏ chặn người dùng",
+    "app.userList.userAriaLabel": "{0}{1}{2} Trạng thái {3}",
+    "app.userList.menu.promoteUser.label": "Đề xuất tới người quản trị",
+    "app.userList.menu.demoteUser.label": "Giảm lượt xem",
+    "app.userList.menu.unlockUser.label": "Mở khóa {0}",
+    "app.userList.menu.lockUser.label": "Khóa {0}",
+    "app.userList.menu.directoryLookup.label": "Tra cứu thư mục",
+    "app.userList.menu.makePresenter.label": "Tạo người thuyết trình ",
+    "app.userList.userOptions.manageUsersLabel": "Quản lý người dùng",
+    "app.userList.userOptions.muteAllLabel": "Chặn tất cả người dùng",
+    "app.userList.userOptions.muteAllDesc": "Chặn tất cả người dùng trong cuộc hội thoại",
+    "app.userList.userOptions.clearAllLabel": "Xóa tất cả các biểu tượng trạng thái",
+    "app.userList.userOptions.clearAllDesc": "Xóa các biểu tượng trạng thái từ người dùng",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Chặn tất cả người dùng ngoại trừ người trình bày",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Chặn tất cả người dùng trong cuộc hội thoại ngoại trừ người trình bày",
+    "app.userList.userOptions.unmuteAllLabel": "Tắt chặn hội thoại",
+    "app.userList.userOptions.unmuteAllDesc": "Bỏ chặn hội thoại",
+    "app.userList.userOptions.lockViewersLabel": "Khóa người xem",
+    "app.userList.userOptions.lockViewersDesc": "Khóa một số chức năng nhất định cho người tham dự cuộc hội thoại",
+    "app.userList.userOptions.disableCam": "Webcam người dùng không khả dụng",
+    "app.userList.userOptions.disableMic": "Mic người dùng không khả dụng",
+    "app.userList.userOptions.disablePrivChat": "Trò chuyện riêng tư không khả dụng",
+    "app.userList.userOptions.disablePubChat": "Trò chuyện công khai không khả dụng",
+    "app.userList.userOptions.disableNote": "Chia sẻ ghi chú đã khóa ",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Chỉ người quản trị mới thấy được lượng người xem (Do khóa cài đặt)",
+    "app.media.label": "Truyền thông",
+    "app.poll.liveResult.usersTitle": "Người dùng",
+    "app.settings.usersTab.label": "Người tham gia",
+    "app.settings.main.save.label": "LÆ°u",
+    "app.user-info.title": "Tra cứu thư mục",
+    "app.lock-viewers.title": "Khóa người xem"
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/zh_CN.json b/bigbluebutton-html5/private/locales/zh_CN.json
index a18b87bdd7ac782c96ce07f7a88ef723dcda0a94..9f45a7afd2370767ca418e0bafbe0c13ed81579c 100644
--- a/bigbluebutton-html5/private/locales/zh_CN.json
+++ b/bigbluebutton-html5/private/locales/zh_CN.json
@@ -45,7 +45,7 @@
     "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.demoteUser.label": "降级为观众",
     "app.userList.menu.unlockUser.label": "解除{0}锁定状态",
     "app.userList.menu.lockUser.label": "锁定{0}",
     "app.userList.menu.directoryLookup.label": "目录查找",
@@ -59,13 +59,14 @@
     "app.userList.userOptions.muteAllExceptPresenterDesc": "静音此会议中除演示者以外的所有人 ",
     "app.userList.userOptions.unmuteAllLabel": "关闭会议静音模式",
     "app.userList.userOptions.unmuteAllDesc": "取消会议静音模式 ",
-    "app.userList.userOptions.lockViewersLabel": "锁定所有观看者",
+    "app.userList.userOptions.lockViewersLabel": "锁定观众",
     "app.userList.userOptions.lockViewersDesc": "锁定此会议参与者特定会议功能 ",
     "app.userList.userOptions.disableCam": "已禁用观众的网络摄像机",
     "app.userList.userOptions.disableMic": "已禁用观众的麦克风",
-    "app.userList.userOptions.disablePrivChat": "已禁用私人聊天",
+    "app.userList.userOptions.disablePrivChat": "已禁用私聊",
     "app.userList.userOptions.disablePubChat": "已禁用公共聊天",
-    "app.userList.userOptions.webcamsOnlyForModerator": "只有主持人才能看到观众的网络摄像机(由于锁定设置)",
+    "app.userList.userOptions.disableNote": "共享笔记现已锁定",
+    "app.userList.userOptions.webcamsOnlyForModerator": "只有主持人才能看到观众的网络摄像机(由锁定设置)",
     "app.media.label": "媒体",
     "app.media.screenshare.start": "屏幕分享已开始",
     "app.media.screenshare.end": "屏幕分享已结束",
@@ -77,6 +78,7 @@
     "app.meeting.alertMeetingEndsUnderOneMinute": "会议将在一分钟之内结束。 ",
     "app.meeting.alertBreakoutEndsUnderOneMinute": "分组讨论将在一分钟之内结束。",
     "app.presentation.hide": "隐藏演示",
+    "app.presentation.notificationLabel": "当前演示文稿",
     "app.presentation.slideContent": "幻灯片内容 ",
     "app.presentation.startSlideContent": "幻灯片内容起始",
     "app.presentation.endSlideContent": "幻灯片内容结束 ",
@@ -130,6 +132,9 @@
     "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": "隐藏投票菜单 ",
@@ -142,6 +147,7 @@
     "app.poll.backLabel": "返回投票选项",
     "app.poll.closeLabel": "关闭",
     "app.poll.waitingLabel": "正在等待响应 ({0}/{1})",
+    "app.poll.ariaInputCount": "自定义投票选项 {0} of {1}",
     "app.poll.customPlaceholder": "增加选项",
     "app.poll.noPresentationSelected": "没有选择演示文件!请选择。",
     "app.poll.clickHereToSelect": "点击选择",
@@ -178,6 +184,7 @@
     "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": "切换用户列表",
@@ -189,7 +196,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": "关于",
@@ -241,13 +248,13 @@
     "app.submenu.closedCaptions.fontColorLabel": "字体颜色",
     "app.submenu.closedCaptions.noLocaleSelected": "没有选择地区",
     "app.submenu.participants.muteAllLabel": "将演示者以外的人都静音",
-    "app.submenu.participants.lockAllLabel": "锁定所有观看者",
-    "app.submenu.participants.lockItemLabel": "观看者{0}",
-    "app.submenu.participants.lockMicDesc": "禁用所有锁定状态观看者的麦克风",
-    "app.submenu.participants.lockCamDesc": "禁用所有锁定状态观看者的摄像头",
-    "app.submenu.participants.lockPublicChatDesc": "禁止所有被锁定的观看者参与公共聊天",
-    "app.submenu.participants.lockPrivateChatDesc": "禁止所有被锁定的观看者参与私聊",
-    "app.submenu.participants.lockLayoutDesc": "锁定所有被锁定的观看者的页面布局",
+    "app.submenu.participants.lockAllLabel": "锁定所有观众",
+    "app.submenu.participants.lockItemLabel": "观众{0}",
+    "app.submenu.participants.lockMicDesc": "禁用所有锁定观众的麦克风",
+    "app.submenu.participants.lockCamDesc": "禁用所有锁定观众的摄像头",
+    "app.submenu.participants.lockPublicChatDesc": "禁止所有锁定观众参与公共聊天",
+    "app.submenu.participants.lockPrivateChatDesc": "禁止所有锁定观众私聊",
+    "app.submenu.participants.lockLayoutDesc": "锁定所有已锁定观众的页面布局",
     "app.submenu.participants.lockMicAriaLabel": "锁定麦克风",
     "app.submenu.participants.lockCamAriaLabel": "锁定摄像头",
     "app.submenu.participants.lockPublicChatAriaLabel": "锁定公共聊天",
@@ -272,6 +279,7 @@
     "app.settings.dataSavingTab.webcam": "启用摄像头",
     "app.settings.dataSavingTab.screenShare": "启用桌面共享",
     "app.settings.dataSavingTab.description": "调整当前显示以节省带宽",
+    "app.settings.save-notification.label": "设置已保存",
     "app.switch.onLabel": "开启",
     "app.switch.offLabel": "关闭",
     "app.actionsBar.actionsDropdown.actionsLabel": "操作",
@@ -327,7 +335,7 @@
     "app.audioNotification.audioFailedMessage": "您的音频连接失败了",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia 失败,因为只允许安全的来源",
     "app.audioNotification.closeLabel": "关闭",
-    "app.audioNotificaion.reconnectingAsListenOnly": "观看者的麦克风被锁定,您现在仅能聆听。",
+    "app.audioNotificaion.reconnectingAsListenOnly": "观众的麦克风被锁定,您现在仅能聆听。",
     "app.breakoutJoinConfirmation.title": "加入分组会议室",
     "app.breakoutJoinConfirmation.message": "您想加入吗?",
     "app.breakoutJoinConfirmation.confirmLabel": "加入",
@@ -338,6 +346,7 @@
     "app.breakoutTimeRemainingMessage": "分组讨论剩余时间:{0}",
     "app.breakoutWillCloseMessage": "分组讨论结束。分组会议室将被关闭。",
     "app.calculatingBreakoutTimeRemaining": "计算剩余时间...",
+    "app.audioModal.ariaTitle": "加入音频模式",
     "app.audioModal.microphoneLabel": "麦克风",
     "app.audioModal.listenOnlyLabel": "仅聆听",
     "app.audioModal.audioChoiceLabel": "您想怎么加入音频交流?",
@@ -351,7 +360,7 @@
     "app.audioModal.no": "否",
     "app.audioModal.yes.arialabel" : "能听见回音",
     "app.audioModal.no.arialabel" : "听不见回音",
-    "app.audioModal.echoTestTitle": "这是回音测试,别人无法听到。请说几句话。您能听到声音吗?",
+    "app.audioModal.echoTestTitle": "这是回音测试,别人无法听到。请说几句话。您能听到自己的声音吗?",
     "app.audioModal.settingsTitle": "更改您的音频设置",
     "app.audioModal.helpTitle": "您的视音频相关设备出了个问题。",
     "app.audioModal.helpText": "您允许浏览器获取访问您麦克风的权限了吗?请注意当您尝试加入音频会议时会有一个窗口出现,向您请求媒体设备的权限,请允许以便能加入音频会议。如果没有出现这样的窗口,请尝试在浏览器设置中更改麦克风的权限。",
@@ -390,6 +399,12 @@
     "app.meeting.logout.ejectedFromMeeting": "您已经从这个会议中被移除",
     "app.meeting.logout.validateTokenFailedEjectReason": "验证授权密钥失败",
     "app.meeting.logout.userInactivityEjectReason": "用户太长时间处于非活动状态",
+    "app.meeting-ended.rating.legendLabel": "反馈评级",
+    "app.meeting-ended.rating.starLabel": "Star",
+    "app.modal.close": "关闭",
+    "app.modal.close.description": "丢弃更改并关闭模式",
+    "app.modal.confirm": "完成",
+    "app.modal.confirm.description": "保存更改并关闭模式",
     "app.dropdown.close": "关闭",
     "app.error.400": "错误请求",
     "app.error.401": "未授权",
@@ -438,21 +453,23 @@
     "app.shortcut-help.togglePan": "激活Pan工具(演示者)",
     "app.shortcut-help.nextSlideDesc": "下一张幻灯片(演示者)",
     "app.shortcut-help.previousSlideDesc": "上一张幻灯片(演示者)",
-    "app.lock-viewers.title": "锁定所有观看者",
+    "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.otherViewersWebcamLabel": "观看其他观众的摄像头",
     "app.lock-viewers.microphoneLable": "麦克风",
     "app.lock-viewers.PublicChatLabel": "公共聊天",
     "app.lock-viewers.PrivateChatLable": "私聊",
+    "app.lock-viewers.notesLabel": "共享的笔记",
     "app.lock-viewers.Layout": "页面布局",
+    "app.lock-viewers.ariaTitle": "锁定观众模式",
     "app.recording.startTitle": "开始录制",
     "app.recording.stopTitle": "暂停录制",
     "app.recording.resumeTitle": "恢复录制",
-    "app.recording.startDescription": "(您稍后可以再一次点击录制按钮以暂停录制。)",
-    "app.recording.stopDescription": "您确定要暂停录制吗?(您可以再一次点击录制按钮以重新录制。)",
+    "app.recording.startDescription": "(稍后可以再次点击“录制”按钮暂停录制。)",
+    "app.recording.stopDescription": "您确定要暂停录制吗?(再次点“录制”按钮可以恢复录制。)",
     "app.videoPreview.cameraLabel": "摄像头",
     "app.videoPreview.profileLabel": "质量",
     "app.videoPreview.cancelLabel": "取消",
@@ -508,6 +525,7 @@
     "app.sfu.invalidSdp2202":"Error 2202: 客户端生成了无效的SDP",
     "app.sfu.noAvailableCodec2203": "Error 2203: 服务器找不到合适的编解码器",
     "app.meeting.endNotification.ok.label": "确认",
+    "app.whiteboard.annotations.poll": "投票结果已公布",
     "app.whiteboard.toolbar.tools": "工具",
     "app.whiteboard.toolbar.tools.hand": "移动",
     "app.whiteboard.toolbar.tools.pencil": "铅笔",
diff --git a/bigbluebutton-html5/private/locales/zh_TW.json b/bigbluebutton-html5/private/locales/zh_TW.json
index 7f498a09e3dbfc69dadd3582a3175d02e80cd2f1..dacbba2b817dd3055ee8e9a4555cf580e5f4b813 100644
--- a/bigbluebutton-html5/private/locales/zh_TW.json
+++ b/bigbluebutton-html5/private/locales/zh_TW.json
@@ -78,6 +78,7 @@
     "app.meeting.alertMeetingEndsUnderOneMinute": "會議將在一分鐘內結束",
     "app.meeting.alertBreakoutEndsUnderOneMinute": "分組討論將在一分鐘之內結束",
     "app.presentation.hide": "隱藏簡報",
+    "app.presentation.notificationLabel": "目前簡報",
     "app.presentation.slideContent": "投影片內容",
     "app.presentation.startSlideContent": "投影片開始",
     "app.presentation.endSlideContent": "投影片結束",
@@ -131,6 +132,9 @@
     "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": "隱藏投票面版選單",
@@ -397,6 +401,10 @@
     "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.confirm.description": "儲存變更並且關閉模組",
     "app.dropdown.close": "關閉",
     "app.error.400": "錯誤請求",
     "app.error.401": "未授權",