diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectUserFromMeetingCmdMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectUserFromMeetingCmdMsgHdlr.scala
index 29014f5c5bf21d84a05620a11736c28ae94a9fb5..4915c73f8008aedf314b931c842de390cf1fbd21 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectUserFromMeetingCmdMsgHdlr.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectUserFromMeetingCmdMsgHdlr.scala
@@ -4,7 +4,7 @@ import org.bigbluebutton.common2.msgs._
 import org.bigbluebutton.core.running.{ LiveMeeting, OutMsgRouter }
 import org.bigbluebutton.core2.message.senders.Sender
 import org.bigbluebutton.core.apps.{ PermissionCheck, RightsManagementTrait }
-import org.bigbluebutton.core.models.EjectReasonCode
+import org.bigbluebutton.core.models.{ EjectReasonCode, RegisteredUsers }
 
 trait EjectUserFromMeetingCmdMsgHdlr extends RightsManagementTrait {
   this: UsersApp =>
@@ -28,9 +28,32 @@ trait EjectUserFromMeetingCmdMsgHdlr extends RightsManagementTrait {
       PermissionCheck.ejectUserForFailedPermission(meetingId, msg.header.userId, reason, outGW, liveMeeting)
     } else {
       val reason = "user ejected by another user"
-      UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.EJECT_USER)
-      // send a system message to force disconnection
-      Sender.sendDisconnectClientSysMsg(meetingId, userId, ejectedBy, EjectReasonCode.EJECT_USER, outGW)
+      for {
+        registeredUser <- RegisteredUsers.findWithUserId(userId, liveMeeting.registeredUsers)
+        ejectedByUser <- RegisteredUsers.findWithUserId(ejectedBy, liveMeeting.registeredUsers)
+      } yield {
+        if (registeredUser.externId != ejectedByUser.externId) {
+          // Eject users
+          //println("****************** User " + ejectedBy + " ejecting user " + userId)
+          // User might have joined using multiple browsers.
+          // Hunt down all registered users based on extern userid and eject them all.
+          // ralam april 21, 2020
+          RegisteredUsers.findAllWithExternUserId(registeredUser.externId, liveMeeting.registeredUsers) foreach { ru =>
+            //println("****************** User " + ejectedBy + " ejecting other user " + ru.id)
+            UsersApp.ejectUserFromMeeting(outGW, liveMeeting, ru.id, ejectedBy, reason, EjectReasonCode.EJECT_USER)
+            // send a system message to force disconnection
+            Sender.sendDisconnectClientSysMsg(meetingId, ru.id, ejectedBy, EjectReasonCode.EJECT_USER, outGW)
+          }
+        } else {
+          // User is ejecting self, so just eject this userid not all sessions if joined using multiple
+          // browsers. ralam april 23, 2020
+          //println("****************** User " + ejectedBy + " ejecting self " + userId)
+          UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.EJECT_USER)
+          // send a system message to force disconnection
+          Sender.sendDisconnectClientSysMsg(meetingId, userId, ejectedBy, EjectReasonCode.EJECT_USER, outGW)
+        }
+
+      }
     }
   }
 }
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
index 8570f52a8c5aeed89d0a7d85258254a129177aa9..f3b6ccbdc484159046053d36122173b706621d92 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
@@ -105,7 +105,7 @@ object UsersApp {
 
     for {
       user <- Users2x.ejectFromMeeting(liveMeeting.users2x, userId)
-      reguser <- RegisteredUsers.remove(userId, liveMeeting.registeredUsers)
+      reguser <- RegisteredUsers.eject(userId, liveMeeting.registeredUsers, ejectedBy)
     } yield {
       sendUserEjectedMessageToClient(outGW, meetingId, userId, ejectedBy, reason, reasonCode)
       sendUserLeftMeetingToAllClients(outGW, meetingId, userId)
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/ValidateAuthTokenReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/ValidateAuthTokenReqMsgHdlr.scala
index 8102507b9507471045a20800331fbd1f72905781..bae7853a5b5faff56cb806a050b8008e3b3f3355 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/ValidateAuthTokenReqMsgHdlr.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/ValidateAuthTokenReqMsgHdlr.scala
@@ -5,7 +5,7 @@ import org.bigbluebutton.core.bus.InternalEventBus
 import org.bigbluebutton.core.domain.MeetingState2x
 import org.bigbluebutton.core.models._
 import org.bigbluebutton.core.running.{ HandlerHelpers, LiveMeeting, OutMsgRouter }
-import org.bigbluebutton.core2.message.senders.{ MsgBuilder }
+import org.bigbluebutton.core2.message.senders.{ MsgBuilder, Sender }
 
 trait ValidateAuthTokenReqMsgHdlr extends HandlerHelpers {
   this: UsersApp =>
@@ -17,33 +17,70 @@ trait ValidateAuthTokenReqMsgHdlr extends HandlerHelpers {
   def handleValidateAuthTokenReqMsg(msg: ValidateAuthTokenReqMsg, state: MeetingState2x): MeetingState2x = {
     log.debug("RECEIVED ValidateAuthTokenReqMsg msg {}", msg)
 
+    var failReason = "Invalid auth token."
+    var failReasonCode = EjectReasonCode.VALIDATE_TOKEN
+
     val regUser = RegisteredUsers.getRegisteredUserWithToken(msg.body.authToken, msg.body.userId,
       liveMeeting.registeredUsers)
 
     regUser match {
       case Some(u) =>
-        if (u.guestStatus == GuestStatus.ALLOW) {
+        // Check if ejected user is rejoining.
+        // Fail validation if ejected user is rejoining.
+        // ralam april 21, 2020
+        if (u.guestStatus == GuestStatus.ALLOW && !u.ejected) {
           userValidated(u, state)
         } else {
-          validateTokenFailed(outGW, meetingId = liveMeeting.props.meetingProp.intId,
-            userId = msg.header.userId, authToken = msg.body.authToken,
-            valid = false, waitForApproval = false, state)
+          if (u.ejected) {
+            failReason = "Ejected user rejoining"
+            failReasonCode = EjectReasonCode.EJECTED_USER_REJOINING
+          }
+          validateTokenFailed(
+            outGW,
+            meetingId = liveMeeting.props.meetingProp.intId,
+            userId = msg.header.userId,
+            authToken = msg.body.authToken,
+            valid = false,
+            waitForApproval = false,
+            failReason,
+            failReasonCode,
+            state
+          )
         }
 
       case None =>
-        validateTokenFailed(outGW, meetingId = liveMeeting.props.meetingProp.intId,
-          userId = msg.header.userId, authToken = msg.body.authToken,
-          valid = false, waitForApproval = false, state)
+        validateTokenFailed(
+          outGW,
+          meetingId = liveMeeting.props.meetingProp.intId,
+          userId = msg.header.userId,
+          authToken = msg.body.authToken,
+          valid = false,
+          waitForApproval = false,
+          failReason,
+          failReasonCode,
+          state
+        )
 
     }
   }
 
-  def validateTokenFailed(outGW: OutMsgRouter, meetingId: String, userId: String, authToken: String,
-                          valid: Boolean, waitForApproval: Boolean, state: MeetingState2x): MeetingState2x = {
+  def validateTokenFailed(
+      outGW:           OutMsgRouter,
+      meetingId:       String,
+      userId:          String,
+      authToken:       String,
+      valid:           Boolean,
+      waitForApproval: Boolean,
+      reason:          String,
+      reasonCode:      String,
+      state:           MeetingState2x
+  ): MeetingState2x = {
     val event = MsgBuilder.buildValidateAuthTokenRespMsg(meetingId, userId, authToken, valid, waitForApproval)
     outGW.send(event)
 
-    UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, SystemUser.ID, "Invalid auth token.", EjectReasonCode.VALIDATE_TOKEN)
+    // send a system message to force disconnection
+    // Comment out as meteor will disconnect the client. Requested by Tiago (ralam apr 28, 2020)
+    //Sender.sendDisconnectClientSysMsg(meetingId, userId, SystemUser.ID, reasonCode, outGW)
 
     state
   }
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala
index ac38722dd642859065d440c58d6be7547b225262..5b614c3d6af31a14fc902c75670a8da28e3edf9b 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserJoinedVoiceConfEvtMsgHdlr.scala
@@ -2,7 +2,9 @@ package org.bigbluebutton.core.apps.voice
 
 import org.bigbluebutton.SystemConfiguration
 import org.bigbluebutton.common2.msgs._
+import org.bigbluebutton.core.models.VoiceUsers
 import org.bigbluebutton.core.running.{ LiveMeeting, MeetingActor, OutMsgRouter }
+import org.bigbluebutton.core2.message.senders.MsgBuilder
 
 trait UserJoinedVoiceConfEvtMsgHdlr extends SystemConfiguration {
   this: MeetingActor =>
@@ -13,19 +15,29 @@ trait UserJoinedVoiceConfEvtMsgHdlr extends SystemConfiguration {
   def handleUserJoinedVoiceConfEvtMsg(msg: UserJoinedVoiceConfEvtMsg): Unit = {
     log.info("Received user joined voice conference " + msg)
 
-    VoiceApp.handleUserJoinedVoiceConfEvtMsg(
-      liveMeeting,
-      outGW,
-      eventBus,
-      msg.body.voiceConf,
-      msg.body.intId,
-      msg.body.voiceUserId,
-      msg.body.callingWith,
-      msg.body.callerIdName,
-      msg.body.callerIdNum,
-      msg.body.muted,
-      msg.body.talking,
-      "freeswitch"
-    )
+    if (VoiceUsers.isCallerBanned(msg.body.callerIdNum, liveMeeting.voiceUsers)) {
+      log.info("Ejecting banned voice user " + msg)
+      val event = MsgBuilder.buildEjectUserFromVoiceConfSysMsg(
+        props.meetingProp.intId,
+        props.voiceProp.voiceConf,
+        msg.body.voiceUserId
+      )
+      outGW.send(event)
+    } else {
+      VoiceApp.handleUserJoinedVoiceConfEvtMsg(
+        liveMeeting,
+        outGW,
+        eventBus,
+        msg.body.voiceConf,
+        msg.body.intId,
+        msg.body.voiceUserId,
+        msg.body.callingWith,
+        msg.body.callerIdName,
+        msg.body.callerIdNum,
+        msg.body.muted,
+        msg.body.talking,
+        "freeswitch"
+      )
+    }
   }
 }
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/RegisteredUsers.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/RegisteredUsers.scala
index c009167680c03bc19a158c44e716d8fa730ff579..052b4e85958083aaf0e4d76ed42825a43ae67df6 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/RegisteredUsers.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/RegisteredUsers.scala
@@ -18,6 +18,7 @@ object RegisteredUsers {
       guestStatus,
       System.currentTimeMillis(),
       false,
+      false,
       false
     )
   }
@@ -30,6 +31,14 @@ object RegisteredUsers {
     users.toVector.find(ru => id == ru.id)
   }
 
+  def findWithExternUserId(id: String, users: RegisteredUsers): Option[RegisteredUser] = {
+    users.toVector.find(ru => id == ru.externId)
+  }
+
+  def findAllWithExternUserId(id: String, users: RegisteredUsers): Vector[RegisteredUser] = {
+    users.toVector.filter(ru => id == ru.externId)
+  }
+
   def findUsersNotJoined(users: RegisteredUsers): Vector[RegisteredUser] = {
     users.toVector.filter(u => u.joined == false && u.markAsJoinTimedOut == false)
   }
@@ -50,11 +59,52 @@ object RegisteredUsers {
   }
 
   def add(users: RegisteredUsers, user: RegisteredUser): Vector[RegisteredUser] = {
-    users.save(user)
+
+    findWithExternUserId(user.externId, users) match {
+      case Some(u) =>
+        if (u.ejected) {
+          // Ejected user is rejoining. Don't add so that validate token
+          // will fail and can't join.
+          // ralam april 21, 2020
+          val ejectedUser = user.copy(ejected = true)
+          users.save(ejectedUser)
+        } else {
+          // If user hasn't been ejected, we allow user to join
+          // as the user might be joining using 2 browsers for
+          // better management of meeting.
+          // ralam april 21, 2020
+          users.save(user)
+        }
+      case None =>
+        users.save(user)
+    }
+
   }
 
-  def remove(id: String, users: RegisteredUsers): Option[RegisteredUser] = {
-    users.delete(id)
+  private def banUser(ejectedUser: RegisteredUser, users: RegisteredUsers, ejectedByUser: RegisteredUser): RegisteredUser = {
+    // Some users join with multiple browser to manage the meeting.
+    // Don't black list a user ejecting oneself.
+    // ralam april 23, 2020
+    if (ejectedUser.externId != ejectedByUser.externId) {
+      // Set a flag that user has been ejected. We flag the user instead of
+      // removing so we can eject when user tries to rejoin with the same
+      // external userid.
+      // ralam april 21, 2020
+      val u = ejectedUser.modify(_.ejected).setTo(true)
+      users.save(u)
+      u
+    } else {
+      users.delete(ejectedUser.id)
+      ejectedUser
+    }
+  }
+  def eject(id: String, users: RegisteredUsers, ejectedBy: String): Option[RegisteredUser] = {
+    for {
+      ru <- findWithUserId(id, users)
+      eu <- findWithUserId(ejectedBy, users)
+    } yield {
+      banUser(ru, users, eu)
+    }
   }
 
   def setWaitingForApproval(users: RegisteredUsers, user: RegisteredUser,
@@ -115,6 +165,7 @@ case class RegisteredUser(
     guestStatus:        String,
     registeredOn:       Long,
     joined:             Boolean,
-    markAsJoinTimedOut: Boolean
+    markAsJoinTimedOut: Boolean,
+    ejected:            Boolean
 )
 
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/Users2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/Users2x.scala
index 7cf646c2739a02aad668deb72b6eb821d7aefc9b..3e00cca80fe660be7b8fd03bb257915af567a110 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/Users2x.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/Users2x.scala
@@ -297,4 +297,5 @@ object EjectReasonCode {
   val SYSTEM_EJECT_USER = "system_requested_eject_reason"
   val VALIDATE_TOKEN = "validate_token_failed_eject_reason"
   val USER_INACTIVITY = "user_inactivity_eject_reason"
+  val EJECTED_USER_REJOINING = "ejected_user_rejoining_reason"
 }
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/VoiceUsers.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/VoiceUsers.scala
index ba0783a9df0e9a61b083089c6444e17b3f3f30af..58cfb7dcdcc1d8466331eb11db8419726420fd23 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/VoiceUsers.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/models/VoiceUsers.scala
@@ -17,6 +17,16 @@ object VoiceUsers {
   def findAllFreeswitchCallers(users: VoiceUsers): Vector[VoiceUserState] = users.toVector.filter(u => u.calledInto == "freeswitch")
   def findAllKurentoCallers(users: VoiceUsers): Vector[VoiceUserState] = users.toVector.filter(u => u.calledInto == "kms")
 
+  def findAllBannedCallers(users: VoiceUsers): Vector[VoiceUserState] = users.bannedUsers.values.toVector
+
+  def isCallerBanned(callerIdNum: String, users: VoiceUsers): Boolean = {
+    users.bannedUsers.contains(callerIdNum)
+  }
+
+  def ban(users: VoiceUsers, user: VoiceUserState): Unit = {
+    users.ban(user)
+  }
+
   def add(users: VoiceUsers, user: VoiceUserState): Unit = {
     users.save(user)
   }
@@ -67,12 +77,21 @@ object VoiceUsers {
 class VoiceUsers {
   private var users: collection.immutable.HashMap[String, VoiceUserState] = new collection.immutable.HashMap[String, VoiceUserState]
 
+  // Keep track of ejected voice users to prevent them from rejoining.
+  // ralam april 23, 2020
+  private var bannedUsers: collection.immutable.HashMap[String, VoiceUserState] = new collection.immutable.HashMap[String, VoiceUserState]
+
   // Collection of users that left the meeting. We keep a cache of the old users state to recover in case
   // the user reconnected by refreshing the client. (ralam june 13, 2017)
   private var usersCache: collection.immutable.HashMap[String, VoiceUserState] = new collection.immutable.HashMap[String, VoiceUserState]
 
   private def toVector: Vector[VoiceUserState] = users.values.toVector
 
+  private def ban(user: VoiceUserState): VoiceUserState = {
+    bannedUsers += user.callerNum -> user
+    user
+  }
+
   private def save(user: VoiceUserState): VoiceUserState = {
     users += user.intId -> user
     user
@@ -134,4 +153,4 @@ case class VoiceUserState(
     listenOnly:         Boolean,
     calledInto:         String,
     lastStatusUpdateOn: Long
-)
\ No newline at end of file
+)
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/EjectUserFromVoiceCmdMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/EjectUserFromVoiceCmdMsgHdlr.scala
index d57fe26591ae1f6b1e4fa2ff7222ccfe155b1d20..e49cb48bde1f794be7ab7a739dceee6a3e233bae 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/EjectUserFromVoiceCmdMsgHdlr.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/EjectUserFromVoiceCmdMsgHdlr.scala
@@ -23,6 +23,7 @@ trait EjectUserFromVoiceCmdMsgHdlr extends RightsManagementTrait {
         u <- VoiceUsers.findWithIntId(liveMeeting.voiceUsers, msg.body.userId)
       } yield {
         log.info("Ejecting user from voice.  meetingId=" + props.meetingProp.intId + " userId=" + u.intId)
+        VoiceUsers.ban(liveMeeting.voiceUsers, u)
         val event = MsgBuilder.buildEjectUserFromVoiceConfSysMsg(props.meetingProp.intId, props.voiceProp.voiceConf, u.voiceUserId)
         outGW.send(event)
       }
diff --git a/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java b/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
index a6a4e60a0c2f02bd090d3a5644fc18545eb1b0e9..c42e80f7be42b2d925ff3baadea1baddad0c8180 100755
--- a/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
+++ b/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
@@ -56,7 +56,7 @@ public class ESLEventListener implements IEslEventListener {
     private static final Pattern CALLERNAME_PATTERN = Pattern.compile("(.*)-bbbID-(.*)$");
     private static final Pattern CALLERNAME_WITH_SESS_INFO_PATTERN = Pattern.compile("^(.*)_(\\d+)-bbbID-(.*)$");
     private static final Pattern CALLERNAME_LISTENONLY_PATTERN = Pattern.compile("^(.*)_(\\d+)-bbbID-LISTENONLY-(.*)$");
-    private static final Pattern ECHO_TEST_DEST_PATTERN = Pattern.compile("^9196(\\d+)$");
+    private static final Pattern ECHO_TEST_DEST_PATTERN = Pattern.compile("^echo(\\d+)$");
     
     @Override
     public void conferenceEventJoin(String uniqueId, String confName, int confSize, EslEvent event) {
@@ -334,7 +334,13 @@ public class ESLEventListener implements IEslEventListener {
                     callerName = callerListenOnly.group(3).trim();
                 }
 
-                VoiceCallStateEvent csEvent = new VoiceCallStateEvent(varvBridge,
+                String conf = origCallerDestNumber;
+                Matcher callerDestNumberMatcher = ECHO_TEST_DEST_PATTERN.matcher(origCallerDestNumber);
+                if (callerDestNumberMatcher.matches()) {
+                    conf = callerDestNumberMatcher.group(1).trim();
+                }
+
+                VoiceCallStateEvent csEvent = new VoiceCallStateEvent(conf,
                         coreuuid,
                         clientSession,
                         voiceUserId,
@@ -367,7 +373,13 @@ public class ESLEventListener implements IEslEventListener {
                     callerName = callerListenOnly.group(3).trim();
                 }
 
-                VoiceCallStateEvent csEvent = new VoiceCallStateEvent(varvBridge,
+                String conf = origCallerDestNumber;
+                Matcher callerDestNumberMatcher = ECHO_TEST_DEST_PATTERN.matcher(origCallerDestNumber);
+                if (callerDestNumberMatcher.matches()) {
+                    conf = callerDestNumberMatcher.group(1).trim();
+                }
+
+                VoiceCallStateEvent csEvent = new VoiceCallStateEvent(conf,
                         coreuuid,
                         clientSession,
                         voiceUserId,
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 5598724cf6e2a6d3c3c440c5b248893628ed9310..a6953c0dea2fea7c08d43178c9dfe8ed4622197c 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
@@ -122,6 +122,29 @@ public class ParamsProcessorUtil {
     private Integer userActivitySignResponseDelayInMinutes = 5;
     private Boolean defaultAllowDuplicateExtUserid = true;
 
+	private String formatConfNum(String s) {
+		if (s.length() == 5) {
+			StringBuilder confNumDash = new StringBuilder(s);
+			confNumDash.insert(2, '-');
+			return confNumDash.toString();
+		} else if (s.length() == 6 || s.length() == 7) {
+			StringBuilder confNumDash = new StringBuilder(s);
+			confNumDash.insert(3, '-');
+			return confNumDash.toString();
+		} else if (s.length() == 8) {
+			StringBuilder confNumDash = new StringBuilder(s);
+			confNumDash.insert(4, '-');
+			return confNumDash.toString();
+		} else if (s.length() == 9) {
+			StringBuilder confNumDash = new StringBuilder(s);
+			confNumDash.insert(3, '-');
+			confNumDash.insert(7, '-');
+			return confNumDash.toString();
+		}
+
+		return s;
+	}
+
     private String substituteKeywords(String message, String dialNumber, String telVoice, String meetingName) {
         String welcomeMessage = message;
 
@@ -135,7 +158,7 @@ public class ParamsProcessorUtil {
             if (keyword.equals(DIAL_NUM)) {
                 welcomeMessage = welcomeMessage.replaceAll(DIAL_NUM, dialNumber);
             } else if (keyword.equals(CONF_NUM)) {
-                welcomeMessage = welcomeMessage.replaceAll(CONF_NUM, telVoice);
+                welcomeMessage = welcomeMessage.replaceAll(CONF_NUM, formatConfNum(telVoice));
             } else if (keyword.equals(CONF_NAME)) {
                 welcomeMessage = welcomeMessage.replaceAll(CONF_NAME, meetingName);
             } else if (keyword.equals(SERVER_URL)) {
@@ -322,7 +345,7 @@ public class ParamsProcessorUtil {
             meetingName = "";
         }
 
-        meetingName = ParamsUtil.stripControlChars(meetingName);
+        meetingName = ParamsUtil.stripHTMLTags(ParamsUtil.stripControlChars(meetingName));
 
         String externalMeetingId = params.get(ApiParams.MEETING_ID);
 
@@ -625,7 +648,7 @@ public class ParamsProcessorUtil {
 	public boolean hasChecksumAndQueryString(String checksum, String queryString) {
 		return (! StringUtils.isEmpty(checksum) && StringUtils.isEmpty(queryString));
 	}
-		
+
 	public String processTelVoice(String telNum) {
 		return StringUtils.isEmpty(telNum) ? RandomStringUtils.randomNumeric(defaultNumDigitsForTelVoice) : telNum;
 	}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/RecordingService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/RecordingService.java
index 69c86878aa576dc0535ea1e4401b61d0a3d1a425..04345dc132ab03393495b179d52297da9aabc019 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/RecordingService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/RecordingService.java
@@ -32,6 +32,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -46,6 +47,8 @@ import org.slf4j.LoggerFactory;
 public class RecordingService {
     private static Logger log = LoggerFactory.getLogger(RecordingService.class);
 
+    private static final Pattern PRESENTATION_ID_PATTERN = Pattern.compile("^[a-z0-9]{40}-[0-9]{13}\\.[0-9a-zA-Z]{3,4}$");
+    
     private static String processDir = "/var/bigbluebutton/recording/process";
     private static String publishedDir = "/var/bigbluebutton/published";
     private static String unpublishedDir = "/var/bigbluebutton/unpublished";
@@ -66,32 +69,42 @@ public class RecordingService {
     }
 
     public void processMakePresentationDownloadableMsg(MakePresentationDownloadableMsg msg) {
-        File presDir = Util.getPresentationDir(presentationBaseDir, msg.meetingId, msg.presId);
-        File downloadableFile = new File(presDir.getAbsolutePath() + File.separatorChar + msg.presFilename);
-
-        if (presDir != null) {
-            if (msg.downloadable) {
-                String fileExt = FilenameUtils.getExtension(msg.presFilename);
-                File presFile = new File(presDir.getAbsolutePath() + File.separatorChar + msg.presId + "." + fileExt);
-                log.info("Make file downloadable. {}", downloadableFile.getAbsolutePath());
-                copyPresentationFile(presFile, downloadableFile);
-            } else {
-                if (downloadableFile.exists()) {
-                    if(downloadableFile.delete()) {
-                        log.info("File deleted. {}", downloadableFile.getAbsolutePath());
-                    } else {
-                        log.warn("Failed to delete. {}", downloadableFile.getAbsolutePath());
-                    }
-                }
-            }
+        try {
+            File presDir = Util.getPresentationDir(presentationBaseDir, msg.meetingId, msg.presId);
+            Util.makePresentationDownloadable(presDir, msg.presId, msg.downloadable);
+        } catch (IOException e) {
+            log.error("Failed to make presentation downloadable: {}", e);
         }
     }
 
     public File getDownloadablePresentationFile(String meetingId, String presId, String presFilename) {
-    	log.info("Find downloadable presentation for meetingId={} presId={} filename={}", meetingId, presId, presFilename);
+        log.info("Find downloadable presentation for meetingId={} presId={} filename={}", meetingId, presId,
+          presFilename);
 
+        if (! Util.isPresFileIdValidFormat(presFilename)) {
+            log.error("Invalid presentation filename for meetingId={} presId={} filename={}", meetingId, presId,
+              presFilename);
+            return null;
+        }
+
+        String presFilenameExt = FilenameUtils.getExtension(presFilename);
         File presDir = Util.getPresentationDir(presentationBaseDir, meetingId, presId);
-        return new File(presDir.getAbsolutePath() + File.separatorChar + presFilename);
+        File downloadMarker = Util.getPresFileDownloadMarker(presDir, presId);
+        if (presDir != null && downloadMarker != null && downloadMarker.exists()) {
+            String safePresFilename = presId.concat(".").concat(presFilenameExt);
+            File presFile = new File(presDir.getAbsolutePath() + File.separatorChar + safePresFilename);
+            if (presFile.exists()) {
+                return presFile;
+            }
+
+            log.error("Presentation file missing for meetingId={} presId={} filename={}", meetingId, presId,
+              presFilename);
+            return null;
+        }
+
+        log.error("Invalid presentation directory for meetingId={} presId={} filename={}", meetingId, presId,
+          presFilename);
+        return null;
     }
 
     public void kickOffRecordingChapterBreak(String meetingId, Long timestamp) {
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java
index 1320d2be828f4b4897a90338fed0fd64d613725e..c0c272ebad9360b05834ea7246f0ceb78428b9e1 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java
@@ -1,49 +1,130 @@
 package org.bigbluebutton.api;
 
 import java.io.File;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public final class Util {
-    
-    private Util() {
-      throw new IllegalStateException("Utility class");
-    }
-	
-	public static String generatePresentationId(String name) {
-		long timestamp = System.currentTimeMillis();		
-		return DigestUtils.sha1Hex(name) + "-" + timestamp;
+
+	private static final Pattern MEETING_ID_PATTERN = Pattern.compile("^[a-z0-9-]+$");
+	private static final Pattern PRES_ID_PATTERN = Pattern.compile("^[a-z0-9-]+$");
+	// see https://www.baeldung.com/java-regexp-escape-char#1-escaping-using-backslash
+	private static final Pattern PRES_FILE_ID_PATTERN = Pattern.compile("^[a-z0-9-]+\\.[a-zA-Z]{3,4}$");
+
+	private Util() {
+		throw new IllegalStateException("Utility class");
+	}
+
+	public static boolean isMeetingIdValidFormat(String id) {
+		Matcher matcher = MEETING_ID_PATTERN.matcher(id);
+		if (matcher.matches()) {
+			return true;
+		}
+		return false;
+	}
+
+	public static boolean isPresIdValidFormat(String id) {
+		Matcher matcher = PRES_ID_PATTERN.matcher(id);
+		if (matcher.matches()) {
+			return true;
+		}
+		return false;
+	}
+
+	public static boolean isPresFileIdValidFormat(String id) {
+		Matcher matcher = PRES_FILE_ID_PATTERN.matcher(id);
+		if (matcher.matches()) {
+			return true;
+		}
+		return false;
+	}
+
+	public static String generatePresentationId(String presFilename) {
+		long timestamp = System.currentTimeMillis();
+		return DigestUtils.sha1Hex(presFilename) + "-" + timestamp;
+	}
+
+	public static String createNewFilename(String presId, String fileExt) {
+		return presId + "." + fileExt;
 	}
-	
-    public static String createNewFilename(String presId, String fileExt) {
-        return presId + "." + fileExt;
-    }
 	
 	public static File createPresentationDir(String meetingId, String presentationDir, String presentationId) {
-		String meetingPath = presentationDir + File.separatorChar + meetingId + File.separatorChar + meetingId;
-		String presPath = meetingPath + File.separatorChar + presentationId;
-		File dir = new File(presPath);
-		if (dir.mkdirs()) {
-			return dir;
+		if (Util.isMeetingIdValidFormat(meetingId) && Util.isPresIdValidFormat(presentationId)) {
+			String meetingPath = presentationDir + File.separatorChar + meetingId + File.separatorChar + meetingId;
+			String presPath = meetingPath + File.separatorChar + presentationId;
+			File dir = new File(presPath);
+			if (dir.mkdirs()) {
+				return dir;
+			}
+		}
+
+		return null;
+	}
+
+	public static File getMeetingDirPath(String presentationBaseDir, String meetingId) {
+		if (Util.isMeetingIdValidFormat(meetingId)) {
+			String meetingPath = presentationBaseDir + File.separatorChar + meetingId + File.separatorChar + meetingId;
+			File dir = new File(meetingPath);
+			if (dir.isDirectory() && dir.exists()) {
+				return dir;
+			}
 		}
+
 		return null;
 	}
 
 	public static File getPresentationDir(String presentationBaseDir, String meetingId, String presentationId) {
-		String meetingPath = presentationBaseDir + File.separatorChar + meetingId + File.separatorChar + meetingId;
-		String presPath = meetingPath + File.separatorChar + presentationId;
-		File dir = new File(presPath);
-		if (dir.exists()) {
-			return dir;
+		if (Util.isMeetingIdValidFormat(meetingId) && Util.isPresIdValidFormat(presentationId)) {
+			String meetingPath = presentationBaseDir + File.separatorChar + meetingId + File.separatorChar + meetingId;
+			String presPath = meetingPath + File.separatorChar + presentationId;
+			File dir = new File(presPath);
+			if (dir.isDirectory() && dir.exists()) {
+				return dir;
+			}
 		}
+
 		return null;
 	}
 
-	public static File downloadPresentationDirectory(String uploadDirectory) {
-		File dir = new File(uploadDirectory + File.separatorChar + "download");
-		if (dir.mkdirs()) {
-			return dir;
+	public String stripPresBaseDirFromPath(String presentationBaseDir, String path) {
+		if (path.startsWith(presentationBaseDir)) {
+			String presBaseDir = presentationBaseDir;
+			if (! presBaseDir.endsWith("/")) {
+				presBaseDir = presBaseDir.concat("/");
+				return StringUtils.removeStart(path, presBaseDir);
+			} else {
+				return StringUtils.removeStart(path, presBaseDir);
+			}
+		}
+		return path;
+	}
+
+	public static File getPresFileDownloadMarker(File presBaseDir, String presId) {
+		if (presBaseDir != null) {
+			String downloadMarker = presId.concat(".downloadable");
+			return new File(presBaseDir.getAbsolutePath() + File.separatorChar + downloadMarker);
 		}
 		return null;
 	}
+
+	public static void makePresentationDownloadable(
+		File presFileDir,
+		String presId,
+		boolean downloadable
+	) throws IOException {
+		File downloadMarker = Util.getPresFileDownloadMarker(presFileDir, presId);
+		if (downloadable) {
+			if (downloadMarker != null && ! downloadMarker.exists()) {
+				downloadMarker.createNewFile();
+			}
+		} else {
+			if (downloadMarker != null && downloadMarker.exists()) {
+				downloadMarker.delete();
+			}
+		}
+	}
 }
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ParamsUtil.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ParamsUtil.java
index 2124dece0abfa7105d63cb770ade4d9eae781f10..d02927d1e0d037d88fdc327499eb1382387db98f 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ParamsUtil.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ParamsUtil.java
@@ -19,6 +19,10 @@ public class ParamsUtil {
   public static String stripControlChars(String text) {
     return text.replaceAll("\\p{Cc}", "");
   }
+  
+  public static String stripHTMLTags(String value) {
+    return value.replaceAll("\\<.*?>","");
+  }
 
   public static boolean isValidMeetingId(String meetingId) {
     //return  VALID_ID_PATTERN.matcher(meetingId).matches();
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/DocumentConversionServiceImp.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/DocumentConversionServiceImp.java
index 3a1c4f70fbef855b7028e28bcfe4c23e64ddd337..e9e7d3b489b337e0e3538c60a69454bf42d9481e 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/DocumentConversionServiceImp.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/DocumentConversionServiceImp.java
@@ -19,18 +19,16 @@
 
 package org.bigbluebutton.presentation;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.bigbluebutton.api2.IBbbWebApiGWApp;
 import org.bigbluebutton.presentation.imp.*;
-import org.bigbluebutton.presentation.messages.DocPageConversionStarted;
 import org.bigbluebutton.presentation.messages.DocConversionRequestReceived;
-import org.bigbluebutton.presentation.messages.DocPageCountExceeded;
-import org.bigbluebutton.presentation.messages.DocPageCountFailed;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
+import org.bigbluebutton.api.Util;
 import com.google.gson.Gson;
 
 public class DocumentConversionServiceImp implements DocumentConversionService {
@@ -43,11 +41,21 @@ public class DocumentConversionServiceImp implements DocumentConversionService {
   private PresentationFileProcessor presentationFileProcessor;
 
   public void processDocument(UploadedPresentation pres) {
-
-    SupportedDocumentFilter sdf = new SupportedDocumentFilter(gw);
+    if (pres.isUploadFailed()) {
+      // We should send a message to the client in the future.
+      // ralam may 1, 2020
+      log.error("Presentation upload failed for meetingId={} presId={}", pres.getMeetingId(), pres.getId());
+      log.error("Presentation upload fail reasons {}", pres.getUploadFailReason());
+      return;
+    }
 
     sendDocConversionRequestReceived(pres);
 
+    processDocumentStart(pres);
+  }
+
+  public void processDocumentStart(UploadedPresentation pres) {
+    SupportedDocumentFilter sdf = new SupportedDocumentFilter(gw);
     if (sdf.isSupported(pres)) {
       String fileType = pres.getFileType();
 
@@ -59,7 +67,7 @@ public class DocumentConversionServiceImp implements DocumentConversionService {
           // Successfully converted to pdf. Call the process again, this time it
           // should be handled by
           // the PDF conversion service.
-          processDocument(pres);
+          processDocumentStart(pres);
         } else {
           // Send notification that office to pdf conversion failed.
           // The cause should have been set by the previous step.
@@ -67,26 +75,10 @@ public class DocumentConversionServiceImp implements DocumentConversionService {
           ocsf.sendProgress(pres);
         }
       } else if (SupportedFileTypes.isPdfFile(fileType)) {
-          presentationFileProcessor.process(pres);
+        presentationFileProcessor.process(pres);
       } else if (SupportedFileTypes.isImageFile(fileType)) {
-          presentationFileProcessor.process(pres);
+        presentationFileProcessor.process(pres);
       } else {
-          Map<String, Object> logData = new HashMap<String, Object>();
-          logData = new HashMap<String, Object>();
-          logData.put("podId", pres.getPodId());
-          logData.put("meetingId", pres.getMeetingId());
-          logData.put("presId", pres.getId());
-          logData.put("filename", pres.getName());
-          logData.put("current", pres.isCurrent());
-          logData.put("logCode", "supported_file_not_handled");
-          logData.put("message", "Supported file not handled.");
-
-          Gson gson = new Gson();
-          String logStr = gson.toJson(logData);
-          log.warn(" --analytics-- data={}", logStr);
-      }
-
-    } else {
         Map<String, Object> logData = new HashMap<String, Object>();
         logData = new HashMap<String, Object>();
         logData.put("podId", pres.getPodId());
@@ -94,29 +86,44 @@ public class DocumentConversionServiceImp implements DocumentConversionService {
         logData.put("presId", pres.getId());
         logData.put("filename", pres.getName());
         logData.put("current", pres.isCurrent());
-        logData.put("logCode", "unsupported_file_format");
-        logData.put("message", "Unsupported file format");
+        logData.put("logCode", "supported_file_not_handled");
+        logData.put("message", "Supported file not handled.");
 
         Gson gson = new Gson();
         String logStr = gson.toJson(logData);
-        log.error(" --analytics-- data={}", logStr);
-
-        logData.clear();
-
-        logData.put("podId", pres.getPodId());
-        logData.put("meetingId", pres.getMeetingId());
-        logData.put("presId", pres.getId());
-        logData.put("filename", pres.getName());
-        logData.put("current", pres.isCurrent());
-        logData.put("logCode", "presentation_conversion_end");
-        logData.put("message", "End presentation conversion.");
-
-        logStr = gson.toJson(logData);
-        log.info(" --analytics-- data={}", logStr);
+        log.warn(" --analytics-- data={}", logStr);
+      }
 
-        notifier.sendConversionCompletedMessage(pres);
+    } else {
+      Map<String, Object> logData = new HashMap<String, Object>();
+      logData = new HashMap<String, Object>();
+      logData.put("podId", pres.getPodId());
+      logData.put("meetingId", pres.getMeetingId());
+      logData.put("presId", pres.getId());
+      logData.put("filename", pres.getName());
+      logData.put("current", pres.isCurrent());
+      logData.put("logCode", "unsupported_file_format");
+      logData.put("message", "Unsupported file format");
+
+      Gson gson = new Gson();
+      String logStr = gson.toJson(logData);
+      log.error(" --analytics-- data={}", logStr);
+
+      logData.clear();
+
+      logData.put("podId", pres.getPodId());
+      logData.put("meetingId", pres.getMeetingId());
+      logData.put("presId", pres.getId());
+      logData.put("filename", pres.getName());
+      logData.put("current", pres.isCurrent());
+      logData.put("logCode", "presentation_conversion_end");
+      logData.put("message", "End presentation conversion.");
+
+      logStr = gson.toJson(logData);
+      log.info(" --analytics-- data={}", logStr);
+
+      notifier.sendConversionCompletedMessage(pres);
     }
-
   }
 
   private void sendDocConversionRequestReceived(UploadedPresentation pres) {
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java
index 6e13cf2428c39091c4d7bed2459844238af3790d..ecbfac0d8f44d54e1fa75185cdceb45c65dfad89 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java
@@ -6,12 +6,14 @@ import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -59,10 +61,19 @@ public class PresentationUrlDownloadService {
     }
 
     public void processUploadedFile(String podId, String meetingId, String presId,
-            String filename, File presFile, Boolean current, String authzToken) {
+                                    String filename, File presFile, Boolean current, String authzToken,
+                                    Boolean uploadFailed, ArrayList<String> uploadFailReasons) {
         // TODO add podId
-        UploadedPresentation uploadedPres = new UploadedPresentation(podId, meetingId,
-                presId, filename, presentationBaseURL, current, authzToken);
+        UploadedPresentation uploadedPres = new UploadedPresentation(
+          podId,
+          meetingId,
+          presId,
+          filename,
+          presentationBaseURL,
+          current,
+          authzToken,
+          uploadFailed,
+          uploadFailReasons);
         uploadedPres.setUploadedFile(presFile);
         processUploadedPresentation(uploadedPres);
     }
@@ -84,6 +95,9 @@ public class PresentationUrlDownloadService {
     private void extractPage(final String sourceMeetingId, final String presentationId,
                              final Integer presentationSlide, final String destinationMeetingId) {
 
+        Boolean uploadFailed = false;
+        ArrayList<String> uploadFailedReasons = new ArrayList<String>();
+
         // Build the source meeting path
         File sourceMeetingPath = new File(presentationDir + File.separatorChar
                 + sourceMeetingId + File.separatorChar + sourceMeetingId
@@ -118,13 +132,13 @@ public class PresentationUrlDownloadService {
         } else {
             sourcePresentationFile = matches[0];
         }
+
         // Build the target meeting path
-        String filenameExt = FilenameUtils.getExtension(sourcePresentationFile
-                .getName());
-        String presId = generatePresentationId(presentationId);
+        String filenameExt = FilenameUtils.getExtension(sourcePresentationFile.getName());
+        String presId = Util.generatePresentationId(presentationId);
         String newFilename = Util.createNewFilename(presId, filenameExt);
 
-        File uploadDir = createPresentationDirectory(destinationMeetingId,
+        File uploadDir = Util.createPresentationDir(destinationMeetingId,
                 presentationDir, presId);
         String newFilePath = uploadDir.getAbsolutePath() + File.separatorChar
                 + newFilename;
@@ -143,27 +157,15 @@ public class PresentationUrlDownloadService {
         }
 
         // Hardcode pre-uploaded presentation for breakout room to the default presentation window
-        processUploadedFile("DEFAULT_PRESENTATION_POD", destinationMeetingId, presId, "default-"
-                + presentationSlide.toString() + "." + filenameExt,
-                newPresentation, true, "breakout-authz-token");
-    }
-
-    public String generatePresentationId(String name) {
-        long timestamp = System.currentTimeMillis();
-        return DigestUtils.sha1Hex(name) + "-" + timestamp;
-    }
-
-    public File createPresentationDirectory(String meetingId,
-            String presentationDir, String presentationId) {
-        String meetingPath = presentationDir + File.separatorChar + meetingId
-                + File.separatorChar + meetingId;
-        String presPath = meetingPath + File.separatorChar + presentationId;
-        File dir = new File(presPath);
-        log.debug("Creating dir [{}]", presPath);
-        if (dir.mkdirs()) {
-            return dir;
-        }
-        return null;
+        processUploadedFile("DEFAULT_PRESENTATION_POD",
+          destinationMeetingId,
+          presId,
+          "default-" + presentationSlide.toString() + "." + filenameExt,
+          newPresentation,
+          true,
+          "breakout-authz-token",
+          uploadFailed,
+          uploadFailedReasons);
     }
 
     private String followRedirect(String meetingId, String redirectUrl,
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/UploadedPresentation.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/UploadedPresentation.java
index 0bbb49eec26f8957751a6567178c176087d2d64b..d017dc3f62e819a7df8bd5048d6702008a18754a 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/UploadedPresentation.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/UploadedPresentation.java
@@ -20,12 +20,15 @@
 package org.bigbluebutton.presentation;
 
 import java.io.File;
+import java.util.ArrayList;
 
 public final class UploadedPresentation {
   private final String podId;
   private final String meetingId;
   private final String id;
   private final String name;
+  private final boolean uploadFailed;
+  private final ArrayList<String> uploadFailReason;
   private File uploadedFile;
   private String fileType = "unknown";
   private int numberOfPages = 0;
@@ -36,13 +39,16 @@ public final class UploadedPresentation {
   private String authzToken;
   private boolean conversionStarted = false;
 
+
   public UploadedPresentation(String podId,
                               String meetingId,
                               String id,
                               String name,
                               String baseUrl,
                               Boolean current,
-                              String authzToken) {
+                              String authzToken,
+                              Boolean uploadFailed,
+                              ArrayList<String> uploadFailReason) {
     this.podId = podId;
     this.meetingId = meetingId;
     this.id = id;
@@ -51,6 +57,8 @@ public final class UploadedPresentation {
     this.isDownloadable = false;
     this.current = current;
     this.authzToken = authzToken;
+    this.uploadFailed = uploadFailed;
+    this.uploadFailReason = uploadFailReason;
   }
 
   public File getUploadedFile() {
@@ -132,4 +140,12 @@ public final class UploadedPresentation {
   public boolean isConversionStarted() {
     return conversionStarted;
   }
+
+  public boolean isUploadFailed() {
+    return uploadFailed;
+  }
+
+  public ArrayList<String> getUploadFailReason() {
+    return uploadFailReason;
+  }
 }
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/PresentationFileProcessor.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/PresentationFileProcessor.java
index 6a509c2bb54a7b9413d5afaf169ccaff0824de15..8cd63229441b361838fe30d952980eb90b96190e 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/PresentationFileProcessor.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/PresentationFileProcessor.java
@@ -1,6 +1,7 @@
 package org.bigbluebutton.presentation.imp;
 
 import com.google.gson.Gson;
+import org.bigbluebutton.api.Util;
 import org.bigbluebutton.presentation.*;
 import org.bigbluebutton.presentation.messages.DocPageConversionStarted;
 import org.bigbluebutton.presentation.messages.DocPageCountExceeded;
@@ -10,6 +11,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
@@ -53,6 +55,10 @@ public class PresentationFileProcessor {
     }
 
     public synchronized void process(UploadedPresentation pres) {
+        if (pres.isDownloadable()) {
+            processMakePresentationDownloadableMsg(pres);
+        }
+
         Runnable messageProcessor = new Runnable() {
             public void run() {
                 processUploadedPresentation(pres);
@@ -61,6 +67,15 @@ public class PresentationFileProcessor {
         executor.submit(messageProcessor);
     }
 
+    private void processMakePresentationDownloadableMsg(UploadedPresentation pres) {
+        try {
+            File presentationFileDir = pres.getUploadedFile().getParentFile();
+            Util.makePresentationDownloadable(presentationFileDir, pres.getId(), pres.isDownloadable());
+        } catch (IOException e) {
+            log.error("Failed to make presentation downloadable: {}", e);
+        }
+    }
+
     private void processUploadedPresentation(UploadedPresentation pres) {
         if (SupportedFileTypes.isPdfFile(pres.getFileType())) {
             determineNumberOfPages(pres);
diff --git a/bigbluebutton-config/cron.daily/bigbluebutton b/bigbluebutton-config/cron.daily/bigbluebutton
index 5db7732fefa93efe97cb6ff61fc358339c5dfcf5..165e35ca47a7dbd65a08eca19e71185c5b2f3db8 100755
--- a/bigbluebutton-config/cron.daily/bigbluebutton
+++ b/bigbluebutton-config/cron.daily/bigbluebutton
@@ -97,7 +97,8 @@ remove_raw_of_published_recordings(){
     #TYPES=$(cd /usr/local/bigbluebutton/core/scripts/process; ls *.rb | sed s/.rb//g)
     logger "Removing raw directory of old recordings:"
     TYPES="presentation"
-    old_meetings=$(find /var/bigbluebutton/recording/raw/*/events.xml  -mtime +$published_days | cut -d"/" -f6 )
+    cd /var/bigbluebutton/recording/raw/
+    old_meetings=$(find . -name events.xml -mtime +$published_days | cut -d"/" -f2 )
     for meeting in $old_meetings
     do
         PROPERLY_PUBLISHED="true"
diff --git a/bigbluebutton-html5/.gitignore b/bigbluebutton-html5/.gitignore
index bd007c62cbfad9b92bb8d91fc8be6da38f76d252..3a833eaf4f800bfece09c1cd77ed8cd112714fc2 100755
--- a/bigbluebutton-html5/.gitignore
+++ b/bigbluebutton-html5/.gitignore
@@ -3,3 +3,5 @@ npm-debug.log
 node_modules/
 .meteor/dev_bundle
 tests/webdriverio/.testing-env
+
+
diff --git a/bigbluebutton-html5/imports/api/captions/server/methods/appendText.js b/bigbluebutton-html5/imports/api/captions/server/methods/appendText.js
index 1afe735c0e6a5546eb30150efc36dcb44ed585b9..3f4e3cb4df58959577a6826db61dd38909d4dd92 100644
--- a/bigbluebutton-html5/imports/api/captions/server/methods/appendText.js
+++ b/bigbluebutton-html5/imports/api/captions/server/methods/appendText.js
@@ -7,10 +7,10 @@ import {
 import {
   appendTextURL,
 } from '/imports/api/note/server/helpers';
+import { extractCredentials } from '/imports/api/common/server/helpers';
 
-export default function appendText(body, text, locale) {
-  const { meetingId } = body;
-
+export default function appendText(text, locale) {
+  const { meetingId } = extractCredentials(this.userId);
   check(meetingId, String);
   check(text, String);
   check(locale, String);
diff --git a/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js b/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js
index d709aa1d7069c09e9e151196aa3c09f2fb0ef193..7e6c0eb86cfaaad9969da609006efa14e0614f6f 100755
--- a/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js
+++ b/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js
@@ -2,11 +2,12 @@ import Logger from '/imports/startup/server/logger';
 import Users from '/imports/api/users';
 
 const logClient = function (type, logDescription, logCode = 'was_not_provided', extraInfo = {}, userInfo = {}) {
-  const SERVER_CONN_ID = this.connection.id;
-  const User = Users.findOne({ connectionId: SERVER_CONN_ID });
+  const connectionId = this.connection.id;
+  const User = Users.findOne({ connectionId });
   const logContents = {
     logCode,
     logDescription,
+    connectionId,
     extraInfo,
     userInfo,
   };
diff --git a/bigbluebutton-html5/imports/api/presentation-pods/server/methods.js b/bigbluebutton-html5/imports/api/presentation-pods/server/methods.js
index 968c9d28c6e08b13f4dfe5bedd3984f7485c6257..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/bigbluebutton-html5/imports/api/presentation-pods/server/methods.js
+++ b/bigbluebutton-html5/imports/api/presentation-pods/server/methods.js
@@ -1,6 +0,0 @@
-import { Meteor } from 'meteor/meteor';
-import setPresenterInPodReqMsg from './methods/setPresenterInPodReqMsg';
-
-Meteor.methods({
-  setPresenterInPodReqMsg,
-});
diff --git a/bigbluebutton-html5/imports/api/presentation-pods/server/methods/setPresenterInPodReqMsg.js b/bigbluebutton-html5/imports/api/presentation-pods/server/methods/setPresenterInPodReqMsg.js
deleted file mode 100644
index 6408dd1311dfa2b4504751e05552c66304ebb691..0000000000000000000000000000000000000000
--- a/bigbluebutton-html5/imports/api/presentation-pods/server/methods/setPresenterInPodReqMsg.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Meteor } from 'meteor/meteor';
-import { check } from 'meteor/check';
-import RedisPubSub from '/imports/startup/server/redis';
-
-export default function setPresenterInPodReqMsg(credentials) { // TODO-- switch to meetingId, etc
-  const REDIS_CONFIG = Meteor.settings.private.redis;
-  const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
-  const EVENT_NAME = 'SetPresenterInPodReqMsg';
-
-  const { meetingId, requesterUserId, presenterId } = credentials;
-
-  check(meetingId, String);
-  check(requesterUserId, String);
-  check(presenterId, String);
-
-  const payload = {
-    podId: 'DEFAULT_PRESENTATION_POD',
-    nextPresenterId: presenterId,
-  };
-
-  RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload);
-}
diff --git a/bigbluebutton-html5/imports/api/users-infos/server/methods/removeUserInformation.js b/bigbluebutton-html5/imports/api/users-infos/server/methods/removeUserInformation.js
index 5201a8c0a0b58938a0686600241cdbfb4282d735..6bfd197f84b3307faf706458cc25e3b3f4db8f4c 100644
--- a/bigbluebutton-html5/imports/api/users-infos/server/methods/removeUserInformation.js
+++ b/bigbluebutton-html5/imports/api/users-infos/server/methods/removeUserInformation.js
@@ -1,7 +1,9 @@
 import UserInfos from '/imports/api/users-infos';
 import Logger from '/imports/startup/server/logger';
+import { extractCredentials } from '/imports/api/common/server/helpers';
 
-export default function removeUserInformation(meetingId, requesterUserId) {
+export default function removeUserInformation() {
+  const { meetingId, requesterUserId } = extractCredentials(this.userId);
   const selector = {
     meetingId,
     requesterUserId,
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 ac4b49c9e042ace7bbcd05917372004acb1ad507..9dba1bf08c5e999ddd051badfa3017d9063d2af1 100644
--- a/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js
+++ b/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js
@@ -1,6 +1,7 @@
 import { check } from 'meteor/check';
 import addUserSetting from '/imports/api/users-settings/server/modifiers/addUserSetting';
 import logger from '/imports/startup/server/logger';
+import { extractCredentials } from '/imports/api/common/server/helpers';
 
 const oldParameters = {
   askForFeedbackOnLogout: 'bbb_ask_for_feedback_on_logout',
@@ -71,9 +72,11 @@ function valueParser(val) {
   }
 }
 
-export default function addUserSettings(meetingId, userId, settings) {
+export default function addUserSettings(settings) {
   check(settings, [Object]);
 
+  const { meetingId, requesterUserId: userId } = extractCredentials(this.userId);
+
   let parameters = {};
 
   settings.forEach((el) => {
diff --git a/bigbluebutton-html5/imports/api/users/server/handlers/presenterAssigned.js b/bigbluebutton-html5/imports/api/users/server/handlers/presenterAssigned.js
index aac64aa63bd2299b3c8c74157bb3cfd16f3e54cb..2b5f25e9ae389eb96e691b694d02db8b93268b72 100644
--- a/bigbluebutton-html5/imports/api/users/server/handlers/presenterAssigned.js
+++ b/bigbluebutton-html5/imports/api/users/server/handlers/presenterAssigned.js
@@ -1,7 +1,22 @@
 import Users from '/imports/api/users';
 import PresentationPods from '/imports/api/presentation-pods';
 import changePresenter from '/imports/api/users/server/modifiers/changePresenter';
-import setPresenterInPodReqMsg from '/imports/api/presentation-pods/server/methods/setPresenterInPodReqMsg';
+import RedisPubSub from '/imports/startup/server/redis';
+
+function setPresenterInPodReqMsg(credentials) { // TODO-- switch to meetingId, etc
+  const REDIS_CONFIG = Meteor.settings.private.redis;
+  const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
+  const EVENT_NAME = 'SetPresenterInPodReqMsg';
+
+  const { meetingId, requesterUserId, presenterId } = credentials;
+
+  const payload = {
+    podId: 'DEFAULT_PRESENTATION_POD',
+    nextPresenterId: presenterId,
+  };
+
+  RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload);
+}
 
 export default function handlePresenterAssigned({ body }, meetingId) {
   const { presenterId, assignedBy } = body;
diff --git a/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js b/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js
index f8a04154b10d575dc24f1334b0085acaabfaea4b..dae1bf3b4a757d0e73d93f7f6c44096cafa00f97 100644
--- a/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js
+++ b/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js
@@ -2,6 +2,9 @@ import { check } from 'meteor/check';
 import Logger from '/imports/startup/server/logger';
 import Users from '/imports/api/users';
 import userJoin from './userJoin';
+import pendingAuthenticationsStore from '../store/pendingAuthentications';
+import createDummyUser from '../modifiers/createDummyUser';
+import setConnectionIdAndAuthToken from '../modifiers/setConnectionIdAndAuthToken';
 
 const clearOtherSessions = (sessionUserId, current = false) => {
   const serverSessions = Meteor.server.sessions;
@@ -12,12 +15,58 @@ const clearOtherSessions = (sessionUserId, current = false) => {
 };
 
 export default function handleValidateAuthToken({ body }, meetingId) {
-  const { userId, valid, waitForApproval } = body;
+  const { userId, valid, authToken, waitForApproval } = body;
 
   check(userId, String);
+  check(authToken, String);
   check(valid, Boolean);
   check(waitForApproval, Boolean);
 
+  const pendingAuths = pendingAuthenticationsStore.take(meetingId, userId, authToken);
+
+  if(!valid) {
+    pendingAuths.forEach ( 
+      pendingAuth => {
+        try {
+          const {methodInvocationObject} = pendingAuth;
+          const connectionId = methodInvocationObject.connection.id;
+
+          methodInvocationObject.connection.close();
+          Logger.info(`Closed connection ${connectionId} due to invalid auth token.`);
+        } catch (e) {
+          Logger.error(`Error closing socket for meetingId '${meetingId}', userId '${userId}', authToken ${authToken}`);
+        }
+      }
+    );
+    
+    return;
+  }
+
+  if(valid) {
+    // Define user ID on connections
+    pendingAuths.forEach ( 
+        pendingAuth => {
+            const {methodInvocationObject} = pendingAuth;
+
+            /* Logic migrated from validateAuthToken method ( postponed to only run in case of success response ) - Begin */
+            const sessionId = `${meetingId}--${userId}`;
+            methodInvocationObject.setUserId(sessionId);
+
+            const User = Users.findOne({
+                meetingId,
+                userId: userId,
+            });
+        
+            if (!User) {
+                createDummyUser(meetingId, userId, authToken);
+            }
+        
+            setConnectionIdAndAuthToken(meetingId, userId, methodInvocationObject.connection.id, authToken);
+            /* End of logic migrated from validateAuthToken */
+        }
+    );
+  }
+
   const selector = {
     meetingId,
     userId,
diff --git a/bigbluebutton-html5/imports/api/users/server/methods/validateAuthToken.js b/bigbluebutton-html5/imports/api/users/server/methods/validateAuthToken.js
index e01b6ad348fde23e60eea7cf571b3938c4739286..0f01fb0c2d95378063180efdedafbc1de0290284 100644
--- a/bigbluebutton-html5/imports/api/users/server/methods/validateAuthToken.js
+++ b/bigbluebutton-html5/imports/api/users/server/methods/validateAuthToken.js
@@ -1,35 +1,22 @@
 import { Meteor } from 'meteor/meteor';
 import RedisPubSub from '/imports/startup/server/redis';
 import Logger from '/imports/startup/server/logger';
-import Users from '/imports/api/users';
-import createDummyUser from '../modifiers/createDummyUser';
-import setConnectionIdAndAuthToken from '../modifiers/setConnectionIdAndAuthToken';
+import pendingAuthenticationsStore from '../store/pendingAuthentications';
 
 export default function validateAuthToken(meetingId, requesterUserId, requesterToken) {
   const REDIS_CONFIG = Meteor.settings.private.redis;
   const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
   const EVENT_NAME = 'ValidateAuthTokenReqMsg';
 
-  const sessionId = `${meetingId}--${requesterUserId}`;
-  this.setUserId(sessionId);
-
-  const User = Users.findOne({
-    meetingId,
-    userId: requesterUserId,
-  });
-
-  if (!User) {
-    createDummyUser(meetingId, requesterUserId, requesterToken);
-  }
-
-  setConnectionIdAndAuthToken(meetingId, requesterUserId, this.connection.id, requesterToken);
+  // Store reference of methodInvocationObject ( to postpone the connection userId definition )
+  pendingAuthenticationsStore.add(meetingId, requesterUserId, requesterToken, this);
 
   const payload = {
     userId: requesterUserId,
     authToken: requesterToken,
   };
 
-  Logger.info(`User '${requesterUserId}' is trying to validate auth token for meeting '${meetingId}'`);
+  Logger.info(`User '${requesterUserId}' is trying to validate auth token for meeting '${meetingId}' from connection '${this.connection.id}'`);
 
   return RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload);
 }
diff --git a/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js b/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js
new file mode 100644
index 0000000000000000000000000000000000000000..c181ac8f9585e0e08ba1551ceb3ba4e55d9d3568
--- /dev/null
+++ b/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js
@@ -0,0 +1,43 @@
+import Logger from '/imports/startup/server/logger';
+
+class PendingAuthentitcations {
+    constructor () {
+        Logger.debug("PendingAuthentitcations :: constructor");
+        this.store = [];
+    }
+
+    generateKey (meetingId, userId, authToken) {
+        // Protect against separator injection
+        meetingId = meetingId.replace(/ /g, '');
+        userId    = userId.replace(/ /g, '');
+        authToken = authToken.replace(/ /g, '');
+
+        // Space separated key
+        return '${meetingId} ${userId} ${authToken}';
+    }
+
+    add (meetingId, userId, authToken, methodInvocationObject) {
+        Logger.debug("PendingAuthentitcations :: add", {meetingId, userId, authToken});
+        this.store.push({
+            key: this.generateKey(meetingId, userId, authToken),
+            meetingId, userId, authToken, methodInvocationObject
+        });
+    }
+
+    take (meetingId, userId, authToken) {
+        Logger.debug("PendingAuthentitcations :: take", {meetingId, userId, authToken});
+        const key = this.generateKey(meetingId, userId, authToken);
+        
+        // find matches
+        const matches = this.store.filter( e => e.key === key );
+        
+        // remove matches (if any)
+        if(matches.length) { 
+            this.store = this.store.filter( e => e.key !== key ) ;
+        }
+
+        // return matches
+        return matches;
+    }
+}
+export default new PendingAuthentitcations();
\ No newline at end of file
diff --git a/bigbluebutton-html5/imports/startup/client/intl.jsx b/bigbluebutton-html5/imports/startup/client/intl.jsx
index b93933dc1655b10ec5d66ea7785564f0448a5110..ff1d9815bbed20a5b8ae27f66aae249611a9122c 100644
--- a/bigbluebutton-html5/imports/startup/client/intl.jsx
+++ b/bigbluebutton-html5/imports/startup/client/intl.jsx
@@ -6,13 +6,16 @@ import LoadingScreen from '/imports/ui/components/loading-screen/component';
 
 // currently supported locales.
 import ar from 'react-intl/locale-data/ar';
+import az from 'react-intl/locale-data/az';
 import bg from 'react-intl/locale-data/bg';
+import ca from 'react-intl/locale-data/ca';
 import cs from 'react-intl/locale-data/cs';
 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 es from 'react-intl/locale-data/es';
+import et from 'react-intl/locale-data/et';
 import eu from 'react-intl/locale-data/eu';
 import fa from 'react-intl/locale-data/fa';
 import fi from 'react-intl/locale-data/fi';
@@ -20,18 +23,25 @@ import fr from 'react-intl/locale-data/fr';
 import gl from 'react-intl/locale-data/gl';
 import he from 'react-intl/locale-data/he';
 import hi from 'react-intl/locale-data/hi';
+import hr from 'react-intl/locale-data/hr';
 import hu from 'react-intl/locale-data/hu';
+import hy from 'react-intl/locale-data/hy';
 import id from 'react-intl/locale-data/id';
 import it from 'react-intl/locale-data/it';
 import ja from 'react-intl/locale-data/ja';
+import ka from 'react-intl/locale-data/ka';
 import km from 'react-intl/locale-data/km';
 import ko from 'react-intl/locale-data/ko';
+import lt from 'react-intl/locale-data/lt';
+import lv from 'react-intl/locale-data/lv';
+import nb from 'react-intl/locale-data/nb';
 import nl from 'react-intl/locale-data/nl';
 import pl from 'react-intl/locale-data/pl';
 import pt from 'react-intl/locale-data/pt';
 import ro from 'react-intl/locale-data/ro';
 import ru from 'react-intl/locale-data/ru';
 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 th from 'react-intl/locale-data/th';
@@ -43,11 +53,14 @@ import zh from 'react-intl/locale-data/zh';
 
 addLocaleData([
   ...ar,
+  ...az,
   ...bg,
+  ...ca,
   ...cs,
   ...da,
   ...de,
   ...el,
+  ...et,
   ...en,
   ...es,
   ...eu,
@@ -57,18 +70,25 @@ addLocaleData([
   ...gl,
   ...he,
   ...hi,
+  ...hr,
   ...hu,
+  ...hy,
   ...id,
   ...it,
   ...ja,
+  ...ka,
   ...km,
   ...ko,
+  ...lt,
+  ...lv,
+  ...nb,
   ...nl,
   ...pl,
   ...pt,
   ...ro,
   ...ru,
   ...sk,
+  ...sl,
   ...sr,
   ...sv,
   ...th,
@@ -110,7 +130,7 @@ class IntlStartup extends Component {
 
   componentWillMount() {
     const { locale } = this.props;
-    this.fetchLocalizedMessages(locale);
+    this.fetchLocalizedMessages(locale, true);
   }
 
   componentWillUpdate(nextProps) {
@@ -124,8 +144,8 @@ class IntlStartup extends Component {
     }
   }
 
-  fetchLocalizedMessages(locale) {
-    const url = `/html5client/locale?locale=${locale}`;
+  fetchLocalizedMessages(locale, init = false) {
+    const url = `/html5client/locale?locale=${locale}&init=${init}`;
 
     this.setState({ fetching: true }, () => {
       fetch(url)
diff --git a/bigbluebutton-html5/imports/startup/client/logger.js b/bigbluebutton-html5/imports/startup/client/logger.js
index 7cbe8d116de978b30dbc4935c9b1da7bd4e83df7..4e97737cab1d17003e0342ac083b29d163982697 100755
--- a/bigbluebutton-html5/imports/startup/client/logger.js
+++ b/bigbluebutton-html5/imports/startup/client/logger.js
@@ -36,6 +36,7 @@ class ServerLoggerStream extends ServerStream {
       this.rec.userInfo = fullInfo;
     }
     this.rec.clientBuild = Meteor.settings.public.app.html5ClientBuild;
+    this.rec.connectionId = Meteor.connection._lastSessionId;
     if (this.logTagString) {
       this.rec.logTag = this.logTagString;
     }
diff --git a/bigbluebutton-html5/imports/startup/server/index.js b/bigbluebutton-html5/imports/startup/server/index.js
index 14c898836e9e44e64afeb852dbfe5bb60a2df611..425bb0af1933617f9428caac199661f0d7ad0f7c 100755
--- a/bigbluebutton-html5/imports/startup/server/index.js
+++ b/bigbluebutton-html5/imports/startup/server/index.js
@@ -110,7 +110,9 @@ WebApp.connectHandlers.use('/locale', (req, res) => {
   const APP_CONFIG = Meteor.settings.public.app;
   const fallback = APP_CONFIG.defaultSettings.application.fallbackLocale;
   const override = APP_CONFIG.defaultSettings.application.overrideLocale;
-  const browserLocale = override ? override.split(/[-_]/g) : req.query.locale.split(/[-_]/g);
+  const browserLocale = override && req.query.init === 'true'
+    ? override.split(/[-_]/g) : req.query.locale.split(/[-_]/g);
+
   const localeList = [fallback];
 
   const usableLocales = AVAILABLE_LOCALES
diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx
index b42908138321762cb3d6cbfc69d092a6b0d8180e..e0c5080a16cb4f750fb526e39cf414badb074894 100755
--- a/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/actions-bar/desktop-share/component.jsx
@@ -6,6 +6,8 @@ import Button from '/imports/ui/components/button/component';
 import logger from '/imports/startup/client/logger';
 import { notify } from '/imports/ui/services/notification';
 import cx from 'classnames';
+import Modal from '/imports/ui/components/modal/simple/component';
+import { withModalMounter } from '../../modal/service';
 import { styles } from '../styles';
 
 const propTypes = {
@@ -53,6 +55,14 @@ const intlMessages = defineMessages({
     id: 'app.screenshare.notSupportedError',
     description: 'error message when trying to share screen in unsafe environments',
   },
+  noSafariScreenShare: {
+    id: 'app.media.screenshare.safariNotSupported',
+    descriptions: 'error message when trying to share screen on safari',
+  },
+  screenShareUnavailable: {
+    id: 'app.media.screenshare.unavailable',
+    descriptions: 'title for unavailable screen share modal',
+  },
   NotReadableError: {
     id: 'app.screenshare.notReadableError',
     description: 'error message when the browser failed to capture the screen',
@@ -116,6 +126,7 @@ const DesktopShare = ({
   screenShareEndAlert,
   isMeteorConnected,
   screenshareDataSavingSetting,
+  mountModal,
 }) => {
   // This is the failure callback that will be passed to the /api/screenshare/kurento.js
   // script on the presenter's call
@@ -155,10 +166,9 @@ const DesktopShare = ({
 
   const shouldAllowScreensharing = screenSharingCheck
     && !isMobileBrowser
-    && amIPresenter
-    && !isSafari;
+    && amIPresenter;
 
-  return (shouldAllowScreensharing
+  return shouldAllowScreensharing
     ? (
       <Button
         className={cx(isVideoBroadcasting || styles.btn)}
@@ -171,12 +181,28 @@ const DesktopShare = ({
         hideLabel
         circle
         size="lg"
-        onClick={isVideoBroadcasting ? handleUnshareScreen : () => handleShareScreen(onFail)}
+        onClick={isVideoBroadcasting ? handleUnshareScreen : () => {
+          if (isSafari) {
+            return mountModal(<Modal
+              overlayClassName={styles.overlay}
+              className={styles.modal}
+              onRequestClose={() => mountModal(null)}
+              hideBorder
+              contentLabel={intl.formatMessage(intlMessages.screenShareUnavailable)}
+            >
+              <h3 className={styles.title}>
+                {intl.formatMessage(intlMessages.screenShareUnavailable)}
+              </h3>
+              <p>{intl.formatMessage(intlMessages.noSafariScreenShare)}</p>
+                              </Modal>);
+          }
+          handleShareScreen(onFail);
+        }
+        }
         id={isVideoBroadcasting ? 'unshare-screen-button' : 'share-screen-button'}
       />
-    )
-    : null);
+    ) : null;
 };
 
 DesktopShare.propTypes = propTypes;
-export default injectIntl(memo(DesktopShare));
+export default withModalMounter(injectIntl(memo(DesktopShare)));
diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/styles.scss b/bigbluebutton-html5/imports/ui/components/actions-bar/styles.scss
index d30cd81c5631994f6ea689dff4b4cfd51c559c00..6bc622f424c09f4ca033db6f3eb547e11a6ada6f 100755
--- a/bigbluebutton-html5/imports/ui/components/actions-bar/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/actions-bar/styles.scss
@@ -1,7 +1,28 @@
 @import "/imports/ui/stylesheets/variables/_all";
+@import "/imports/ui/components/modal/simple/styles";
 
 :root {
   --mobile-swap-offset: 3.5rem;
+  --min-modal-height: 20rem;
+}
+
+.modal {
+  @extend .modal;
+  padding: var(--jumbo-padding-y);
+  min-height: var(--min-modal-height);
+  text-align: center;
+}
+
+.overlay {
+  @extend .overlay;
+}
+
+.title {
+  font-weight: var(--headings-font-weight);
+  font-size: var(--font-size-large);
+  color: var(--color-background);
+  white-space: normal;
+  padding-bottom: var(--md-padding-x);
 }
 
 .actionsbar,
diff --git a/bigbluebutton-html5/imports/ui/components/captions/component.jsx b/bigbluebutton-html5/imports/ui/components/captions/component.jsx
index d0a79164ab364ace6cfdf18c66dc44dfd6a95ac2..4335ac8165c829671ff5e9f876706e2f23de31fd 100644
--- a/bigbluebutton-html5/imports/ui/components/captions/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/captions/component.jsx
@@ -108,13 +108,15 @@ class Captions extends React.Component {
         <div
           aria-hidden
           style={captionStyles}
-          dangerouslySetInnerHTML={{ __html: this.text }}
-        />
+        >
+          {this.text}
+        </div>
         <div
           style={visuallyHidden}
           aria-live={this.text === '' && this.ariaText !== '' ? 'polite' : 'off'}
-          dangerouslySetInnerHTML={{ __html: this.ariaText }}
-        />
+        >
+          {this.ariaText}
+        </div>
       </div>
     );
   }
diff --git a/bigbluebutton-html5/imports/ui/components/captions/service.js b/bigbluebutton-html5/imports/ui/components/captions/service.js
index fc164cebe076656e59af32651662ecde955f884c..a7fe093c3556e63867e3a7f321dba3dba851997b 100644
--- a/bigbluebutton-html5/imports/ui/components/captions/service.js
+++ b/bigbluebutton-html5/imports/ui/components/captions/service.js
@@ -85,6 +85,8 @@ const canIOwnThisPad = (ownerId) => {
   return ownerId !== userID;
 };
 
+const getSpeechRecognitionAPI = () => window.SpeechRecognition || window.webkitSpeechRecognition;
+
 const canIDictateThisPad = (ownerId) => {
   const { userID } = Auth;
   if (!CAPTIONS_CONFIG.enableDictation) return false;
@@ -154,8 +156,6 @@ const formatCaptionsText = (text) => {
 const amIModerator = () => Users.findOne({ userId: Auth.userID },
   { fields: { role: 1 } }).role === ROLE_MODERATOR;
 
-const getSpeechRecognitionAPI = () => window.SpeechRecognition || window.webkitSpeechRecognition;
-
 const initSpeechRecognition = (locale) => {
   const SpeechRecognitionAPI = getSpeechRecognitionAPI();
   let recognition = null;
diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-form/styles.scss b/bigbluebutton-html5/imports/ui/components/chat/message-form/styles.scss
index ecaf6b02011759536bf27f1aef61fe639985c6e4..c4f54e7b34be572efe4769369a376d06d1e79e41 100755
--- a/bigbluebutton-html5/imports/ui/components/chat/message-form/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/chat/message-form/styles.scss
@@ -120,7 +120,7 @@
 
 .spacer {
   &:before {
-    content: none;
+    content: "\00a0"; // non-breaking space
   }
 }
 
diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-form/typing-indicator/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-form/typing-indicator/component.jsx
index aa0195b5644b19a233c99f9921ea6ca65bc4dd22..45887ee41eba556855767c0f7823de938cf4b324 100644
--- a/bigbluebutton-html5/imports/ui/components/chat/message-form/typing-indicator/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/chat/message-form/typing-indicator/component.jsx
@@ -94,16 +94,19 @@ class TypingIndicator extends PureComponent {
   render() {
     const {
       error,
+      indicatorEnabled,
     } = this.props;
 
-    const style = {};
-    style[styles.error] = !!error;
-    style[styles.info] = !error;
-    style[styles.spacer] = !!this.renderTypingElement();
+    const typingElement = this.renderTypingElement();
+
+    const showSpacer = (indicatorEnabled ? !typingElement : !error);
 
     return (
-      <div className={cx(style)}>
-        <span className={styles.typingIndicator}>{error || this.renderTypingElement()}</span>
+      <div className={cx(styles.info, (showSpacer && styles.spacer))}>
+        <div className={styles.typingIndicator}>{typingElement}</div>
+        {error
+          && <div className={cx(styles.typingIndicator, styles.error)}>{error}</div>
+        }
       </div>
     );
   }
diff --git a/bigbluebutton-html5/imports/ui/components/chat/service.js b/bigbluebutton-html5/imports/ui/components/chat/service.js
index 5cf7bf787b88e7b7986568af000f4192351e0ea5..5579ad7ce4ab1d7612b3dda360ea71d668efcf58 100755
--- a/bigbluebutton-html5/imports/ui/components/chat/service.js
+++ b/bigbluebutton-html5/imports/ui/components/chat/service.js
@@ -7,6 +7,7 @@ import UnreadMessages from '/imports/ui/services/unread-messages';
 import Storage from '/imports/ui/services/storage/session';
 import { makeCall } from '/imports/ui/services/api';
 import _ from 'lodash';
+import { meetingIsBreakout } from '/imports/ui/components/app/service';
 
 const CHAT_CONFIG = Meteor.settings.public.chat;
 const GROUPING_MESSAGES_WINDOW = CHAT_CONFIG.grouping_messages_window;
@@ -136,15 +137,19 @@ const getPrivateGroupMessages = () => {
 
 const isChatLocked = (receiverID) => {
   const isPublic = receiverID === PUBLIC_CHAT_ID;
-
   const meeting = Meetings.findOne({ meetingId: Auth.meetingID },
-    { fields: { 'lockSettingsProps.disablePublicChat': 1 } });
+    { fields: { 'lockSettingsProps.disablePublicChat': 1, 'lockSettingsProps.disablePrivateChat': 1 } });
   const user = Users.findOne({ meetingId: Auth.meetingID, userId: Auth.userID },
     { fields: { locked: 1, role: 1 } });
   const receiver = Users.findOne({ meetingId: Auth.meetingID, userId: receiverID },
     { fields: { role: 1 } });
   const isReceiverModerator = receiver && receiver.role === ROLE_MODERATOR;
 
+  // disable private chat in breakouts
+  if (meetingIsBreakout()) {
+    return !isPublic;
+  }
+
   if (meeting.lockSettingsProps !== undefined) {
     if (user.locked && user.role !== ROLE_MODERATOR) {
       if (isPublic) {
diff --git a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx
index 2a6bdcb92fe6ebdc6ff6165b1522a1863d772e8a..f3abba65a00f3814ac83bc7ffd94854c19d1d6be 100755
--- a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx
@@ -6,6 +6,7 @@ import { setCustomLogoUrl } from '/imports/ui/components/user-list/service';
 import { makeCall } from '/imports/ui/services/api';
 import logger from '/imports/startup/client/logger';
 import LoadingScreen from '/imports/ui/components/loading-screen/component';
+import Users from '/imports/api/users';
 
 const propTypes = {
   children: PropTypes.element.isRequired,
@@ -140,13 +141,11 @@ class JoinHandler extends Component {
     };
 
     const setCustomData = (resp) => {
-      const {
-        meetingID, internalUserID, customdata,
-      } = resp;
+      const { customdata } = resp;
 
       return new Promise((resolve) => {
         if (customdata.length) {
-          makeCall('addUserSettings', meetingID, internalUserID, customdata).then(r => resolve(r));
+          makeCall('addUserSettings', customdata).then(r => resolve(r));
         }
         resolve(true);
       });
@@ -172,7 +171,14 @@ class JoinHandler extends Component {
       setLogoURL(response);
       logUserInfo();
 
-      await setCustomData(response);
+      Tracker.autorun(async (cd) => {
+        const user = Users.findOne({ userId: Auth.userID, authed: true }, { fields: { _id: 1 } });
+
+        if (user) {
+          await setCustomData(response);
+          cd.stop();
+        }
+      });
 
       logger.info({
         logCode: 'joinhandler_component_joinroutehandler_success',
diff --git a/bigbluebutton-html5/imports/ui/components/media/styles.scss b/bigbluebutton-html5/imports/ui/components/media/styles.scss
index cd46cf56af2e9dfb12cf99669f542ff69abe21e3..744ceeeace5842705b9f70ac1670225dd0c1b6ae 100644
--- a/bigbluebutton-html5/imports/ui/components/media/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/media/styles.scss
@@ -95,15 +95,7 @@ $after-content-order: 3;
 
 // used to fully hide the presentation area when minimized
 .hideOverlay {
-  visibility: hidden !important;
   position: absolute !important;
-  overflow: hidden !important;
-  clip: rect(0 0 0 0) !important;
-  width: 1px !important;
-  height: 1px !important;
-  margin: -1px !important;
-  padding: 0 !important;
-  border: 0 !important;
 }
 
 .floatingOverlay {
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx
index 2cbfc531dd77531c3b016ec80b44fc41c74c9e91..cb2dacc5a0909f36d09fdaccfb613fcbeda38f5b 100755
--- a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx
@@ -101,6 +101,18 @@ const intlMessages = defineMessages({
     id: 'app.presentationUploder.upload.413',
     description: 'error that file exceed the size limit',
   },
+  408: {
+    id: 'app.presentationUploder.upload.408',
+    description: 'error for token request timeout',
+  },
+  404: {
+    id: 'app.presentationUploder.upload.404',
+    description: 'error not found',
+  },
+  401: {
+    id: 'app.presentationUploder.upload.401',
+    description: 'error for failed upload token request.',
+  },
   conversionProcessingSlides: {
     id: 'app.presentationUploder.conversion.conversionProcessingSlides',
     description: 'indicates how many slides were converted',
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js
index a01c24d1a8cf633d40ab5983d1cb5b17b0f0cca8..95d4a3d699bd347557ace5838c6a300d19e9bc4b 100644
--- a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js
+++ b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js
@@ -3,6 +3,7 @@ import PresentationUploadToken from '/imports/api/presentation-upload-token';
 import Auth from '/imports/ui/services/auth';
 import Poll from '/imports/api/polls/';
 import { makeCall } from '/imports/ui/services/api';
+import logger from '/imports/startup/client/logger';
 import _ from 'lodash';
 
 const CONVERSION_TIMEOUT = 300000;
@@ -171,7 +172,12 @@ const uploadAndConvertPresentation = (
     .then(() => observePresentationConversion(meetingId, file.name, onConversion))
     // Trap the error so we can have parallel upload
     .catch((error) => {
-      console.error(error);
+      logger.debug({
+        logCode: 'presentation_uploader_service',
+        extraInfo: {
+          error,
+        },
+      }, 'Generic presentation upload exception catcher');
       onUpload({ error: true, done: true, status: error.code });
       return Promise.resolve();
     });
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/service.js b/bigbluebutton-html5/imports/ui/components/presentation/service.js
index 7944029a0e4a42af065af0d644db8a88f0534b4b..4fdda85d2e6954ce0b6242aa3487e2bcd5c0f958 100755
--- a/bigbluebutton-html5/imports/ui/components/presentation/service.js
+++ b/bigbluebutton-html5/imports/ui/components/presentation/service.js
@@ -16,9 +16,11 @@ const downloadPresentationUri = (podId) => {
     return null;
   }
 
+  const presentationFileName =  currentPresentation.id + '.' + currentPresentation.name.split('.').pop();
+
   const uri = `https://${window.document.location.hostname}/bigbluebutton/presentation/download/`
     + `${currentPresentation.meetingId}/${currentPresentation.id}`
-    + `?presFilename=${encodeURIComponent(currentPresentation.name)}`;
+    + `?presFilename=${encodeURIComponent(presentationFileName)}`;
 
   return uri;
 };
diff --git a/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx b/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx
index 47adb49a9232a8723784955d8445ea63c78ba4ba..e5f563245bbf3a9c39c7fb54418343096f8ac387 100644
--- a/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx
@@ -91,10 +91,13 @@ const CHAT_ENABLED = CHAT_CONFIG.enabled;
 
 const ShortcutHelpComponent = (props) => {
   const { intl, shortcuts } = props;
-  const { name } = browser();
+  const { name, os } = browser();
 
   let accessMod = null;
 
+  // different browsers use different access modifier keys
+  // on different systems when using accessKey property.
+  // Overview how different browsers behave: https://www.w3schools.com/jsref/prop_html_accesskey.asp
   switch (name) {
     case 'chrome':
     case 'edge':
@@ -112,6 +115,11 @@ const ShortcutHelpComponent = (props) => {
       break;
   }
 
+  // all Browsers on MacOS are using Control + Option as access modifier
+  if (os.includes('OS X 10')) {
+    accessMod = 'Control + Option';
+  }
+
   const shortcutItems = shortcuts.map((shortcut) => {
     if (!CHAT_ENABLED && shortcut.descId.indexOf('Chat') !== -1) return null;
 
diff --git a/bigbluebutton-html5/imports/ui/components/user-info/component.jsx b/bigbluebutton-html5/imports/ui/components/user-info/component.jsx
index e1648d4d1ef543ee8a3d2d14ac910b48e894d2c1..29bf4ad9d8b96d73a5493638e6325ec986096afb 100644
--- a/bigbluebutton-html5/imports/ui/components/user-info/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-info/component.jsx
@@ -53,13 +53,11 @@ class UserInfoComponent extends Component {
   }
 
   render() {
-    const {
-      intl, meetingId, requesterUserId,
-    } = this.props;
+    const { intl } = this.props;
     return (
       <Modal
         title={intl.formatMessage(intlMessages.title)}
-        onRequestClose={() => Service.handleCloseUserInfo(meetingId, requesterUserId)}
+        onRequestClose={() => Service.handleCloseUserInfo()}
       >
         {this.renderUserInfo()}
       </Modal>
diff --git a/bigbluebutton-html5/imports/ui/components/user-info/service.js b/bigbluebutton-html5/imports/ui/components/user-info/service.js
index af382b5ad403185508526a497a80fda2ad2fa3b8..f561bb9d60a95088ff2a9a6f32375ef09bbfcf86 100644
--- a/bigbluebutton-html5/imports/ui/components/user-info/service.js
+++ b/bigbluebutton-html5/imports/ui/components/user-info/service.js
@@ -1,7 +1,7 @@
 import { makeCall } from '/imports/ui/services/api';
 
 export default {
-  handleCloseUserInfo: (meetingId, requesterUserId) => {
-    makeCall('removeUserInformation', meetingId, requesterUserId);
+  handleCloseUserInfo: () => {
+    makeCall('removeUserInformation');
   },
 };
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/component.jsx
index 5d00ae901c2788bbc3977c2e5683c2acdf6de54b..452fa10ff739ea19e2ffc84548b6f53edbcce8ab 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/component.jsx
@@ -301,7 +301,7 @@ class UserDropdown extends PureComponent {
       ));
     }
 
-    if (CHAT_ENABLED && enablePrivateChat && isMeteorConnected) {
+    if (CHAT_ENABLED && enablePrivateChat && !meetingIsBreakout && isMeteorConnected) {
       actions.push(this.makeDropdownItem(
         'activeChat',
         intl.formatMessage(messages.ChatLabel),
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/styles.scss b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/styles.scss
index bd3bf9301fb1d3182e61a164e3dcf4468488d69d..3e6e5bd0aa65950ecb3d704de5f38ed83059af9a 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/user-dropdown/styles.scss
@@ -87,6 +87,7 @@
   @include highContrastOutline();
   outline-style: solid;
   background-color: var(--list-item-bg-hover);
+  box-shadow: inset 0 0 0 var(--border-size) var(--item-focus-border), inset 1px 0 0 1px var(--item-focus-border);
 
   &:focus {
     outline-style: solid;
@@ -95,7 +96,7 @@
 }
 
 .userListItem {
-  @extend %list-item;
+  //@extend %list-item;
   flex-flow: column;
   flex-shrink: 0;
 }
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 bb4b5fc411d05180b31ad882f580c78a0ddd5cb3..a05ddfb9ee928a3ed4d0f4b4907ae8d22eb61f74 100644
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx
@@ -180,6 +180,8 @@ class PollDrawComponent extends Component {
     } = this.state;
 
     const { annotation } = this.props;
+    // increment the font size by 2 to prevent Maximum update depth exceeded
+    const fontSizeIncrement = 2;
 
     // calculating the font size in this if / else block
     if (fontSizeDirection !== 0) {
@@ -196,14 +198,14 @@ class PollDrawComponent extends Component {
           && voteSizes.width < maxLineWidth && voteSizes.height < maxLineHeight
           && percSizes.width < maxLineWidth && percSizes.height < maxLineHeight) {
           return this.setState({
-            calcFontSize: calcFontSize + 1,
+            calcFontSize: calcFontSize + fontSizeIncrement,
           });
 
           // we can't increase font-size anymore, start decreasing
         }
         return this.setState({
           fontSizeDirection: -1,
-          calcFontSize: calcFontSize - 1,
+          calcFontSize: calcFontSize - fontSizeIncrement,
         });
       } if (fontSizeDirection === -1) {
         // check if the font-size is still bigger than allowed
@@ -211,7 +213,7 @@ class PollDrawComponent extends Component {
           || voteSizes.width > maxLineWidth || voteSizes.height > maxLineHeight
           || percSizes.width > maxLineWidth || percSizes.height > maxLineHeight) {
           return this.setState({
-            calcFontSize: calcFontSize - 1,
+            calcFontSize: calcFontSize - fontSizeIncrement,
           });
 
           // font size is fine for the current line, switch to the next line
diff --git a/bigbluebutton-html5/package-lock.json b/bigbluebutton-html5/package-lock.json
index 87249f63f867673064767682e70362635a10d7a0..bfc020994ae512d8651b6f2e78f8ef28e377222b 100644
--- a/bigbluebutton-html5/package-lock.json
+++ b/bigbluebutton-html5/package-lock.json
@@ -6620,6 +6620,24 @@
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
+        "minimist": {
+          "version": "0.0.8",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+          "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "pngjs": {
+          "version": "3.3.3",
+          "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz",
+          "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q=="
+        },
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -8330,11 +8348,6 @@
       "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
       "dev": true
     },
-    "package-lock.json": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/package-lock.json/-/package-lock.json-1.0.0.tgz",
-      "integrity": "sha512-+yEXtNdlCs5N0Zy/9uvkifgf/RqnGu0WqP4j9Wu1Us4YReFe1YNBh2Krmf8B1xGxjpYnta63K55QP8bkafnOzA=="
-    },
     "parse-json": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml
index 063bdef32b783a909c1574d6b826592de5b8fd9b..c21e3f97673db4df0f4d7213fe983869fa761c99 100755
--- a/bigbluebutton-html5/private/config/settings.yml
+++ b/bigbluebutton-html5/private/config/settings.yml
@@ -9,7 +9,7 @@ public:
     skipCheck: false
     clientTitle: BigBlueButton
     appName: BigBlueButton HTML5 Client
-    bbbServerVersion: 2.2-dev
+    bbbServerVersion: 2.2
     copyright: "©2020 BigBlueButton Inc."
     html5ClientBuild: HTML5_CLIENT_VERSION
     helpLink: https://bigbluebutton.org/html5/
@@ -177,7 +177,7 @@ public:
     callTransferTimeout: 5000
     callHangupTimeout: 2000
     callHangupMaximumRetries: 10
-    echoTestNumber: '9196'
+    echoTestNumber: 'echo'
     relayOnlyOnReconnect: false
   presentation:
     allowDownloadable: true
@@ -374,4 +374,4 @@ private:
       version: [0, 36]
     - browser: YandexBrowser
       version: 19
-      
+
diff --git a/bigbluebutton-html5/private/locales/ar.json b/bigbluebutton-html5/private/locales/ar.json
index a0474990b7edef0ec94b9405b3d251d1fc793ed0..88739518dbdd907fbc80ee9d974c6dcc0dca371f 100644
--- a/bigbluebutton-html5/private/locales/ar.json
+++ b/bigbluebutton-html5/private/locales/ar.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "سيبدأ عرضك التقديمي قريبا ...",
     "app.chat.submitLabel": "أرسل رسالة",
-    "app.chat.errorMinMessageLength": "الرسالة هي {0} حرف (أحرف) قصيرة جدًا",
     "app.chat.errorMaxMessageLength": "الرسالة هي {0} حرف (أحرف) طويلة جدا",
     "app.chat.disconnected": "أنت غير متصل ، لا يمكن إرسال الرسائل",
     "app.chat.locked": "تم قفل الدردشة ، لا يمكن إرسال الرسائل",
@@ -112,6 +111,7 @@
     "app.media.autoplayAlertDesc": "تمكين إستخدام",
     "app.media.screenshare.start": "بدأت مشاركة الشاشة",
     "app.media.screenshare.end": "انتهت مشاركة الشاشة",
+    "app.media.screenshare.unavailable": "مشاركة الشاشة غير متوفرة",
     "app.media.screenshare.safariNotSupported": "مشاركة الشاشة غير مدعومة حاليًا بواسطة سفاري. من فضلك ، استخدم فايرفوكس أو جوجل كروم.",
     "app.media.screenshare.autoplayBlockedDesc": "نحن بحاجة إلى إذنك لتظهر لك شاشة مقدم العرض.",
     "app.media.screenshare.autoplayAllowLabel": "عرض الشاشة المشتركة",
@@ -156,14 +156,14 @@
     "app.presentation.presentationToolbar.fitToPage": "المناسبة للصفحة",
     "app.presentation.presentationToolbar.goToSlide": "شريحة {0}",
     "app.presentationUploder.title": "عرض",
-    "app.presentationUploder.message": "كمقدم لديك  القدرة على تحميل أي وثيقة مكتب أو ملف PDF. نوصي بملف PDF للحصول على أفضل النتائج. يرجى التأكد من تحديد عرض تقديمي باستخدام مربع الاختيار على الجانب الأيمن.",
+    "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.dropzoneImagesLabel": "رفع الصوره من خلال سحبها إلى هنا",
     "app.presentationUploder.browseFilesLabel": "أو تصفح ملفات",
     "app.presentationUploder.browseImagesLabel": "أو تصفح/التقاط الصور",
     "app.presentationUploder.fileToUpload": "وسيتم رفعها ...",
@@ -176,8 +176,12 @@
     "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": "حذف العرض",
@@ -360,18 +364,18 @@
     "app.actionsBar.currentStatusDesc": "الوضع الحالي {0}",
     "app.actionsBar.captions.start": "بدء عرض الترجمات",
     "app.actionsBar.captions.stop": "إيقاف عرض الترجمات",
-    "app.audioNotification.audioFailedError1001": "خطأ 1001 :فصل WebSocket",
-    "app.audioNotification.audioFailedError1002": "خطا 1002: تعذر الإ تصال بWebSocket",
-    "app.audioNotification.audioFailedError1003": "خطأ 1003: إصدار متصفح غير معتمد",
-    "app.audioNotification.audioFailedError1004": "خطأ 1004: فشل في الإتصال (السبب={0})",
-    "app.audioNotification.audioFailedError1005": "خطأ 1005: انقطاع المكالمة",
-    "app.audioNotification.audioFailedError1006": "خطأ 1006: انتهاء مهلة المكالمة",
-    "app.audioNotification.audioFailedError1007": "خطأ 1007: فشل التفاوض ICE",
-    "app.audioNotification.audioFailedError1008": "خطأ 1008: فشل نقل",
-    "app.audioNotification.audioFailedError1009": "خطأ 1009:تعذر جلبSTUN/TURN معلومات الخادم",
-    "app.audioNotification.audioFailedError1010": "خطأ 1010: مهلة تفاوض ICE",
-    "app.audioNotification.audioFailedError1011": "1011 خطأ: ICE تجميع المهلة",
-    "app.audioNotification.audioFailedError1012": "خطأ 1012: غلق اتصال ICE",
+    "app.audioNotification.audioFailedError1001": "قطع اتصال WebSocket (خطأ 1001)",
+    "app.audioNotification.audioFailedError1002": "تعذر إجراء اتصال WebSocket (خطأ 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": "غلق",
@@ -542,14 +546,14 @@
     "app.video.joinVideo": "مشاركة كاميرا",
     "app.video.leaveVideo": "إلغاء مشاركة الكاميرا",
     "app.video.iceCandidateError": "خطأ في إضافة مرشح ICE",
-    "app.video.iceConnectionStateError": "خطأ 1107: فشل التفاوض 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.mediaFlowTimeout1020": "تعذر على الوسائط الوصول إلى الخادم (خطأ 1020)",
     "app.video.suggestWebcamLock": "فرض قفل الإعدادات لكاميرات المشاهدين ؟",
     "app.video.suggestWebcamLockReason": "(سيؤدي ذلك إلى تحسين استقرار الاجتماع)",
     "app.video.enable": "تفعيل",
@@ -577,16 +581,16 @@
     "app.video.stats.encodeUsagePercent": "تشفير الاستخدام",
     "app.video.stats.currentDelay": "التأخير الحالي",
     "app.fullscreenButton.label": "جعل {0} على الشاشة الكاملة",
-    "app.deskshare.iceConnectionStateError": "خطأ 1108: فشل اتصال ICE عند مشاركة الشاشة",
-    "app.sfu.mediaServerConnectionError2000": "خطأ 2000: غير قادر على الاتصال بخادم وسائل الاعلام",
-    "app.sfu.mediaServerOffline2001": "خطأ 2001: خادم وسائل الاعلام غير متصل. الرجاء إعادة المحاولة في وقت لاحق.",
-    "app.sfu.mediaServerNoResources2002": "خطأ 2002: خادم وسائل الاعلام لا يحتوى على موارد متوفرة",
-    "app.sfu.mediaServerRequestTimeout2003": "خطأ 2003: توقيت خروج طلبات خادم وسائل الاعلام",
-    "app.sfu.serverIceGatheringFailed2021": "خطأ 2021: لا يمكن لخادم وسائل الاعلام تجميع مرشحات ICE",
-    "app.sfu.serverIceGatheringFailed2022": "خطأ 2022: فشل اتصال ICE خادم وسائل الاعلام",
-    "app.sfu.mediaGenericError2200": "خطا 2200: فشل خادم الوسائط في معالجة الطلب",
-    "app.sfu.invalidSdp2202":"خطأ 2202: أنشأ عميل SDP غير صالح",
-    "app.sfu.noAvailableCodec2203": "خطأ 2203: تعذر على الخادم العثور على برنامج تشفير المناسب",
+    "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": "أدوات",
diff --git a/bigbluebutton-html5/private/locales/az.json b/bigbluebutton-html5/private/locales/az.json
new file mode 100644
index 0000000000000000000000000000000000000000..494874f2c4dab871ef4dca4edc69177f330d9bee
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/az.json
@@ -0,0 +1,683 @@
+{
+    "app.home.greeting": "Seans qısa müddətdə başlayacaq ...",
+    "app.chat.submitLabel": "Göndər",
+    "app.chat.errorMaxMessageLength": "Mesaj {0} simvoldan uzundur",
+    "app.chat.disconnected": "Əlaqə kəsildiyi üçün mesajı göndərə bilmədik",
+    "app.chat.locked": "Çat bağlı olduğu üçün mesaj göndərmək mümkün deyil.",
+    "app.chat.inputLabel": "Çata daxil edilmiş mesaj {0}",
+    "app.chat.inputPlaceholder": "{0} mesaj göndər",
+    "app.chat.titlePublic": "Ortaq Çat",
+    "app.chat.titlePrivate": "{0} Şəxşi Çat",
+    "app.chat.partnerDisconnected": "{0} görüşü tərk etdi",
+    "app.chat.closeChatLabel": "BaÄŸla {0}",
+    "app.chat.hideChatLabel": "Gizlət {0}",
+    "app.chat.moreMessages": "Daha çox",
+    "app.chat.dropdown.options": "Çat Parametrləri",
+    "app.chat.dropdown.clear": "Təmizlə",
+    "app.chat.dropdown.copy": "Kopyala",
+    "app.chat.dropdown.save": "Saxla",
+    "app.chat.label": "Çat",
+    "app.chat.offline": "Oflayn",
+    "app.chat.emptyLogLabel": "Çat jurnalı boşdur",
+    "app.chat.clearPublicChatMessage": "Çat tarixçəsi moderator tərəfindən təmizləndi.",
+    "app.chat.multi.typing": "Bir neçə istifadəçi yazır",
+    "app.chat.one.typing": "{0} yazır",
+    "app.chat.two.typing": "{0} və {1} yazır",
+    "app.captions.label": "Mövzular",
+    "app.captions.menu.close": "BaÄŸla",
+    "app.captions.menu.start": "BaÅŸla",
+    "app.captions.menu.ariaStart": "Mövzu yazmağa başla",
+    "app.captions.menu.ariaStartDesc": "Mövzu redaktoru açılır və modallar bağlanır",
+    "app.captions.menu.select": "Dil seçimi et",
+    "app.captions.menu.ariaSelect": "Dillər",
+    "app.captions.menu.subtitle": "Zəhmət olmasa sessiyanızda qapalı başlıqlar üçün bir dil və üslub seçin.",
+    "app.captions.menu.title": "Başlığı bağla",
+    "app.captions.menu.fontSize": "Ölçü",
+    "app.captions.menu.fontColor": "Yazı rəngi",
+    "app.captions.menu.fontFamily": "Åžrift",
+    "app.captions.menu.backgroundColor": "Fon rəngi",
+    "app.captions.menu.previewLabel": "Özizləmə",
+    "app.captions.menu.cancelLabel": "Ləğv et",
+    "app.captions.pad.hide": "Bağlı başlıqları gizlət",
+    "app.captions.pad.tip": "Alətlər paneli üçün Esc düyməsini sıxın",
+    "app.captions.pad.ownership": "Öhdənə götür",
+    "app.captions.pad.ownershipTooltip": "{0} başlıqlarının admini təyin edin.",
+    "app.captions.pad.interimResult": "Nəticələr",
+    "app.captions.pad.dictationStart": "Nitqin tanınmasını başlat",
+    "app.captions.pad.dictationStop": "Nitqin tanınmasını bitir",
+    "app.captions.pad.dictationOnDesc": "Yazı səhvlərini yoxla",
+    "app.captions.pad.dictationOffDesc": "Nitq tanınmasını söndür",
+    "app.note.title": "Qeydləri bölüş",
+    "app.note.label": "Qeyd",
+    "app.note.hideNoteLabel": "Qeydləri gözlət",
+    "app.user.activityCheck": "İstifadəçi fəaliyyətini yoxla",
+    "app.user.activityCheck.label": "({0}) istifadəçilərin sessiyada olduğunu yoxlayın",
+    "app.user.activityCheck.check": "Yoxla",
+    "app.note.tipLabel": "Diqqəti redaktora yönləndirmək üçün ESC düyməsini sıxın.",
+    "app.userList.usersTitle": "İstifadəçilər",
+    "app.userList.participantsTitle": "İştirakçılar",
+    "app.userList.messagesTitle": "Mesaj",
+    "app.userList.notesTitle": "Qeydlər",
+    "app.userList.notesListItem.unreadContent": "Qeydlər bölməsində yeni məzmun dərc olundu.",
+    "app.userList.captionsTitle": "Mövzular",
+    "app.userList.presenter": "Təqdimatçı",
+    "app.userList.you": "You",
+    "app.userList.locked": "Kilidli",
+    "app.userList.label": "İstifadəçi siyahısı",
+    "app.userList.toggleCompactView.label": "Kompakt modu aktivləşdir",
+    "app.userList.guest": "Qonaq",
+    "app.userList.menuTitleContext": "Mümkün variantlar",
+    "app.userList.chatListItem.unreadSingular": "{0} Yeni Mesaj",
+    "app.userList.chatListItem.unreadPlural": "{0} Yeni Mesajlar",
+    "app.userList.menu.chat.label": "Xüsusi çatı başlat",
+    "app.userList.menu.clearStatus.label": "Statusu təmizlə",
+    "app.userList.menu.removeUser.label": "İstifadəçini sil",
+    "app.userList.menu.muteUserAudio.label": "İstifadəçini susdur",
+    "app.userList.menu.unmuteUserAudio.label": "İstifadəçini danışdır",
+    "app.userList.userAriaLabel": "{0} {1} {2}  Status {3}",
+    "app.userList.menu.promoteUser.label": "Modretor et",
+    "app.userList.menu.demoteUser.label": "İzləyici et",
+    "app.userList.menu.unlockUser.label": "Açıq {0}",
+    "app.userList.menu.lockUser.label": "Kilidli {0}",
+    "app.userList.menu.directoryLookup.label": "Qovluq axtarışı",
+    "app.userList.menu.makePresenter.label": "Təqdimatçı et",
+    "app.userList.userOptions.manageUsersLabel": "İstifadəçiləri düzəlt",
+    "app.userList.userOptions.muteAllLabel": "İstifadəçiləri səssizə al",
+    "app.userList.userOptions.muteAllDesc": "Seansda olan istifadəçiləri səssizə al",
+    "app.userList.userOptions.clearAllLabel": "Bütün status ikonları sil",
+    "app.userList.userOptions.clearAllDesc": "İstifadəçilərdən bütün status ikonları sil",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Təqdimatçıdan başqa bütün istifadəçiləri səssizə al.",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Təqdimatçıdan başqa seansdakı bütün istifadəçiləri səssizə al",
+    "app.userList.userOptions.unmuteAllLabel": "Seansın səsini aç",
+    "app.userList.userOptions.unmuteAllDesc": "Unmutes the meeting",
+    "app.userList.userOptions.lockViewersLabel": "İzləyiciləri kilidlə",
+    "app.userList.userOptions.lockViewersDesc": "Seans iştirakçıları üçün müəyyən funksiyaları bağla",
+    "app.userList.userOptions.disableCam": "İzləyicilərin kameraları deaktiv et",
+    "app.userList.userOptions.disableMic": "İzləyicilərin mikrafonları deaktiv et",
+    "app.userList.userOptions.disablePrivChat": "Şəxsi çatı bağla",
+    "app.userList.userOptions.disablePubChat": "Açıq çatı bağla",
+    "app.userList.userOptions.disableNote": "Bölüşülmüş qeydlər  kilidlidir",
+    "app.userList.userOptions.hideUserList": "İstifadəçi siyahısı izləyicilər üçün gizlidir",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Yalnız moderatorlar izləyicilərin veb-kameralarını görə bilər",
+    "app.userList.content.participants.options.clearedStatus": "Bütün istifadəçilərin statusu silindi",
+    "app.userList.userOptions.enableCam": "İzləyicilərin kameralarını aktiv et",
+    "app.userList.userOptions.enableMic": "İzləyicilərin mikrafonlarını aktiv et",
+    "app.userList.userOptions.enablePrivChat": "Şəxsi çat aktivdir",
+    "app.userList.userOptions.enablePubChat": "Ortaq çat aktivdir",
+    "app.userList.userOptions.enableNote": "Qeyd bölüşmək aktivdir",
+    "app.userList.userOptions.showUserList": "İzləyicilər artıq istifadəçiləri görə bilər.",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "You can enable your webcam now, everyone will see you",
+    "app.media.label": "Media",
+    "app.media.autoplayAlertDesc": "GiriÅŸÉ™ imkan ver",
+    "app.media.screenshare.start": "Ekran bölüşülməsi başladı",
+    "app.media.screenshare.end": "Ekran bölüşülməsi bitdi",
+    "app.media.screenshare.autoplayBlockedDesc": "Təqdimatçının ekranını görmək üçün icazəniz lazımdır.",
+    "app.media.screenshare.autoplayAllowLabel": "Bölüşülmüş ekranları izlə",
+    "app.screenshare.notAllowed": "Xəta: Ekrana giriş icazəsi verilmədi.",
+    "app.screenshare.notSupportedError": "Xəta: Ekran bölüşmək sadəcə SSL sertifikatı ilə qorunan ünvanlarda mövcuddur.",
+    "app.screenshare.notReadableError": "Xəta: Ekran görüntüsü alma vaxtı xəta baş verdi.",
+    "app.screenshare.genericError": "Xəta: Ekran mübadiləsi zamanı xəta baş verdi, yenidən cəhd edin",
+    "app.meeting.ended": "Bu seans başa çatdı",
+    "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",
+    "app.presentation.startSlideContent": "Slayd məzmunu başladı",
+    "app.presentation.endSlideContent": "Slayd məzmunu bitdi",
+    "app.presentation.emptySlideContent": "Cari slayd üçün məzmun yoxdur",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Təqdimatın sonu",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Təqdimatın başlanğıcı",
+    "app.presentation.presentationToolbar.selectLabel": "Slayd seç",
+    "app.presentation.presentationToolbar.prevSlideLabel": "Əvvəlki slayd",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Təqdimatı əvvəlki slayda dəyişdir",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Növbəti slayd",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Təqdimatı növbəti slayda dəyişdir",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Slaydı ötür",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Təqdimatı xüsusi bir slayda dəyişdirin",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Genişlət",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Slaydın tam genişliyini göstər",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Tam ekran göstər",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Bütün slaydı göstər",
+    "app.presentation.presentationToolbar.zoomLabel": "Yaxınlaşdır",
+    "app.presentation.presentationToolbar.zoomDesc": "Yaxınlıq dərəcəsini göstər",
+    "app.presentation.presentationToolbar.zoomInLabel": "Yaxınşaldır",
+    "app.presentation.presentationToolbar.zoomInDesc": "Təqdimatı yaxınlaşdır",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Kiçilt",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Təqdimatı kiçild",
+    "app.presentation.presentationToolbar.zoomReset": "Yaxınlaşdımağı sıfırla",
+    "app.presentation.presentationToolbar.zoomIndicator": "Mövcud yaxınlıq faizi",
+    "app.presentation.presentationToolbar.fitToWidth": "Genişləndir",
+    "app.presentation.presentationToolbar.fitToPage": "Səhifəyə sığdır",
+    "app.presentation.presentationToolbar.goToSlide": "Slayd {0}",
+    "app.presentationUploder.title": "Təqdimat",
+    "app.presentationUploder.message": "Təqdimatçı olaraq hər hansı bir Office sənədini və ya PDF faylı yükləmək imkanınız var. Ən yaxşı nəticələr üçün PDF faylını tövsiyə edirik. Zəhmət olmasa, təqdimatın sağ tərəfində olan təsdiq qutusundan istifadə edin.",
+    "app.presentationUploder.uploadLabel": "Yüklə",
+    "app.presentationUploder.confirmLabel": "Təsdiq",
+    "app.presentationUploder.confirmDesc": "Əməliyyatı yadda saxla və təqdimata başla",
+    "app.presentationUploder.dismissLabel": "Ä°mtina",
+    "app.presentationUploder.dismissDesc": "Modal pəncərəni bağlayın və dəyişiklərdən imtina edin",
+    "app.presentationUploder.dropzoneLabel": "Yükləmək üçün faylları bura yerləşdirin",
+    "app.presentationUploder.dropzoneImagesLabel": "Yükləmək üçün şəkilləri bura yerləşdirin",
+    "app.presentationUploder.browseFilesLabel": "və ya faylları gözdən keçirin",
+    "app.presentationUploder.browseImagesLabel": "və ya şəkilləri gözdən keçirin",
+    "app.presentationUploder.fileToUpload": "Yüklənir ...",
+    "app.presentationUploder.currentBadge": "Mövcud",
+    "app.presentationUploder.rejectedError": "Fayl yükləmək mümkün olmadı. Zəhmət olmasa yoxlayın.",
+    "app.presentationUploder.upload.progress": "Yüklənir ({0}%)",
+    "app.presentationUploder.upload.413": "Faylın həcmi çox böyükdür. Zəhmət olmasa faylı yoxlayın.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Səhifə {0}  {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "Fayl dönüşdürülür ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Şəkillər yaradıldı ...",
+    "app.presentationUploder.conversion.generatedSlides": "Slaydlar yaradıldı ...",
+    "app.presentationUploder.conversion.generatingSvg": "SVG yaradıldı ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Səhifələrin sayı çoxdır. Zəhmət olmasa faylı bir neçə fayla bölün.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Office sənədini yükləmək mümkün olmadı. Zəhmət olmasa bunun əvəzinə bir PDF yükləyin.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Office sənədini yükləmək mümkün olmadı. Zəhmət olmasa bunun əvəzinə bir PDF yükləyin.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "PDF file konvertasiya etmək mümkün olmadı, zəhmət olmasa optimizə etməyə çalışın",
+    "app.presentationUploder.conversion.timeout": "Bağışlayın, konvertasiya həddindən çox vaxt apardı",
+    "app.presentationUploder.conversion.pageCountFailed": "Səhifə sayını müəyyən etmək mümkün olmadı",
+    "app.presentationUploder.isDownloadableLabel": "Təqdimatı yükləməyə icazə vermə",
+    "app.presentationUploder.isNotDownloadableLabel": "Təqdimatı yükləməyə icazə ver",
+    "app.presentationUploder.removePresentationLabel": "Təqdimatı sil",
+    "app.presentationUploder.setAsCurrentPresentation": "Set presentation as current Təqdimati cari seçim et",
+    "app.presentationUploder.tableHeading.filename": "Faylın adı",
+    "app.presentationUploder.tableHeading.options": "Seçimlər",
+    "app.presentationUploder.tableHeading.status": "Status",
+    "app.poll.pollPaneTitle": "SorÄŸu",
+    "app.poll.quickPollTitle": "Çevik sorğu",
+    "app.poll.hidePollDesc": "Sorğu menyu tabını gizlədir",
+    "app.poll.customPollInstruction": "Sorğu yaratmaq üçün, aşağıdakı düyməni bası və seçimini daxil edin",
+    "app.poll.quickPollInstruction": "Sorğu başlatmaq üçün aşağıdakı seçimi seçin",
+    "app.poll.customPollLabel": "Fərdi sorğu ",
+    "app.poll.startCustomLabel": "Fərdi sorğunu başla",
+    "app.poll.activePollInstruction": "Sorğuya cavabları görmək üçün bu paneli açıq saxlayın. Hazır olduqda, sorğu nəticələrini açıqlamaq və sorğunu bitirmək üçün \"Sorğu nəticələrini açıqla\" düyməsini seç.",
+    "app.poll.publishLabel": "Sorğu nəticələrini açıqla",
+    "app.poll.backLabel": "Sorğu seçimlərinə qayıt",
+    "app.poll.closeLabel": "BaÄŸla",
+    "app.poll.waitingLabel": "Cavab gözlənilir ({0}/{1})",
+    "app.poll.ariaInputCount": "Fərdi sorğu seçimi {0} of {1}",
+    "app.poll.customPlaceholder": "Sorğu seçimi əlavə et",
+    "app.poll.noPresentationSelected": "Təqdimat seçilməyib! Zəhmət olmasa birini seçin.",
+    "app.poll.clickHereToSelect": "Seçmək üçün buraya bas",
+    "app.poll.t": "DoÄŸru",
+    "app.poll.f": "Yalnış",
+    "app.poll.tf": "Doğru / Yalnış",
+    "app.poll.y": "Bəli",
+    "app.poll.n": "Xeyr",
+    "app.poll.yn": "Bəli / Xeyr",
+    "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": "DoÄŸru",
+    "app.poll.answer.false": "Yalnış",
+    "app.poll.answer.yes": "Bəli",
+    "app.poll.answer.no": "Xeyr",
+    "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": "İstifadəçilər",
+    "app.poll.liveResult.responsesTitle": "Cavab",
+    "app.polling.pollingTitle": "Sorğu seçimləri",
+    "app.polling.pollAnswerLabel": "Sorğu cavabı {0}",
+    "app.polling.pollAnswerDesc": "{0} səs vermək üçün bu seçimi seç",
+    "app.failedMessage": "Bağışlayın, serverə qoşulmaqda problem var.",
+    "app.downloadPresentationButton.label": "Original təqdimatı yüklə",
+    "app.connectingMessage": "QoÅŸulur ...",
+    "app.waitingMessage": "Bağlantı kəsildi. {0} saniyədə qoşulmağa cəhd edilir ...",
+    "app.retryNow": "Yenidən cəhd et",
+    "app.navBar.settingsDropdown.optionsLabel": "Seçimlə",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Bütün ekrana göstər",
+    "app.navBar.settingsDropdown.settingsLabel": "Tənzimləmələr",
+    "app.navBar.settingsDropdown.aboutLabel": "Haqqında",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Sistemdən çıx",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Bütov ekrandan yığışdır",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Tənzimləmələr menyusunu bütöv ekrana göstər",
+    "app.navBar.settingsDropdown.settingsDesc": "Ümumi tənzimləmələri dəyiş",
+    "app.navBar.settingsDropdown.aboutDesc": "Müştəri barədə məlumatı göstər",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Görüşü tərk et",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Bütov ekrandan yığışdır",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Klaviatura üçün qısa yollar",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Mövcud klaviatura qısa yollarının hamısı sıralanır",
+    "app.navBar.settingsDropdown.helpLabel": "Yardım",
+    "app.navBar.settingsDropdown.helpDesc": "İstifadəçi video təlimatlara bağlayır (yeni tabı açır)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Cari görüşü dayandırır",
+    "app.navBar.settingsDropdown.endMeetingLabel": "End meeting",
+    "app.navBar.userListToggleBtnLabel": "User list toggle",
+    "app.navBar.toggleUserList.ariaLabel": "Users and messages toggle",
+    "app.navBar.toggleUserList.newMessages": "yeni mesaj bildiriÅŸi ilÉ™",
+    "app.navBar.recording": "Bu sessiya hal-hazırda qeydə alınır",
+    "app.navBar.recording.on": "Qeydə alınır",
+    "app.navBar.recording.off": "Qeydə alınmır",
+    "app.navBar.emptyAudioBrdige": "Aktiv mikrofon yoxdur. Bu videoya səs əlavə etmək üçün mikrofonu qoş.",
+    "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",
+    "app.about.version": "Client build:",
+    "app.about.copyright": "Müəlliflik hüququ:",
+    "app.about.confirmLabel": "OK",
+    "app.about.confirmDesc": "Əhsən",
+    "app.about.dismissLabel": "Ləğv et",
+    "app.about.dismissDesc": "Close about client information",
+    "app.actionsBar.changeStatusLabel": "Statusu dəyiş",
+    "app.actionsBar.muteLabel": "Səsi al",
+    "app.actionsBar.unmuteLabel": "Səsi aç",
+    "app.actionsBar.camOffLabel": "Kameranı bağla",
+    "app.actionsBar.raiseLabel": "Qaldır",
+    "app.actionsBar.label": "Əməliyyatlar paneli",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Təqdimatı bərpa et",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Təqdimat bağlanan sonra onu bərpa etmək üçün düymə",
+    "app.screenshare.screenShareLabel" : "Ekranı paşla",
+    "app.submenu.application.applicationSectionTitle": "Proqram",
+    "app.submenu.application.animationsLabel": "Animasiyalar",
+    "app.submenu.application.audioAlertLabel": "Çat üçün səs bildirişləri",
+    "app.submenu.application.pushAlertLabel": "Çat üçün popup bildirişləri",
+    "app.submenu.application.userJoinAudioAlertLabel": "İstifadəçi qoşulması üçün səs bildirişi",
+    "app.submenu.application.userJoinPushAlertLabel": "İstifadəçi qoşulması üçün popup bildirişi",
+    "app.submenu.application.fontSizeControlLabel": "Fontun ölçünü",
+    "app.submenu.application.increaseFontBtnLabel": "Proqramın font ölçüsünü artır",
+    "app.submenu.application.decreaseFontBtnLabel": "Proqramın font ölçüsünü azalt",
+    "app.submenu.application.currentSize": "hal-hazırda {0}",
+    "app.submenu.application.languageLabel": "Proqramın dili",
+    "app.submenu.application.languageOptionLabel": "Dili seç",
+    "app.submenu.application.noLocaleOptionLabel": "Aktiv dil yoxdur",
+    "app.submenu.audio.micSourceLabel": "Mikrofonun mənbəyi",
+    "app.submenu.audio.speakerSourceLabel": "Kalonkanın mənbəyi",
+    "app.submenu.audio.streamVolumeLabel": "Your audio stream volume",
+    "app.submenu.video.title": "Video",
+    "app.submenu.video.videoSourceLabel": "Baxış mənbəyi",
+    "app.submenu.video.videoOptionLabel": "Baxış mənbəyini seç",
+    "app.submenu.video.videoQualityLabel": "Video keyfiyyəti",
+    "app.submenu.video.qualityOptionLabel": "Video keyfiyyətini seç",
+    "app.submenu.video.participantsCamLabel": "İştirakçıların veb kameralarına baxılır",
+    "app.settings.applicationTab.label": "Proqram",
+    "app.settings.audioTab.label": "Səs",
+    "app.settings.videoTab.label": "Video",
+    "app.settings.usersTab.label": "İştirakçılar",
+    "app.settings.main.label": "Tənzimləmələr",
+    "app.settings.main.cancel.label": "Ləğv et",
+    "app.settings.main.cancel.label.description": " Dəyişikləri ləğv et və tənzimləmələr menyusunu bağla",
+    "app.settings.main.save.label": "Yadda saxla",
+    "app.settings.main.save.label.description": "Dəyişiklikləri yadda saxlayır və tənzimləmələr menyusunu seçir",
+    "app.settings.dataSavingTab.label": "Data savings",
+    "app.settings.dataSavingTab.webcam": "Veb kameranı aktivləşdir",
+    "app.settings.dataSavingTab.screenShare": "Desktop paylaşımı aktiv et",
+    "app.settings.dataSavingTab.description": "Internet sərfiyyatına qənaet etmək üçün nəyin hal-hazırda göstərildiyini müəyyən et.",
+    "app.settings.save-notification.label": "Tənzimləmələr yadda saxlanıldır",
+    "app.switch.onLabel": "Aktiv",
+    "app.switch.offLabel": "Deaktiv",
+    "app.talkingIndicator.ariaMuteDesc" : "İstifadəçini səsini kəsmək üçün seç",
+    "app.talkingIndicator.isTalking" : "{0} danışır",
+    "app.talkingIndicator.wasTalking" : "{0} danışmağı dayandırdı",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Əməliyyatlar",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Təqdimatı yüklə",
+    "app.actionsBar.actionsDropdown.initPollLabel": "SorÄŸunu baÅŸla",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "Ekranı paylaş",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Ekranı paylaşımı kilidlənib",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Ekran paylaşımını dayandır",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Təqdimatı yüklə",
+    "app.actionsBar.actionsDropdown.initPollDesc": "Təqdimatı yüklə",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Ekranı başqaları ilə paylaş",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Ekranı {0} ilə paylaşmağı dayandır  ",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "SorÄŸunu baÅŸla",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Sorğunu panelini dəyiş",
+    "app.actionsBar.actionsDropdown.saveUserNames": "İstifadəçi adını yadda saxla",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Fasilə otağı yarat.",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Mövcud sessiya üçün fasilələr yarat.",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Altyazı yaz",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Altyazılar bölməsini dəyişdir",
+    "app.actionsBar.actionsDropdown.takePresenter": "Təqdimatçı seç",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Özünü yeni təqdimatçı kimi müəyyən et",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Statusu seç",
+    "app.actionsBar.emojiMenu.awayLabel": "Uzaqda",
+    "app.actionsBar.emojiMenu.awayDesc": "Statusu uzaqda olaraq dəyiş",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "Qaldır",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "Sual vermək üçün əlini qaldır",
+    "app.actionsBar.emojiMenu.neutralLabel": "Qeyri-müəyyən",
+    "app.actionsBar.emojiMenu.neutralDesc": "Statusu qeyri-müəyyənə dəyiş",
+    "app.actionsBar.emojiMenu.confusedLabel": "Çaşqın",
+    "app.actionsBar.emojiMenu.confusedDesc": "Statusu çaşqına dəyiş",
+    "app.actionsBar.emojiMenu.sadLabel": "Qəmgin",
+    "app.actionsBar.emojiMenu.sadDesc": "Statusu qəmginə dəyiş",
+    "app.actionsBar.emojiMenu.happyLabel": "Xöşbəxt",
+    "app.actionsBar.emojiMenu.happyDesc": "Statusu xöşbəxtə dəyiş",
+    "app.actionsBar.emojiMenu.noneLabel": "Statusu sil",
+    "app.actionsBar.emojiMenu.noneDesc": "Statusunu sil",
+    "app.actionsBar.emojiMenu.applauseLabel": "Alqışla",
+    "app.actionsBar.emojiMenu.applauseDesc": "Statusu alqışlamağa dəyiş",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Thumbs up",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Change your status to thumbs up",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Thumbs down",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "Change your status to thumbs down",
+    "app.actionsBar.currentStatusDesc": "cari status {0}",
+    "app.actionsBar.captions.start": "Subtitrlərə bax",
+    "app.actionsBar.captions.stop": "Subtitrləri bağla",
+    "app.audioNotification.audioFailedError1001": "WebSocketlə bağlantı kəsilib(xəta 1001)",
+    "app.audioNotification.audioFailedError1002": "WebSocket bağlantısı yaratmaq mümkün olmadı (xəta 1002)",
+    "app.audioNotification.audioFailedError1003": "Browser versiyası dəstəklənmir (xəta 1003)",
+    "app.audioNotification.audioFailedError1004": "Zəng etmək alınmadı (səbəb={0}) (xəta 1004)",
+    "app.audioNotification.audioFailedError1005": "Zəng gözlənilmədən kəsildi (xəta 1005)",
+    "app.audioNotification.audioFailedError1006": "Zəngin vaxtı bitdi (xəta 1006)",
+    "app.audioNotification.audioFailedError1007": "Bağlantı alınmadı (ICE xəta 1007)",
+    "app.audioNotification.audioFailedError1008": "Transfer alınmadı (xəta 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN/TURN server məlumatını əldə etmək mümkün olmadı (xəta 1009)",
+    "app.audioNotification.audioFailedError1010": "Connection negotiation timeout (ICE xəta 1010)",
+    "app.audioNotification.audioFailedError1011": "Əlaqə bağlantısının vaxtı bitdi timeout (ICE xəta1011)",
+    "app.audioNotification.audioFailedError1012": "Əlaqə kəsildi (ICE xəta 1012)",
+    "app.audioNotification.audioFailedMessage": "Sizin səs əlaqənizi bağlamaq mümkün olmadı",
+    "app.audioNotification.mediaFailedMessage": "Təhlükəsizlik səbəbindən faylınızın yüklənməyi uğursuz oldu.",
+    "app.audioNotification.closeLabel": "BaÄŸla",
+    "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofon izləyicilər üçün kilidlənib, sizin yalnız qulaq asa bilərsiniz",
+    "app.breakoutJoinConfirmation.title": "Fasilə otağına qoşulun",
+    "app.breakoutJoinConfirmation.message": "Qoşulmaq istəyirsiz",
+    "app.breakoutJoinConfirmation.confirmDesc": "Fasilə otağına qoşulun",
+    "app.breakoutJoinConfirmation.dismissLabel": "Ləğv et",
+    "app.breakoutJoinConfirmation.dismissDesc": "Fasilə otağına qoşulma imkanını məhdudlaşdırın.",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Choose a breakout room to join",
+    "app.breakoutTimeRemainingMessage": "Fasilə otağına qalan vaxt: {0}",
+    "app.breakoutWillCloseMessage": "Time ended. Breakout room will close soon",
+    "app.calculatingBreakoutTimeRemaining": "Yerdə qalan vaxt hesablanır ...",
+    "app.audioModal.ariaTitle": "Səs modalına qoşul",
+    "app.audioModal.microphoneLabel": "Mikrofon",
+    "app.audioModal.listenOnlyLabel": "Yalnız qulaq asmaq",
+    "app.audioModal.audioChoiceLabel": "Səsnən necə qoşulmaq istərdiniz?",
+    "app.audioModal.iOSBrowser": "Səs/Video dəstəklənmir",
+    "app.audioModal.iOSErrorDescription": "Hal-hazırda səs and video Chrome-da iOS üçün dəstəklənmir.",
+    "app.audioModal.iOSErrorRecommendation": "Safari iOS istifadə etməyiniz tövsiyə olunur.",
+    "app.audioModal.audioChoiceDesc": "Görüşə səslə necə qoşulmağı seç",
+    "app.audioModal.unsupportedBrowserLabel": "Siz yəqin ki dəstəklənməyən browser-dən istifadə edirsiniz. Zəhmət olmasa tam dəstək üçün {0} və ya {1} -dən istifadə edin.",
+    "app.audioModal.closeLabel": "BaÄŸla",
+    "app.audioModal.yes": "Bəli",
+    "app.audioModal.no": "Xeyr",
+    "app.audioModal.yes.arialabel" : "Exo eÅŸidilir",
+    "app.audioModal.no.arialabel" : "Exo eÅŸidilmir",
+    "app.audioModal.echoTestTitle": "Bu şəxsi exo testidir. Bir neçə söz deyin.  Səsinizi eşitdiniz?",
+    "app.audioModal.settingsTitle": "Səs tənzimləmələrini dəyiş",
+    "app.audioModal.helpTitle": "Sizin media qurğularınız ilə bağlı problem yarandı ",
+    "app.audioModal.helpText": "Mikrofona icazə verdiniz? Nəzərə alın ki, səslə qoşulmaq istəyəndə modal əks olunmalıdır, hansı ki, sizdən media qurğuarına icazə istəyəcək. Zəhmət olmasa səslə qoşulmaq üçün qəbul edin. Əgər heç nə baş vermədisə, brouzer tənzimləmələrindən mikrofona icazəni dəyişməyə çalışın.",
+    "app.audioModal.help.noSSL": "Bu səhifə təhlükəsiz deyil. Mikrofona icazə vermək üçün səhifə HTTPS üzərindən göndərilməlidir. Zəhmət olmasa server administratoru ilə əlaqə saxlayın.",
+    "app.audioModal.help.macNotAllowed": "Yəqin ki, sizin Mac sistem seçimləriniz mikrofona girişi block edir. System Preferences > Security & Privacy > Privacy > Microphone -a keçid edin və əmin olun ki, istifadə etdiyiniz brouzer seçilib.",
+    "app.audioModal.audioDialTitle": "Telefonu istifadə etməklə qoşulun",
+    "app.audioDial.audioDialDescription": "Nömrəni yığın",
+    "app.audioDial.audioDialConfrenceText": "və toplantının PIN nömrəsini daxil edin:",
+    "app.audioModal.autoplayBlockedDesc": "Səsi çalmaq üçün icazənizə ehtiyacımız var.",
+    "app.audioModal.playAudio": "Səsi çal ",
+    "app.audioModal.playAudio.arialabel" : "Səsi çal",
+    "app.audioDial.tipIndicator": "Kömək",
+    "app.audioDial.tipMessage": "Səsinizi almaq / açmaq üçün telefonunuzda '0' düyməsini basın.",
+    "app.audioModal.connecting": "Bağlantı yaradılır",
+    "app.audioModal.connectingEchoTest": "Exo testinə bağlantı yaradılır",
+    "app.audioManager.joinedAudio": "Siz səs toplantısına qoşuldunuz",
+    "app.audioManager.joinedEcho": "Siz exo testinÉ™  qoÅŸuldunuz",
+    "app.audioManager.leftAudio": "Siz səs toplantısını tərk etdiniz",
+    "app.audioManager.reconnectingAudio": "Səsi bağlamaq üçün yenidən cəhd edilir",
+    "app.audioManager.genericError": "Xəta: Xəta yarandı, zəhmət olmasa yenidən cəhd edin",
+    "app.audioManager.connectionError": "Xəta: Bağlantı xətası",
+    "app.audioManager.requestTimeout": "Xəta: Soğrunu vaxtı keçdi",
+    "app.audioManager.invalidTarget": "Error: Tried to request something to an invalid target",
+    "app.audioManager.mediaError": "Xəta: Media qurğuları ilə əlaqə yaradarkən problem yarandı",
+    "app.audio.joinAudio": "Səsi qoş",
+    "app.audio.leaveAudio": "Səsi tərk et",
+    "app.audio.enterSessionLabel": "Sessiyaya qoyul",
+    "app.audio.playSoundLabel": "Səsi çal",
+    "app.audio.backLabel": "GeriyÉ™",
+    "app.audio.audioSettings.titleLabel": "Səs tənzimlələrini seç",
+    "app.audio.audioSettings.descriptionLabel": "Zəhmət olmasa nəzərə alıb ki, brouzerdə modal yaranacaq, və mikrofonunuzu paylaşmağınızı tələb edəcək.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Microfon mənbəyi",
+    "app.audio.audioSettings.speakerSourceLabel": "Speaker source",
+    "app.audio.audioSettings.microphoneStreamLabel": "Your audio stream volume",
+    "app.audio.audioSettings.retryLabel": "Yenidən cəhd et",
+    "app.audio.listenOnly.backLabel": "GeriyÉ™",
+    "app.audio.listenOnly.closeLabel": "BaÄŸla",
+    "app.audio.permissionsOverlay.title": "Mikrofona giriş əldə etməyə icazə ver",
+    "app.audio.permissionsOverlay.hint": "Səs toplantısısa qoşulmaq üçün media qurğularınızdan istifadəyə icazə verməyinizə ehtiyacımız var :)",
+    "app.error.removed": "Siz toplantıdan çıxarıldınız",
+    "app.error.meeting.ended": "Siz toplantını tərk etdiniz",
+    "app.meeting.logout.duplicateUserEjectReason": "Eyni istifadəçi görüşə qoşulmağa cəhd edir",
+    "app.meeting.logout.permissionEjectReason": "İcazəni pozduğuna görə çıxarıldı",
+    "app.meeting.logout.ejectedFromMeeting": "Siz görüşdən çıxarıldınız",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Avtorizasiya tokeni validasiyadan keçmədi",
+    "app.meeting.logout.userInactivityEjectReason": "İstifadəi uzun müddət qeyri-aktiv qalıb",
+    "app.meeting-ended.rating.legendLabel": "Feedback reytinqi",
+    "app.meeting-ended.rating.starLabel": "Ulduz",
+    "app.modal.close": "BaÄŸla",
+    "app.modal.close.description": "Dəyişiklərdən imtina et və modalı bağla",
+    "app.modal.confirm": "YerinÉ™ yetirildi",
+    "app.modal.newTab": "(yeni tabı açır)",
+    "app.modal.confirm.description": "Dəyişikləri yadda saxlayır və modalı bağlayır",
+    "app.dropdown.close": "BaÄŸla",
+    "app.error.400": "Xəta baş verdi",
+    "app.error.401": "İcazəniz yoxdur",
+    "app.error.403": "Görüşdən çıxarılmısınız",
+    "app.error.404": "Tapılmadı",
+    "app.error.410": "Görüş başa çatdı",
+    "app.error.500": "Nəsə səhv baş verdi",
+    "app.error.leaveLabel": "Yenidən daxil ol",
+    "app.error.fallback.presentation.title": "Xəta baş verdi",
+    "app.error.fallback.presentation.description": "Daxil olundu. Zəhmət olmasa səhifəni yenidən yükləyin.",
+    "app.error.fallback.presentation.reloadButton": "Yenidən yükləyin",
+    "app.guest.waiting": "Qoşulmaq üçün təsdiq gözlənilir",
+    "app.userList.guest.waitingUsers": "İstidaçilər gözlənilir",
+    "app.userList.guest.waitingUsersTitle": "İstifadəçilərin Menecmenti",
+    "app.userList.guest.optionTitle": "Gözləntidə olan istifadəçiləri nəzərdən keçir",
+    "app.userList.guest.allowAllAuthenticated": "AvtorizÉ™ olanlara icazÉ™ ver",
+    "app.userList.guest.allowAllGuests": "Bütün qonaq istifadəçilərə icazə ver",
+    "app.userList.guest.allowEveryone": "Hamıya icazə ver",
+    "app.userList.guest.denyEveryone": "Heç kimə icazə vermə",
+    "app.userList.guest.pendingUsers": "{0} gözləntidə olan istifadəçi",
+    "app.userList.guest.pendingGuestUsers": "{0} gözləntidə olan qonaq istifadəçi",
+    "app.userList.guest.pendingGuestAlert": "Sessiyaya qoşulub və sizin təsdiqinizi gözləyir.",
+    "app.userList.guest.rememberChoice": "Seçimi yadda saxla",
+    "app.user-info.title": "Directory Lookup",
+    "app.toast.breakoutRoomEnded": "Fasilə otağı bağlandı. Zəhmət olmasa səsi yenidən aktivləşdirin.",
+    "app.toast.chat.public": "Yeni Publik Çat mesajı",
+    "app.toast.chat.private": "Yeni Şəxsi Çat mesajı",
+    "app.toast.chat.system": "Sistem",
+    "app.toast.clearedEmoji.label": "Emoji status silindi",
+    "app.toast.setEmoji.label": "Emoji status {0} təyin olundu",
+    "app.toast.meetingMuteOn.label": "Bütün istifadəçilərin səsi kəsildi",
+    "app.toast.meetingMuteOff.label": "Görüş səs kəsilməsi deaktiv olunub",
+    "app.notification.recordingStart": "Bu sessiyas hal-hazırda qeydiyyata alınır",
+    "app.notification.recordingStop": "Bu sessiyas hal-hazırda qeydiyyata alınmır",
+    "app.notification.recordingPaused": "Bu sessiyas daha qeydiyyata alınmır",
+    "app.notification.recordingAriaLabel": "Yazılma vaxtı ",
+    "app.notification.userJoinPushAlert": "{0} sessiyaya qoÅŸuldu",
+    "app.shortcut-help.title": "Klaviatura qısa yollar",
+    "app.shortcut-help.accessKeyNotAvailable": "İcazə açarları mövcud deyil",
+    "app.shortcut-help.comboLabel": "Kombo",
+    "app.shortcut-help.functionLabel": "Funksiya",
+    "app.shortcut-help.closeLabel": "BaÄŸla",
+    "app.shortcut-help.closeDesc": "Klaviatura qısa yolları modalını bağla",
+    "app.shortcut-help.openOptions": "Seçimləri aç",
+    "app.shortcut-help.toggleUserList": "İstifadəçi siyahısını dəyiş",
+    "app.shortcut-help.toggleMute": "Səsi al/ Səsi aç",
+    "app.shortcut-help.togglePublicChat": "Publik çatı dəyiş (İstifadəçi siyahısı açıq olmalıdır)",
+    "app.shortcut-help.hidePrivateChat": "Şəxsi çatı gizlət",
+    "app.shortcut-help.closePrivateChat": "Şəxsi çatı bağla",
+    "app.shortcut-help.openActions": "Əməliyyatlar menyusunu aç",
+    "app.shortcut-help.openStatus": "Status menyusunu aç",
+    "app.shortcut-help.togglePan": "Əl alətini aktivləşdir (Təqdimatçı)",
+    "app.shortcut-help.nextSlideDesc": "Növbəti slayd (Təqdimatçı)",
+    "app.shortcut-help.previousSlideDesc": "Əvvəlki slayd (Təqdimatçı)",
+    "app.lock-viewers.title": "İstifadəçiləri kilidlə",
+    "app.lock-viewers.description": "Bu seçimlər sizə izləyicilərə bəzi funksiyalardan istifadəni məhdudlaşdırmağa imkan verir.",
+    "app.lock-viewers.featuresLable": "Funksiya",
+    "app.lock-viewers.lockStatusLabel": "Status",
+    "app.lock-viewers.webcamLabel": "Veb kameranı paylaş",
+    "app.lock-viewers.otherViewersWebcamLabel": "Başqa izləyicilərin veb kameralarına bax",
+    "app.lock-viewers.microphoneLable": "Mikrofonu paylaÅŸ",
+    "app.lock-viewers.PublicChatLabel": "Publik çat mesajları göndər",
+    "app.lock-viewers.PrivateChatLable": "Şəxsi çat mesajları göndər",
+    "app.lock-viewers.notesLabel": "Ortaq qeydləri redaktə et",
+    "app.lock-viewers.userListLabel": "İstifadəçilər siyahısında başqa izləyiziləri gör",
+    "app.lock-viewers.ariaTitle": "İzləyicilərin tənzimləmələr modalını kilidlə",
+    "app.lock-viewers.button.apply": "Tətbiq et",
+    "app.lock-viewers.button.cancel": "Ləğv et",
+    "app.lock-viewers.locked": "Kilidlənib",
+    "app.lock-viewers.unlocked": "Kiliddən açılıb",
+    "app.recording.startTitle": "YazmaÄŸa baÅŸla",
+    "app.recording.stopTitle": "Yazmanı dayandır",
+    "app.recording.resumeTitle": "Yazmaya davam et",
+    "app.recording.startDescription": "Yazmanı pauza etmək üçün siz sonradan yazma buttonunu seçə bilərsiniz.",
+    "app.recording.stopDescription": "Yazmanı pauza etməyə əminsiniz? Yazma düyməsini yenidən seçməklə davam edə bilərsiniz.",
+    "app.videoPreview.cameraLabel": "Kamera",
+    "app.videoPreview.profileLabel": "Keyfiyyət",
+    "app.videoPreview.cancelLabel": "Ləğv et",
+    "app.videoPreview.closeLabel": "BaÄŸla",
+    "app.videoPreview.findingWebcamsLabel": "Veb kamera tapılır",
+    "app.videoPreview.startSharingLabel": "Paylaşmanı başla",
+    "app.videoPreview.webcamOptionLabel": "Veb kameranı seç",
+    "app.videoPreview.webcamPreviewLabel": "Veb kameranı yoxla",
+    "app.videoPreview.webcamSettingsTitle": "Veb kamera tənzimləmələri",
+    "app.videoPreview.webcamNotFoundLabel": "Veb kamera tapılmadı",
+    "app.videoPreview.profileNotFoundLabel": "Dəstəklənən kamera profili tapılmadı",
+    "app.video.joinVideo": "Veb kameranı paylaş",
+    "app.video.leaveVideo": "Veb kamera paylaşımını dayandır",
+    "app.video.iceCandidateError": "Error on adding ICE candidate",
+    "app.video.iceConnectionStateError": "Bağlantı xətası (ICE xəta 1107)",
+    "app.video.permissionError": "Veb kamera paylaşımında xəta.  Zəhmət olmasa icazələri nəzərdən keçirin",
+    "app.video.sharingError": "Veb kamera paylaşımında xəta",
+    "app.video.notFoundError": "Veb kamera tapılmadl. Zəhmət olmasa əmin olun ki veb kamera qoşulub",
+    "app.video.notAllowed": "Veb kameranı paylaşmaq üçün icazələr mövcud deyil, zəhmət olmasa brouzer icazələrini nəzərdən keçirin",
+    "app.video.notSupportedError": "Veb kameranı yalnız təhlükəsiz mənbələrlə paylaşmaq olar, SSL sertifikatını düzgünlüyünü yoxlayın",
+    "app.video.notReadableError": "Veb kamera videosunu əldə etmək mümkün olmadı. Zəhmət olmasa əmin olun ki, başqa proqram veb kameradan istifadə etmir",
+    "app.video.mediaFlowTimeout1020": "Media serverlə əlaqə qura bilmədi (xəta 1020)",
+    "app.video.suggestWebcamLock": "İzləyicilərin veb kameraları üzərində kilidləmə tənzimləmələrini tətbiq et?",
+    "app.video.suggestWebcamLockReason": "(bu görüşün stabilliyini təmin edəcək)",
+    "app.video.enable": "Aktiv et",
+    "app.video.cancel": "Ləğv et",
+    "app.video.swapCam": "Dəyiş",
+    "app.video.swapCamDesc": "veb kameranın istiqamətini dəyiş",
+    "app.video.videoLocked": "Veb kamera paylaşımı kilidlənib",
+    "app.video.videoButtonDesc": "Veb kameranı paylaş",
+    "app.video.videoMenu": "Video menyu",
+    "app.video.videoMenuDisabled": "Video menu Veb kamera tənzimləmələrdə deaktiv olunub",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Media server offlayndır. Zəhmət olmasa bir az sonra yenidən yoxlayın (xəta 2001)",
+    "app.sfu.mediaServerNoResources2002": "Media serverin mövcud resurslu yoxdur (xəta 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Media server sorğularının vaxtı bitir (xəta 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Media server cannot gather connection candidates (ICE xəta 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Media server əlaqəsi kəsildi (ICE xəta 2022)",
+    "app.sfu.mediaGenericError2200": "Media server sorğunu emal edə bilmədi (xəta 2200)",
+    "app.sfu.invalidSdp2202":"Klient etibarsız media sorğu generasiya etdi (SDP xəta 2202)",
+    "app.sfu.noAvailableCodec2203": "Server uyğun codec tapa bilmədi (xəta 2203)",
+    "app.meeting.endNotification.ok.label": "OK",
+    "app.whiteboard.annotations.poll": "Sorğu nəticələri açıqlandı",
+    "app.whiteboard.toolbar.tools": "Alətlər",
+    "app.whiteboard.toolbar.tools.hand": "Əl",
+    "app.whiteboard.toolbar.tools.pencil": "Qələm",
+    "app.whiteboard.toolbar.tools.rectangle": "Düzbucaq",
+    "app.whiteboard.toolbar.tools.triangle": "Üçbucaq",
+    "app.whiteboard.toolbar.tools.ellipse": "Ellips",
+    "app.whiteboard.toolbar.tools.line": "Xətt",
+    "app.whiteboard.toolbar.tools.text": "Mətn",
+    "app.whiteboard.toolbar.thickness": "Çəkmə qalınlığı",
+    "app.whiteboard.toolbar.thicknessDisabled": "Çəkmə qalınlığı deaktivdir",
+    "app.whiteboard.toolbar.color": "Rənglər",
+    "app.whiteboard.toolbar.colorDisabled": "Rənglər deaktiv olunub",
+    "app.whiteboard.toolbar.color.black": "Qara",
+    "app.whiteboard.toolbar.color.white": "AÄŸ",
+    "app.whiteboard.toolbar.color.red": "Qırmızı",
+    "app.whiteboard.toolbar.color.orange": "Narıncı",
+    "app.whiteboard.toolbar.color.eletricLime": "Yaşılımtraq",
+    "app.whiteboard.toolbar.color.lime": "Yaşıl",
+    "app.whiteboard.toolbar.color.cyan": "Firuzəyi",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Açıq Mavi",
+    "app.whiteboard.toolbar.color.blue": "Mavi",
+    "app.whiteboard.toolbar.color.violet": "Bənövşəyi",
+    "app.whiteboard.toolbar.color.magenta": "Çəhrayı",
+    "app.whiteboard.toolbar.color.silver": "Gümüş",
+    "app.whiteboard.toolbar.undo": "Annotasiyanı ləğv et",
+    "app.whiteboard.toolbar.clear": "Annotasiyaları sil",
+    "app.whiteboard.toolbar.multiUserOn": "Lövhəni ortaq istifadəyə aç",
+    "app.whiteboard.toolbar.multiUserOff": "Lövhəni ortaq istifadəyə bağla",
+    "app.whiteboard.toolbar.fontSize": "Font ölçüsü siyahısı",
+    "app.feedback.title": "Siz toplantını tərk etdiniz",
+    "app.feedback.subtitle": "Biz ProMeet-ə dair təəssüratlarınızı öyrənmək istərdik (vacib deyil)",
+    "app.feedback.textarea": "ProMeet-i təkmilləşdirmək üçün nə edə bilərik?",
+    "app.feedback.sendFeedback": "Feedback göndər",
+    "app.feedback.sendFeedbackDesc": "Feedback göndər və görüşü tərk et",
+    "app.videoDock.webcamFocusLabel": "Fokus",
+    "app.videoDock.webcamFocusDesc": "Seçilmiş veb kameranı fokuslaşdır",
+    "app.videoDock.webcamUnfocusLabel": "Fokus-dan çıxart",
+    "app.videoDock.webcamUnfocusDesc": "Seçilmiş veb kameranı fokusdan çıxart",
+    "app.videoDock.autoplayBlockedDesc": "Başqa istifadəçilərin veb kameralarını göstərmək üçün sizin icazəniz lazımdır.",
+    "app.videoDock.autoplayAllowLabel": "Veb kameraya bax",
+    "app.invitation.title": "Fasilə otağına dəvət",
+    "app.invitation.confirm": "Dəvət et",
+    "app.createBreakoutRoom.title": "Fasilə Otağı",
+    "app.createBreakoutRoom.ariaTitle": "Fasilə otaqlarını gizlət",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Fasilə Otağı {0}",
+    "app.createBreakoutRoom.generatingURL": "URL-i generasiya et",
+    "app.createBreakoutRoom.generatedURL": "Generasiya olundu",
+    "app.createBreakoutRoom.duration": "Müddət {0}",
+    "app.createBreakoutRoom.room": "Otaq {0}",
+    "app.createBreakoutRoom.notAssigned": "Təyin edilməyib ({0})",
+    "app.createBreakoutRoom.join": "OtaÄŸa qoÅŸul",
+    "app.createBreakoutRoom.joinAudio": "Səsə qoşul",
+    "app.createBreakoutRoom.returnAudio": "Səsi qaytar",
+    "app.createBreakoutRoom.alreadyConnected": "Artıq otaqdasınız",
+    "app.createBreakoutRoom.confirm": "Yarat",
+    "app.createBreakoutRoom.record": "QeydÉ™ al",
+    "app.createBreakoutRoom.numberOfRooms": "Otaqların sayı",
+    "app.createBreakoutRoom.durationInMinutes": "Müddət (dəqiqələrdə)",
+    "app.createBreakoutRoom.randomlyAssign": "Bəxtə-bəxt təyin et",
+    "app.createBreakoutRoom.endAllBreakouts": "Fasilə otaqların sonlandırın",
+    "app.createBreakoutRoom.roomName": "{0} (Otaq - {1})",
+    "app.createBreakoutRoom.doneLabel": "YerinÉ™ yetirildi",
+    "app.createBreakoutRoom.nextLabel": "Növbəti",
+    "app.createBreakoutRoom.minusRoomTime": "Fasilə otağın vaxtını azaldın",
+    "app.createBreakoutRoom.addRoomTime": "Fasilə otağın vaxtını artırın",
+    "app.createBreakoutRoom.addParticipantLabel": "+ İştirakçı əlavə et",
+    "app.createBreakoutRoom.freeJoin": "İstifadəçilərə fasilə otağına qoşulma imkanı verin",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "Ən azı bir istifadəçini bir fasilə otağına əlavə etməlisiniz.",
+    "app.createBreakoutRoom.modalDesc": "Diqqət:  İstifadəçi üzərinə sıxaraq fasilə otaqlarından birinə əlavə edə bilərsiz.",
+    "app.createBreakoutRoom.roomTime": "{0} dəqiqə",
+    "app.createBreakoutRoom.numberOfRoomsError": "Otaqların sayı düzgün deyil.",
+    "app.externalVideo.start": "Yeni videonu paylaÅŸ",
+    "app.externalVideo.title": "Video əlavə et",
+    "app.externalVideo.input": "External Video URL",
+    "app.externalVideo.urlInput": "Video URL əlavə et",
+    "app.externalVideo.urlError": "Bu video URL-i dəstəklənmir",
+    "app.externalVideo.close": "BaÄŸla",
+    "app.externalVideo.autoPlayWarning": "Media sinkronizasiyasını aktiv etmək üçün videonu işə sal",
+    "app.network.connection.effective.slow": "Bağlantı ilə bağlı problemlər aşkarlanmaqdadır.",
+    "app.network.connection.effective.slow.help": "Daha çox məlumat",
+    "app.externalVideo.noteLabel": "Qeyd: Shared external videos will not appear in the recording. YouTube, Vimeo, Instructure Media, Twitch and Daily Motion URLs are supported.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Share an external video",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Stop sharing external video",
+    "app.iOSWarning.label": "Zəhmət olmasa iOS 12.2 və ya daha yuxarı versiyanı yüklə",
+    "app.legacy.unsupportedBrowser": "Yəqin ki, dəstəklənməyən brouzer-dən istifadə edirsiniz. Zəhmət olmasa tam dəstək üçün {0} və ya {1} istifadə edin.",
+    "app.legacy.upgradeBrowser": "Yəqin ki, siz dəstəklənən brauzer-in köhnə versiyasını istifadə edirsiniz. Zəhmət olmasa tam dəstək üçün yeni versiyanı yükləyin.",
+    "app.legacy.criosBrowser": "Zəhmət olmasa iOS-da tam dəstək üçün Safari istifadə edin."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/bg_BG.json b/bigbluebutton-html5/private/locales/bg_BG.json
index fdd2fb80e40130910bcb7fd4b38845f52a0192f8..a6e7d4428f1d5484edf2f50064cf4825789c8f18 100644
--- a/bigbluebutton-html5/private/locales/bg_BG.json
+++ b/bigbluebutton-html5/private/locales/bg_BG.json
@@ -1,159 +1,652 @@
 {
+    "app.home.greeting": "Вашата презентация ще започне всеки момент",
     "app.chat.submitLabel": "Изпрати",
+    "app.chat.errorMaxMessageLength": "Съобщението е с {0} знак(а) по-дълго ",
+    "app.chat.disconnected": "Вие не сте свързан, съобщението не може да бъде изпратено",
+    "app.chat.locked": "Разговора е заключен, съобщението не може да бъде изпратено",
     "app.chat.inputLabel": "Message input for chat {0}",
+    "app.chat.inputPlaceholder": "Изпрати съобщение до {0}",
     "app.chat.titlePublic": "Общ чат",
-    "app.chat.titlePrivate": "Private Chat with {0}",
-    "app.chat.partnerDisconnected": "{0} has left the meeting",
-    "app.chat.closeChatLabel": "Close {0}",
-    "app.chat.hideChatLabel": "Hide {0}",
-    "app.chat.moreMessages": "More messages below",
-    "app.chat.dropdown.clear": "Clear",
-    "app.chat.dropdown.save": "Save",
-    "app.chat.label": "Chat",
-    "app.chat.emptyLogLabel": "Chat log empty",
-    "app.captions.menu.close": "Close",
-    "app.captions.menu.backgroundColor": "Background color",
-    "app.captions.menu.cancelLabel": "Cancel",
+    "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": "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": "Participants",
+    "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": "Locked",
-    "app.userList.chatListItem.unreadSingular": "{0} New Message",
-    "app.userList.chatListItem.unreadPlural": "{0} New Messages",
-    "app.userList.menu.muteUserAudio.label": "Mute user",
-    "app.userList.menu.unmuteUserAudio.label": "Unmute user",
-    "app.media.label": "Media",
-    "app.presentation.presentationToolbar.prevSlideLabel": "Previous slide",
+    "app.userList.locked": "Заключено",
+    "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.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": "Web камерите на участниците са изключени",
+    "app.userList.userOptions.disableMic": "Микрофоните на участниците са изключени",
+    "app.userList.userOptions.disablePrivChat": "Личния чат е изключен",
+    "app.userList.userOptions.disablePubChat": "Публичния чат е изключен",
+    "app.userList.userOptions.disableNote": "Споделените бележки са заключени",
+    "app.userList.userOptions.hideUserList": "Списъка с потребителите е скрит за участниците",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Само модераторите могат да виждат web камерите на участниците (поради настройка на заключване)",
+    "app.userList.content.participants.options.clearedStatus": "Статуса на всички участници е изчистен",
+    "app.userList.userOptions.enableCam": "Разрешено е ползването на web камери от участниците",
+    "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.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.alertMeetingEndsUnderOneMinute": "Срещата ще приклюочи след минута",
+    "app.meeting.alertBreakoutEndsUnderOneMinute": "Екипнатат стая ще се затвори след минута",
+    "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": "Change the presentation to the previous slide",
-    "app.presentation.presentationToolbar.nextSlideLabel": "Next slide",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Следващ слайд",
     "app.presentation.presentationToolbar.nextSlideDesc": "Change the presentation to the next slide",
-    "app.presentation.presentationToolbar.skipSlideLabel": "Skip slide",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Прескочи слайд",
     "app.presentation.presentationToolbar.skipSlideDesc": "Change the presentation to a specific slide",
-    "app.presentation.presentationToolbar.fitWidthLabel": "Fit to width",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Максимално разширение",
     "app.presentation.presentationToolbar.fitWidthDesc": "Display the whole width of the slide",
-    "app.presentation.presentationToolbar.fitScreenLabel": "Fit to screen",
-    "app.presentation.presentationToolbar.fitScreenDesc": "Display the whole slide",
-    "app.presentation.presentationToolbar.zoomLabel": "Zoom",
-    "app.presentation.presentationToolbar.zoomDesc": "Change the zoom level of the presentation",
-    "app.presentation.presentationToolbar.fitToWidth": "Fit to width",
-    "app.presentationUploder.dismissLabel": "Cancel",
-    "app.presentationUploder.tableHeading.options": "Options",
-    "app.poll.closeLabel": "Close",
+    "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": "Възстанови Zoom",
+    "app.presentation.presentationToolbar.zoomIndicator": "Процент на увеличението",
+    "app.presentation.presentationToolbar.fitToWidth": "Разшири максимално",
+    "app.presentation.presentationToolbar.fitToPage": "Запълни страницата",
+    "app.presentation.presentationToolbar.goToSlide": "Слайд {0}",
+    "app.presentationUploder.title": "презентацията",
+    "app.presentationUploder.message": "Като презентатор имате възможност да качите Office документ или 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.conversion.conversionProcessingSlides": "Обработка на страница {0} от {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "Конвертиране на файла ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Генериране на thumbnails ...",
+    "app.presentationUploder.conversion.generatedSlides": "Генериране на слайдове ...",
+    "app.presentationUploder.conversion.generatingSvg": "Генериране на SVG изобажения ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Достигнат е максималния брой на странците. Моля разделете съдържанието на няколко файла.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Грешка при обработка на office документа. Моля, по възможност качете PDF файл.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Грешка при обработка на office документа. Моля, по възможност качете 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": "Опции в проучването {0} от {1}",
+    "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.failedMessage": "Apologies, trouble connecting to the server.",
-    "app.navBar.settingsDropdown.optionsLabel": "Options",
-    "app.navBar.settingsDropdown.fullscreenLabel": "Make fullscreen",
-    "app.navBar.settingsDropdown.settingsLabel": "Open settings",
-    "app.navBar.settingsDropdown.aboutLabel": "About",
-    "app.navBar.settingsDropdown.leaveSessionLabel": "Logout",
-    "app.navBar.settingsDropdown.exitFullscreenLabel": "Exit fullscreen",
-    "app.navBar.settingsDropdown.fullscreenDesc": "Make the settings menu fullscreen",
+    "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": "Change the general settings",
-    "app.navBar.settingsDropdown.aboutDesc": "Show information about the client",
-    "app.navBar.settingsDropdown.leaveSessionDesc": "Leave the meeting",
-    "app.navBar.settingsDropdown.exitFullscreenDesc": "Exit fullscreen mode",
-    "app.navBar.userListToggleBtnLabel": "User List Toggle",
+    "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.endMeetingDesc": "Прекратява текущата среща",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Край на срещата",
+    "app.navBar.userListToggleBtnLabel": "Показва списъка с потребители",
     "app.navBar.toggleUserList.newMessages": "with new message notification",
-    "app.leaveConfirmation.confirmLabel": "Leave",
-    "app.leaveConfirmation.confirmDesc": "Logs you out of the meeting",
-    "app.about.title": "About",
+    "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.copyright": "Copyright:",
     "app.about.confirmLabel": "OK",
     "app.about.confirmDesc": "OK",
-    "app.about.dismissLabel": "Cancel",
-    "app.about.dismissDesc": "Close about client information",
-    "app.actionsBar.muteLabel": "Mute",
-    "app.actionsBar.unmuteLabel": "Unmute",
-    "app.actionsBar.raiseLabel": "Raise",
-    "app.submenu.application.applicationSectionTitle": "Application",
-    "app.submenu.application.fontSizeControlLabel": "Font size",
-    "app.submenu.application.increaseFontBtnLabel": "Increase Application Font Size",
-    "app.submenu.application.decreaseFontBtnLabel": "Decrease Application Font Size",
-    "app.submenu.application.languageLabel": "Application Language",
-    "app.submenu.application.languageOptionLabel": "Choose language",
-    "app.submenu.application.noLocaleOptionLabel": "No active locales",
-    "app.submenu.audio.micSourceLabel": "Microphone source",
-    "app.submenu.audio.speakerSourceLabel": "Speaker source",
-    "app.submenu.audio.streamVolumeLabel": "Your audio stream volume",
-    "app.submenu.video.title": "Video",
-    "app.submenu.video.videoSourceLabel": "View source",
+    "app.about.dismissLabel": "Отказ",
+    "app.about.dismissDesc": "Затвори информацията за приложението",
+    "app.actionsBar.changeStatusLabel": "Промени статуса",
+    "app.actionsBar.muteLabel": "Заглуши",
+    "app.actionsBar.unmuteLabel": "микрофон",
+    "app.actionsBar.camOffLabel": "Камера изк.",
+    "app.actionsBar.raiseLabel": "вдигни ръка",
+    "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": "Popup уведомление за чат",
+    "app.submenu.application.userJoinAudioAlertLabel": "Аудио уведомление за влязъл потребител",
+    "app.submenu.application.userJoinPushAlertLabel": "Popup уведомление за влязъл потребител",
+    "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": "Choose view source",
-    "app.submenu.video.qualityOptionLabel": "Choose the video quality",
-    "app.submenu.video.participantsCamLabel": "Viewing participants webcams",
-    "app.settings.applicationTab.label": "Application",
-    "app.settings.audioTab.label": "Audio",
-    "app.settings.videoTab.label": "Video",
-    "app.settings.usersTab.label": "Participants",
-    "app.settings.main.label": "Settings",
-    "app.settings.main.cancel.label": "Cancel",
-    "app.settings.main.cancel.label.description": "Discards the changes and closes the settings menu",
-    "app.settings.main.save.label": "Save",
-    "app.settings.main.save.label.description": "Saves the changes and closes the settings menu",
-    "app.actionsBar.actionsDropdown.actionsLabel": "Actions",
-    "app.actionsBar.actionsDropdown.presentationLabel": "Upload a presentation",
-    "app.actionsBar.actionsDropdown.initPollLabel": "Initiate a poll",
-    "app.actionsBar.actionsDropdown.desktopShareLabel": "Share your screen",
-    "app.actionsBar.actionsDropdown.presentationDesc": "Upload your presentation",
-    "app.actionsBar.actionsDropdown.initPollDesc": "Initiate a poll",
-    "app.actionsBar.actionsDropdown.desktopShareDesc": "Share your screen with others",
-    "app.actionsBar.emojiMenu.awayLabel": "Away",
-    "app.actionsBar.emojiMenu.awayDesc": "Change your status to away",
-    "app.actionsBar.emojiMenu.raiseHandLabel": "Raise",
-    "app.actionsBar.emojiMenu.raiseHandDesc": "Raise your hand to ask a question",
-    "app.actionsBar.emojiMenu.neutralLabel": "Undecided",
-    "app.actionsBar.emojiMenu.neutralDesc": "Change your status to undecided",
-    "app.actionsBar.emojiMenu.confusedLabel": "Confused",
-    "app.actionsBar.emojiMenu.confusedDesc": "Change your status to confused",
-    "app.actionsBar.emojiMenu.sadLabel": "Sad",
-    "app.actionsBar.emojiMenu.sadDesc": "Change your status to sad",
-    "app.actionsBar.emojiMenu.happyLabel": "Happy",
-    "app.actionsBar.emojiMenu.happyDesc": "Change your status to happy",
-    "app.actionsBar.emojiMenu.noneLabel": "Clear Status",
-    "app.actionsBar.emojiMenu.noneDesc": "Clear your status",
-    "app.actionsBar.emojiMenu.applauseLabel": "Applaud",
-    "app.actionsBar.emojiMenu.applauseDesc": "Change your status to applause",
-    "app.actionsBar.emojiMenu.thumbsUpLabel": "Thumbs up",
-    "app.actionsBar.emojiMenu.thumbsUpDesc": "Change your status to thumbs up",
-    "app.actionsBar.emojiMenu.thumbsDownLabel": "Thumbs down",
-    "app.actionsBar.emojiMenu.thumbsDownDesc": "Change your status to thumbs down",
-    "app.actionsBar.currentStatusDesc": "current status {0}",
-    "app.audioNotification.audioFailedMessage": "Your audio connection failed to connect",
-    "app.audioNotification.closeLabel": "Close",
-    "app.breakoutJoinConfirmation.message": "Do you want to join",
-    "app.breakoutJoinConfirmation.dismissLabel": "Cancel",
-    "app.audioModal.microphoneLabel": "Microphone",
-    "app.audioModal.audioChoiceLabel": "How would you like to join the audio?",
-    "app.audioModal.audioChoiceDesc": "Select how to join the audio in this meeting",
-    "app.audioModal.closeLabel": "Close",
-    "app.audio.joinAudio": "Join Audio",
-    "app.audio.leaveAudio": "Leave Audio",
-    "app.audio.backLabel": "Back",
-    "app.audio.audioSettings.titleLabel": "Choose your audio settings",
-    "app.audio.audioSettings.descriptionLabel": "Please note, a dialog will appear in your browser, requiring you to accept sharing your microphone.",
-    "app.audio.audioSettings.microphoneSourceLabel": "Microphone source",
-    "app.audio.audioSettings.speakerSourceLabel": "Speaker source",
-    "app.audio.audioSettings.microphoneStreamLabel": "Your audio stream volume",
-    "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",
-    "app.error.500": "Ops, something went wrong",
-    "app.error.leaveLabel": "Log in again",
-    "app.shortcut-help.closeLabel": "Close",
-    "app.lock-viewers.button.cancel": "Cancel",
-    "app.lock-viewers.locked": "Locked",
-    "app.videoPreview.cancelLabel": "Cancel",
-    "app.videoPreview.closeLabel": "Close",
-    "app.video.cancel": "Cancel",
+    "app.submenu.video.videoQualityLabel": "Качество на видеото",
+    "app.submenu.video.qualityOptionLabel": "Изберете качество на видеото",
+    "app.submenu.video.participantsCamLabel": "Преглед на web камерите на участниците",
+    "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": "Разреши web камерите",
+    "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.saveUserNames": "Свали списък",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Създай екипни стаи",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Създай екипи за да разделиш текущата среща",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Пиши субтитри",
+    "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": "WebSocket разкачен(грешка 1001)",
+    "app.audioNotification.audioFailedError1002": "Не може да се осъществи WebSocket връзка (грешка 1002)",
+    "app.audioNotification.audioFailedError1003": "Версията на браузъра не се поддържа (грешка 1003)",
+    "app.audioNotification.audioFailedError1005": "Обаждането приключи неочаквано (грешка 1005)",
+    "app.audioNotification.audioFailedError1007": "Проблем с връзката (ICE грешка 1007)",
+    "app.audioNotification.audioFailedError1008": "Грешка при прехвърлянето (грешка 1008)",
+    "app.audioNotification.audioFailedError1010": "Времето за договаряне на връзката изтече (грешка 1010)",
+    "app.audioNotification.audioFailedMessage": "Проблем с осъществяването на аудио връзка",
+    "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": "Към момента Chrome под iOS не поддържа аудио и видео. ",
+    "app.audioModal.iOSErrorRecommendation": "Препоръчваме използването на Safari под 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": "Дадохте ли разрешение за достъп до Вашия микрофон?\nОбърнете внимание на прозореца който ще се появи когато опитате да включите аудиото, ще Ви бъде поискано разрешение за достъп до вашите камера/микрофон, моля разрешете ги за да можете да участвате в аудио конференцията. Опитайте да промените разрешенията за камера/микрофон от настройките на браузъра",
+    "app.audioModal.help.noSSL": "Тази страница е несигурна. За бъде разрешен достъпа до микрофона страницата трябва да поддържа HTTPS. Моля свържете се със администратора на сървъра.",
+    "app.audioModal.help.macNotAllowed": "Изглежда че вашите MAC System Preferences блокират достъпа до микрофона ви. Отворете System Preferences>Security&Privacy>Microfone,  и проверете дали е избран браузъра който ползвате.",
+    "app.audioModal.audioDialTitle": "Влезте чрез вашия телефон",
+    "app.audioDial.audioDialDescription": "Избери",
+    "app.audioDial.audioDialConfrenceText": "и въведете PIN номера на конференцията",
+    "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.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.starLabel": "Звезда",
+    "app.modal.close": "Затвори",
+    "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.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.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.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.suggestWebcamLockReason": "(това ще подобри стабилността на срещата)",
+    "app.video.enable": "Разреши",
+    "app.video.cancel": "Отказ",
+    "app.video.swapCam": "Размени",
+    "app.video.videoLocked": "Споделянето на камерата забранено",
+    "app.video.videoButtonDesc": "Споделяне на камерата",
+    "app.video.videoMenu": "Видео меню",
+    "app.video.videoMenuDisabled": "Видео менюто на камерета е изключено в настройките",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Медия сървъра е offline. Моля опитайте по-късно (грешка 2001)",
+    "app.sfu.mediaServerNoResources2002": "Медия сървъра няма свободни ресурси (грешка 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Времето на заявката към медия сървъра изтече (грешка 2003)",
+    "app.sfu.serverIceGatheringFailed2022": "Проблем с връзката към медия сървъра (ICE грешка 2022)",
+    "app.sfu.mediaGenericError2200": "Проблем с обработката на заявката от медия сървъра (грешка 2200)",
+    "app.sfu.invalidSdp2202":"Клиента генерира невалидна медия заявка (SDP грешка 2202)",
+    "app.sfu.noAvailableCodec2203": "Сървъра на може да намери подходящ кодек (грешка 2203)",
     "app.meeting.endNotification.ok.label": "OK",
-    "app.feedback.title": "You have logged out of the conference",
-    "app.createBreakoutRoom.joinAudio": "Join Audio",
-    "app.externalVideo.close": "Close"
+    "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.lime": "Лайм",
+    "app.whiteboard.toolbar.color.cyan": "Циан",
+    "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": "Ще се радваме да чуем Вашия опит с BigBlueButton (опционално)",
+    "app.feedback.textarea": "Как можем да подобрим BigBlueButton?",
+    "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.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": "Този видеоизточник не се поддържа.",
+    "app.externalVideo.close": "Затвори",
+    "app.externalVideo.autoPlayWarning": "Щракнете вълхо видеото за да го пуснете",
+    "app.network.connection.effective.slow.help": "Повече информация",
+    "app.externalVideo.noteLabel": "Бележка: Външното видео не се включва в записа.\nПоддържани източници: YouYube, Vimeo,  Instructure Media, Twitch and Daily Motion URLs are supported.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Сподели външно видео",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Спри споделянето на видео",
+    "app.iOSWarning.label": "Моля обновете до iOS 12.2 или по-висока",
+    "app.legacy.unsupportedBrowser": "Вие използвате браузър който не се поддържа.\nЗа пълна функционалност, моля използвайте {0} или {1}",
+    "app.legacy.upgradeBrowser": "Вие използвате стара версия на браузър който се поддържа. За постигане на пълна функционалнаст, моля обновете браузъра си.",
+    "app.legacy.criosBrowser": "За пълна функционалност под iOS моля използвайте Safari"
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/ca.json b/bigbluebutton-html5/private/locales/ca.json
new file mode 100644
index 0000000000000000000000000000000000000000..d58a33cb96fabc93aa2f4a5bf934fe9af667a1da
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/ca.json
@@ -0,0 +1,683 @@
+{
+    "app.home.greeting": "La presentació començarà en breu...",
+    "app.chat.submitLabel": "Envia missatge",
+    "app.chat.errorMaxMessageLength": "El missatge és {0} caràcter(s) massa llarg",
+    "app.chat.disconnected": "Esteu fora de línia, els missatges no es poden enviar",
+    "app.chat.locked": "El xar està bloquejar, els missatges no es poden enviar",
+    "app.chat.inputLabel": "Entrada del missatge pel xat {0}",
+    "app.chat.inputPlaceholder": "Envia missatge a {0}",
+    "app.chat.titlePublic": "Xat públic",
+    "app.chat.titlePrivate": "Xat privat amb {0}",
+    "app.chat.partnerDisconnected": "{0} ha deixat la reunió",
+    "app.chat.closeChatLabel": "Tanca {0}",
+    "app.chat.hideChatLabel": "Amaga {0}",
+    "app.chat.moreMessages": "Més missatges a sota",
+    "app.chat.dropdown.options": "Opcions del xat",
+    "app.chat.dropdown.clear": "Neteja",
+    "app.chat.dropdown.copy": "Copia",
+    "app.chat.dropdown.save": "Desa",
+    "app.chat.label": "Xat",
+    "app.chat.offline": "Fora de línia",
+    "app.chat.emptyLogLabel": "Registre del xat buit",
+    "app.chat.clearPublicChatMessage": "L'historial del xat públic ha estat esborrat pel moderador/a",
+    "app.chat.multi.typing": "Diversos usuaris estan escrivint",
+    "app.chat.one.typing": "{0} està escrivint",
+    "app.chat.two.typing": "{0} i {1} estan escrivint",
+    "app.captions.label": "Captures",
+    "app.captions.menu.close": "Tanca",
+    "app.captions.menu.start": "Inicia",
+    "app.captions.menu.ariaStart": "Inicia la captura de l'escriptura",
+    "app.captions.menu.ariaStartDesc": "Obre l'editor de subtítols i tanca el modal",
+    "app.captions.menu.select": "Selecciona l'idioma disponible",
+    "app.captions.menu.ariaSelect": "Idioma de subtítols",
+    "app.captions.menu.subtitle": "Si us plau, seleccioni l'idioma i l'estil de subtítols de la seva sessió",
+    "app.captions.menu.title": "Subtítols",
+    "app.captions.menu.fontSize": "Mida",
+    "app.captions.menu.fontColor": "Color de text",
+    "app.captions.menu.fontFamily": "Font",
+    "app.captions.menu.backgroundColor": "Color de fons",
+    "app.captions.menu.previewLabel": "Previsualització",
+    "app.captions.menu.cancelLabel": "Cancel·la",
+    "app.captions.pad.hide": "Amaga subtítols",
+    "app.captions.pad.tip": "Prem Esc per a centrar la barra d'edició",
+    "app.captions.pad.ownership": "Relleva",
+    "app.captions.pad.ownershipTooltip": "Serà assignat/da com el propietari/ària de {0} subtítols",
+    "app.captions.pad.interimResult": "Resultats provisionals",
+    "app.captions.pad.dictationStart": "Inicia dictat",
+    "app.captions.pad.dictationStop": "Atura dictat",
+    "app.captions.pad.dictationOnDesc": "Encén reconeixement de veu",
+    "app.captions.pad.dictationOffDesc": "Apaga reconeixement de veu",
+    "app.note.title": "Notes compartides",
+    "app.note.label": "Nota",
+    "app.note.hideNoteLabel": "Amaga nota",
+    "app.user.activityCheck": "Revisió de l'activitat d'usuari",
+    "app.user.activityCheck.label": "Comprova si l'usuari encara està a la reunió ({0})",
+    "app.user.activityCheck.check": "Comprova",
+    "app.note.tipLabel": "Prem Esc per a centrar la barra d'edició",
+    "app.userList.usersTitle": "Usuaris",
+    "app.userList.participantsTitle": "Participants",
+    "app.userList.messagesTitle": "Missatges",
+    "app.userList.notesTitle": "Notes",
+    "app.userList.notesListItem.unreadContent": "Nou contingut disponible a la secció de notes compartides",
+    "app.userList.captionsTitle": "Subtítols",
+    "app.userList.presenter": "Presentador/a",
+    "app.userList.you": "Vós",
+    "app.userList.locked": "Tancat",
+    "app.userList.label": "Llista d'usuaris",
+    "app.userList.toggleCompactView.label": "Canvia al mode compacte",
+    "app.userList.guest": "Convidat/ada",
+    "app.userList.menuTitleContext": "Opcions disponibles",
+    "app.userList.chatListItem.unreadSingular": "{0} Missatge nou",
+    "app.userList.chatListItem.unreadPlural": "{0} Missatges nous",
+    "app.userList.menu.chat.label": "Inicia xat privat",
+    "app.userList.menu.clearStatus.label": "Neteja l'estat",
+    "app.userList.menu.removeUser.label": "Elimina usuari/ària",
+    "app.userList.menu.muteUserAudio.label": "Silencia usuari/ària",
+    "app.userList.menu.unmuteUserAudio.label": "Activa el micròfon de l'usuari/ària",
+    "app.userList.userAriaLabel": "{0} {1} {2} Estat {3}",
+    "app.userList.menu.promoteUser.label": "Promociona a moderador/a",
+    "app.userList.menu.demoteUser.label": "Degrada a espectador/a",
+    "app.userList.menu.unlockUser.label": "Desbloqueja {0}",
+    "app.userList.menu.lockUser.label": "Bloqueja {0}",
+    "app.userList.menu.directoryLookup.label": "Cerca al directori",
+    "app.userList.menu.makePresenter.label": "Fer presentador/a",
+    "app.userList.userOptions.manageUsersLabel": "Gestiona usuaris",
+    "app.userList.userOptions.muteAllLabel": "Silencia tots els usuaris",
+    "app.userList.userOptions.muteAllDesc": "Silencia tots els usuaris de la reuni",
+    "app.userList.userOptions.clearAllLabel": "Neteja les icones d'estat",
+    "app.userList.userOptions.clearAllDesc": "Neteja les icones d'estat de tots els usuaris",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Silencia tothom excepte el presentador/a",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Silencia tothom de la reunió excepte el presentador/a",
+    "app.userList.userOptions.unmuteAllLabel": "Apaga el silenciador de la reunió",
+    "app.userList.userOptions.unmuteAllDesc": "Activa el so de la reunió",
+    "app.userList.userOptions.lockViewersLabel": "Bloqueja espectadors",
+    "app.userList.userOptions.lockViewersDesc": "Bloqueja certes funcionalitats pels assistents de la sessió",
+    "app.userList.userOptions.disableCam": "Les càmeres del assistents estan desactivades",
+    "app.userList.userOptions.disableMic": "Els micròfons dels assistents estan desactivats",
+    "app.userList.userOptions.disablePrivChat": "Xat privat inactiu",
+    "app.userList.userOptions.disablePubChat": "Xat públic inactiu",
+    "app.userList.userOptions.disableNote": "Notes compartides bloquejades",
+    "app.userList.userOptions.hideUserList": "Llista d'usuaris amagada ara per als assistents",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Només els moderadors veuen les webcams dels assistents (bloquejat en opcions)",
+    "app.userList.content.participants.options.clearedStatus": "Estat dels usuaris netejat",
+    "app.userList.userOptions.enableCam": "Webcams dels assistents activades",
+    "app.userList.userOptions.enableMic": "Micròfons dels assistents activats",
+    "app.userList.userOptions.enablePrivChat": "Xat privat actiu",
+    "app.userList.userOptions.enablePubChat": "Xat públic actiu",
+    "app.userList.userOptions.enableNote": "Notes compartides ara actives",
+    "app.userList.userOptions.showUserList": "Llistat d'usuaris ocult als assistents",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Ara pots activar la teva webcam, tothom et podrà veure",
+    "app.media.label": "Media",
+    "app.media.autoplayAlertDesc": "Permet accés",
+    "app.media.screenshare.start": "Inici de pantalla compartida",
+    "app.media.screenshare.end": "Fi de la pantalla compartida",
+    "app.media.screenshare.autoplayBlockedDesc": "Es necessita donar permís per mostrar-te la pantalla del presentador",
+    "app.media.screenshare.autoplayAllowLabel": "Veure pantalla compartida",
+    "app.screenshare.notAllowed": "Error: No s'ha permés l'accés a la pantalla",
+    "app.screenshare.notSupportedError": "Error: La pantalla compartida només es permet en dominis segurs (SSL)",
+    "app.screenshare.notReadableError": "Error: Hi ha hagut un problema a l'hora de capturar la seva pantalla",
+    "app.screenshare.genericError": "Error: Hi ha hagut algun problema amb la pantalla compartida, si us plau, torna a provar-ho",
+    "app.meeting.ended": "La sessió ha finalitzat",
+    "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",
+    "app.presentation.startSlideContent": "Inici del contingut de la diapositiva",
+    "app.presentation.endSlideContent": "Final del contingut de la diapositiva",
+    "app.presentation.emptySlideContent": "No hi ha contingut per a la diapositiva actual",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Final de la presentació",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Inici de la presentació",
+    "app.presentation.presentationToolbar.selectLabel": "Selecciona diapositiva",
+    "app.presentation.presentationToolbar.prevSlideLabel": "Diapositiva anterior",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Canvia la presentació a la diapositiva anterior",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Diapositiva següent",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Canvia la presentació a la diapositiva següent",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Salta diapositiva",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Canvia la presentació a una diapositiva específica",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Ajusta a l'amplada",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Mostra l'amplada de la diapositiva",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Ajusta a la pantalla",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Mostra la diapositiva sencera",
+    "app.presentation.presentationToolbar.zoomLabel": "Amplia",
+    "app.presentation.presentationToolbar.zoomDesc": "Canvia el nivell d'ampliació de la presentació",
+    "app.presentation.presentationToolbar.zoomInLabel": "Amplia",
+    "app.presentation.presentationToolbar.zoomInDesc": "Amplia la presentació",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Allunya",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Allunya la presentació",
+    "app.presentation.presentationToolbar.zoomReset": "Restaura la mida",
+    "app.presentation.presentationToolbar.zoomIndicator": "Percentatge d'ampliació actual",
+    "app.presentation.presentationToolbar.fitToWidth": "Ajusta a l'amplada",
+    "app.presentation.presentationToolbar.fitToPage": "Ajusta a la pàgina",
+    "app.presentation.presentationToolbar.goToSlide": "Diapositiva {0}",
+    "app.presentationUploder.title": "Presentació",
+    "app.presentationUploder.message": "Com a presentador, podeu pujar qualsevol document o arxiu PDF. Recomanem el fitxer PDF per obtenir millors resultats. Assegureu-vos que s'ha seleccionat una presentació mitjançant la casella circular de selecció que hi ha a la part dreta.",
+    "app.presentationUploder.uploadLabel": "Carrega",
+    "app.presentationUploder.confirmLabel": "Confirma",
+    "app.presentationUploder.confirmDesc": "Desa els canvis i inicia la presentació",
+    "app.presentationUploder.dismissLabel": "Cancel·la",
+    "app.presentationUploder.dismissDesc": "Tanca la finestra modal i descarta els canvis",
+    "app.presentationUploder.dropzoneLabel": "Arrossega aquí els fitxers per a pujar-los",
+    "app.presentationUploder.dropzoneImagesLabel": "Arrossega aquí les imatges per a pujar-les",
+    "app.presentationUploder.browseFilesLabel": "o cerca en els teus fitxers",
+    "app.presentationUploder.browseImagesLabel": "o cerca/captura en imatges",
+    "app.presentationUploder.fileToUpload": "Per a pujar ...",
+    "app.presentationUploder.currentBadge": "Actual",
+    "app.presentationUploder.rejectedError": "Els següents fitxers han estat rebutjats. Si us plau, comprovi el tipus de fitxer.",
+    "app.presentationUploder.upload.progress": "Pujant ({0}&)",
+    "app.presentationUploder.upload.413": "El fitxer és massa gran. Separeu-lo en diversos arxius.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Processant pàgina {0} de {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "Convertint fitxer...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Generant miniatures ...",
+    "app.presentationUploder.conversion.generatedSlides": "Diapositives generades ...",
+    "app.presentationUploder.conversion.generatingSvg": "Generant imatges SVG ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Nombre pàgines excedit. Si us plau dividiu l'arxiu en diferents fitxers.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Hi ha hagut un error en processar el document. Si us plau, pugeu un PDF en el seu lloc.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Hi ha hagut un error en processar el document. Si us plau, pugeu un PDF en el seu lloc.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "No s'ha pogut convertir l'arxiu PDF. Si us plau, optimitzi'l",
+    "app.presentationUploder.conversion.timeout": "Oh oh, la conversió ha trigat massa",
+    "app.presentationUploder.conversion.pageCountFailed": "Error en determinar el nombre de pàgines",
+    "app.presentationUploder.isDownloadableLabel": "Permetre la descàrrega de la presentació",
+    "app.presentationUploder.isNotDownloadableLabel": "Prohibeix la descàrrega de la presentació",
+    "app.presentationUploder.removePresentationLabel": "Elimina la presentació",
+    "app.presentationUploder.setAsCurrentPresentation": "Configura la presentació com a actual",
+    "app.presentationUploder.tableHeading.filename": "Nom del fitxer",
+    "app.presentationUploder.tableHeading.options": "Opcions",
+    "app.presentationUploder.tableHeading.status": "Estat",
+    "app.poll.pollPaneTitle": "Enquesta",
+    "app.poll.quickPollTitle": "Enquesta ràpida",
+    "app.poll.hidePollDesc": "Amaga el panell d'enquesta",
+    "app.poll.customPollInstruction": "Per a crear una enquesta personalitzada, seleccioneu el botó de baix i introduiu les vostres opcions.",
+    "app.poll.quickPollInstruction": "Seleccioneu una opció de sota i inicieu l'enquesta.",
+    "app.poll.customPollLabel": "Enquesta personalitzada",
+    "app.poll.startCustomLabel": "Inicia l'enquesta personalitzada",
+    "app.poll.activePollInstruction": "Deixeu aquest panell obert per veure en viu les respostes de l'enquesta. Quan estigueu llestos/es, seleccioneu 'Publica els resultats de l'enquesta' i finalitzeu-la.",
+    "app.poll.publishLabel": "Publica els resultats de l'enquesta",
+    "app.poll.backLabel": "Torna a les opcions de l'enquesta",
+    "app.poll.closeLabel": "Tanca",
+    "app.poll.waitingLabel": "Esperant les respostes ({0}/{1})",
+    "app.poll.ariaInputCount": "Opció d'enquesta personalitzada {0} de {1}",
+    "app.poll.customPlaceholder": "Afegeix una opció d'enquesta",
+    "app.poll.noPresentationSelected": "No s'ha seleccionat cap presentació! Si us plau seleccioneu-ne una.",
+    "app.poll.clickHereToSelect": "Fes clic aquí per a seleccionar",
+    "app.poll.t": "Cert",
+    "app.poll.f": "Fals",
+    "app.poll.tf": "Cert / Fals",
+    "app.poll.y": "Sí",
+    "app.poll.n": "No",
+    "app.poll.yn": "Sí / No",
+    "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": "Cert",
+    "app.poll.answer.false": "Fals",
+    "app.poll.answer.yes": "Sí",
+    "app.poll.answer.no": "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": "Usuaris",
+    "app.poll.liveResult.responsesTitle": "Resposta",
+    "app.polling.pollingTitle": "Opcions d'enquesta",
+    "app.polling.pollAnswerLabel": "Resposta de l'enquesta {0}",
+    "app.polling.pollAnswerDesc": "Seleccioneu aquesta opció per a votar per {0}",
+    "app.failedMessage": "Disculpeu, hi ha problemes per connectar amb el servidor.",
+    "app.downloadPresentationButton.label": "Descarregar la presentació original",
+    "app.connectingMessage": "Connectant ...",
+    "app.waitingMessage": "Desconnectat. Reintentant la connexió en {0} segons ...",
+    "app.retryNow": "Reintenta ara",
+    "app.navBar.settingsDropdown.optionsLabel": "Opcions",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Fes pantalla completa",
+    "app.navBar.settingsDropdown.settingsLabel": "Configuració",
+    "app.navBar.settingsDropdown.aboutLabel": "Sobre...",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Surt",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Surt de pantalla completa",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Fes el menú de configuració en pantall completa",
+    "app.navBar.settingsDropdown.settingsDesc": "Guarda la configuració general",
+    "app.navBar.settingsDropdown.aboutDesc": "Mostra la informació del client",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Abandona la reunió",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Surt de pantalla completa",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Dreceres de teclat",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Llista de les dreceres de teclat disponible",
+    "app.navBar.settingsDropdown.helpLabel": "Ajuda",
+    "app.navBar.settingsDropdown.helpDesc": "Enllaça l'usuari amb els videotutorials (obre nova pestanya)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Finalitza la reunió actual",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Finalitza la reunió",
+    "app.navBar.userListToggleBtnLabel": "Commuta la llista d'usuaris",
+    "app.navBar.toggleUserList.ariaLabel": "Commuta usuaris i missatges",
+    "app.navBar.toggleUserList.newMessages": "amb nova notificació de missatge",
+    "app.navBar.recording": "La sessió està essent enregistrada",
+    "app.navBar.recording.on": "Enregistrant",
+    "app.navBar.recording.off": "Sense enregistrar",
+    "app.navBar.emptyAudioBrdige": "No hi ha micròfon actiu. Comparteixi el seu micròfon per afegir so a aquesta gravació",
+    "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...",
+    "app.about.version": "Versió del client:",
+    "app.about.copyright": "Copyright:",
+    "app.about.confirmLabel": "D'acord",
+    "app.about.confirmDesc": "D'acord",
+    "app.about.dismissLabel": "Cancel·la",
+    "app.about.dismissDesc": "Tanca la informació sobre el client",
+    "app.actionsBar.changeStatusLabel": "Canvia estat",
+    "app.actionsBar.muteLabel": "Silencia",
+    "app.actionsBar.unmuteLabel": "Activa el micròfon",
+    "app.actionsBar.camOffLabel": "Apaga la càmera",
+    "app.actionsBar.raiseLabel": "Aixeca",
+    "app.actionsBar.label": "Barra d'accions",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Restaura la presentació",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Botó per a restaurar la presentació un cop tancada",
+    "app.screenshare.screenShareLabel" : "Comparteix pantalla",
+    "app.submenu.application.applicationSectionTitle": "Aplicació",
+    "app.submenu.application.animationsLabel": "Animació",
+    "app.submenu.application.audioAlertLabel": "Alertes d'audio per al xat",
+    "app.submenu.application.pushAlertLabel": "Alertes emergents per al xat",
+    "app.submenu.application.userJoinAudioAlertLabel": "Alertes d'audio per usuaris que es connecten de nou",
+    "app.submenu.application.userJoinPushAlertLabel": "Alertes emergents per a usuaris que es connecten de nou",
+    "app.submenu.application.fontSizeControlLabel": "Mida de la font",
+    "app.submenu.application.increaseFontBtnLabel": "Fes la mida de la lletra més gran",
+    "app.submenu.application.decreaseFontBtnLabel": "Fes la mida de la lletra més petita",
+    "app.submenu.application.currentSize": "actualment {0}",
+    "app.submenu.application.languageLabel": "Idioma de l'aplicació",
+    "app.submenu.application.languageOptionLabel": "Escull idioma",
+    "app.submenu.application.noLocaleOptionLabel": "No hi ha fitxers de localització actius",
+    "app.submenu.audio.micSourceLabel": "Font del micròfon",
+    "app.submenu.audio.speakerSourceLabel": "Font d'altaveu",
+    "app.submenu.audio.streamVolumeLabel": "El seu volum d'emissió",
+    "app.submenu.video.title": "Vídeo",
+    "app.submenu.video.videoSourceLabel": "Font de vídeo",
+    "app.submenu.video.videoOptionLabel": "Selecciona la font de vídeo",
+    "app.submenu.video.videoQualityLabel": "Qualitat d'imatge",
+    "app.submenu.video.qualityOptionLabel": "Selecciona la qualitat d'imatge",
+    "app.submenu.video.participantsCamLabel": "Veient les càmeres dels/de les participants",
+    "app.settings.applicationTab.label": "Aplicació",
+    "app.settings.audioTab.label": "Audio",
+    "app.settings.videoTab.label": "Vídeo",
+    "app.settings.usersTab.label": "Participants",
+    "app.settings.main.label": "Configuració",
+    "app.settings.main.cancel.label": "Cancel·la",
+    "app.settings.main.cancel.label.description": "Descarta els canvis i tanca el menú de configuració",
+    "app.settings.main.save.label": "Desa",
+    "app.settings.main.save.label.description": "Desa els canvis i tanca el menú de configuració",
+    "app.settings.dataSavingTab.label": "Estalvi de dades",
+    "app.settings.dataSavingTab.webcam": "Activa les càmeres",
+    "app.settings.dataSavingTab.screenShare": "Activa compartir l'escriptori",
+    "app.settings.dataSavingTab.description": "Per estalviar ample de banda, ajusteu el que s'està mostrant.",
+    "app.settings.save-notification.label": "La configuració ha estat desada.",
+    "app.switch.onLabel": "ON",
+    "app.switch.offLabel": "OFF",
+    "app.talkingIndicator.ariaMuteDesc" : "Seleccioneu per a silenciar usuari",
+    "app.talkingIndicator.isTalking" : "{0} està parlant",
+    "app.talkingIndicator.wasTalking" : "{0} ha parat de parlar",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Accions",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Puja una presentació",
+    "app.actionsBar.actionsDropdown.initPollLabel": "Inicia una enquesta",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "Comparteix la teva pantalla",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Compartir pantalla bloquejat",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Deixa de compartir pantalla",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Puja la teva presentació",
+    "app.actionsBar.actionsDropdown.initPollDesc": "Inicia una enquesta",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Comparteix la teva pantalla amb els altres",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Deixa de compartir pantalla amb els altres",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "Inicia una enquesta",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Commuta el panell d'enquesta",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Desa el nom d'usuari",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Crea sales de reunió separades",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Crea sales de per a separar la reunió actual",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Escriu subtítols",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Intercanvia el panell de subtítols",
+    "app.actionsBar.actionsDropdown.takePresenter": "Agafa el control de la presentació",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Assigna't com el nou/nova presentador",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Defineix l'estat",
+    "app.actionsBar.emojiMenu.awayLabel": "He sortit",
+    "app.actionsBar.emojiMenu.awayDesc": "Canvia l'estat a 'he sortit'",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "Aixeca",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "Aixeca la mà per a preguntar",
+    "app.actionsBar.emojiMenu.neutralLabel": "Indecís/a",
+    "app.actionsBar.emojiMenu.neutralDesc": "Canvia l'estat a 'indecís/a'",
+    "app.actionsBar.emojiMenu.confusedLabel": "Confús/a",
+    "app.actionsBar.emojiMenu.confusedDesc": "Canvia l'estat a 'confús/a'",
+    "app.actionsBar.emojiMenu.sadLabel": "Trist/a",
+    "app.actionsBar.emojiMenu.sadDesc": "Canvia l'estat a 'trist/a'",
+    "app.actionsBar.emojiMenu.happyLabel": "Content/a",
+    "app.actionsBar.emojiMenu.happyDesc": "Canvia l'estat a 'content/a'",
+    "app.actionsBar.emojiMenu.noneLabel": "Neteja l'estat",
+    "app.actionsBar.emojiMenu.noneDesc": "Neteja el teu estat",
+    "app.actionsBar.emojiMenu.applauseLabel": "Aplaudir",
+    "app.actionsBar.emojiMenu.applauseDesc": "Canvia l'estat a 'aplaudeix'",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Polze amunt",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Canvia l'estat a 'polze amunt'",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Polze avall",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "Canvia l'estat a 'polze avall'",
+    "app.actionsBar.currentStatusDesc": "Estat actual {0}",
+    "app.actionsBar.captions.start": "Activa subtítols",
+    "app.actionsBar.captions.stop": "Desactiva subtítols",
+    "app.audioNotification.audioFailedError1001": "WebSocket desconnectat (error 1001)",
+    "app.audioNotification.audioFailedError1002": "No s'ha pogut fe runa connexió WebSocket (error 1002)",
+    "app.audioNotification.audioFailedError1003": "Versió del navegador no suportada (error 1003)",
+    "app.audioNotification.audioFailedError1004": "Error en la trucada (raó={0}) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "La trucada ha acabat inesperadament (error 1005)",
+    "app.audioNotification.audioFailedError1006": "Trucada fora de temps (error 1006)",
+    "app.audioNotification.audioFailedError1007": "Connexió fallida (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "Transferència fallida (error 1008)",
+    "app.audioNotification.audioFailedError1009": "No s'ha pogut obtenir la informació del servidor STUN/TURN (error 1009)",
+    "app.audioNotification.audioFailedError1010": "Negociació de la connexió fora de temps (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "Connexió fora de temps (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "Connexió tancada (ICE error 1012)",
+    "app.audioNotification.audioFailedMessage": "La vostra connexió d'audio ha fallat",
+    "app.audioNotification.mediaFailedMessage": "getUserMicMedia ha fallat, ja que només es permeten els orígens segurs",
+    "app.audioNotification.closeLabel": "Tanca",
+    "app.audioNotificaion.reconnectingAsListenOnly": "El micròfon s'ha bloquejat per als espectadors; només esteu connectats com a audició",
+    "app.breakoutJoinConfirmation.title": "Unirse a la sala separada",
+    "app.breakoutJoinConfirmation.message": "Us voleu unir",
+    "app.breakoutJoinConfirmation.confirmDesc": "Unirse a la sala separada",
+    "app.breakoutJoinConfirmation.dismissLabel": "Cancel·la",
+    "app.breakoutJoinConfirmation.dismissDesc": "Tanca i rebutja unir-se a la sala separada",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Escull la sala separada per a unir-se",
+    "app.breakoutTimeRemainingMessage": "Temps restant a la sala separada: {0}",
+    "app.breakoutWillCloseMessage": "Temps finalitzat. La reunió separada es tancarà aviat",
+    "app.calculatingBreakoutTimeRemaining": "Calculant temps restant ...",
+    "app.audioModal.ariaTitle": "Entra a l'àudio modal",
+    "app.audioModal.microphoneLabel": "Micròfon",
+    "app.audioModal.listenOnlyLabel": "Només escolta",
+    "app.audioModal.audioChoiceLabel": "Voleu unir-vos a l'àudio",
+    "app.audioModal.iOSBrowser": "Àudio/Vídeo no suportat",
+    "app.audioModal.iOSErrorDescription": "Actualment, l'àudio i vídeo no estan suportats per Chrome per a iOS",
+    "app.audioModal.iOSErrorRecommendation": "Recomanem utilitzar Safari iOS.",
+    "app.audioModal.audioChoiceDesc": "Seleccioneu com us voleu unir a l'àudio d'aquesta reunió",
+    "app.audioModal.unsupportedBrowserLabel": "Sembla que esteu emprant un navegador no suportat del tot. Si us plau utilitzeu o {0} o {1} per a un suport complet.",
+    "app.audioModal.closeLabel": "Tanca",
+    "app.audioModal.yes": "Sí",
+    "app.audioModal.no": "O",
+    "app.audioModal.yes.arialabel" : "L'eco és audible",
+    "app.audioModal.no.arialabel" : "L'eco és inaudible",
+    "app.audioModal.echoTestTitle": "Test privat d'eco. Digueu algunes paraules. Us escolteu?",
+    "app.audioModal.settingsTitle": "Canvia la configuració d'àudio",
+    "app.audioModal.helpTitle": "S'ha produït un problema amb els vostres dispositius multimèdia",
+    "app.audioModal.helpText": "Heu donat permís per accedir al vostre micròfon? Tingueu en compte que hauria d’aparèixer un diàleg quan intenteu unir àudio, demanant els permisos del vostre dispositiu multimèdia, si us plau, accepteu-ho per unir-vos a la conferència d’àudio. Si no és així, proveu de canviar els permisos del micròfon a la configuració del vostre navegador.",
+    "app.audioModal.help.noSSL": "Aquesta pàgina no és segura. Per accedir al micròfon, es pot proporcionar la pàgina mitjançant HTTPS. Poseu-vos en contacte amb l'administrador del servidor.",
+    "app.audioModal.help.macNotAllowed": "Sembla que les preferències del sistema Mac bloquegen l’accés al micròfon. Obriu Preferències del sistema> Seguretat i privadesa> Privadesa> Micròfon i comproveu que el navegador que feu servir està marcat.",
+    "app.audioModal.audioDialTitle": "Uniu-vos utilitzant el telèfon",
+    "app.audioDial.audioDialDescription": "Truca",
+    "app.audioDial.audioDialConfrenceText": "i entreu el PIN de la conferència:",
+    "app.audioModal.autoplayBlockedDesc": "Necessitareu permís per a reproduir l'àudio.",
+    "app.audioModal.playAudio": "Reproduïu àudio",
+    "app.audioModal.playAudio.arialabel" : "Reproduïu àudio",
+    "app.audioDial.tipIndicator": "Consell",
+    "app.audioDial.tipMessage": "Premeu la tecla '0' del telèfon per silenciar/parlar.",
+    "app.audioModal.connecting": "Connectant",
+    "app.audioModal.connectingEchoTest": "Connectant al test d'eco",
+    "app.audioManager.joinedAudio": "Us heu unit a la conferència d’àudio",
+    "app.audioManager.joinedEcho": "Us heu sumat a la prova d'eco",
+    "app.audioManager.leftAudio": "Heu deixat la conferència d’àudio",
+    "app.audioManager.reconnectingAudio": "S'està intentant tornar a connectar l'àudio",
+    "app.audioManager.genericError": "Error: s’ha produït un error, torna-ho a provar",
+    "app.audioManager.connectionError": "Error: error de connexió",
+    "app.audioManager.requestTimeout": "Error: s'ha esgotat el temps de espera per a la sol·licitud",
+    "app.audioManager.invalidTarget": "Error: s'ha intentat sol·licitar alguna cosa a una destinació no vàlida",
+    "app.audioManager.mediaError": "Error: s'ha produït un problema en rebre els dispositius multimèdia",
+    "app.audio.joinAudio": "Unir-se a l'àudio",
+    "app.audio.leaveAudio": "Deixar l'àudio",
+    "app.audio.enterSessionLabel": "Entrar sessió",
+    "app.audio.playSoundLabel": "Reproduir el so",
+    "app.audio.backLabel": "Enrere",
+    "app.audio.audioSettings.titleLabel": "Trieu la configuració d’àudio",
+    "app.audio.audioSettings.descriptionLabel": "Tingueu en compte que apareixerà un diàleg al navegador que requereix que accepteu compartir el micròfon.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Font del micròfon",
+    "app.audio.audioSettings.speakerSourceLabel": "Font d'altaveu",
+    "app.audio.audioSettings.microphoneStreamLabel": "El seu volum d'emissió",
+    "app.audio.audioSettings.retryLabel": "Reintentar",
+    "app.audio.listenOnly.backLabel": "Enrere",
+    "app.audio.listenOnly.closeLabel": "Tanca",
+    "app.audio.permissionsOverlay.title": "Permet l'accés al micròfon",
+    "app.audio.permissionsOverlay.hint": "Necessitem que ens permeteu utilitzar els vostres dispositius multimèdia per unir-vos a la conferència de veu :)",
+    "app.error.removed": "Heu estat eliminat/da de la conferència",
+    "app.error.meeting.ended": "Us heu desconnectat de la conferència",
+    "app.meeting.logout.duplicateUserEjectReason": "Un usuari duplicat intenta unir-se a la reunió",
+    "app.meeting.logout.permissionEjectReason": "Expulsat per infracció del permís",
+    "app.meeting.logout.ejectedFromMeeting": "Se us ha retirat de la reunió",
+    "app.meeting.logout.validateTokenFailedEjectReason": "No s'ha pogut validar el token d'autorització",
+    "app.meeting.logout.userInactivityEjectReason": "Usuari inactiu durant massa temps",
+    "app.meeting-ended.rating.legendLabel": "Valoració de comentaris",
+    "app.meeting-ended.rating.starLabel": "Estrella",
+    "app.modal.close": "Tanca",
+    "app.modal.close.description": "Ignora els canvis i tanca la modalitat",
+    "app.modal.confirm": "Fet",
+    "app.modal.newTab": "(obre una nova pestanya)",
+    "app.modal.confirm.description": "Guarda els canvis i tanca la modalitat",
+    "app.dropdown.close": "Tanca",
+    "app.error.400": "Sol·licitud incorrecta",
+    "app.error.401": "No autoritzat",
+    "app.error.403": "Se us ha retirat de la reunió",
+    "app.error.404": "No trobat",
+    "app.error.410": "La reunió ha finalitzat",
+    "app.error.500": "Oh oh, quelcom ha anat malament",
+    "app.error.leaveLabel": "Inicieu la sessió de nou",
+    "app.error.fallback.presentation.title": "Hi ha hagut un error",
+    "app.error.fallback.presentation.description": "S'ha registrat. Proveu de tornar a carregar la pàgina.",
+    "app.error.fallback.presentation.reloadButton": "Torna a carregar",
+    "app.guest.waiting": "En espera que s'aprovi l'entrada",
+    "app.userList.guest.waitingUsers": "Esperant usuaris/àries",
+    "app.userList.guest.waitingUsersTitle": "Gestió d'usuaris",
+    "app.userList.guest.optionTitle": "Revisar els usuaris pendents",
+    "app.userList.guest.allowAllAuthenticated": "Permet tots els autenticats",
+    "app.userList.guest.allowAllGuests": "Permet tots els convidats",
+    "app.userList.guest.allowEveryone": "Permet a tothom",
+    "app.userList.guest.denyEveryone": "Denega a tothom",
+    "app.userList.guest.pendingUsers": "{0} Usuaris pendents",
+    "app.userList.guest.pendingGuestUsers": "{0} Usuaris convidats pendents",
+    "app.userList.guest.pendingGuestAlert": "S'ha unit a la sessió i està esperant la seva aprovació.",
+    "app.userList.guest.rememberChoice": "Recorda l'elecció",
+    "app.user-info.title": "Cerca al directori",
+    "app.toast.breakoutRoomEnded": "La sala separada ha tancat. Si us plau, torneu-vos a unir a l'àudio.",
+    "app.toast.chat.public": "Nou missatge del xat públic",
+    "app.toast.chat.private": "Nou missatge del xat privat",
+    "app.toast.chat.system": "Sistema",
+    "app.toast.clearedEmoji.label": "Estatus d'emoji net",
+    "app.toast.setEmoji.label": "Estatus d'emoji configurat {0}",
+    "app.toast.meetingMuteOn.label": "Tots els usuaris han estat silenciats",
+    "app.toast.meetingMuteOff.label": "Reunió silenciada desactivada",
+    "app.notification.recordingStart": "La sessió s'està gravant ara",
+    "app.notification.recordingStop": "Ara, ja no s'està gravant la sessió.",
+    "app.notification.recordingPaused": "La sessió no serà gravada més",
+    "app.notification.recordingAriaLabel": "Temps gravat",
+    "app.notification.userJoinPushAlert": "{0} s'ha unit a la sessió",
+    "app.shortcut-help.title": "Dreceres de teclat",
+    "app.shortcut-help.accessKeyNotAvailable": "Claus d'accés no disponibles",
+    "app.shortcut-help.comboLabel": "Combo",
+    "app.shortcut-help.functionLabel": "Funció",
+    "app.shortcut-help.closeLabel": "Tanca",
+    "app.shortcut-help.closeDesc": "Tanca la modalitat de dreceres del teclat",
+    "app.shortcut-help.openOptions": "Obre opcions",
+    "app.shortcut-help.toggleUserList": "Activa la Llista d’usuaris",
+    "app.shortcut-help.toggleMute": "Silenci / So",
+    "app.shortcut-help.togglePublicChat": "Obre el xat públic (la llista d'usuaris ha d'estar oberta)",
+    "app.shortcut-help.hidePrivateChat": "Amaga el xat privat",
+    "app.shortcut-help.closePrivateChat": "Tanca el xat priva",
+    "app.shortcut-help.openActions": "Obre el menú d'accions",
+    "app.shortcut-help.openStatus": "Obre el menú d'estat",
+    "app.shortcut-help.togglePan": "Activa l'eina Pan (presentadora)",
+    "app.shortcut-help.nextSlideDesc": "Diapositiva següent (presentador)",
+    "app.shortcut-help.previousSlideDesc": "Diapositiva anterior (presentador)",
+    "app.lock-viewers.title": "Bloqueja espectadors",
+    "app.lock-viewers.description": "Aquestes opcions permeten restringir els espectadors a l'ús de funcions específiques.",
+    "app.lock-viewers.featuresLable": "Característica",
+    "app.lock-viewers.lockStatusLabel": "Estat",
+    "app.lock-viewers.webcamLabel": "Comparteix webcam",
+    "app.lock-viewers.otherViewersWebcamLabel": "Veure les webcams dels altres",
+    "app.lock-viewers.microphoneLable": "Comparteix micròfon",
+    "app.lock-viewers.PublicChatLabel": "Envia missatges al xat públic",
+    "app.lock-viewers.PrivateChatLable": "Envia missatges al xat privat",
+    "app.lock-viewers.notesLabel": "Edita les notes compartides",
+    "app.lock-viewers.userListLabel": "Veure altres espectadors a la llista d'usuari",
+    "app.lock-viewers.ariaTitle": "Bloqueja la configuració de la modalitat del espectadors",
+    "app.lock-viewers.button.apply": "Aplica",
+    "app.lock-viewers.button.cancel": "Cancel·la",
+    "app.lock-viewers.locked": "Tancat",
+    "app.lock-viewers.unlocked": "Desbloqueja",
+    "app.recording.startTitle": "Inicia gravació",
+    "app.recording.stopTitle": "Pausa gravació",
+    "app.recording.resumeTitle": "Reprén gravaci",
+    "app.recording.startDescription": "Podeu tornar a seleccionar el botó de gravació per aturar-la.",
+    "app.recording.stopDescription": "Esteu segur que voleu aturar la gravació? Podeu reprendre-la seleccionant el botó de nou.",
+    "app.videoPreview.cameraLabel": "Càmera",
+    "app.videoPreview.profileLabel": "Qualitat",
+    "app.videoPreview.cancelLabel": "Cancel·la",
+    "app.videoPreview.closeLabel": "Tanca",
+    "app.videoPreview.findingWebcamsLabel": "Troba webcams",
+    "app.videoPreview.startSharingLabel": "Inicia compartir",
+    "app.videoPreview.webcamOptionLabel": "Escull webcam",
+    "app.videoPreview.webcamPreviewLabel": "Previsualització de webcam",
+    "app.videoPreview.webcamSettingsTitle": "Configuració de la webcam",
+    "app.videoPreview.webcamNotFoundLabel": "Webcam no trobada",
+    "app.videoPreview.profileNotFoundLabel": "Perfil de càmera no suportada",
+    "app.video.joinVideo": "Comparteix webcam",
+    "app.video.leaveVideo": "Atura compartir webcam",
+    "app.video.iceCandidateError": "Error en afegir un candidat ICE",
+    "app.video.iceConnectionStateError": "Connexió fallida (ICE error 1107)",
+    "app.video.permissionError": "S'ha produït un error en compartir la càmera web. Comproveu els permisos",
+    "app.video.sharingError": "Error en compartir webcam",
+    "app.video.notFoundError": "No s'ha trobat webcam. Comproveu que estigui connectada",
+    "app.video.notAllowed": "No teniu permís per compartir càmera web, assegureu-vos que els permisos del navegador",
+    "app.video.notSupportedError": "Només pot compartir vídeo de càmera web amb fonts segures, assegureu-vos que el certificat SSL sigui vàlid",
+    "app.video.notReadableError": "No s'ha pogut obtenir el vídeo amb càmera web. Assegureu-vos que un altre programa no utilitzi la càmera web",
+    "app.video.mediaFlowTimeout1020": "Els suports de mitjans no van poder arribar al servidor (error 1020)",
+    "app.video.suggestWebcamLock": "Voleu aplicar la configuració de bloqueig a les càmeres web dels espectadors?",
+    "app.video.suggestWebcamLockReason": "(això millorarà l’estabilitat de la reunió)",
+    "app.video.enable": "Activa",
+    "app.video.cancel": "Cancel·la",
+    "app.video.swapCam": "Intercanvia",
+    "app.video.swapCamDesc": "Intercanvia la direcció de les webcams",
+    "app.video.videoLocked": "Compartir webcam bloquejat",
+    "app.video.videoButtonDesc": "Comparteix webcam",
+    "app.video.videoMenu": "Menú de vídeo",
+    "app.video.videoMenuDisabled": "Menú de vídeo de la càmera web està desactivada en la configuració",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "El servidor de mitjans està desconnectat. Si us plau, intenteu-ho després (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "El servidor de mitjans no té recursos disponibles (error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Les peticions del servidor de mitjans estan fora de temps (error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "El servidor de mitjans no pot obtenir els candidats de connexió (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "La connexió al servidor de mitjans ha fallat (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "El servidor de mitjans ha fallat a l'hora de processar la petició (error 2200)",
+    "app.sfu.invalidSdp2202":"El client ha generat una petició de mitjans no vàlida (SDP error 2202)",
+    "app.sfu.noAvailableCodec2203": "El servidor no pot trobar un còdec apropiat (error 2203)",
+    "app.meeting.endNotification.ok.label": "D'acord",
+    "app.whiteboard.annotations.poll": "Els resultats de l'enquesta han estat publicats.",
+    "app.whiteboard.toolbar.tools": "Eines",
+    "app.whiteboard.toolbar.tools.hand": "Panell",
+    "app.whiteboard.toolbar.tools.pencil": "Llapis",
+    "app.whiteboard.toolbar.tools.rectangle": "Rectangle",
+    "app.whiteboard.toolbar.tools.triangle": "Triangle",
+    "app.whiteboard.toolbar.tools.ellipse": "El·lipse",
+    "app.whiteboard.toolbar.tools.line": "Línia",
+    "app.whiteboard.toolbar.tools.text": "Text",
+    "app.whiteboard.toolbar.thickness": "Gruix de la línia",
+    "app.whiteboard.toolbar.thicknessDisabled": "El gruix del dibuix està desactivat",
+    "app.whiteboard.toolbar.color": "Colors",
+    "app.whiteboard.toolbar.colorDisabled": "Els colors estan desactivats",
+    "app.whiteboard.toolbar.color.black": "Negre",
+    "app.whiteboard.toolbar.color.white": "Blanc",
+    "app.whiteboard.toolbar.color.red": "Vermel",
+    "app.whiteboard.toolbar.color.orange": "Taronja",
+    "app.whiteboard.toolbar.color.eletricLime": "Groc elèctric",
+    "app.whiteboard.toolbar.color.lime": "Groc",
+    "app.whiteboard.toolbar.color.cyan": "Blau cian",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Blau Dodger",
+    "app.whiteboard.toolbar.color.blue": "Blau",
+    "app.whiteboard.toolbar.color.violet": "Lila",
+    "app.whiteboard.toolbar.color.magenta": "Magenta",
+    "app.whiteboard.toolbar.color.silver": "Platejat",
+    "app.whiteboard.toolbar.undo": "Desfés anotació",
+    "app.whiteboard.toolbar.clear": "Neteja les anotacions",
+    "app.whiteboard.toolbar.multiUserOn": "Activa la pissarra multiusuari",
+    "app.whiteboard.toolbar.multiUserOff": "Desactiva la pissarra multiusuari",
+    "app.whiteboard.toolbar.fontSize": "Llista de la mida de lletra",
+    "app.feedback.title": "Us heu desconnectat de la conferència",
+    "app.feedback.subtitle": "Ens agradaria saber sobre la seva experiència amb BigBlueButton (opcional)",
+    "app.feedback.textarea": "Com podem fer BigBlueButton millor?",
+    "app.feedback.sendFeedback": "Enviar comentari",
+    "app.feedback.sendFeedbackDesc": "Enviar comentari i sortir de la reunió",
+    "app.videoDock.webcamFocusLabel": "Centra",
+    "app.videoDock.webcamFocusDesc": "Centra la càmera seleccionada",
+    "app.videoDock.webcamUnfocusLabel": "Descentra",
+    "app.videoDock.webcamUnfocusDesc": "Descentra la càmera seleccionada",
+    "app.videoDock.autoplayBlockedDesc": "Necessitem el seu permís per a mostrar les càmeres dels altres usuaris.",
+    "app.videoDock.autoplayAllowLabel": "Veure càmeres",
+    "app.invitation.title": "Invitació de sala separada",
+    "app.invitation.confirm": "Convidar",
+    "app.createBreakoutRoom.title": "Sales separades",
+    "app.createBreakoutRoom.ariaTitle": "Amaga les sales separades",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Sales separades {0}",
+    "app.createBreakoutRoom.generatingURL": "Generant URL",
+    "app.createBreakoutRoom.generatedURL": "Generada",
+    "app.createBreakoutRoom.duration": "Durada {0}",
+    "app.createBreakoutRoom.room": "Sala {0}",
+    "app.createBreakoutRoom.notAssigned": "Sense assignar ({0})",
+    "app.createBreakoutRoom.join": "Unir-se a la sala",
+    "app.createBreakoutRoom.joinAudio": "Unir-se a l'àudio",
+    "app.createBreakoutRoom.returnAudio": "Retorn d'àudio",
+    "app.createBreakoutRoom.alreadyConnected": "Ja està a la sala",
+    "app.createBreakoutRoom.confirm": "Crear",
+    "app.createBreakoutRoom.record": "Gravar",
+    "app.createBreakoutRoom.numberOfRooms": "Nombre de sales",
+    "app.createBreakoutRoom.durationInMinutes": "Durada (minuts)",
+    "app.createBreakoutRoom.randomlyAssign": "Assignació aleatòria",
+    "app.createBreakoutRoom.endAllBreakouts": "Finalitza les sales separades",
+    "app.createBreakoutRoom.roomName": "{0} (Sala - {1})",
+    "app.createBreakoutRoom.doneLabel": "Fet",
+    "app.createBreakoutRoom.nextLabel": "Següent",
+    "app.createBreakoutRoom.minusRoomTime": "Redueix el temps de la sala separada a",
+    "app.createBreakoutRoom.addRoomTime": "Augmenta el temps de la sala separada a ",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Afegeix participant",
+    "app.createBreakoutRoom.freeJoin": "Permet els usuaris la sala a la que es volen unir",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "Com a mínim heu d'incloure un usuari en una sala separada.",
+    "app.createBreakoutRoom.modalDesc": "Truc: Podeu arrossegar i deixar anar el nom d'usuari per a assignar-lo a una sala separada.",
+    "app.createBreakoutRoom.roomTime": "{0} minuts",
+    "app.createBreakoutRoom.numberOfRoomsError": "El nombre de sales no és vàlid.",
+    "app.externalVideo.start": "Comparteix un nou vídeo",
+    "app.externalVideo.title": "Comparteix un vídeo extern",
+    "app.externalVideo.input": "URL de vídeo extern",
+    "app.externalVideo.urlInput": "Afegir URL de vídeo",
+    "app.externalVideo.urlError": "L'URL del vídeo no està suportada",
+    "app.externalVideo.close": "Tanca",
+    "app.externalVideo.autoPlayWarning": "Reprodueix el vídeo per a activar la sincronització de mitjans",
+    "app.network.connection.effective.slow": "Estem tenint problemes de connectivitat",
+    "app.network.connection.effective.slow.help": "Més informaci",
+    "app.externalVideo.noteLabel": "Nota: els vídeos externs compartits no apareixeran a la gravació. Els URL de YouTube, Vimeo, Instructure Media, Twitch i Daily Motion són compatibles.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Comparteix un vídeo extern",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Deixa de compartir els vídeos externs",
+    "app.iOSWarning.label": "Actualitzeu a iOS 12.2 o superior",
+    "app.legacy.unsupportedBrowser": "Sembla que utilitzeu un navegador que no és compatible. Si us plau, utilitzeu {0} o {1} per obtenir assistència completa.",
+    "app.legacy.upgradeBrowser": "Sembla que utilitzeu una versió anterior d'un navegador compatible. Actualitzeu el navegador per obtenir assistència completa.",
+    "app.legacy.criosBrowser": "A iOS, utilitzeu Safari per obtenir assistència completa."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/cs_CZ.json b/bigbluebutton-html5/private/locales/cs_CZ.json
index 48e267e13185a830814519a9b7e5533ac83c2121..22024ea5289c7f3958b501f803008ae64a99bb0f 100644
--- a/bigbluebutton-html5/private/locales/cs_CZ.json
+++ b/bigbluebutton-html5/private/locales/cs_CZ.json
@@ -1,9 +1,11 @@
 {
     "app.home.greeting": "Vaše prezentace začne za okamžik...",
     "app.chat.submitLabel": "Odeslat zprávu",
-    "app.chat.errorMinMessageLength": "Zpráva je o {0} znaků moc dlouhá",
     "app.chat.errorMaxMessageLength": "Zpráva je o {0} znaků moc krátká",
+    "app.chat.disconnected": "Zpráva nemůže být odeslána, protože jste byl odpojen.",
+    "app.chat.locked": "Chat je uzamčen, nelze odeslat zprávu.",
     "app.chat.inputLabel": "Zadat zprávu pro chat {0}",
+    "app.chat.inputPlaceholder": "Odeslat zprávu pro {0}",
     "app.chat.titlePublic": "Veřejný chat",
     "app.chat.titlePrivate": "Soukromý chat s {0}",
     "app.chat.partnerDisconnected": "{0} opustil setkání",
@@ -15,20 +17,49 @@
     "app.chat.dropdown.copy": "Kopírovat chat",
     "app.chat.dropdown.save": "Uložit chat",
     "app.chat.label": "Chat",
+    "app.chat.offline": "Odpojen",
     "app.chat.emptyLogLabel": "Log chatu je prázdný",
     "app.chat.clearPublicChatMessage": "Historie chatu byla smazána moderátorem",
+    "app.chat.multi.typing": "Více uživatelů píše zprávu",
+    "app.chat.one.typing": "{0} píše zprávu",
+    "app.chat.two.typing": "{0} a {1}  píší zprávu",
+    "app.captions.label": "Titulky",
     "app.captions.menu.close": "Zavřít",
     "app.captions.menu.start": "Start",
+    "app.captions.menu.ariaStart": "Začít psát titulky",
+    "app.captions.menu.ariaStartDesc": "Otevře editor titulků a zavře okno",
+    "app.captions.menu.select": "Vyberte dostupný jazyk",
+    "app.captions.menu.ariaSelect": "Jazyk titulků",
+    "app.captions.menu.subtitle": "Prosím zvolte jazyk a styl pro zobrazování titulků ve Vaší relaci.",
     "app.captions.menu.title": "Titulky",
+    "app.captions.menu.fontSize": "Velikost",
+    "app.captions.menu.fontColor": "Barva textu",
+    "app.captions.menu.fontFamily": "Font",
     "app.captions.menu.backgroundColor": "Barva pozadí",
+    "app.captions.menu.previewLabel": "Náhled",
     "app.captions.menu.cancelLabel": "Zrušit",
+    "app.captions.pad.hide": "Skrýt titulky",
+    "app.captions.pad.tip": "Zmáčkněte klávesu Esc k vybrání panelu nástrojů",
+    "app.captions.pad.ownership": "Převzít vlastnictví",
+    "app.captions.pad.ownershipTooltip": "Budete přiřazeni jako vlastník {0} titulků",
+    "app.captions.pad.interimResult": "Prozatimní výsledky",
+    "app.captions.pad.dictationStart": "Začít diktovat",
+    "app.captions.pad.dictationStop": "Skončit diktování",
+    "app.captions.pad.dictationOnDesc": "Zapnout rozpoznávání řeči",
+    "app.captions.pad.dictationOffDesc": "Vypnout rozpoznávání řeči",
     "app.note.title": "Sdílené poznámky",
     "app.note.label": "Poznámka",
     "app.note.hideNoteLabel": "Schovat poznámky",
+    "app.user.activityCheck": "Kontrola aktivity uživatelů",
+    "app.user.activityCheck.label": "Kontrola je li uživatel stále přítomen v meetingu ({0})",
+    "app.user.activityCheck.check": "Kontrola",
+    "app.note.tipLabel": "Zmáčkněte klávesu Esc k vybrání panelu nástrojů",
     "app.userList.usersTitle": "Uživatelé",
     "app.userList.participantsTitle": "Účastníci",
     "app.userList.messagesTitle": "Zprávy",
     "app.userList.notesTitle": "Poznámky",
+    "app.userList.notesListItem.unreadContent": "V sekci sdílených poznámek je k dispozici nový obsah",
+    "app.userList.captionsTitle": "Titulky",
     "app.userList.presenter": "Přednášející",
     "app.userList.you": "Vy",
     "app.userList.locked": "Uzamčen",
@@ -38,6 +69,7 @@
     "app.userList.menuTitleContext": "Dostupné volby",
     "app.userList.chatListItem.unreadSingular": "{0} nová zpráva",
     "app.userList.chatListItem.unreadPlural": "{0} nové zprávy",
+    "app.userList.menu.chat.label": "Spustit soukromý chat",
     "app.userList.menu.clearStatus.label": "Smazat status",
     "app.userList.menu.removeUser.label": "Odstranit uživatele",
     "app.userList.menu.muteUserAudio.label": "Ztlumit uživatele",
@@ -47,6 +79,7 @@
     "app.userList.menu.demoteUser.label": "Degradovat na posluchače",
     "app.userList.menu.unlockUser.label": "Odemknout {0}",
     "app.userList.menu.lockUser.label": "Uzamknout {0}",
+    "app.userList.menu.directoryLookup.label": "Vyhledávání v adresáři",
     "app.userList.menu.makePresenter.label": "Učinit přednášejícím",
     "app.userList.userOptions.manageUsersLabel": "Spravovat uživatele",
     "app.userList.userOptions.muteAllLabel": "Ztlumit všechny uživatele",
@@ -59,16 +92,48 @@
     "app.userList.userOptions.unmuteAllDesc": "Zruší ztlumení uživatelů",
     "app.userList.userOptions.lockViewersLabel": "Uzamknout posluchače",
     "app.userList.userOptions.lockViewersDesc": "Uzamkne některé funkcionality setkání pro posluchače",
+    "app.userList.userOptions.disableCam": "Webkamery sledujících jsou zakázány",
+    "app.userList.userOptions.disableMic": "Uživatelské mikrofony jsou zakázány",
+    "app.userList.userOptions.disablePrivChat": "Soukromý chat je zakázán",
+    "app.userList.userOptions.disablePubChat": "Veřejný chat je zakázán",
+    "app.userList.userOptions.disableNote": "Sdílené poznámky jsou nyní zakázány",
+    "app.userList.userOptions.hideUserList": "Seznam uživatelů je nyní pro sledující skrytý.",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Pouze moderátoři jsou oprávněni vidět uživatelské webkamery (vlivem nastavení omezení)",
+    "app.userList.content.participants.options.clearedStatus": "Ikony stavu vyčištěny.",
+    "app.userList.userOptions.enableCam": "Webkamery sledujících jsou povoleny",
+    "app.userList.userOptions.enableMic": "Uživatelské mikrofony jsou povoleny",
+    "app.userList.userOptions.enablePrivChat": "Soukromý chat je povolen",
+    "app.userList.userOptions.enablePubChat": "Veřejný chat je povolen",
+    "app.userList.userOptions.enableNote": "Sdílené poznámky jsou nyní povoleny",
+    "app.userList.userOptions.showUserList": "Seznam uživatelů je nyní zobrazován sledujícím",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Nyní můžete zapnout sdílení své webkamery, všichni Vás uvidí",
     "app.media.label": "Media",
+    "app.media.autoplayAlertDesc": "Povolit přístup",
     "app.media.screenshare.start": "Sdílení obrazovky bylo zahájeno",
     "app.media.screenshare.end": "Sdílení obrazovky bylo ukončeno",
-    "app.media.screenshare.safariNotSupported": "Sdílení obrazovky v prohlížeči Safari není podporováno, použijte prosím Firefox nebo Google Chrome.",
+    "app.media.screenshare.unavailable": "Sdílení obrazovky není k dispozici",
+    "app.media.screenshare.safariNotSupported": "Sdílení obrazovky neni v Safari v současti podporováno. Použijte prosím Firefox nebo Google Chrome",
+    "app.media.screenshare.autoplayBlockedDesc": "Potřebujeme Vaše povolení, abychom Vám mohli ukázat obrazovku prezentujícího.",
+    "app.media.screenshare.autoplayAllowLabel": "Zobrazit sdílenou obrazovku",
+    "app.screenshare.notAllowed": "Chyba: Nebylo uděleno oprávnění pro přístup k obrazovce.",
+    "app.screenshare.notSupportedError": "Chyba: Sdílení obrazovky je povoleno pouze ze bezpečné (SSL) domény",
+    "app.screenshare.notReadableError": "Chyba: Při pokusu o zachycení obrazovky došlo k selhání.",
+    "app.screenshare.genericError": "Chyba: Došlo k chybe při sdílení obrazovky, zkuste to prosím znovu.",
     "app.meeting.ended": "Setkání bylo ukončeno",
     "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",
+    "app.presentation.startSlideContent": "Začátek obsahu stránky prezentace",
+    "app.presentation.endSlideContent": "Konec obsahu stránky prezentace",
+    "app.presentation.emptySlideContent": "Soucasná stránka prezentace nemá žádný obsah",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Konec prezentace",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Začátek presentace",
+    "app.presentation.presentationToolbar.selectLabel": "Vybrat stránku prezentace",
     "app.presentation.presentationToolbar.prevSlideLabel": "Předchozí snímek",
     "app.presentation.presentationToolbar.prevSlideDesc": "Posune prezentaci na předchozí snímek",
     "app.presentation.presentationToolbar.nextSlideLabel": "Další snímek",
@@ -88,35 +153,60 @@
     "app.presentation.presentationToolbar.zoomReset": "Výchozí velikost",
     "app.presentation.presentationToolbar.zoomIndicator": "Nastaví výchozí velikost prezentace",
     "app.presentation.presentationToolbar.fitToWidth": "Přizpůsobit na šířku",
+    "app.presentation.presentationToolbar.fitToPage": "Přizpůsobit velikosti stránky",
     "app.presentation.presentationToolbar.goToSlide": "Snímek {0}",
     "app.presentationUploder.title": "Prezentace",
+    "app.presentationUploder.message": "Jakožto přednášející máte možnost nahrát dokument ze sady programů *office (Microsoft..., Libre..., Open...) nebo PDF dokument. Pro nejlepší výsledky doporučujeme použít dokument PDF. Prosím ujistěte se, že vybraná prezentace je zvolena pomocí znaku zašktávátka v pravém sloupci.",
+    "app.presentationUploder.uploadLabel": "Nahrát",
+    "app.presentationUploder.confirmLabel": "Potvrdit",
     "app.presentationUploder.confirmDesc": "Uloží změny a zahájí prezentaci",
     "app.presentationUploder.dismissLabel": "Zrušit",
-    "app.presentationUploder.dismissDesc": "Zavře toto okno a bez uložení změn",
+    "app.presentationUploder.dismissDesc": "Zavře toto okno bez uložení změn",
     "app.presentationUploder.dropzoneLabel": "Sem přetáhněte soubory, které chcete nahrát",
     "app.presentationUploder.dropzoneImagesLabel": "Sem přetáhněte obrázky, které chcete nahrát",
     "app.presentationUploder.browseFilesLabel": "nebo procházejte soubory",
     "app.presentationUploder.browseImagesLabel": "nebo procházejte soubory s obrázky",
     "app.presentationUploder.fileToUpload": "K nahrávání...",
     "app.presentationUploder.currentBadge": "Aktuální",
+    "app.presentationUploder.rejectedError": "Vybraný soubor(y) byl(y) odmítnut(y). Zkontrolujte prosím typ souboru(ů).",
     "app.presentationUploder.upload.progress": "Nahrávání ({0}%)",
+    "app.presentationUploder.upload.413": "Soubor je příliš velký. Rozdělte jej prosím na několik souborů.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Zpracovávám stránku {0} z {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "Zpracování souboru...",
     "app.presentationUploder.conversion.generatingThumbnail": "Generování náhledů...",
     "app.presentationUploder.conversion.generatedSlides": "Generování snímků...",
     "app.presentationUploder.conversion.generatingSvg": "Generování SVG obrázků...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Překročen počet stránek. Rozdělte jej prosím na několik menších.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Při zpracování souboru office došlo k chybe. Nahraje prosím místo něj soubor PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Při zpracování souboru office došlo k chybe. Nahraje prosím místo něj soubor PDF.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Nemohli jsme převédst PDF soubor, zkuste jej prosím optimalizovat.",
     "app.presentationUploder.conversion.timeout": "O ou, čas konverze prezentace překročil limit",
+    "app.presentationUploder.conversion.pageCountFailed": "Nelze zjistit počet stránek.",
+    "app.presentationUploder.isDownloadableLabel": "Nepovolit stažení prezentace",
+    "app.presentationUploder.isNotDownloadableLabel": "Povolit stažení prezentace",
+    "app.presentationUploder.removePresentationLabel": "Odebrat prezentaci",
+    "app.presentationUploder.setAsCurrentPresentation": "Vybrat jako práve zvolenou prezentaci",
+    "app.presentationUploder.tableHeading.filename": "Název souboru",
     "app.presentationUploder.tableHeading.options": "Volby",
+    "app.presentationUploder.tableHeading.status": "Stav",
     "app.poll.pollPaneTitle": "Anketa (hlasování)",
+    "app.poll.quickPollTitle": "Rychlá 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",
     "app.poll.quickPollInstruction": "Vyberte možnost níže a zahajte svou anketu",
     "app.poll.customPollLabel": "Vlastní anketa",
     "app.poll.startCustomLabel": "Zahájit vlastní anketu",
+    "app.poll.activePollInstruction": "Ponechte tento panel otevřený, aby jste videli žive odpovědi na vaše hlasování (anketu). Až budete připraveni, vyberte \"Publikovat výsledky ankety\". Pro zveřejnění výsledků a ukončení hlasování.",
     "app.poll.publishLabel": "Publikovat výsledky ankety",
     "app.poll.backLabel": "Zpět na možnosti ankety",
     "app.poll.closeLabel": "Zavřít",
+    "app.poll.waitingLabel": "Čekám na odpovědi ({0}/{1})",
+    "app.poll.ariaInputCount": "Vlastní hlasovací volba {0} z {1}",
     "app.poll.customPlaceholder": "Přidat volbu",
+    "app.poll.noPresentationSelected": "Nebyla vybrána žádná prezentace! Vyberte nějakou prezentaci.",
+    "app.poll.clickHereToSelect": "Pro výběr, klikněte zde",
+    "app.poll.t": "Pravda",
+    "app.poll.f": "Nepravda",
     "app.poll.tf": "Pravda / Nepravda",
     "app.poll.y": "Ano, ukončit",
     "app.poll.n": "Ne",
@@ -125,16 +215,25 @@
     "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": "Pravda",
+    "app.poll.answer.false": "Nepravda",
     "app.poll.answer.yes": "Ano, ukončit",
     "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": "Uživatelé",
     "app.poll.liveResult.responsesTitle": "Odpověď",
     "app.polling.pollingTitle": "Možnosti hlasování",
     "app.polling.pollAnswerLabel": "Odpověď {0}",
     "app.polling.pollAnswerDesc": "Vyberte tuto možnost pro volbu odpovědi {0}",
     "app.failedMessage": "Omlouváme se, máme potíže s připojením k serveru.",
+    "app.downloadPresentationButton.label": "Stáhnout původní prezentaci",
     "app.connectingMessage": "Připojování...",
     "app.waitingMessage": "Odpojeno. Opakovaný pokus o připojení za {0} sekund...",
+    "app.retryNow": "Zkusit znovu nyní",
     "app.navBar.settingsDropdown.optionsLabel": "Volby",
     "app.navBar.settingsDropdown.fullscreenLabel": "Celá obrazovka",
     "app.navBar.settingsDropdown.settingsLabel": "Nastavení",
@@ -146,7 +245,10 @@
     "app.navBar.settingsDropdown.aboutDesc": "Zobrazí informace o klientské aplikaci",
     "app.navBar.settingsDropdown.leaveSessionDesc": "Opustit setkání",
     "app.navBar.settingsDropdown.exitFullscreenDesc": "Ukončit režim celé obrazovky",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Klávesové zkratky",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Seznam dostupných klávesových zkratek",
     "app.navBar.settingsDropdown.helpLabel": "Nápověda",
+    "app.navBar.settingsDropdown.helpDesc": "Navede uživatele k video návodům (otevře nový panel)",
     "app.navBar.settingsDropdown.endMeetingDesc": "Ukončí stávající setkání",
     "app.navBar.settingsDropdown.endMeetingLabel": "Ukončit setkání",
     "app.navBar.userListToggleBtnLabel": "Přepnout seznam uživatelů",
@@ -155,6 +257,7 @@
     "app.navBar.recording": "Toto setkání je nahráváno",
     "app.navBar.recording.on": "Nahrávání je zapnuto",
     "app.navBar.recording.off": "Nahrávání je vypnuto",
+    "app.navBar.emptyAudioBrdige": "Žádný aktivní mikrofon. Pro přidání zvuku k nahrávce sdílejte svůj mikrofon.",
     "app.leaveConfirmation.confirmLabel": "Opustit",
     "app.leaveConfirmation.confirmDesc": "Opuštění tohoto setkání",
     "app.endMeeting.title": "Ukončit setkání",
@@ -181,9 +284,12 @@
     "app.submenu.application.animationsLabel": "Animace",
     "app.submenu.application.audioAlertLabel": "Akustická upozornění z chatu",
     "app.submenu.application.pushAlertLabel": "Vyskakovací upozornění pro chat",
+    "app.submenu.application.userJoinAudioAlertLabel": "Zvuková upozornění při připojení uživatele",
+    "app.submenu.application.userJoinPushAlertLabel": "Vyskakovací upozornění při připojení uživatele",
     "app.submenu.application.fontSizeControlLabel": "Velikost písma",
     "app.submenu.application.increaseFontBtnLabel": "Zvětšit písmo aplikace",
     "app.submenu.application.decreaseFontBtnLabel": "Zmenšit písmo aplikace",
+    "app.submenu.application.currentSize": "momentálně {0}",
     "app.submenu.application.languageLabel": "Jazyk",
     "app.submenu.application.languageOptionLabel": "Vyberte jazyk",
     "app.submenu.application.noLocaleOptionLabel": "Žádné jazyky k dispozici",
@@ -209,12 +315,17 @@
     "app.settings.dataSavingTab.webcam": "Povolit webkameru",
     "app.settings.dataSavingTab.screenShare": "Povolit sdílení obrazovky",
     "app.settings.dataSavingTab.description": "Pro úsporu datového přenosu upravte, co bude zobrazováno.",
+    "app.settings.save-notification.label": "Nastavení byla uložena",
     "app.switch.onLabel": "Zapnuto",
     "app.switch.offLabel": "Vypnuto",
+    "app.talkingIndicator.ariaMuteDesc" : "Zvolte pro ztlumení uživatele",
+    "app.talkingIndicator.isTalking" : "{0} mluví",
+    "app.talkingIndicator.wasTalking" : "{0} domluvil",
     "app.actionsBar.actionsDropdown.actionsLabel": "Akce",
     "app.actionsBar.actionsDropdown.presentationLabel": "Nahrát prezentaci",
     "app.actionsBar.actionsDropdown.initPollLabel": "Zahájit anketu",
     "app.actionsBar.actionsDropdown.desktopShareLabel": "Sdílet obrazovku",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Sdílení obrazovky uzamčeno",
     "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Ukončit sdílení obrazovky",
     "app.actionsBar.actionsDropdown.presentationDesc": "Nahrát Vaší prezentaci",
     "app.actionsBar.actionsDropdown.initPollDesc": "Zahájit anketu",
@@ -222,8 +333,12 @@
     "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Ukončit sdílení Vaší obrazovky s ostatními",
     "app.actionsBar.actionsDropdown.pollBtnLabel": "Spustit anketu",
     "app.actionsBar.actionsDropdown.pollBtnDesc": "Přepne panel ankety",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Uložit uživatelská jména",
     "app.actionsBar.actionsDropdown.createBreakoutRoom": "Vytvořit vedlejší místnosti",
     "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Vytvoří vedlejší místnosti pro rozdělení stávajícího setkání",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Napsat vložené titulky",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Přepne panel titulků",
+    "app.actionsBar.actionsDropdown.takePresenter": "Převzít roli prezentujícího",
     "app.actionsBar.actionsDropdown.takePresenterDesc": "Přiřadí Vám roli přednášejícího",
     "app.actionsBar.emojiMenu.statusTriggerLabel": "Nastavit stav",
     "app.actionsBar.emojiMenu.awayLabel": "Nepřítomný",
@@ -247,16 +362,20 @@
     "app.actionsBar.emojiMenu.thumbsDownLabel": "Palec dolů",
     "app.actionsBar.emojiMenu.thumbsDownDesc": "Změní stav na palec dolů",
     "app.actionsBar.currentStatusDesc": "Stávající stav {0}",
-    "app.audioNotification.audioFailedError1001": "Chyba 1001: WebSocket odpojen (WebSocket disconnected)",
+    "app.actionsBar.captions.start": "Zapnout zobrazení vložených titulků",
+    "app.actionsBar.captions.stop": "Vypnout zobrazení vložených titulků",
+    "app.audioNotification.audioFailedError1001": "Chyba 1001: WebSocket odpojen (WebSocket disconnected)\n",
     "app.audioNotification.audioFailedError1002": "Chyba 1002: Nelze zřídit WebSocket spojení (Could not make a WebSocket connection)",
     "app.audioNotification.audioFailedError1003": "Chyba 1003: Verze prohlížeče není podporovaná (Browser version not supported)",
+    "app.audioNotification.audioFailedError1004": "Chyba 1004: Chyba v průběhu hovoru (důvod={0}) (Failure on call)",
     "app.audioNotification.audioFailedError1005": "Chyba 1005: Hovor neočekávaně ukončen (Call ended unexpectedly)",
-    "app.audioNotification.audioFailedError1006": "Chyba 1006: Čas hovoru vypršel (Call timed out)",
-    "app.audioNotification.audioFailedError1007": "Chyba 1007: Negociace ICE selhala (ICE negotiation failed)",
+    "app.audioNotification.audioFailedError1006": "Chyba 1006: Čas hovoru vypršel (Call timed out)\n",
+    "app.audioNotification.audioFailedError1007": "Chyba 1007: Vyjednani ICE selhalo (ICE negotiation failed)",
     "app.audioNotification.audioFailedError1008": "Chyba 1008: Přenos selhal (Transfer failed)",
-    "app.audioNotification.audioFailedError1009": "Chyba 1009: Nemohu získat STUN/TURN informaci serveru (Could not fetch STUN/TURN server information)",
-    "app.audioNotification.audioFailedError1010": "Chyba 1010: ICE negotiation timeout",
-    "app.audioNotification.audioFailedError1011": "Chyba 1011: ICE gathering timeout",
+    "app.audioNotification.audioFailedError1009": "Chyba 1009: Nemohu získat informace od STUN/TURN serveru (Could not fetch STUN/TURN server information)",
+    "app.audioNotification.audioFailedError1010": "Chyba 1010: Vypršel čas pro vyjednání ICE (ICE negotiation timeout)",
+    "app.audioNotification.audioFailedError1011": "Chyba 1011: Vypršel čas spojení (Connection timeout ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "Chyba 1012: Spojení bylo ukončeno (Connection closed, ICE error 1012)",
     "app.audioNotification.audioFailedMessage": "Nepodařilo se zřídit audio spojení",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia selhalo, protože jsou povoleny pouze bezpečné zdroje",
     "app.audioNotification.closeLabel": "Zavřít",
@@ -270,6 +389,7 @@
     "app.breakoutTimeRemainingMessage": "Zbývající čas vedlejší místnosti: {0}",
     "app.breakoutWillCloseMessage": "Čas vypršel. Vedlejší místnost bude zanedlouho uzavřena",
     "app.calculatingBreakoutTimeRemaining": "Počítání zbývajícího času...",
+    "app.audioModal.ariaTitle": "Okno připojení zvuku",
     "app.audioModal.microphoneLabel": "Mikrofon",
     "app.audioModal.listenOnlyLabel": "Pouze poslouchat",
     "app.audioModal.audioChoiceLabel": "Jak chcete připojit zvuk?",
@@ -277,6 +397,7 @@
     "app.audioModal.iOSErrorDescription": "V tuto chvíli audio a video není podporováno v Chrome pro iOS.",
     "app.audioModal.iOSErrorRecommendation": "Doporučujeme použít Safari iOS.",
     "app.audioModal.audioChoiceDesc": "Vyberte, jak chcete připojit zvuk na tomto setkání",
+    "app.audioModal.unsupportedBrowserLabel": "Zdá se, že používáte prohlížeč, který není plně podporován. Pro plnou podporu, použijte prosím buďto {0} nebo {1}.",
     "app.audioModal.closeLabel": "Zavřít",
     "app.audioModal.yes": "Ano",
     "app.audioModal.no": "Ne",
@@ -286,11 +407,22 @@
     "app.audioModal.settingsTitle": "Změnit Vaše nastavení zvuku",
     "app.audioModal.helpTitle": "Došlo k potížím s Vašimi zvukovými zařízeními",
     "app.audioModal.helpText": "Povolili jste přístup k Vašemu mikrofonu? Měl by se Vám zobrazit dialog s dotazem žádajícím, abyste aplikaci udělili oprávnění využít Vaše zvuková zařízení – abyste se mohli připojit k audio konferenci, je nutné udělit souhlas. Pokud to není Váš případ, pokuste se nastavit oprávnění pro Váš mikrofon v nastavení Vašeho prohlížeče.",
+    "app.audioModal.help.noSSL": "Tato stránka není zabazpečena. Pro přístup k mikrofonu musí být stránka poskytována pomocí HTTPS. Kontaktujte prosím správce serveru.",
+    "app.audioModal.help.macNotAllowed": "Zdá se, že nastaveni Vašeho systému Mac blokuje přístup k Vašemu mikrofonu. Otevřete Předvolby systemu > Zabezpečení a Soukromí > Soukromí > Mikrofon a zkontrolujte, že je Váš prohlížeč povolen.",
+    "app.audioModal.audioDialTitle": "Připojit se pomocí telefonu",
+    "app.audioDial.audioDialDescription": "Vytočit",
+    "app.audioDial.audioDialConfrenceText": "a zadejte číslo PIN kontference",
+    "app.audioModal.autoplayBlockedDesc": "Potřebujeme Vaše oprávnění k přehrávání zvuku",
+    "app.audioModal.playAudio": "Přehrát zvuk",
+    "app.audioModal.playAudio.arialabel" : "Přehrát zvuk",
+    "app.audioDial.tipIndicator": "Tip",
+    "app.audioDial.tipMessage": "Zmáčkněte \"0\" na svém telefonu pro ztlumení se / zapnutí zvuku",
     "app.audioModal.connecting": "Připojování",
     "app.audioModal.connectingEchoTest": "Připojování k testu ozvěny",
     "app.audioManager.joinedAudio": "Připojili jste se k audio konferenci",
     "app.audioManager.joinedEcho": "Připojili jste se k testu ozvěny",
     "app.audioManager.leftAudio": "Opustili jste audio konferenci",
+    "app.audioManager.reconnectingAudio": "Snažím se znovu připojit zvuk",
     "app.audioManager.genericError": "Chyba: došlo k chybě, zkuste to prosím znovu",
     "app.audioManager.connectionError": "Chyba: chyba spojení",
     "app.audioManager.requestTimeout": "Chyba: čas pro Váš požadavek vypršel",
@@ -313,26 +445,61 @@
     "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.meeting.logout.duplicateUserEjectReason": "K setkání se snaží připojit duplicitní uživatel",
+    "app.meeting.logout.permissionEjectReason": "Byl(a) jste vyhozen(a) z důvodu porušení pravidel",
+    "app.meeting.logout.ejectedFromMeeting": "Vaše účast na setkání byla ukončena",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Selhání oveření přihlašovacího tokenu",
+    "app.meeting.logout.userInactivityEjectReason": "Uživatel je neaktivní příliš dlouho",
+    "app.meeting-ended.rating.legendLabel": "Hodnocení zpětné vazby",
+    "app.meeting-ended.rating.starLabel": "Hvězda",
     "app.modal.close": "Zavřít",
+    "app.modal.close.description": "Zahodí změny a zavře okno",
     "app.modal.confirm": "Hotovo",
+    "app.modal.newTab": "(otevře nový panel)",
+    "app.modal.confirm.description": "Uloží změny a zavře okno",
     "app.dropdown.close": "Zavřít",
     "app.error.400": "Špatný požadavek",
     "app.error.401": "Neautorizováno",
+    "app.error.403": "Vaše účast na setkání byla ukončena",
     "app.error.404": "Nenalezeno",
+    "app.error.410": "Setkání skončilo",
     "app.error.500": "O ou, něco se nepovedlo",
     "app.error.leaveLabel": "Přihlašte se znovu",
+    "app.error.fallback.presentation.title": "Došlo k chybě",
+    "app.error.fallback.presentation.description": "Bylo to zalogováno. Zkuste prosím znovu načíst stránku.",
+    "app.error.fallback.presentation.reloadButton": "Znovu načíst",
     "app.guest.waiting": "Čekáme na souhlas k připojení se",
+    "app.userList.guest.waitingUsers": "Čekající uživatelé",
+    "app.userList.guest.waitingUsersTitle": "Správa uživatelů",
+    "app.userList.guest.optionTitle": "Zkontrolovat čekající uživatele",
+    "app.userList.guest.allowAllAuthenticated": "Povolit všechny přihlášené",
+    "app.userList.guest.allowAllGuests": "Povolit všechny hosty",
+    "app.userList.guest.allowEveryone": "Povolit všechny",
+    "app.userList.guest.denyEveryone": "Zakázat všechny",
+    "app.userList.guest.pendingUsers": "{0} Čekajích uživatelů",
+    "app.userList.guest.pendingGuestUsers": "{0} Čekajících hostů",
+    "app.userList.guest.pendingGuestAlert": "Připojil se k relaci a čeká na Vaše schválení",
+    "app.userList.guest.rememberChoice": "Zapamatovat volbu",
+    "app.user-info.title": "Vyhledávání v adresáři\n",
     "app.toast.breakoutRoomEnded": "Vedlejší místnost byla ukončena. Prosím, připojte se znovu ke zvuku.",
     "app.toast.chat.public": "Nová zpráva ve veřejném chatu",
     "app.toast.chat.private": "Nová zpráva v soukromém chatu",
     "app.toast.chat.system": "System",
+    "app.toast.clearedEmoji.label": "Emoji status vymazán",
+    "app.toast.setEmoji.label": "Emoji status nastaven na {0}",
+    "app.toast.meetingMuteOn.label": "Všichni uzivatelé byli ztlumeni",
+    "app.toast.meetingMuteOff.label": "Ztlumení zvuku schůzky vypnuto",
     "app.notification.recordingStart": "Toto setkání je nyní nahráváno",
+    "app.notification.recordingStop": "Toto setkání není nahráváno",
     "app.notification.recordingPaused": "Toto setkání již není nehráváno",
     "app.notification.recordingAriaLabel": "Čas záznamu ",
+    "app.notification.userJoinPushAlert": "{0} se připojil k relaci",
+    "app.shortcut-help.title": "Klávesové zkratky\n",
     "app.shortcut-help.accessKeyNotAvailable": "Klávesové zkratky nejsou dostupné",
     "app.shortcut-help.comboLabel": "Kombinace",
     "app.shortcut-help.functionLabel": "Funkce",
     "app.shortcut-help.closeLabel": "Zavřít",
+    "app.shortcut-help.closeDesc": "Zavřít panel klávesových zkratek",
     "app.shortcut-help.openOptions": "Otevřít volby",
     "app.shortcut-help.toggleUserList": "Přepnout seznam uživatelů",
     "app.shortcut-help.toggleMute": "Ztlumit / Zrušit ztlumení",
@@ -341,25 +508,45 @@
     "app.shortcut-help.closePrivateChat": "Zavřít soukromý chat",
     "app.shortcut-help.openActions": "Otevřít menu akcí",
     "app.shortcut-help.openStatus": "Otevřít menu stavů",
+    "app.shortcut-help.togglePan": "Aktivovat nástroj posunutí (Prezentující)",
+    "app.shortcut-help.nextSlideDesc": "Další stránka prezentace (Prezentující)",
+    "app.shortcut-help.previousSlideDesc": "Předchozí stránka prezentace (Prezentující)",
     "app.lock-viewers.title": "Uzamknout posluchače",
+    "app.lock-viewers.description": "Tato nastavení Vám umožňují omezit uživání specifických funkcí sledujícími:",
     "app.lock-viewers.featuresLable": "Funkce",
+    "app.lock-viewers.lockStatusLabel": "Stav",
     "app.lock-viewers.webcamLabel": "Sdílet webkameru",
     "app.lock-viewers.otherViewersWebcamLabel": "Vidět webkamery ostatních",
+    "app.lock-viewers.microphoneLable": "Sdílet zvuk mikrofonu",
+    "app.lock-viewers.PublicChatLabel": "Posílat zprávy do veřejného chatu",
+    "app.lock-viewers.PrivateChatLable": "Poslat zprávy do soukromého chatu",
+    "app.lock-viewers.notesLabel": "Upravovat sdílené poznámky",
+    "app.lock-viewers.userListLabel": "Vidět ostatní sledující v seznamu uživatelů",
+    "app.lock-viewers.ariaTitle": "Panel nastavení omezení uživatelů",
+    "app.lock-viewers.button.apply": "Aplikovat",
     "app.lock-viewers.button.cancel": "Zrušit",
     "app.lock-viewers.locked": "Uzamčen",
+    "app.lock-viewers.unlocked": "Povoleno",
     "app.recording.startTitle": "Zahájit nahrávání",
+    "app.recording.stopTitle": "Pozastavit nahrávání",
+    "app.recording.resumeTitle": "Pokračovat v nahrávání",
+    "app.recording.startDescription": "Nahrávání může být pozastaveno opětovným stiskem nahrávacího tlačítka.",
+    "app.recording.stopDescription": "Opravdu chcete pozastavit nahrávání? Nahrávání můžete obnovit opětovným stiskem nahrávacího tlačítka.",
     "app.videoPreview.cameraLabel": "Kamera",
+    "app.videoPreview.profileLabel": "Kvalita videa",
     "app.videoPreview.cancelLabel": "Zrušit",
     "app.videoPreview.closeLabel": "Zavřít",
+    "app.videoPreview.findingWebcamsLabel": "Hledám webkamery",
     "app.videoPreview.startSharingLabel": "Zahájit sdílení",
     "app.videoPreview.webcamOptionLabel": "Vyberte webkameru",
     "app.videoPreview.webcamPreviewLabel": "Náhled webkamery",
     "app.videoPreview.webcamSettingsTitle": "Nastavení webkamery",
     "app.videoPreview.webcamNotFoundLabel": "Webkamera nebyla nalezena",
+    "app.videoPreview.profileNotFoundLabel": "Nenalezen podporovaný profil kamery",
     "app.video.joinVideo": "Sdílet webkameru",
     "app.video.leaveVideo": "Ukončit sdílení webkamery",
     "app.video.iceCandidateError": "Chyba (Error on adding ICE candidate)",
-    "app.video.iceConnectionStateError": "Chyba 1107: ICE negotiation failed",
+    "app.video.iceConnectionStateError": "Chyba 1107: Spojeni selhalo (ICE error 1107)",
     "app.video.permissionError": "Chyba sdílení webkamery. Prosím ověřte oprávnění",
     "app.video.sharingError": "Chyba sdílení webkamery",
     "app.video.notFoundError": "Nemohu nalézt webkameru. Ujistěte se, že je připojena",
@@ -367,9 +554,13 @@
     "app.video.notSupportedError": "Video z webkamery můžete sdílet pouze s bezpečnými zdroji, ujistěte se prosím o platnosti Vašeho SSL certifikátu",
     "app.video.notReadableError": "Nemohu získat video z webkamery. Ujistěte se, že webkameru nepoužívá jiný program",
     "app.video.mediaFlowTimeout1020": "Chyba 1020: media nemohou dosáhnout server",
+    "app.video.suggestWebcamLock": "Vynutit uzamčení nastavení webkamer uživatelů?",
+    "app.video.suggestWebcamLockReason": "(toto vylepší stabilitu setkání)",
+    "app.video.enable": "Povolit",
     "app.video.cancel": "Zrušit",
     "app.video.swapCam": "Prohození",
     "app.video.swapCamDesc": "Prohodí směr webkamer",
+    "app.video.videoLocked": "Nastavení sdílení webkamer uzamčeno",
     "app.video.videoButtonDesc": "Sdílet webkameru",
     "app.video.videoMenu": "Video menu",
     "app.video.videoMenuDisabled": "Webkamera je deaktivována v nastavení",
@@ -391,16 +582,17 @@
     "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: Nemožno připojit se k media serveru",
+    "app.sfu.mediaServerConnectionError2000": "Chyba 2000: Nelze se připojit k media serveru",
     "app.sfu.mediaServerOffline2001": "Chyba 2001: Media server je offline. Zkuste to prosím později.",
     "app.sfu.mediaServerNoResources2002": "Chyba 2002: Media server nemá žádné dostupné prostředky",
     "app.sfu.mediaServerRequestTimeout2003": "Chyba 2003: Požadavky na media server expirují",
     "app.sfu.serverIceGatheringFailed2021": "Chyba 2021: Media server cannot gather ICE candidates",
     "app.sfu.serverIceGatheringFailed2022": "Chyba 2022: Media server ICE connection failed",
     "app.sfu.mediaGenericError2200": "Chyba 2200: Selhalo zpracování požadavku na media serveru",
-    "app.sfu.invalidSdp2202":"Chyba 2202: Client vygeneroval neplatný SDP",
+    "app.sfu.invalidSdp2202":"Chyba 2202: Client vygeneroval neplatný požadavek (SDP error)",
     "app.sfu.noAvailableCodec2203": "Chyba 2203: Server nemůže najít žádný vhodný kodek",
     "app.meeting.endNotification.ok.label": "OK",
+    "app.whiteboard.annotations.poll": "Výsledky hlasování byli zveřejněny",
     "app.whiteboard.toolbar.tools": "Nástroje",
     "app.whiteboard.toolbar.tools.hand": "Posunout",
     "app.whiteboard.toolbar.tools.pencil": "Zvýrazňovač",
@@ -439,6 +631,8 @@
     "app.videoDock.webcamFocusDesc": "Zvětšit vybranou webkameru",
     "app.videoDock.webcamUnfocusLabel": "Normální velikost",
     "app.videoDock.webcamUnfocusDesc": "Zmenšit vybranou webkameru na normální velikost",
+    "app.videoDock.autoplayBlockedDesc": "Potřebujeme Vaše povolení, abychom Vám mohli ukázat kamery ostatních uživatelů.",
+    "app.videoDock.autoplayAllowLabel": "Zobrazit webkamery",
     "app.invitation.title": "Pozvánka do vedlejší místnosti",
     "app.invitation.confirm": "Pozvat",
     "app.createBreakoutRoom.title": "Vedlejší místnosti",
@@ -452,7 +646,9 @@
     "app.createBreakoutRoom.join": "Připojit se do místnosti",
     "app.createBreakoutRoom.joinAudio": "Zapnout zvuk",
     "app.createBreakoutRoom.returnAudio": "Vrátit audio",
+    "app.createBreakoutRoom.alreadyConnected": "Již v místnosti",
     "app.createBreakoutRoom.confirm": "Vytvořit",
+    "app.createBreakoutRoom.record": "Nahrávat",
     "app.createBreakoutRoom.numberOfRooms": "Počet místností",
     "app.createBreakoutRoom.durationInMinutes": "Trvání (minuty)",
     "app.createBreakoutRoom.randomlyAssign": "Náhodné přiřazení",
@@ -460,11 +656,30 @@
     "app.createBreakoutRoom.roomName": "{0} (Místnost- {1})",
     "app.createBreakoutRoom.doneLabel": "Hotovo",
     "app.createBreakoutRoom.nextLabel": "Další",
+    "app.createBreakoutRoom.minusRoomTime": "Zmenšit čas vedlejší místnosti na ",
+    "app.createBreakoutRoom.addRoomTime": "Zvětšit čas vedlejší místnosti na",
     "app.createBreakoutRoom.addParticipantLabel": "+ Přidat posluchače",
     "app.createBreakoutRoom.freeJoin": "Dovolit posluchačům, aby si sami vybrali, do které vedlejší místnosti se připojí",
     "app.createBreakoutRoom.leastOneWarnBreakout": "Do vedlejší místnosti musíte přiřadit alespoň jednoho posluchače",
+    "app.createBreakoutRoom.modalDesc": "Tip: Můžete přetáhnout uživatelské jméno pro přiřazení uživatele do konkrétní místnosti.",
+    "app.createBreakoutRoom.roomTime": "{0} minut",
+    "app.createBreakoutRoom.numberOfRoomsError": "Neplatný počet vedlejších místností.",
     "app.externalVideo.start": "Sdílet nové video",
-    "app.externalVideo.close": "Zavřít"
+    "app.externalVideo.title": "Sdílet externí video",
+    "app.externalVideo.input": "URL externího videa",
+    "app.externalVideo.urlInput": "Přidat URL videa",
+    "app.externalVideo.urlError": "Video s tímto URL není podporováno",
+    "app.externalVideo.close": "Zavřít",
+    "app.externalVideo.autoPlayWarning": "Přehrát video k povolení synchronizace medií.",
+    "app.network.connection.effective.slow": "Pozorujeme problémy s připojením.",
+    "app.network.connection.effective.slow.help": "Více informací",
+    "app.externalVideo.noteLabel": "Poznámka: Sdílené externí viideo nebude obsaženo v záznamu. Pouze videa z YouTube, Vimeo, Instructure Media, Twitch a Daily Motion jsou podporována.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Sdílet externí video",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Ukončit sdílení externího videa",
+    "app.iOSWarning.label": "Prosím aktualizujte na iOS 12.2 nebo novější",
+    "app.legacy.unsupportedBrowser": "Zdá se, že používáte nepodporovaný prohlížeč. Pro plnou podporu, použijte prosím buďto {0} nebo {1}.",
+    "app.legacy.upgradeBrowser": "Zdá se, že používáte zastaralou verzi podporovaného prohlížeče. Pro plnou podporu si prosím aktualizujte svůj prohlížeč.",
+    "app.legacy.criosBrowser": "Pro plnou podporu prosím na systému iOS použijte prohlížeč Safari."
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/da.json b/bigbluebutton-html5/private/locales/da.json
index 104c831c9839fae011305fc8eaf85b07af5db1eb..cf5cebb1748afe9c7e19782acd39b5be8bb86031 100644
--- a/bigbluebutton-html5/private/locales/da.json
+++ b/bigbluebutton-html5/private/locales/da.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Din Præsentation starter om lidt ...",
     "app.chat.submitLabel": "Send besked",
-    "app.chat.errorMinMessageLength": "Denne besked er {0} karakter for kort",
     "app.chat.errorMaxMessageLength": "Denne besked er {0} karakter for lang",
     "app.chat.disconnected": "Beskeden kan ikke sendes da du er offline",
     "app.chat.locked": "Beskeder kan ikke sendes da chatten er låst",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Tillad adgang",
     "app.media.screenshare.start": "Skærmdelingen er startet",
     "app.media.screenshare.end": "Skærmdelingen er sluttet",
-    "app.media.screenshare.safariNotSupported": "Skærmdelingen understøttes i øjeblikket ikke af Safari. Brug venligst Firefox eller Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Vi har brug for din tilladelse til at vise programlederens skærm.",
     "app.media.screenshare.autoplayAllowLabel": "Se delt skærm",
     "app.screenshare.notAllowed": "Fejl: Tilladelse til adgangskærmbilledet blev ikke givet.",
@@ -360,18 +358,6 @@
     "app.actionsBar.currentStatusDesc": "Nuværende status {0}",
     "app.actionsBar.captions.start": "Start undertekster",
     "app.actionsBar.captions.stop": "Stop undertekster",
-    "app.audioNotification.audioFailedError1001": "Fejl 1001: Forbindelse til WebSocket afbrudt",
-    "app.audioNotification.audioFailedError1002": "Fejl 1002: Kunne ikke forbinde til WebSocket",
-    "app.audioNotification.audioFailedError1003": "Fejl 1003: Browser versionen er ikke understøttet",
-    "app.audioNotification.audioFailedError1004": "Fejl 1004: Opkaldsfejl (reason={0})",
-    "app.audioNotification.audioFailedError1005": "Fejl 1005: Opkaldet afsluttede uventet",
-    "app.audioNotification.audioFailedError1006": "Fejl 1006: Opkaldet løb ud - Timedout",
-    "app.audioNotification.audioFailedError1007": "Fejl 1007: ICE forhandlingerne fejlede",
-    "app.audioNotification.audioFailedError1008": "Fejl 1008: Overførsel fejlede",
-    "app.audioNotification.audioFailedError1009": "Fejl 1009: Kunne ikke finde STUN/TURN server informationer ",
-    "app.audioNotification.audioFailedError1010": "Fejl 1010: ICE forhandlinger løb ud - Timedout",
-    "app.audioNotification.audioFailedError1011": "Fejl 1011: ICE samlingen løb ud - Timedout",
-    "app.audioNotification.audioFailedError1012": "Fejl 1012: ICE forbindelse afbrudt",
     "app.audioNotification.audioFailedMessage": "Din lyd, kunne ikke oprette forbindelse ",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia fejlede, da kun sikre oprindelser er tilladt",
     "app.audioNotification.closeLabel": "Luk",
@@ -542,14 +528,12 @@
     "app.video.joinVideo": "Del webcam",
     "app.video.leaveVideo": "Stop deling af webkamera",
     "app.video.iceCandidateError": "Fejl under tilføjelsen af ICE kandidat",
-    "app.video.iceConnectionStateError": "Fejl 1107: ICE forhandlinger fejlede",
     "app.video.permissionError": "Deling af webkamera fejlede. Tjek venligst tilladelser",
     "app.video.sharingError": "Deling af webkamera fejlede",
     "app.video.notFoundError": "Kunne ikke finde webkamera. Tjek venligst om kameraet er korrekt tilsluttet.",
     "app.video.notAllowed": "Manglende tilladelser for at kunne dele webkamera. Tjek venligst dine browser tilladelser",
     "app.video.notSupportedError": "Video fra webkameraer kan kun deles med sikre kilder, værd sikker på dit SSL certifikat er gyldig. ",
     "app.video.notReadableError": "Kunne ikke vise video fra webkamera. Tjek venligst om der er andre programmer der benytter kameraet",
-    "app.video.mediaFlowTimeout1020": "Fejl 1020: Medie kunne ikke kontakte serveren",
     "app.video.suggestWebcamLock": "Håndhæve lås indstilling for deltagernes webkameraer?",
     "app.video.suggestWebcamLockReason": "(dette vil forbedre stabiliteten af mødet)",
     "app.video.enable": "Aktiver",
@@ -577,16 +561,6 @@
     "app.video.stats.encodeUsagePercent": "Encode brug",
     "app.video.stats.currentDelay": "Nuværende forsinkelse ",
     "app.fullscreenButton.label": "Gør {0} fuld skærm",
-    "app.deskshare.iceConnectionStateError": "Fejl 1108: ICE forbindelse fejlede under skærmdeling",
-    "app.sfu.mediaServerConnectionError2000": "Fejl 2000: Kunne ikke forbinde til medieserver",
-    "app.sfu.mediaServerOffline2001": "Fejl 2001: Medieserver er offline. Prøv igen senere.",
-    "app.sfu.mediaServerNoResources2002": "Fejl 2002: Medieserveren har ingen tilgængelige ressourcer ",
-    "app.sfu.mediaServerRequestTimeout2003": "Fejl 2003: Anmodningen til medieserveren løber ud - timed out",
-    "app.sfu.serverIceGatheringFailed2021": "Fejl 2021: Medieserveren kan ikke samle ICE kandidater",
-    "app.sfu.serverIceGatheringFailed2022": "Fejl 2022: Medieserver ICE forbindelse fejlede",
-    "app.sfu.mediaGenericError2200": "Fejl 2200: Medieserver processering af anmodning fejlede ",
-    "app.sfu.invalidSdp2202":"Fejl 2202: Klient generede ugyldig SDP",
-    "app.sfu.noAvailableCodec2203": "Fejl 2203: Serveren kunne ikke finde et egnet codec",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Afstemningsresultaterne er udgivet",
     "app.whiteboard.toolbar.tools": "Værktøjer",
diff --git a/bigbluebutton-html5/private/locales/de.json b/bigbluebutton-html5/private/locales/de.json
index 4354d8f5b3fb162c06a10c5d50a172209ee8dcb2..db55ca84f58fe180e859a738ae434496904709da 100644
--- a/bigbluebutton-html5/private/locales/de.json
+++ b/bigbluebutton-html5/private/locales/de.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Ihre Präsentation beginnt in Kürze...",
     "app.chat.submitLabel": "Nachricht senden",
-    "app.chat.errorMinMessageLength": "Die Nachricht ist {0} Buchstabe(n) zu kurz",
     "app.chat.errorMaxMessageLength": "Die Nachricht ist {0} Buchstabe(n) zu lang",
     "app.chat.disconnected": "Sie sind nicht verbunden, es können keine Nachrichten gesendet werden",
     "app.chat.locked": "Der Chat ist gesperrt. Sie können keine Nachrichten schreiben.",
@@ -40,7 +39,7 @@
     "app.captions.menu.previewLabel": "Vorschau",
     "app.captions.menu.cancelLabel": "Abbrechen",
     "app.captions.pad.hide": "Untertitel verbergen",
-    "app.captions.pad.tip": "Drücken Sie Esc um die Editorwerkzeugliste auszuwählen",
+    "app.captions.pad.tip": "Drücken Sie Esc, um die Editorwerkzeugliste auszuwählen",
     "app.captions.pad.ownership": "Ãœbernehmen",
     "app.captions.pad.ownershipTooltip": "Ihnen wird die Kontrolle der {0} Untertitel zugewiesen",
     "app.captions.pad.interimResult": "Zwischenergebnisse",
@@ -52,9 +51,9 @@
     "app.note.label": "Notiz",
     "app.note.hideNoteLabel": "Notiz verbergen",
     "app.user.activityCheck": "Nutzeraktivitätsprüfung",
-    "app.user.activityCheck.label": "Prüfen ob Nutzer noch in der Konferenz ist ({0})",
+    "app.user.activityCheck.label": "Prüfen, ob Nutzer noch in der Konferenz ist ({0})",
     "app.user.activityCheck.check": "Prüfen",
-    "app.note.tipLabel": "Drücken Sie Esc um die Editorwerkzeugliste auszuwählen",
+    "app.note.tipLabel": "Drücken Sie Esc, um die Editorwerkzeugliste auszuwählen",
     "app.userList.usersTitle": "Teilnehmer",
     "app.userList.participantsTitle": "Teilnehmer",
     "app.userList.messagesTitle": "Nachrichten",
@@ -68,8 +67,8 @@
     "app.userList.toggleCompactView.label": "Kompaktansichtmodus wechseln",
     "app.userList.guest": "Gast",
     "app.userList.menuTitleContext": "Verfügbare Optionen",
-    "app.userList.chatListItem.unreadSingular": "{0} Neue Nachricht",
-    "app.userList.chatListItem.unreadPlural": "{0} Neue Nachrichten",
+    "app.userList.chatListItem.unreadSingular": "{0} neue Nachricht(en)",
+    "app.userList.chatListItem.unreadPlural": "{0} neue Nachricht(en)",
     "app.userList.menu.chat.label": "Privaten Chat starten",
     "app.userList.menu.clearStatus.label": "Status zurücksetzen",
     "app.userList.menu.removeUser.label": "Teilnehmer entfernen",
@@ -91,7 +90,7 @@
     "app.userList.userOptions.muteAllExceptPresenterDesc": "Schaltet alle Teilnehmer außer den Präsentator stumm",
     "app.userList.userOptions.unmuteAllLabel": "Konferenz-Stummschaltung aufheben",
     "app.userList.userOptions.unmuteAllDesc": "Hebt die Konferenz-Stummschaltung auf",
-    "app.userList.userOptions.lockViewersLabel": "Zuschauerrechte einschränken",
+    "app.userList.userOptions.lockViewersLabel": "Zuschauerrechte einstellen",
     "app.userList.userOptions.lockViewersDesc": "Schränkt bestimmte Funktionen der Konferenzteilnehmer ein",
     "app.userList.userOptions.disableCam": "Teilnehmerwebcams sind deaktiviert",
     "app.userList.userOptions.disableMic": "Teilnehmermikrofone sind deaktiviert",
@@ -112,6 +111,7 @@
     "app.media.autoplayAlertDesc": "Zugang erlauben",
     "app.media.screenshare.start": "Bildschirmfreigabe wurde gestartet",
     "app.media.screenshare.end": "Bildschirmfreigabe wurde gestoppt",
+    "app.media.screenshare.unavailable": "Bildschirmfreigabe nicht verfügbar",
     "app.media.screenshare.safariNotSupported": "Bildschirmfreigabe wird gegenwärtig von Safari nicht unterstützt. Bitte verwenden Sie Firefox oder Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Wir benötigen Ihre Zustimmung, um Ihnen den Bildschirm des Präsentators zu zeigen.",
     "app.media.screenshare.autoplayAllowLabel": "Geteilten Bildschirm ansehen",
@@ -165,8 +165,8 @@
     "app.presentationUploder.dropzoneLabel": "Hochzuladende Dateien hier hin ziehen",
     "app.presentationUploder.dropzoneImagesLabel": "Bilder hier hinziehen, um sie hochzuladen",
     "app.presentationUploder.browseFilesLabel": "oder nach Dateien suchen",
-    "app.presentationUploder.browseImagesLabel": "oder auf der Festplatte nach Bildern suchen",
-    "app.presentationUploder.fileToUpload": "Wird hochgeladen...",
+    "app.presentationUploder.browseImagesLabel": "oder nach Bildern suchen/aufnehmen",
+    "app.presentationUploder.fileToUpload": "Bereit zum Hochladen...",
     "app.presentationUploder.currentBadge": "Aktuell",
     "app.presentationUploder.rejectedError": "Die ausgewählten Dateien wurden zurückgewiesen. Bitte prüfen Sie die zulässigen Dateitypen.",
     "app.presentationUploder.upload.progress": "Hochladen ({0}%)",
@@ -238,9 +238,9 @@
     "app.navBar.settingsDropdown.fullscreenLabel": "Als Vollbild darstellen",
     "app.navBar.settingsDropdown.settingsLabel": "Einstellungen öffnen",
     "app.navBar.settingsDropdown.aboutLabel": "Versionsinfo",
-    "app.navBar.settingsDropdown.leaveSessionLabel": "Ausloggen",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Konferenz verlassen",
     "app.navBar.settingsDropdown.exitFullscreenLabel": "Vollbilddarstellung beenden",
-    "app.navBar.settingsDropdown.fullscreenDesc": "Das Einstellungsmenü als Vollbild darstellen",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Einstellungsmenü als Vollbild darstellen",
     "app.navBar.settingsDropdown.settingsDesc": "Basiseinstellungen verändern",
     "app.navBar.settingsDropdown.aboutDesc": "Informationen über den Client anzeigen",
     "app.navBar.settingsDropdown.leaveSessionDesc": "Konferenz verlassen",
@@ -250,7 +250,7 @@
     "app.navBar.settingsDropdown.helpLabel": "Hilfe",
     "app.navBar.settingsDropdown.helpDesc": "Link zu Videoanleitungen (öffnet neuen Browsertab)",
     "app.navBar.settingsDropdown.endMeetingDesc": "Beendet die aktuelle Konferenz",
-    "app.navBar.settingsDropdown.endMeetingLabel": "Beende Konferenz",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Konferenz beenden",
     "app.navBar.userListToggleBtnLabel": "Teilnehmerliste umschalten",
     "app.navBar.toggleUserList.ariaLabel": "Teilnehmer/Nachrichten-Umschaltung",
     "app.navBar.toggleUserList.newMessages": "mit Benachrichtigung für neue Nachrichten",
@@ -260,7 +260,7 @@
     "app.navBar.emptyAudioBrdige": "Kein aktives Mikrofon. Bitte erlauben Sie Zugriff auf Ihr Mikrofon, um in der Aufzeichnung auch Ihr Audio zu hören.",
     "app.leaveConfirmation.confirmLabel": "Verlassen",
     "app.leaveConfirmation.confirmDesc": "Hiermit verlassen Sie Konferenz",
-    "app.endMeeting.title": "Beende Konferenz",
+    "app.endMeeting.title": "Konferenz beenden",
     "app.endMeeting.description": "Sind Sie sicher, dass Sie die Konferenz beenden wollen?",
     "app.endMeeting.yesLabel": "Ja",
     "app.endMeeting.noLabel": "Nein",
@@ -322,10 +322,10 @@
     "app.talkingIndicator.isTalking" : "{0} spricht",
     "app.talkingIndicator.wasTalking" : "{0} spricht nicht mehr",
     "app.actionsBar.actionsDropdown.actionsLabel": "Aktionen",
-    "app.actionsBar.actionsDropdown.presentationLabel": "Eine Präsentation hochladen",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Präsentation hochladen",
     "app.actionsBar.actionsDropdown.initPollLabel": "Eine Umfrage starten",
     "app.actionsBar.actionsDropdown.desktopShareLabel": "Bildschirm freigeben",
-    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Bilderschirmfreigabe gesperrt",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Bildschirmfreigabe gesperrt",
     "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Bildschirmfreigabe beenden",
     "app.actionsBar.actionsDropdown.presentationDesc": "Präsentation hochladen",
     "app.actionsBar.actionsDropdown.initPollDesc": "Eine Umfrage starten",
@@ -364,18 +364,18 @@
     "app.actionsBar.currentStatusDesc": "Aktueller Status {0}",
     "app.actionsBar.captions.start": "Untertitel starten",
     "app.actionsBar.captions.stop": "Untertitel stoppen",
-    "app.audioNotification.audioFailedError1001": "Fehler 1001: Websocket unterbrochen",
-    "app.audioNotification.audioFailedError1002": "Fehler 1002: Websocketverbindung konnte nicht hergestellt werden",
-    "app.audioNotification.audioFailedError1003": "Fehler 1003: Browserversion wird nicht unterstützt",
-    "app.audioNotification.audioFailedError1004": "Fehler 1004: Verbindungsfehler (Grund={0})",
-    "app.audioNotification.audioFailedError1005": "Fehler 1005: Verbindung unerwartet beendet",
-    "app.audioNotification.audioFailedError1006": "Fehler 1006: Verbindungszeitüberschreitung",
-    "app.audioNotification.audioFailedError1007": "Fehler 1007: ICE Verbindung fehlgeschlagen",
-    "app.audioNotification.audioFailedError1008": "Fehler 1008: Transfer fehlgeschlagen",
-    "app.audioNotification.audioFailedError1009": "Fehler 1009: STUN/TURN Serverinformation konnten nicht abgerufen werden",
-    "app.audioNotification.audioFailedError1010": "Fehler 1010: Zeitüberschreitung bei ICE Verbindung",
-    "app.audioNotification.audioFailedError1011": "Fehler 1011: Zeitüberschreitung beim ICE Gathering",
-    "app.audioNotification.audioFailedError1012": "Fehler 1012: ICE Verbindung wurde beendet",
+    "app.audioNotification.audioFailedError1001": "WebSocket Verbindung getrennt (Fehler 1001)",
+    "app.audioNotification.audioFailedError1002": "WebSocket Verbindung konnte nicht hergestellt werden (Fehler 1002)",
+    "app.audioNotification.audioFailedError1003": "Browerversion wird nicht unterstützt (Fehler 1003)",
+    "app.audioNotification.audioFailedError1004": "Verbindungsfehler (Grund={0}) (Fehler 1004)",
+    "app.audioNotification.audioFailedError1005": "Verbindung unerwartet beendet (Fehler 1005)",
+    "app.audioNotification.audioFailedError1006": "Verbindungstimeout (Fehler 1006)",
+    "app.audioNotification.audioFailedError1007": "Verbindungsfehler (Fehler 1007)",
+    "app.audioNotification.audioFailedError1008": "Ãœbertragung fehlgeschlagen (Fehler 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN/TURN Serverinformation konnte nicht abgerufen werden (Fehler 1009)",
+    "app.audioNotification.audioFailedError1010": "Timeout beim Verbindungsaufbau (Fehler 1010)",
+    "app.audioNotification.audioFailedError1011": "Verbindungstimeout (Fehler 1011)",
+    "app.audioNotification.audioFailedError1012": "Verbindung beendet (Fehler 1012)",
     "app.audioNotification.audioFailedMessage": "Audioverbindung konnte nicht hergestellt werden",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia fehlgeschlagen, weil nur sichere Quellen erlaubt sind",
     "app.audioNotification.closeLabel": "Schließen",
@@ -408,7 +408,7 @@
     "app.audioModal.helpTitle": "Es gab ein Problem mit ihren Mediengeräten (Mikrofon/Webcam)",
     "app.audioModal.helpText": "Haben Sie die Zugriffsrechte auf Ihr Mikrofon erteilt? Hinweis: Der Berechtigungs-Dialog dazu wird angezeigt, wenn Sie der Audiokonferenz beitreten. Dabei fragt Ihr Mediengerät nach der Zugriffserlaubnis. Bitte akzeptieren Sie diesen Dialog, um der Audiokonferenz beizutreten. Falls dies nicht zutrifft, dann verändern Sie bitte die Mikrofonberechtigung in ihren Browsereinstellungen.",
     "app.audioModal.help.noSSL": "Diese Seite ist nicht über HTTPS abgesichtert. Um Zugriff auf Ihr Mikrofon zu erlauben, muss die Webseite über HTTPS bereitgestellt werden. Bitte kontaktieren Sie den Serveradministrator.",
-    "app.audioModal.help.macNotAllowed": "Es scheint so, als ob Ihre Mac Systemeinstellungen die Mikrofonfreigabe blockieren. Öffnen Sie Systemeinstellungen -> Sicherheit & Privatsphäre -> Mikrofon und stellen Sie sicher, dass der von Ihnen verwendete Browser ausgewählt ist.",
+    "app.audioModal.help.macNotAllowed": "Es scheint so, als ob Ihre Mac Systemeinstellungen die Mikrofonfreigabe blockiert. Öffnen Sie Systemeinstellungen > Sicherheit & Privatsphäre > Mikrofon und stellen Sie sicher, dass der von Ihnen verwendete Browser ausgewählt ist.",
     "app.audioModal.audioDialTitle": "Mit dem Telefon teilnehmen",
     "app.audioDial.audioDialDescription": "Anrufen",
     "app.audioDial.audioDialConfrenceText": "und geben Sie die Konferenz-PIN-Nummer ein:",
@@ -441,7 +441,7 @@
     "app.audio.audioSettings.retryLabel": "Erneut versuchen",
     "app.audio.listenOnly.backLabel": "Zurück",
     "app.audio.listenOnly.closeLabel": "Schließen",
-    "app.audio.permissionsOverlay.title": "Erlauben Sie BigBlueButton auf ihre Mediengeräte zuzugreifen",
+    "app.audio.permissionsOverlay.title": "Zugriff auf Ihr Mikrofon erlauben",
     "app.audio.permissionsOverlay.hint": "Sie müssen Zugriff auf Ihre Mediengeräte erlauben, um an einer Audiokonferenz teilnehmen zu können.",
     "app.error.removed": "Sie wurden aus der Konferenz entfernt",
     "app.error.meeting.ended": "Sie haben die Konferenz verlassen",
@@ -511,7 +511,7 @@
     "app.shortcut-help.togglePan": "Aktiviere Verschiebewerkzeug (Präsentator)",
     "app.shortcut-help.nextSlideDesc": "Nächste Folie (Präsentator)",
     "app.shortcut-help.previousSlideDesc": "Vorherige Folie (Präsentator)",
-    "app.lock-viewers.title": "Zuschauerrechte einschränken",
+    "app.lock-viewers.title": "Zuschauerrechte einstellen",
     "app.lock-viewers.description": "Diese Optionen ermöglichen es, bestimmte Funktionen für Zuschauer einzuschränken.",
     "app.lock-viewers.featuresLable": "Funktion",
     "app.lock-viewers.lockStatusLabel": "Status",
@@ -546,14 +546,14 @@
     "app.video.joinVideo": "Webcam freigeben",
     "app.video.leaveVideo": "Webcamfreigabe beenden",
     "app.video.iceCandidateError": "Fehler beim Hinzufügen vom ice candidate",
-    "app.video.iceConnectionStateError": "Fehler 1107: ICE Ãœbertragung fehlgeschlagen",
-    "app.video.permissionError": "Fehler beim Teilen der Webcam. Überprüfen Sie die Berechtigungen",
-    "app.video.sharingError": "Fehler bei Freigabe der Webcam",
+    "app.video.iceConnectionStateError": "Verbindungsfehler (Fehler 1107)",
+    "app.video.permissionError": "Fehler bei der Webcamfreigabe. Überprüfen Sie die Berechtigungen",
+    "app.video.sharingError": "Fehler bei der Webcamfreigabe",
     "app.video.notFoundError": "Konnte keine Webcam finden. Stellen Sie sicher, dass sie angeschlossen ist",
-    "app.video.notAllowed": "Freigabeerlaubnis für die Webcam nicht erteilt, prüfen Sie Ihre Browerberechtigungen",
+    "app.video.notAllowed": "Fehlende Berechtigung für die Webcamfreigabe, prüfen Sie Ihre Browserberechtigungen",
     "app.video.notSupportedError": "Webcam kann nur über sichere Verbindung freigegeben werden, stellen Sie sicher, dass das SSL-Zertifikat gültig ist",
     "app.video.notReadableError": "Konnte nicht auf die Webcam zugreifen. Stellen Sie sicher, dass kein anderes Programm auf die Webcam zugreift",
-    "app.video.mediaFlowTimeout1020": "Fehler 1020: Medienverbindung zum Server konnte nicht hergestellt werden",
+    "app.video.mediaFlowTimeout1020": "Verbindung zum Server konnte nicht hergestellt werden (Fehler 1020)",
     "app.video.suggestWebcamLock": "Sperrung der Teilnehmerwebcams aktivieren?",
     "app.video.suggestWebcamLockReason": "(dies wird die Stabilität der Konferenz erhöhen)",
     "app.video.enable": "Aktivieren",
@@ -581,16 +581,16 @@
     "app.video.stats.encodeUsagePercent": "Enkodierungsnutzung",
     "app.video.stats.currentDelay": "Aktuelle Verzögerung",
     "app.fullscreenButton.label": "{0} zum Vollbild machen",
-    "app.deskshare.iceConnectionStateError": "Fehler 1108: ICE Verbindung während der Bildschirmfreigabe fehlgeschlagen",
-    "app.sfu.mediaServerConnectionError2000": "Fehler 2000: Verbindung zum Mediaserver kann nicht hergestellt werden",
-    "app.sfu.mediaServerOffline2001": "Fehler 2001: Mediaserver ist offline. Versuchen Sie es später nochmal.",
-    "app.sfu.mediaServerNoResources2002": "Fehler 2002: Mediaserver hat keine verfügbaren Resourcen",
-    "app.sfu.mediaServerRequestTimeout2003": "Fehler 2003: Zeitüberschreitung bei Anfragen an den Mediaserver",
-    "app.sfu.serverIceGatheringFailed2021": "Fehler 2021: Mediaserver kann ICE Kandidaten nicht erfassen",
-    "app.sfu.serverIceGatheringFailed2022": "Fehler 2022: Mediaserver ICE Verbindung fehlgeschlagen",
-    "app.sfu.mediaGenericError2200": "Fehler 2200: Medienserver konnte die Anfrage nicht verarbeiten",
-    "app.sfu.invalidSdp2202":"Fehler 2202: Client hat ungültigen SDP generiert",
-    "app.sfu.noAvailableCodec2203": "Fehler 2203: Server konnte keinen passenden Codec finden",
+    "app.deskshare.iceConnectionStateError": "Verbindungsfehler beim Teilen des Bildschirms (Fehler 1108)",
+    "app.sfu.mediaServerConnectionError2000": "Keine Verbindung zum Medienserver (Fehler 2000)",
+    "app.sfu.mediaServerOffline2001": "Medienserver ist offline. Bitte später nochmal versuchen (Fehler 2001)",
+    "app.sfu.mediaServerNoResources2002": "Medienserver hat keine Ressourcen verfügbar (Fehler 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Timeout bei Medienserververbindung (Fehler 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Medienserver hat keine Informationen zu den Verbindungskandidaten erhalten (Fehler 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Medienserververbindung fehlgeschlagen (Fehler 2022)",
+    "app.sfu.mediaGenericError2200": "Medienserver konnte die Anfrage nicht verarbeiten (Fehler 2200)",
+    "app.sfu.invalidSdp2202":"Medienserver-Anfrage ist ungültig (SDP Fehler 2202)",
+    "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.toolbar.tools": "Werkzeuge",
diff --git a/bigbluebutton-html5/private/locales/el_GR.json b/bigbluebutton-html5/private/locales/el_GR.json
index ae02aa2c2a410fd9c6e294d5a45c82a13b6e3073..d327abb999b9ec21e42291c7358edd189a05a4c3 100644
--- a/bigbluebutton-html5/private/locales/el_GR.json
+++ b/bigbluebutton-html5/private/locales/el_GR.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Η παρουσίαση θα ξεκινήσει σε λίγο...",
     "app.chat.submitLabel": "Αποστολή Μηνύματος",
-    "app.chat.errorMinMessageLength": "Το μήνυμα είναι {0} χαρακτήρες(ας). Πολύ μικρό",
     "app.chat.errorMaxMessageLength": "Το μήνυμα είναι {0} χαρακτήρες(ας). Πολύ μεγάλο",
     "app.chat.disconnected": "Έχετε αποσυνδεθεί, δεν μπορούν να αποστελλόνται μηνύματα",
     "app.chat.locked": "Η συνομιλία είναι κλειδωμένη, δεν μπορούν να αποστελλόνται μηνύματα",
@@ -31,6 +30,7 @@
     "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": "Χρώμα γραμματοσειράς",
@@ -40,6 +40,8 @@
     "app.captions.menu.cancelLabel": "Ακύρωση",
     "app.captions.pad.hide": "Απόκρυψη υπότιτλων",
     "app.captions.pad.tip": "Πατήστε Esc για εστίαση στη γραμμή εργαλείων επεξεργαστή",
+    "app.captions.pad.dictationOnDesc": "Ενεργοποιεί την αναγνώριση ομιλίας",
+    "app.captions.pad.dictationOffDesc": "Απενεργοποιεί την αναγνώριση ομιλίας",
     "app.note.title": "Κοινόχρηστες Σημειώσεις",
     "app.note.label": "Σημείωση",
     "app.note.hideNoteLabel": "Απόκρυψη σημείωσης",
@@ -104,7 +106,6 @@
     "app.media.autoplayAlertDesc": "Επιτρέπεται πρόσβαση",
     "app.media.screenshare.start": "Ο διαμοιρασμός οθόνης έχει αρχίσει",
     "app.media.screenshare.end": "Ο διαμοιρασμός οθόνης έχει τελειώσει",
-    "app.media.screenshare.safariNotSupported": "Ο διαμοιρασμός οθόνης δεν υποστηρίζεται ακόμα από τον Safari. Παρακαλούμε, χρησιμοποιείστε τον Firefox ή το Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Χρειαζόμαστε την άδειά σας για να σας δείξουμε την οθόνη του παρουσιαστή.",
     "app.media.screenshare.autoplayAllowLabel": "Προβολή διαμοιραζόμενης οθόνης",
     "app.meeting.ended": "Η σύνοδος έχει λήξει",
@@ -292,6 +293,8 @@
     "app.actionsBar.emojiMenu.thumbsUpLabel": "Μπράβο",
     "app.actionsBar.emojiMenu.thumbsDownLabel": "Αποδοκιμασία",
     "app.actionsBar.currentStatusDesc": "τρέχουσα κατάσταση {0}",
+    "app.audioNotification.audioFailedError1001": "Αποσύνδεση WebSocket (Λάθος 1001)",
+    "app.audioNotification.audioFailedError1003": "Η έκδοση φυλλομετρητή δεν υποστηρίζεται (Λάθος 1003)",
     "app.audioNotification.audioFailedMessage": "Η σύνδεση ήχου σας απέτυχε να συνδεθεί",
     "app.audioNotification.closeLabel": "Κλείσιμο",
     "app.audioNotificaion.reconnectingAsListenOnly": "Microphone has been locked for viewers, you are being connected as listen only",
@@ -300,6 +303,8 @@
     "app.audioModal.microphoneLabel": "Μικρόφωνο",
     "app.audioModal.listenOnlyLabel": "Ακούστε μόνο",
     "app.audioModal.audioChoiceLabel": "Πώς θέλετε να συμμετέχετε σχετικά με τον ήχο σας;",
+    "app.audioModal.iOSErrorDescription": "Αυτή την στιγμή ήχος και βίντεο δεν υποστηρίζονται στον Chrome για iOS.",
+    "app.audioModal.iOSErrorRecommendation": "Προτείνουμε την χρήση Safari iOS.",
     "app.audioModal.closeLabel": "Κλείσιμο",
     "app.audioModal.yes": "Ναι",
     "app.audioModal.no": "Όχι",
diff --git a/bigbluebutton-html5/private/locales/en.json b/bigbluebutton-html5/private/locales/en.json
index 44e35fb4e95e7708f2a39543a5c18b32430f5e6e..f0a66e4aa35dcafd8b516129b2e6c018c4a426e4 100755
--- a/bigbluebutton-html5/private/locales/en.json
+++ b/bigbluebutton-html5/private/locales/en.json
@@ -113,7 +113,8 @@
     "app.media.autoplayAlertDesc": "Allow Access",
     "app.media.screenshare.start": "Screenshare has started",
     "app.media.screenshare.end": "Screenshare has ended",
-    "app.media.screenshare.safariNotSupported": "Screenshare is currently not supported by Safari. Please, use Firefox or Google Chrome.",
+    "app.media.screenshare.unavailable": "Screenshare Unavailable",
+    "app.media.screenshare.safariNotSupported": "Screenshare is currently not supported in Safari. Please, use Firefox or Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "We need your permission to show you the presenter's screen.",
     "app.media.screenshare.autoplayAllowLabel": "View shared screen",
     "app.screenshare.notAllowed": "Error: Permission to access screen wasn't granted.",
@@ -172,6 +173,9 @@
     "app.presentationUploder.rejectedError": "The selected file(s) have been rejected. Please check the file type(s).",
     "app.presentationUploder.upload.progress": "Uploading ({0}%)",
     "app.presentationUploder.upload.413": "File is too large. Please split into multiple files.",
+    "app.presentationUploder.upload.408": "Request upload token timeout.",
+    "app.presentationUploder.upload.404": "404: Invalid upload token",
+    "app.presentationUploder.upload.401": "Request presentation upload token failed.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "Processing page {0} of {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "Converting file ...",
     "app.presentationUploder.conversion.generatingThumbnail": "Generating thumbnails ...",
diff --git a/bigbluebutton-html5/private/locales/es.json b/bigbluebutton-html5/private/locales/es.json
index 38db9775c25a5a478b7b9ebd7631567778e938fb..2661435cdcc34ea2042f5531657992838d9cfd4e 100644
--- a/bigbluebutton-html5/private/locales/es.json
+++ b/bigbluebutton-html5/private/locales/es.json
@@ -1,9 +1,8 @@
 {
-    "app.home.greeting": "Tu presentación dara inicio en un momento...",
+    "app.home.greeting": "Tu presentación se iniciará pronto...",
     "app.chat.submitLabel": "Enviar mensaje",
-    "app.chat.errorMinMessageLength": "El mensaje es {0} carácter(es) mas corto de lo esperado",
-    "app.chat.errorMaxMessageLength": "El mensaje es {0} carácter(es) mas largo de lo esperado",
-    "app.chat.disconnected": "Estas desconectado, los mensajes no pueden ser enviados",
+    "app.chat.errorMaxMessageLength": "El mensaje es {0} carácter(es) más largo de lo esperado",
+    "app.chat.disconnected": "Estás desconectado, los mensajes no pueden ser enviados",
     "app.chat.locked": "Chat bloqueado, los mensajes no pueden ser enviados",
     "app.chat.inputLabel": "Entrada de mensaje para chat {0}",
     "app.chat.inputPlaceholder": "Enviar mensaje a {0}",
@@ -38,7 +37,7 @@
     "app.captions.menu.fontFamily": "Fuente",
     "app.captions.menu.backgroundColor": "Color de fondo",
     "app.captions.menu.previewLabel": "Previsualizar",
-    "app.captions.menu.cancelLabel": "Cancela",
+    "app.captions.menu.cancelLabel": "Cancelar",
     "app.captions.pad.hide": "Ocultar subtítulos",
     "app.captions.pad.tip": "Presione Esc para enfocar la barra de herramientas del editor",
     "app.captions.pad.ownership": "Tomar el control",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Permitir acceso",
     "app.media.screenshare.start": "Compartir pantalla ha iniciado",
     "app.media.screenshare.end": "Compartir pantalla ha finalizado",
-    "app.media.screenshare.safariNotSupported": "Compartir pantalla actualmente no es soportada por Safari. Por favor usilize Firefox o Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Necesitamos su permiso para mostrarle la pantalla del presentador",
     "app.media.screenshare.autoplayAllowLabel": "Ver pantalla compartida",
     "app.screenshare.notAllowed": "Error: No tiene permisos para acceder a la pantalla",
@@ -176,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Generando miniaturas ...",
     "app.presentationUploder.conversion.generatedSlides": "Diapositivas han sido generadas ...",
     "app.presentationUploder.conversion.generatingSvg": "Generando imágenes SVG ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Número de páginas excedido. Por favor, divida el archivo en múltiples partes.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Error en procesar el documento de Office. Por favor, suba un archivo PDF en su lugar.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Error en procesar el documento de Office. Por favor, suba un archivo PDF en su lugar.",
     "app.presentationUploder.conversion.pdfHasBigPage": "No se puede convertir el fichero PDF, por favor prueba a optimizarlo",
     "app.presentationUploder.conversion.timeout": "La conversión tomó demasiado tiempo ...",
+    "app.presentationUploder.conversion.pageCountFailed": "Error en determinar el número de páginas.",
     "app.presentationUploder.isDownloadableLabel": "La descarga de la presentación no está permitida",
     "app.presentationUploder.isNotDownloadableLabel": "Descarga de presentación permitida",
     "app.presentationUploder.removePresentationLabel": "Borrar presentación",
@@ -360,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "estado actual {0}",
     "app.actionsBar.captions.start": "Comenzar a ver subtítulos",
     "app.actionsBar.captions.stop": "Dejar de ver subtítulos",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket desconectado",
-    "app.audioNotification.audioFailedError1002": "Error 1002: No puede establecerse conexión de WebSocket",
-    "app.audioNotification.audioFailedError1003": "Error 1003: Versión de navegador no soportado ",
-    "app.audioNotification.audioFailedError1004": "Error 1004: Fallo en llamada (razón={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: La llamada terminó inesperadamente",
-    "app.audioNotification.audioFailedError1006": "Error 1006: Tiempo de espera de llamada agotado",
-    "app.audioNotification.audioFailedError1007": "Error 1007: Fallo de negociación ICE",
-    "app.audioNotification.audioFailedError1008": "Error 1008: Fallo de transferencia",
-    "app.audioNotification.audioFailedError1009": "Error 1009: No se pudo obtener información de servidor STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Error 1010: Se acabó tiempo de negociación ICE  ",
-    "app.audioNotification.audioFailedError1011": "Error 1011: Se acabó tiempo recolectando ICE",
-    "app.audioNotification.audioFailedError1012": "Error 1012: Conexión ICE cerrada",
+    "app.audioNotification.audioFailedError1001": "WebSocket desconectado (error 1001)",
+    "app.audioNotification.audioFailedError1002": "Error en conexión Websocket (error 1002)",
+    "app.audioNotification.audioFailedError1003": "Versión del navegador no soportada (error 1003)",
+    "app.audioNotification.audioFailedError1004": "Error en llamada (reason={0}) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "La llamada finalizó inesperadamente (error 1005)",
+    "app.audioNotification.audioFailedError1006": "Llamada fuera de tiempo (error 1006)",
+    "app.audioNotification.audioFailedError1007": "Error en la conexión (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "Transferencia fallida (error 1008)",
+    "app.audioNotification.audioFailedError1009": "No se pudo encontrar la información STUN/TURN del servidor (error 1009)",
+    "app.audioNotification.audioFailedError1010": "Negociación de la conexión fuera de tiempo (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "Tiempo de conexión agotado (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "Conexión cerrada (ICE error 1012)",
     "app.audioNotification.audioFailedMessage": "Tu conexión de audio falló en conectarse",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia falló, Solo orígenes seguros son admitidos",
     "app.audioNotification.closeLabel": "Cerrar",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "Compartir webcam",
     "app.video.leaveVideo": "Dejar de compartir webcam",
     "app.video.iceCandidateError": "Error al agregar candidato ICE",
-    "app.video.iceConnectionStateError": "Error 1107: Negociación ICE negotiation fallida",
+    "app.video.iceConnectionStateError": "Conexión fallida (ICE error 1107)",
     "app.video.permissionError": "Error al compartit la webcam. Por favor revise los permisos",
     "app.video.sharingError": "Error al compartir la webcam",
     "app.video.notFoundError": "Webcam no fué encontrada. Por favor asegurate de que se encuentra conectada",
     "app.video.notAllowed": "Faltan permisos para compartir la webcam, por favor asegurate de que los permisos del navegador son correctos",
     "app.video.notSupportedError": "Solo se puede compartir la webcam de fuentes seguras, asegurate de que el certificado SSL sea valido",
     "app.video.notReadableError": "No se pudo obtener video de webcam. Asegurate de que ninguna otra aplicación esté utilizandola.",
-    "app.video.mediaFlowTimeout1020": "Error 1020: Medio no llego al servidor",
+    "app.video.mediaFlowTimeout1020": "Los datos no alcanzaron el servidor (error 1020)",
     "app.video.suggestWebcamLock": "¿Aplicar la configuración de bloqueo a las cámaras web de los observadores?",
     "app.video.suggestWebcamLockReason": "(esto mejorará la estabilidad de la grabación)",
     "app.video.enable": "Activar",
@@ -577,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "Uso de codificador",
     "app.video.stats.currentDelay": "Demora actual",
     "app.fullscreenButton.label": "Hacer {0} pantalla completa",
-    "app.deskshare.iceConnectionStateError": "Error 1108: Conexión ICE fallida al compartir la pantalla",
-    "app.sfu.mediaServerConnectionError2000": "Error 2000: No es posible conectarse al servidor de medios",
-    "app.sfu.mediaServerOffline2001": "Error 2001: Servidor de medios fuera de línea. Por favor intentelo nuevamente.",
-    "app.sfu.mediaServerNoResources2002": "Error 2002: Servidor de medios no tiene recursos disponibles",
-    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: Error de tiempo de espera en solicitudes al servidor de medios",
-    "app.sfu.serverIceGatheringFailed2021": "Error 2021: Servidor de medios no puede obtener los candidatos ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Error 2022: Conexión ICE de servidor de medios fallida",
-    "app.sfu.mediaGenericError2200": "Error 2200: Servidor de medios fallo al procesar la solicitud",
-    "app.sfu.invalidSdp2202":"Error 2202: El client generato un SDP invalido",
-    "app.sfu.noAvailableCodec2203": "Error 2203: El servidor no encontró un Codec apropiado",
+    "app.deskshare.iceConnectionStateError": "Falló la conexión al compartir pantalla (ICE error 1108)",
+    "app.sfu.mediaServerConnectionError2000": "No se pudo conectar al media del servidor (error 2000)",
+    "app.sfu.mediaServerOffline2001": "Servidor de medios offline. Por favor, inténtelo de nuevo más tarde (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "El servidor de medios no tiene recursos disponibles (error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Se agotó el tiempo de espera para las solicitudes al servidor de medios (error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "El servidor de medios no puede reunir candidatos de conexión (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Conexión con el servidor de medior fallida (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "El servidor de medios falló en procesar la petición (error 2200)",
+    "app.sfu.invalidSdp2202":"El cliente generó una petición de medios inválida (SDP error 2202)",
+    "app.sfu.noAvailableCodec2203": "El servidor no pudo encontrar un codec apropiado (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Resultados de la encuesta compartidos",
     "app.whiteboard.toolbar.tools": "Herramientas",
diff --git a/bigbluebutton-html5/private/locales/es_ES.json b/bigbluebutton-html5/private/locales/es_ES.json
index d6d67659824da8aa90f17c23550adb3eef488c4a..eab4156fe0706a3faddefbd3675748d2922b3e47 100644
--- a/bigbluebutton-html5/private/locales/es_ES.json
+++ b/bigbluebutton-html5/private/locales/es_ES.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Su presentación se iniciará pronto...",
     "app.chat.submitLabel": "Enviar mensaje",
-    "app.chat.errorMinMessageLength": "El mensaje es {0} demasiado corto",
     "app.chat.errorMaxMessageLength": "El mensaje es {0} demasiado largo",
     "app.chat.disconnected": "Usted está desconectado. Los mensajes no serán enviados",
     "app.chat.locked": "El chat está cerrado. Los mensajes no serán enviados",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Permitir acceso",
     "app.media.screenshare.start": "Compartir pantalla se ha iniciado",
     "app.media.screenshare.end": "Compartir pantalla se ha finalizado",
-    "app.media.screenshare.safariNotSupported": "Compartir pantalla actualmente no está soportado por Safari. Por favor, use Firefox o Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Necesitamos su consentimiento para mostrarle la pantalla del presentador.",
     "app.media.screenshare.autoplayAllowLabel": "Ver pantalla compartida",
     "app.screenshare.notAllowed": "Error: El permiso para acceder a la pantalla no ha sido concedido.",
@@ -176,6 +174,7 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Generando miniaturas...",
     "app.presentationUploder.conversion.generatedSlides": "Diapositivas generadas...",
     "app.presentationUploder.conversion.generatingSvg": "Generando imágenes SVG...",
+    "app.presentationUploder.conversion.pageCountExceeded": "El archivo es demasiado grande. Por favor, divídalo en múltiples archivos.",
     "app.presentationUploder.conversion.pdfHasBigPage": "No es posible convertir el archivo PDF. Por favor, intente optimizarlo",
     "app.presentationUploder.conversion.timeout": "Oh, la conversión tardó demasiado",
     "app.presentationUploder.isDownloadableLabel": "No está permitida la descarga de la presentación",
@@ -360,18 +359,6 @@
     "app.actionsBar.currentStatusDesc": "estado actual {0}",
     "app.actionsBar.captions.start": "Iniciar visualización de subtítulos",
     "app.actionsBar.captions.stop": "Detener visualización de subtítulos",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket desconectado",
-    "app.audioNotification.audioFailedError1002": "Error 1002: No puede establecerse conexión a WebSocket",
-    "app.audioNotification.audioFailedError1003": "Error 1003: Versión de navegador no soportado ",
-    "app.audioNotification.audioFailedError1004": "Error 1004: Error en la llamada (razón={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: La llamada terminó inesperadamente",
-    "app.audioNotification.audioFailedError1006": "Error 1006: Tiempo de espera de llamada agotado",
-    "app.audioNotification.audioFailedError1007": "Error 1007: Fallo de negociación ICE",
-    "app.audioNotification.audioFailedError1008": "Error 1008: Fallo de transferencia",
-    "app.audioNotification.audioFailedError1009": "Error 1009: No se pudo obtener información del servidor STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Error 1010: Se acabó tiempo de negociación ICE  ",
-    "app.audioNotification.audioFailedError1011": "Error 1011: Se acabó tiempo recolectando ICE",
-    "app.audioNotification.audioFailedError1012": "Error 1012: ICE conexión cerrada",
     "app.audioNotification.audioFailedMessage": "Tu conexión de audio falló al conectarse",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia falló debido a que solo las fuentes de orígenes seguros están permitidas",
     "app.audioNotification.closeLabel": "Cerrar",
@@ -542,14 +529,12 @@
     "app.video.joinVideo": "Compartir webcam",
     "app.video.leaveVideo": "Detener compartir webcam",
     "app.video.iceCandidateError": "Error añadiendo candidato ICE",
-    "app.video.iceConnectionStateError": "Error 1107: Error en la negociación ICE",
     "app.video.permissionError": "Error compartiendo la webcam. Por favor, compruebe los permisos",
     "app.video.sharingError": "Error compartiendo la webcam",
     "app.video.notFoundError": "No se encuentra la webcam. Por favor, asegúrese de que está conectada",
     "app.video.notAllowed": "Permisos perdidos para compartir la webcam. Por favor, revise los permisos del navegador",
     "app.video.notSupportedError": "Puede compartir video webcam solo con fuentes seguras, asegúrese de que su certificado SSL es válido",
     "app.video.notReadableError": "No se pudo obtener video webcam. Por favor, asegúrese de que otro programa no está utilizándola",
-    "app.video.mediaFlowTimeout1020": "Error 1020: multimedia no pudo alcanzar el servidor",
     "app.video.suggestWebcamLock": "¿Aplicar la configuración de bloqueo a las cámaras web de los espectadores?",
     "app.video.suggestWebcamLockReason": "(esto mejorará la estabilidad de la reunión)",
     "app.video.enable": "Habilitar",
@@ -577,16 +562,6 @@
     "app.video.stats.encodeUsagePercent": "Codificar uso",
     "app.video.stats.currentDelay": "Retardo actual",
     "app.fullscreenButton.label": "Hacer {0} pantalla completa",
-    "app.deskshare.iceConnectionStateError": "Error 1108: La conexión ICE falló al compartir pantalla",
-    "app.sfu.mediaServerConnectionError2000": "Error 2000: Incapaz de conectarse al servidor multimedia",
-    "app.sfu.mediaServerOffline2001": "Error 2001: El servidor multimedia está fuera de línea. Por favor, inténtelo de nuevo más tarde",
-    "app.sfu.mediaServerNoResources2002": "Error 2002: El servidor multimedia no tiene recursos disponibles",
-    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: Solicitudes del servidor de medios están agotándose",
-    "app.sfu.serverIceGatheringFailed2021": "Error 2021: Servidor de medios no puede reunir candidatos ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Error 2022: Error en la conexión al servidor multimedia ICE",
-    "app.sfu.mediaGenericError2200": "Error 2200: El servidor multimedia falló al procesar la solicitud",
-    "app.sfu.invalidSdp2202":"Error 2202: El cliente generó un SDP inválido",
-    "app.sfu.noAvailableCodec2203": "Error 2203: El servidor no pudo encontrar el codec adecuado",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Los resultados de la encuesta fueron publicados",
     "app.whiteboard.toolbar.tools": "Herramientas",
diff --git a/bigbluebutton-html5/private/locales/es_MX.json b/bigbluebutton-html5/private/locales/es_MX.json
index 80d9b65c15f16a231e40a8400159d56e501cdb40..4a3244f9d03f026c0277a9ca3a8848a8f6ff65c6 100644
--- a/bigbluebutton-html5/private/locales/es_MX.json
+++ b/bigbluebutton-html5/private/locales/es_MX.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Tu presentación dara inicio en un momento...",
     "app.chat.submitLabel": "Enviar mensaje",
-    "app.chat.errorMinMessageLength": "El mensaje es {0} caracteres mas corto de lo esperado",
     "app.chat.errorMaxMessageLength": "El mensaje es {0} caracteres mas largo de lo esperado",
     "app.chat.inputLabel": "Entrada de mensaje para chat {0}",
     "app.chat.titlePublic": "Chat público",
@@ -72,7 +71,6 @@
     "app.media.label": "Media",
     "app.media.screenshare.start": "Compartir pantalla ha iniciado",
     "app.media.screenshare.end": "Compartir pantalla ha finalizado",
-    "app.media.screenshare.safariNotSupported": "Compartir pantalla actualmente no es soportada por Safari. Por favor usilize Firefox o Google Chrome.",
     "app.meeting.ended": "La sesión ha finalizado",
     "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",
@@ -278,18 +276,6 @@
     "app.actionsBar.emojiMenu.thumbsDownLabel": "Señal de desaprobación",
     "app.actionsBar.emojiMenu.thumbsDownDesc": "Cambia tu estdo a señal de desaprobación",
     "app.actionsBar.currentStatusDesc": "estado actual {0}",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket desconectado",
-    "app.audioNotification.audioFailedError1002": "Error 1002: No puede establecerse conexión de WebSocket",
-    "app.audioNotification.audioFailedError1003": "Error 1003: Versión de navegador no soportado ",
-    "app.audioNotification.audioFailedError1004": "Error 1004: Falla en la llamada (causa={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: La llamada terminó inesperadamente",
-    "app.audioNotification.audioFailedError1006": "Error 1006: Tiempo de espera de llamada agotado",
-    "app.audioNotification.audioFailedError1007": "Error 1007: Fallo de negociación ICE",
-    "app.audioNotification.audioFailedError1008": "Error 1008: Fallo de transferencia",
-    "app.audioNotification.audioFailedError1009": "Error 1009: No se pudo obtener información de servidor STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Error 1010: Se acabó tiempo de negociación ICE  ",
-    "app.audioNotification.audioFailedError1011": "Error 1011: Se acabó tiempo recolectando ICE",
-    "app.audioNotification.audioFailedError1012": "Error 1012: Conexión ICE cerrada",
     "app.audioNotification.audioFailedMessage": "Tu conexión de audio falló en conectarse",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia falló, Solo orígenes seguros son admitidos",
     "app.audioNotification.closeLabel": "Cerrar",
@@ -416,14 +402,12 @@
     "app.video.joinVideo": "Compartir webcam",
     "app.video.leaveVideo": "Dejar de compartir webcam",
     "app.video.iceCandidateError": "Error al agregar candidato ICE",
-    "app.video.iceConnectionStateError": "Error 1107: Negociación ICE negotiation fallida",
     "app.video.permissionError": "Error al compartit la webcam. Por favor revise los permisos",
     "app.video.sharingError": "Error al compartir la webcam",
     "app.video.notFoundError": "Webcam no fué encontrada. Por favor asegurate de que se encuentra conectada",
     "app.video.notAllowed": "Faltan permisos para compartir la webcam, por favor asegurate de que los permisos del navegador son correctos",
     "app.video.notSupportedError": "Solo se puede compartir la webcam de fuentes seguras, asegurate de que el certificado SSL sea valido",
     "app.video.notReadableError": "No se pudo obtener video de webcam. Asegurate de que ninguna otra aplicación esté utilizandola.",
-    "app.video.mediaFlowTimeout1020": "Error 1020: Medio no llego al servidor",
     "app.video.cancel": "Cancelar",
     "app.video.swapCam": "Intercambiar",
     "app.video.swapCamDesc": "intercambiar la dirección de las webcams",
@@ -448,16 +432,6 @@
     "app.video.stats.encodeUsagePercent": "Uso de codificador",
     "app.video.stats.currentDelay": "Demora actual",
     "app.fullscreenButton.label": "Visualizar {0} en pantalla completa",
-    "app.deskshare.iceConnectionStateError": "Error 1108: Conexión ICE fallida al compartir la pantalla",
-    "app.sfu.mediaServerConnectionError2000": "Error 2000: No es posible conectarse al servidor de medios",
-    "app.sfu.mediaServerOffline2001": "Error 2001: Servidor de medios fuera de línea. Por favor intentelo nuevamente.",
-    "app.sfu.mediaServerNoResources2002": "Error 2002: Servidor de medios no tiene recursos disponibles",
-    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: Error de tiempo de espera en solicitudes al servidor de medios",
-    "app.sfu.serverIceGatheringFailed2021": "Error 2021: Servidor de medios no puede obtener los candidatos ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Error 2022: Conexión ICE de servidor de medios fallida",
-    "app.sfu.mediaGenericError2200": "Error 2200: Servidor de medios fallo al procesar la solicitud",
-    "app.sfu.invalidSdp2202":"Error 2202: El client generato un SDP invalido",
-    "app.sfu.noAvailableCodec2203": "Error 2203: El servidor no encontró un Codec apropiado",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.toolbar.tools": "Herramientas",
     "app.whiteboard.toolbar.tools.hand": "Panorama",
diff --git a/bigbluebutton-html5/private/locales/et.json b/bigbluebutton-html5/private/locales/et.json
new file mode 100644
index 0000000000000000000000000000000000000000..4de1e5ca34b678b8614eafcc0080c5c3a5d8fde6
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/et.json
@@ -0,0 +1,683 @@
+{
+    "app.home.greeting": "Esitlus algab peatselt...",
+    "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.inputPlaceholder": "Saada sõnum kasutajale {0}",
+    "app.chat.titlePublic": "Avalik sõnumivahetus",
+    "app.chat.titlePrivate": "Privaatne sõnumivahetus 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.clear": "Puhasta",
+    "app.chat.dropdown.copy": "Kopeeri",
+    "app.chat.dropdown.save": "Salvesta",
+    "app.chat.label": "Sõnumivahetus",
+    "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.multi.typing": "Mitu kasutajat kirjutavad",
+    "app.chat.one.typing": "{0} kirjutab",
+    "app.chat.two.typing": "{0} ja {1} kirjutavad",
+    "app.captions.label": "Tiitrid",
+    "app.captions.menu.close": "Sulge",
+    "app.captions.menu.start": "Alusta",
+    "app.captions.menu.ariaStart": "Alusta tiitrite kirjutamist",
+    "app.captions.menu.ariaStartDesc": "Avab tiitrite redaktori ning sulgeb selle akna",
+    "app.captions.menu.select": "Vali saadaval olev keel",
+    "app.captions.menu.ariaSelect": "Tiitrite keel",
+    "app.captions.menu.subtitle": "Vali selle ruumi tiitrite jaoks keel ja kirjastiil",
+    "app.captions.menu.title": "Peittiitrid",
+    "app.captions.menu.fontSize": "Suurus",
+    "app.captions.menu.fontColor": "Teksti värv",
+    "app.captions.menu.fontFamily": "Kirjatüüp",
+    "app.captions.menu.backgroundColor": "Taustavärv",
+    "app.captions.menu.previewLabel": "Eelvaade",
+    "app.captions.menu.cancelLabel": "Tühista",
+    "app.captions.pad.hide": "Peida tiitrid",
+    "app.captions.pad.tip": "Vajuta Esc-klahvi, et valida redaktori tööriistariba",
+    "app.captions.pad.ownership": "Võta üle",
+    "app.captions.pad.ownershipTooltip": "Sind määratakse {0} tiitri omanikuks",
+    "app.captions.pad.interimResult": "Vahearuanne",
+    "app.captions.pad.dictationStart": "Alusta rääkimist",
+    "app.captions.pad.dictationStop": "Lõpeta rääkimine",
+    "app.captions.pad.dictationOnDesc": "Lülita kõnetuvastus sisse",
+    "app.captions.pad.dictationOffDesc": "Lülita kõnetuvastus välja",
+    "app.note.title": "Jagatud märkmed",
+    "app.note.label": "Märge",
+    "app.note.hideNoteLabel": "Peida märge",
+    "app.user.activityCheck": "Kasutaja tegevuse kontroll",
+    "app.user.activityCheck.label": "Kontrolli kas kasutaja ({0}) on veel ruumis",
+    "app.user.activityCheck.check": "Kontrolli",
+    "app.note.tipLabel": "Vajuta Esc-klahvi, et valida redaktori tööriistariba",
+    "app.userList.usersTitle": "Kasutajad",
+    "app.userList.participantsTitle": "Osalejad",
+    "app.userList.messagesTitle": "Sõnumid",
+    "app.userList.notesTitle": "Märkmed",
+    "app.userList.notesListItem.unreadContent": "Jagatud märkmetes on loodud uut sisu",
+    "app.userList.captionsTitle": "Tiitrid",
+    "app.userList.presenter": "Esitleja",
+    "app.userList.you": "Sina",
+    "app.userList.locked": "Lukustatud",
+    "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.clearStatus.label": "Tühista staatus",
+    "app.userList.menu.removeUser.label": "Eemalda kasutaja",
+    "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.unlockUser.label": "Ava {0}",
+    "app.userList.menu.lockUser.label": "Lukusta {0}",
+    "app.userList.menu.directoryLookup.label": "Otsi kataloogist",
+    "app.userList.menu.makePresenter.label": "Muuda esitlejaks",
+    "app.userList.userOptions.manageUsersLabel": "Halda kasutajaid",
+    "app.userList.userOptions.muteAllLabel": "Vaigista kõik kasutajad",
+    "app.userList.userOptions.muteAllDesc": "Vaigistab kõik ruumis olevad kasutajad",
+    "app.userList.userOptions.clearAllLabel": "Tühista kõik staatuse ikoonid",
+    "app.userList.userOptions.clearAllDesc": "Tühistab kõikide kasutajate staatuse ikoonid",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Vaigista kõik kasutajad peale esitleja",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Vaigistab kõik kasutajad ruumis peale esitleja",
+    "app.userList.userOptions.unmuteAllLabel": "Lülita ruumi vaigistamine välja",
+    "app.userList.userOptions.unmuteAllDesc": "Taastab ruumi heli",
+    "app.userList.userOptions.lockViewersLabel": "Lukusta vaatajad",
+    "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.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.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.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",
+    "app.media.label": "Meedia",
+    "app.media.autoplayAlertDesc": "Luba juurdepääs",
+    "app.media.screenshare.start": "Ekraanijagamine algas",
+    "app.media.screenshare.end": "Ekraanijagamine lõppes",
+    "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.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.presentation.hide": "Peida esitlus",
+    "app.presentation.notificationLabel": "Aktiivne esitlus",
+    "app.presentation.slideContent": "Slaidi sisu",
+    "app.presentation.startSlideContent": "Slaidi sisu algus",
+    "app.presentation.endSlideContent": "Slaidi sisu lõpp",
+    "app.presentation.emptySlideContent": "Aktiivsel slaidil puudub sisu",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Esitluse lõpp",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Esitluse algus",
+    "app.presentation.presentationToolbar.selectLabel": "Vali slaid",
+    "app.presentation.presentationToolbar.prevSlideLabel": "Eelmine slaid",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Vaheta esitlus eelmisele slaidile",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Järgmine slaid",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Vaheta esitlus järgmisele slaidile",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Jäta slaid vahele",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Vaheta esitlus kindlale slaidile",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Kohanda laiusele",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Kuva slaid kogu laiuses",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Täida ekraani ulatuses",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Näita kogu slaidi",
+    "app.presentation.presentationToolbar.zoomLabel": "Suurendus",
+    "app.presentation.presentationToolbar.zoomDesc": "Muuda esitluse suurendust",
+    "app.presentation.presentationToolbar.zoomInLabel": "Suurenda",
+    "app.presentation.presentationToolbar.zoomInDesc": "Suurenda esitlust",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Vähenda",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Vähenda esitlust",
+    "app.presentation.presentationToolbar.zoomReset": "Lähtesta suurendus",
+    "app.presentation.presentationToolbar.zoomIndicator": "Praegune suurendusaste",
+    "app.presentation.presentationToolbar.fitToWidth": "Kohanda laiusele",
+    "app.presentation.presentationToolbar.fitToPage": "Kohanda lehe laiusele",
+    "app.presentation.presentationToolbar.goToSlide": "Slaid {0}",
+    "app.presentationUploder.title": "Esitlus",
+    "app.presentationUploder.message": "Esitlejana saad üles laadida ükskõik millise tekstitöötlusdokumendi või PDF-faili. Parima tulemuse saamiseks soovitame kasutada PDFi. Jälgi, et esitlus oleks valitud: kontrolli paremal asuvat ringikujulist märkevälja.",
+    "app.presentationUploder.uploadLabel": "Laadi üles",
+    "app.presentationUploder.confirmLabel": "Kinnita",
+    "app.presentationUploder.confirmDesc": "Salvesta muudatused ning alusta esitlust",
+    "app.presentationUploder.dismissLabel": "Tühista",
+    "app.presentationUploder.dismissDesc": "Sulge aken ning tühista muudatused",
+    "app.presentationUploder.dropzoneLabel": "Aseta üleslaaditavad failid siia",
+    "app.presentationUploder.dropzoneImagesLabel": "Aseta üleslaaditavad pildid siia",
+    "app.presentationUploder.browseFilesLabel": "või otsi faile arvutist",
+    "app.presentationUploder.browseImagesLabel": "või vali/tee pilte",
+    "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.413": "Fail on liiga suur. Palun jaga fail väiksemateks tükkideks.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Töötlen lehte {0} / {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "Teisendan faili...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Genereerin pisipilte...",
+    "app.presentationUploder.conversion.generatedSlides": "Slaidid genereeritud...",
+    "app.presentationUploder.conversion.generatingSvg": "Genereerin SVG-pilte ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Lehtede arv ületas lubatud piiri. Palun jaga fail väiksemateks tükkideks.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Tekstitöötlusdokumendi teisendamine ebaõnnestus. Palun laadi fail üles PDF-kujul.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Tekstitöötlusdokumendi teisendamine ebaõnnestus. Palun laadi fail üles PDF-kujul.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "PDF-faili teisendamine ebaõnnestus. Palun proovi PDFi enne üleslaadimist optimeerida.",
+    "app.presentationUploder.conversion.timeout": "Oih, teisendamine võttis liiga kaua aega",
+    "app.presentationUploder.conversion.pageCountFailed": "Lehtede arvu määramine ebaõnnestus",
+    "app.presentationUploder.isDownloadableLabel": "Ära luba esitlust alla laadida",
+    "app.presentationUploder.isNotDownloadableLabel": "Luba esitlust alla laadida",
+    "app.presentationUploder.removePresentationLabel": "Eemalda esitlus",
+    "app.presentationUploder.setAsCurrentPresentation": "Määra esitlus aktiivseks",
+    "app.presentationUploder.tableHeading.filename": "Faili nimi",
+    "app.presentationUploder.tableHeading.options": "Valikud",
+    "app.presentationUploder.tableHeading.status": "Staatus",
+    "app.poll.pollPaneTitle": "Küsitlus",
+    "app.poll.quickPollTitle": "Kiirküsitlus",
+    "app.poll.hidePollDesc": "Peidab küsitluse paneeli",
+    "app.poll.customPollInstruction": "Kohandatud küsitluse koostamiseks vali all nupp ning sisesta vastusevariandid.",
+    "app.poll.quickPollInstruction": "Vali sobiv variant ning alusta küsitlust.",
+    "app.poll.customPollLabel": "Kohandatud küsitlus",
+    "app.poll.startCustomLabel": "Alusta kohandatud küsitlust",
+    "app.poll.activePollInstruction": "Jäta see paneel lahti, et jooksvalt näha osalejate vastuseid. Kui oled valmis, vajuta 'Avalda küsitluse tulemused', et näidata tulemusi osalejatele ning küsitlus lõpetada.",
+    "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.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.t": "Õige",
+    "app.poll.f": "Vale",
+    "app.poll.tf": "Õige / Vale",
+    "app.poll.y": "Jah",
+    "app.poll.n": "Ei",
+    "app.poll.yn": "Jah / Ei",
+    "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": "Õige",
+    "app.poll.answer.false": "Vale",
+    "app.poll.answer.yes": "Jah",
+    "app.poll.answer.no": "Ei",
+    "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": "Kasutaja",
+    "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.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.retryNow": "Proovi uuesti kohe",
+    "app.navBar.settingsDropdown.optionsLabel": "Valikud",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Esita täisekraanil",
+    "app.navBar.settingsDropdown.settingsLabel": "Seaded",
+    "app.navBar.settingsDropdown.aboutLabel": "Meist",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Logi välja",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Välju täisekraanilt",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Esita seadete menüü täisekraanil",
+    "app.navBar.settingsDropdown.settingsDesc": "Muuda üldseadeid",
+    "app.navBar.settingsDropdown.aboutDesc": "Näita informatsiooni kliendi kohta",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Lahku ruumist",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Välju täisekraani vaatest",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Kiirklahvid",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Olemasolevad klahvikombinatsioonid",
+    "app.navBar.settingsDropdown.helpLabel": "Abi",
+    "app.navBar.settingsDropdown.helpDesc": "Suunab kasutaja videojuhiste juurde (avaneb uuel sakil)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Lõpetab käimasoleva sessiooni",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Lõpeta sessioon",
+    "app.navBar.userListToggleBtnLabel": "Kasutajate nimekiri sisse/välja",
+    "app.navBar.toggleUserList.ariaLabel": "Kasutajad ja sõnumid sisse/välja",
+    "app.navBar.toggleUserList.newMessages": "koos uue sõnumi teavitusega",
+    "app.navBar.recording": "Sessiooni salvestatakse",
+    "app.navBar.recording.on": "Salvestatakse",
+    "app.navBar.recording.off": "Ei salvestata",
+    "app.navBar.emptyAudioBrdige": "Puudub aktiivne mikrofon. Salvestisele heli lisamiseks jaga oma mikrofoni.",
+    "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.yesLabel": "Jah",
+    "app.endMeeting.noLabel": "Ei",
+    "app.about.title": "Meist",
+    "app.about.version": "Kliendi versioon:",
+    "app.about.copyright": "Autoriõigused:",
+    "app.about.confirmLabel": "Ok",
+    "app.about.confirmDesc": "Ok",
+    "app.about.dismissLabel": "Tühista",
+    "app.about.dismissDesc": "Sulge informatsioon kliendi kohta",
+    "app.actionsBar.changeStatusLabel": "Muuda staatust",
+    "app.actionsBar.muteLabel": "Vaigista",
+    "app.actionsBar.unmuteLabel": "Eemalda vaigistus",
+    "app.actionsBar.camOffLabel": "Lülita kaamera välja",
+    "app.actionsBar.raiseLabel": "Tõsta käsi",
+    "app.actionsBar.label": "Tegevusteriba",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Taasta esitlus",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Nupp esitluse taastamiseks pärast selle sulgemist",
+    "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.userJoinAudioAlertLabel": "Kasutaja liitumise helimärguanded",
+    "app.submenu.application.userJoinPushAlertLabel": "Kasutaja liitumise hüpikmärguanded",
+    "app.submenu.application.fontSizeControlLabel": "Teksti suurus",
+    "app.submenu.application.increaseFontBtnLabel": "Suurenda rakenduse teksti suurust",
+    "app.submenu.application.decreaseFontBtnLabel": "Vähenda rakenduste teksti suurust",
+    "app.submenu.application.currentSize": "praegu {0}",
+    "app.submenu.application.languageLabel": "Rakenduse keel",
+    "app.submenu.application.languageOptionLabel": "Vali keel",
+    "app.submenu.application.noLocaleOptionLabel": "Aktiivseid tõlkeid ei ole",
+    "app.submenu.audio.micSourceLabel": "Mikrofoni sisend",
+    "app.submenu.audio.speakerSourceLabel": "Kõlarite sisend",
+    "app.submenu.audio.streamVolumeLabel": "Audiovoo helitugevus",
+    "app.submenu.video.title": "Video",
+    "app.submenu.video.videoSourceLabel": "Video sisend",
+    "app.submenu.video.videoOptionLabel": "Vali video sisend",
+    "app.submenu.video.videoQualityLabel": "Video kvaliteet",
+    "app.submenu.video.qualityOptionLabel": "Vali video kvaliteet",
+    "app.submenu.video.participantsCamLabel": "Näita osalejate veebikaameraid",
+    "app.settings.applicationTab.label": "Rakendus",
+    "app.settings.audioTab.label": "Audio",
+    "app.settings.videoTab.label": "Video",
+    "app.settings.usersTab.label": "Osalejad",
+    "app.settings.main.label": "Seaded",
+    "app.settings.main.cancel.label": "Tühista",
+    "app.settings.main.cancel.label.description": "Tühistab muudatused ning sulgeb seadete menüü",
+    "app.settings.main.save.label": "Salvesta",
+    "app.settings.main.save.label.description": "Salvestab muudatused ning sulgeb seadete menüü",
+    "app.settings.dataSavingTab.label": "Andmemahu säästmine",
+    "app.settings.dataSavingTab.webcam": "Luba veebikaamerad",
+    "app.settings.dataSavingTab.screenShare": "Luba ekraanijagamine",
+    "app.settings.dataSavingTab.description": "Andmemahu säästmiseks võid muuta, mida ekraanil näidatakse.",
+    "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.isTalking" : "{0} räägib",
+    "app.talkingIndicator.wasTalking" : "{0} lõpetas rääkimise",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Tegevused",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Laadi esitlus üles",
+    "app.actionsBar.actionsDropdown.initPollLabel": "Alusta küsitlust",
+    "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.initPollDesc": "Alusta küsitlust",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Jaga oma ekraani teistega",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Lõpeta oma ekraani jagamine",
+    "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.captionsLabel": "Tiitrite kirjutamine",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Tiitrite paneel sisse/välja",
+    "app.actionsBar.actionsDropdown.takePresenter": "Võta esitleja roll",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Määra ennast uueks esitlejaks",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Määra staatus",
+    "app.actionsBar.emojiMenu.awayLabel": "Eemal",
+    "app.actionsBar.emojiMenu.awayDesc": "Määra oma staatuseks Eemal",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "Tõsta käsi",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "Tõsta käsi küsimuse esitamiseks",
+    "app.actionsBar.emojiMenu.neutralLabel": "Kõhklev",
+    "app.actionsBar.emojiMenu.neutralDesc": "Määra oma saatuseks Kõhklev",
+    "app.actionsBar.emojiMenu.confusedLabel": "Segaduses",
+    "app.actionsBar.emojiMenu.confusedDesc": "Määra oma staatuseks Segaduses",
+    "app.actionsBar.emojiMenu.sadLabel": "Nukker",
+    "app.actionsBar.emojiMenu.sadDesc": "Määra oma staatuseks Nukker",
+    "app.actionsBar.emojiMenu.happyLabel": "Rõõmus",
+    "app.actionsBar.emojiMenu.happyDesc": "Määra oma staatuseks Rõõmus",
+    "app.actionsBar.emojiMenu.noneLabel": "Tühista staatus",
+    "app.actionsBar.emojiMenu.noneDesc": "Tühista oma staatus",
+    "app.actionsBar.emojiMenu.applauseLabel": "Aplodeeri",
+    "app.actionsBar.emojiMenu.applauseDesc": "Määra oma staatuseks Aplodeeri",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Pöial püsti",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Määra oma staatuseks Pöial püsti",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Pöial alla",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "Määra oma staatuseks Pöial alla",
+    "app.actionsBar.currentStatusDesc": "praegune staatus {0}",
+    "app.actionsBar.captions.start": "Alusta tiitrite vaatamist",
+    "app.actionsBar.captions.stop": "Lõpeta tiitrite vaatamine",
+    "app.audioNotification.audioFailedError1001": "WebSocket kaotas ühenduse (viga 1001)",
+    "app.audioNotification.audioFailedError1002": "WebSocketi ühendust ei õnnestunud luua (viga 1002)",
+    "app.audioNotification.audioFailedError1003": "Veebilehitseja versiooni ei toetata (viga 1003)",
+    "app.audioNotification.audioFailedError1004": "Ühendumise viga (põhjus={0}) (viga 1004)",
+    "app.audioNotification.audioFailedError1005": "Ühendus lõppes ootamatult (viga 1005)",
+    "app.audioNotification.audioFailedError1006": "Ãœhendus aegus (viga 1006)",
+    "app.audioNotification.audioFailedError1007": "Ãœhendamise viga (ICE viga 1007)",
+    "app.audioNotification.audioFailedError1008": "Ülekanne ebaõnnestus (viga 1008)",
+    "app.audioNotification.audioFailedError1009": "Ei õnnestunud hankida STUN/TURN serveri informatsiooni (viga 1009)",
+    "app.audioNotification.audioFailedError1010": "Ühenduse kooskõlastamine aegus (ICE viga 1010)",
+    "app.audioNotification.audioFailedError1011": "Ãœhendus aegus (ICE viga 1011)",
+    "app.audioNotification.audioFailedError1012": "Ãœhendus suletud (ICE viga 1012)",
+    "app.audioNotification.audioFailedMessage": "Audio ühendamine ebaõnnestus",
+    "app.audioNotification.mediaFailedMessage": "getUserMicMedia ebaõnnestus, sest lubatud on ainult turvalised allikad",
+    "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.confirmDesc": "Liitu eraldatud ruumiga",
+    "app.breakoutJoinConfirmation.dismissLabel": "Tühista",
+    "app.breakoutJoinConfirmation.dismissDesc": "Sulgeb ja keelab eraldatud ruumiga liitumise",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Vali eraldatud ruum, millega liituda",
+    "app.breakoutTimeRemainingMessage": "Eraldatud ruumi järelejäänud aeg: {0}",
+    "app.breakoutWillCloseMessage": "Aeg sai läbi. Eraldatud ruum suletakse kohe",
+    "app.calculatingBreakoutTimeRemaining": "Arvutan järelejäänud aega...",
+    "app.audioModal.ariaTitle": "Audioga liitumise aken",
+    "app.audioModal.microphoneLabel": "Mikrofoniga",
+    "app.audioModal.listenOnlyLabel": "Ainult kuulata",
+    "app.audioModal.audioChoiceLabel": "Kuidas soovid audioga liituda?",
+    "app.audioModal.iOSBrowser": "Audio/video ei ole toetatud",
+    "app.audioModal.iOSErrorDescription": "Praegu Chrome iOSis audiot ja videot ei toeta.",
+    "app.audioModal.iOSErrorRecommendation": "Soovitame iOSis kasutada Safarit.",
+    "app.audioModal.audioChoiceDesc": "Vali, kuidas selle ruumi audioga liituda",
+    "app.audioModal.unsupportedBrowserLabel": "Paistab, et kasutad veebilehitsejat, mida täielikult ei toetata. Täielikuks toetuseks kasuta palun brausereid {0} või {1}.",
+    "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.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.audioDial.audioDialDescription": "Vali",
+    "app.audioDial.audioDialConfrenceText": "ja sisesta sessiooni PIN-number:",
+    "app.audioModal.autoplayBlockedDesc": "Vajame audio mängimiseks sinu luba",
+    "app.audioModal.playAudio": "Mängi audiot",
+    "app.audioModal.playAudio.arialabel" : "Mängi audiot",
+    "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.audioManager.joinedAudio": "Oled audiokonverentsiga liitunud",
+    "app.audioManager.joinedEcho": "Kajatest käivitus",
+    "app.audioManager.leftAudio": "Oled audiokonverentsilt lahkunud",
+    "app.audioManager.reconnectingAudio": "Üritame uuesti audioga ühenduda",
+    "app.audioManager.genericError": "Viga: Esines viga, palun proovi uuesti",
+    "app.audioManager.connectionError": "Viga: Ãœhenduse viga",
+    "app.audioManager.requestTimeout": "Viga: Päring aegus",
+    "app.audioManager.invalidTarget": "Viga: Päring teostati valele objektile",
+    "app.audioManager.mediaError": "Viga: Ei saanud ühendust sinu meediaseadmetega",
+    "app.audio.joinAudio": "Liitu audioga",
+    "app.audio.leaveAudio": "Lahku audiost",
+    "app.audio.enterSessionLabel": "Liitu sessiooniga",
+    "app.audio.playSoundLabel": "Mängi heli",
+    "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.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Mikrofoni sisend",
+    "app.audio.audioSettings.speakerSourceLabel": "Kõlarite sisend",
+    "app.audio.audioSettings.microphoneStreamLabel": "Audiovoo helitugevus",
+    "app.audio.audioSettings.retryLabel": "Uuesti",
+    "app.audio.listenOnly.backLabel": "Tagasi",
+    "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.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",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Autoriseerimistõendi kehtivuse kinnitamine ebaõnnestus",
+    "app.meeting.logout.userInactivityEjectReason": "Kasutaja on olnud liiga kaua mitteaktiivne",
+    "app.meeting-ended.rating.legendLabel": "Tagasiside hinnang",
+    "app.meeting-ended.rating.starLabel": "Täht",
+    "app.modal.close": "Sulge",
+    "app.modal.close.description": "Tühista muudatused ning sulge aken",
+    "app.modal.confirm": "Valmis",
+    "app.modal.newTab": "(avaneb uuel sakil)",
+    "app.modal.confirm.description": "Salvestab muudatused ning sulgeb akna",
+    "app.dropdown.close": "Sulge",
+    "app.error.400": "Vigane päring",
+    "app.error.401": "Autoriseerimata",
+    "app.error.403": "Oled ruumist eemaldatud",
+    "app.error.404": "Ei leitud",
+    "app.error.410": "Sessioon on lõppenud",
+    "app.error.500": "Oih, midagi läks valesti",
+    "app.error.leaveLabel": "Sisene uuesti",
+    "app.error.fallback.presentation.title": "Esines viga",
+    "app.error.fallback.presentation.description": "Viga on registreeritud. Palun proovi leht uuesti laadida.",
+    "app.error.fallback.presentation.reloadButton": "Laadi uuesti",
+    "app.guest.waiting": "Ootame ühendamiseks nõusolekut",
+    "app.userList.guest.waitingUsers": "Ootame kasutajaid",
+    "app.userList.guest.waitingUsersTitle": "Kasutajate haldus",
+    "app.userList.guest.optionTitle": "Vaata üle ootel olevad kasutajad",
+    "app.userList.guest.allowAllAuthenticated": "Luba kõik sisenenud kasutajad",
+    "app.userList.guest.allowAllGuests": "Luba kõik külalised",
+    "app.userList.guest.allowEveryone": "Luba kõik kasutajad",
+    "app.userList.guest.denyEveryone": "Keela kõik kasutajad",
+    "app.userList.guest.pendingUsers": "{0} ootel olevat kasutajat",
+    "app.userList.guest.pendingGuestUsers": "{0} ootel olevat külalist",
+    "app.userList.guest.pendingGuestAlert": "On liitunud sessiooniga ning ootab sinu nõusolekut.",
+    "app.userList.guest.rememberChoice": "Jäta valik meelde",
+    "app.user-info.title": "Otsi kataloogist",
+    "app.toast.breakoutRoomEnded": "Eraldatud ruum aegus. Palun ühendu uuesti audioga.",
+    "app.toast.chat.public": "Uus avalik sõnum",
+    "app.toast.chat.private": "Uus privaatne sõnum",
+    "app.toast.chat.system": "Süsteem",
+    "app.toast.clearedEmoji.label": "Emoji-staatus tühistatud",
+    "app.toast.setEmoji.label": "Emoji-staatus määratud: {0}",
+    "app.toast.meetingMuteOn.label": "Kõik kasutajad on vaigistatud",
+    "app.toast.meetingMuteOff.label": "Ruumi vaigistamine on välja lülitatud",
+    "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.userJoinPushAlert": "{0} liitus sessiooniga",
+    "app.shortcut-help.title": "Kiirklahvid",
+    "app.shortcut-help.accessKeyNotAvailable": "Juurdepääsuklahvid pole saadaval",
+    "app.shortcut-help.comboLabel": "Kombo",
+    "app.shortcut-help.functionLabel": "Funktsioon",
+    "app.shortcut-help.closeLabel": "Sulge",
+    "app.shortcut-help.closeDesc": "Sulgeb kiirklahvide akna",
+    "app.shortcut-help.openOptions": "Ava valikud",
+    "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.openActions": "Ava tegevustemenüü",
+    "app.shortcut-help.openStatus": "Ava staatusemenüü",
+    "app.shortcut-help.togglePan": "Aktiveeri liigutamistööriist (Esitleja)",
+    "app.shortcut-help.nextSlideDesc": "Järgmine slaid (Esitleja)",
+    "app.shortcut-help.previousSlideDesc": "Eelmine slaid (Esitleja)",
+    "app.lock-viewers.title": "Lukusta vaatajad",
+    "app.lock-viewers.description": "Need valikud võimaldavad keelata vaatajatel teatud võimalusi kasutada.",
+    "app.lock-viewers.featuresLable": "Võimalus",
+    "app.lock-viewers.lockStatusLabel": "Staatus",
+    "app.lock-viewers.webcamLabel": "Jaga veebikaamerat",
+    "app.lock-viewers.otherViewersWebcamLabel": "Näita teiste vaatajate veebikaameraid",
+    "app.lock-viewers.microphoneLable": "Jaga mikrofoni",
+    "app.lock-viewers.PublicChatLabel": "Saada avalikke sõnumeid",
+    "app.lock-viewers.PrivateChatLable": "Saada privaatseid sõnumeid",
+    "app.lock-viewers.notesLabel": "Muuda jagatud märkmeid",
+    "app.lock-viewers.userListLabel": "Näita teisi vaatajaid kasutajate nimekirjas",
+    "app.lock-viewers.ariaTitle": "Vaatajate seadete lukustamise aken",
+    "app.lock-viewers.button.apply": "Kinnita",
+    "app.lock-viewers.button.cancel": "Tühista",
+    "app.lock-viewers.locked": "Lukustatud",
+    "app.lock-viewers.unlocked": "Avatud",
+    "app.recording.startTitle": "Alusta salvestamist",
+    "app.recording.stopTitle": "Peata salvestamine",
+    "app.recording.resumeTitle": "Jätka salvestamist",
+    "app.recording.startDescription": "Salvestamise nuppu uuesti vajutades saad salvestamise peatada.",
+    "app.recording.stopDescription": "Kas oled kindel, et soovid salvestamise peatada? Salvestamise nuppu uuesti vajutades saad salvestamist jätkata.",
+    "app.videoPreview.cameraLabel": "Kaamera",
+    "app.videoPreview.profileLabel": "Kvaliteet",
+    "app.videoPreview.cancelLabel": "Tühista",
+    "app.videoPreview.closeLabel": "Sulge",
+    "app.videoPreview.findingWebcamsLabel": "Otsime veebikaameraid",
+    "app.videoPreview.startSharingLabel": "Alusta jagamist",
+    "app.videoPreview.webcamOptionLabel": "Vali veebikaamera",
+    "app.videoPreview.webcamPreviewLabel": "Veebikaamera eelvaade",
+    "app.videoPreview.webcamSettingsTitle": "Veebikaamera seaded",
+    "app.videoPreview.webcamNotFoundLabel": "Veebikaamerat ei leitud",
+    "app.videoPreview.profileNotFoundLabel": "Puudub toetatud kaameraprofiil",
+    "app.video.joinVideo": "Jaga veebikaamerat",
+    "app.video.leaveVideo": "Lõpeta veebikaamera jagamine",
+    "app.video.iceCandidateError": "Viga ICE kandidaadi lisamisel",
+    "app.video.iceConnectionStateError": "Ühendus ebaõnnestus (ICE viga 1107)",
+    "app.video.permissionError": "Viga veebikaamera jagamisel. Palun kontrolli õigusi",
+    "app.video.sharingError": "Viga veebikaamera jagamisel",
+    "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.mediaFlowTimeout1020": "Meedia ei saanud serveriga ühendust (viga 1020)",
+    "app.video.suggestWebcamLock": "Kas jõustada vaatajate veebikaamerate lukustamine?",
+    "app.video.suggestWebcamLockReason": "(see parandab sessiooni stabiilsust)",
+    "app.video.enable": "Luba",
+    "app.video.cancel": "Tühista",
+    "app.video.swapCam": "Vaheta",
+    "app.video.swapCamDesc": "vaheta veebikaamerate suunda",
+    "app.video.videoLocked": "Veebikaamerate jagamine on lukustatud",
+    "app.video.videoButtonDesc": "Jaga veebikaamerat",
+    "app.video.videoMenu": "Videomenüü",
+    "app.video.videoMenuDisabled": "Veebikaamera videomenüü on seadetes välja lülitatud",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Meediaserver ei vasta. Palun proovi hiljem uuesti (viga 2001)",
+    "app.sfu.mediaServerNoResources2002": "Meediaserveril ei ole vabu ressursse (viga 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Meediaserveri päringud aeguvad (viga 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Meediaserver ei saa koguda ühendusekandidaate (ICE viga 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Meediaserveriga ühendumine ebaõnnestus (ICE viga 2022)",
+    "app.sfu.mediaGenericError2200": "Meediaserver ei suutnud päringut töödelda (viga 2200)",
+    "app.sfu.invalidSdp2202":"Klient genereeris vigase meediapäringu (SDP viga 2202)",
+    "app.sfu.noAvailableCodec2203": "Server ei leidnud sobivat koodekit (viga 2203)",
+    "app.meeting.endNotification.ok.label": "Ok",
+    "app.whiteboard.annotations.poll": "Küsitluse tulemused avalikustati",
+    "app.whiteboard.toolbar.tools": "Tööriistad",
+    "app.whiteboard.toolbar.tools.hand": "Liiguta",
+    "app.whiteboard.toolbar.tools.pencil": "Pliiats",
+    "app.whiteboard.toolbar.tools.rectangle": "Ristkülik",
+    "app.whiteboard.toolbar.tools.triangle": "Kolmnurk",
+    "app.whiteboard.toolbar.tools.ellipse": "Ellips",
+    "app.whiteboard.toolbar.tools.line": "Joon",
+    "app.whiteboard.toolbar.tools.text": "Tekst",
+    "app.whiteboard.toolbar.thickness": "Joone paksus",
+    "app.whiteboard.toolbar.thicknessDisabled": "Joone paksus on välja lülitatud",
+    "app.whiteboard.toolbar.color": "Värvid",
+    "app.whiteboard.toolbar.colorDisabled": "Värvid on välja lülitatud",
+    "app.whiteboard.toolbar.color.black": "Must",
+    "app.whiteboard.toolbar.color.white": "Valge",
+    "app.whiteboard.toolbar.color.red": "Punane",
+    "app.whiteboard.toolbar.color.orange": "Oranž",
+    "app.whiteboard.toolbar.color.eletricLime": "Kollakasroheline",
+    "app.whiteboard.toolbar.color.lime": "Heleroheline",
+    "app.whiteboard.toolbar.color.cyan": "Tsüaansinine",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Dodgeri sinine",
+    "app.whiteboard.toolbar.color.blue": "Sinine",
+    "app.whiteboard.toolbar.color.violet": "Violetne",
+    "app.whiteboard.toolbar.color.magenta": "Magenta",
+    "app.whiteboard.toolbar.color.silver": "Hõbe",
+    "app.whiteboard.toolbar.undo": "Võta märge tagasi",
+    "app.whiteboard.toolbar.clear": "Kustuta kõik märkmed",
+    "app.whiteboard.toolbar.multiUserOn": "Lülita mitme kasutaja tahvel sisse",
+    "app.whiteboard.toolbar.multiUserOff": "Lülita mitme kasutaja tahvel välja",
+    "app.whiteboard.toolbar.fontSize": "Tekstisuuruste nimikiri",
+    "app.feedback.title": "Oled konverentsist välja logitud",
+    "app.feedback.subtitle": "Tahaksime teada, mida arvad BigBlueButtonist (vabatahtlik)",
+    "app.feedback.textarea": "Kuidas saaksime BigBlueButtonit paremaks muuta?",
+    "app.feedback.sendFeedback": "Saada tagasisidet",
+    "app.feedback.sendFeedbackDesc": "Saada tagasiside ning lahku sessioonist",
+    "app.videoDock.webcamFocusLabel": "Anna fookus",
+    "app.videoDock.webcamFocusDesc": "Anna valitud veebikaamerale fookus",
+    "app.videoDock.webcamUnfocusLabel": "Lõpeta fookus",
+    "app.videoDock.webcamUnfocusDesc": "Lõpeta valitud veebikaamera fookus",
+    "app.videoDock.autoplayBlockedDesc": "Vajame sinu luba, et näidata sulle teiste kasutajate veebikaameraid.",
+    "app.videoDock.autoplayAllowLabel": "Vaata veebikaameraid",
+    "app.invitation.title": "Eraldatud ruumi kutse",
+    "app.invitation.confirm": "Kutsu",
+    "app.createBreakoutRoom.title": "Eraldatud ruumid",
+    "app.createBreakoutRoom.ariaTitle": "Peida eraldatud ruumid",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Eraldatud ruumid {0}",
+    "app.createBreakoutRoom.generatingURL": "Genereerime URLi",
+    "app.createBreakoutRoom.generatedURL": "Genereeritud",
+    "app.createBreakoutRoom.duration": "Kestus {0}",
+    "app.createBreakoutRoom.room": "Ruum {0}",
+    "app.createBreakoutRoom.notAssigned": "Pole määratud ({0})",
+    "app.createBreakoutRoom.join": "Liitu ruumiga",
+    "app.createBreakoutRoom.joinAudio": "Liitu audioga",
+    "app.createBreakoutRoom.returnAudio": "Taasta audio",
+    "app.createBreakoutRoom.alreadyConnected": "Juba ruumis",
+    "app.createBreakoutRoom.confirm": "Loo",
+    "app.createBreakoutRoom.record": "Salvesta",
+    "app.createBreakoutRoom.numberOfRooms": "Ruumide arv",
+    "app.createBreakoutRoom.durationInMinutes": "Kestus (minutit)",
+    "app.createBreakoutRoom.randomlyAssign": "Jaota juhuslikult",
+    "app.createBreakoutRoom.endAllBreakouts": "Sulge kõik eraldatud ruumid",
+    "app.createBreakoutRoom.roomName": "{0} (Ruum - {1})",
+    "app.createBreakoutRoom.doneLabel": "Valmis",
+    "app.createBreakoutRoom.nextLabel": "Järgmine",
+    "app.createBreakoutRoom.minusRoomTime": "Vähenda eraldatud ruumi aega:",
+    "app.createBreakoutRoom.addRoomTime": "Suurenda eraldatud ruumi aega:",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Lisa osaleja",
+    "app.createBreakoutRoom.freeJoin": "Luba kasutajatel ise valida eraldatud ruum, millega liituda",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "Sa pead paigutama eraldatud ruumi vähemalt ühe kasutaja.",
+    "app.createBreakoutRoom.modalDesc": "Soovitus: kasutajate nimesid saab hiirega tirida soovitud eraldatud ruumidesse.",
+    "app.createBreakoutRoom.roomTime": "{0} minutit",
+    "app.createBreakoutRoom.numberOfRoomsError": "Ruumide arv ei sobi.",
+    "app.externalVideo.start": "Jaga uut videot",
+    "app.externalVideo.title": "Jaga välist videot",
+    "app.externalVideo.input": "Välise video URL",
+    "app.externalVideo.urlInput": "Lisa video URL",
+    "app.externalVideo.urlError": "Seda video URLi ei toetata",
+    "app.externalVideo.close": "Sulge",
+    "app.externalVideo.autoPlayWarning": "Käivita video, et meedia sünkroniseerimine aktiveerida",
+    "app.network.connection.effective.slow": "Märkasime, et ühendusega on probleeme.",
+    "app.network.connection.effective.slow.help": "Rohkem infot",
+    "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.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 3f15c495497e8689ce0893fc805bd8f05cb25df4..807ece2a237bb0973800604a88c306c9827b2efd 100644
--- a/bigbluebutton-html5/private/locales/eu.json
+++ b/bigbluebutton-html5/private/locales/eu.json
@@ -1,9 +1,9 @@
 {
     "app.home.greeting": "Zure aurkezpena laster hasiko da...",
     "app.chat.submitLabel": "Bidali mezua",
-    "app.chat.errorMinMessageLength": "Mezuak laburregia da, {0} karaktere faltan ditu",
     "app.chat.errorMaxMessageLength": "Mezua luzeegia da, {0} karaktere soberan ditu",
     "app.chat.disconnected": "Deskonektatuta zaude, mezuak ezin dira bidali",
+    "app.chat.locked": "Txata blokeatuta dago, mezuak ezin dira bidali",
     "app.chat.inputLabel": "Txatean {0} mezu sartu dira",
     "app.chat.inputPlaceholder": "Bidali mezua {0}-(r)i",
     "app.chat.titlePublic": "Txat publikoa",
@@ -11,15 +11,18 @@
     "app.chat.partnerDisconnected": "{0}-(e)k bilera utzi du",
     "app.chat.closeChatLabel": "Itxi {0}",
     "app.chat.hideChatLabel": "Ezkutatu {0}",
-    "app.chat.moreMessages": "Behean mezu gehiago",
-    "app.chat.dropdown.options": "Txat aukerak",
+    "app.chat.moreMessages": "Mezu gehiago behean",
+    "app.chat.dropdown.options": "Txataren aukerak",
     "app.chat.dropdown.clear": "Garbitu",
     "app.chat.dropdown.copy": "Kopiatu",
     "app.chat.dropdown.save": "Gorde",
     "app.chat.label": "Txata",
-    "app.chat.offline": "Lineatik kanpo",
+    "app.chat.offline": "Lineaz kanpo",
     "app.chat.emptyLogLabel": "Txataren erregistroa hutsik dago",
     "app.chat.clearPublicChatMessage": "Moderatzaile batek txat publikoaren historia garbitu du",
+    "app.chat.multi.typing": "Hainbat erabiltzaile idazten ari da",
+    "app.chat.one.typing": "{0} idazten ari da",
+    "app.chat.two.typing": "{0} eta {1} idazten ari dira",
     "app.captions.label": "Azpitituluak",
     "app.captions.menu.close": "Itxi",
     "app.captions.menu.start": "Hasi",
@@ -27,7 +30,7 @@
     "app.captions.menu.ariaStartDesc": "Azpitituluen editorea irekitzen du eta modala ixten du",
     "app.captions.menu.select": "Hautatu erabiltzeko hizkuntza ",
     "app.captions.menu.ariaSelect": "Azpitituluen hizkuntza",
-    "app.captions.menu.subtitle": "Hautatu hizkuntza eta estiloak zure saioko azpitituluetarako",
+    "app.captions.menu.subtitle": "Hautatu mesedez zure saioko azpitituluetarako hizkuntza eta estiloak ",
     "app.captions.menu.title": "Azpitituluak",
     "app.captions.menu.fontSize": "Tamaina",
     "app.captions.menu.fontColor": "Testuaren kolorea",
@@ -37,25 +40,25 @@
     "app.captions.menu.cancelLabel": "Utzi",
     "app.captions.pad.hide": "Ezkutatu azpitituluak",
     "app.captions.pad.tip": "Sakatu Esc edizioaren tresna-barra fokuratzeko",
-    "app.captions.pad.ownership": "Jabetu",
+    "app.captions.pad.ownership": "Jabetza hartu",
     "app.captions.pad.ownershipTooltip": "{0} azpitituluen jabetza hartuko duzu",
     "app.captions.pad.interimResult": "Behin-behineko emaitzak",
     "app.captions.pad.dictationStart": "Hasi diktaketa",
     "app.captions.pad.dictationStop": "Gelditu diktaketa",
     "app.captions.pad.dictationOnDesc": "Ahotsaren ezagutza aktibatzen du",
     "app.captions.pad.dictationOffDesc": "Ahotsaren ezagutza desaktibatzen du",
-    "app.note.title": "Ohar partekatuak",
+    "app.note.title": "Ohar Partekatuak",
     "app.note.label": "Oharra",
     "app.note.hideNoteLabel": "Ezkutatu oharra",
     "app.user.activityCheck": "Erabiltzailearen aktibitate-kontrola",
-    "app.user.activityCheck.label": "Begiratu erabiltzailea oraindik bileran dagoen ({0})",
-    "app.user.activityCheck.check": "Begiratu",
+    "app.user.activityCheck.label": "Egiaztatu erabiltzailea oraindik bileran dagoen ({0})",
+    "app.user.activityCheck.check": "Egiaztatu",
     "app.note.tipLabel": "Sakatu Esc edizioaren tresna-barra fokuratzeko",
     "app.userList.usersTitle": "Erabiltzaileak",
-    "app.userList.participantsTitle": "Parte hartzaileak",
+    "app.userList.participantsTitle": "Parte-hartzaileak",
     "app.userList.messagesTitle": "Mezuak",
     "app.userList.notesTitle": "Oharrak",
-    "app.userList.notesListItem.unreadContent": "Eduki berria dago ohar partekatuetan",
+    "app.userList.notesListItem.unreadContent": "Ohar partekatuetan eduki berria dago eskuragarri",
     "app.userList.captionsTitle": "Azpitituluak",
     "app.userList.presenter": "Aurkezlea",
     "app.userList.you": "Zu",
@@ -76,8 +79,8 @@
     "app.userList.menu.demoteUser.label": "Beheratu ikusle rolera",
     "app.userList.menu.unlockUser.label": "Desblokeatu {0}",
     "app.userList.menu.lockUser.label": "Blokeatu {0}",
-    "app.userList.menu.directoryLookup.label": "Direktorio bilatzea",
-    "app.userList.menu.makePresenter.label": "Hartu aurkezle rola",
+    "app.userList.menu.directoryLookup.label": "Direktorio Bilaketa",
+    "app.userList.menu.makePresenter.label": "Eman aurkezle rola",
     "app.userList.userOptions.manageUsersLabel": "Kudeatu erabiltzaileak",
     "app.userList.userOptions.muteAllLabel": "Isilarazi erabiltzaile guztiak",
     "app.userList.userOptions.muteAllDesc": "Isilarazi bilerako erabiltzaile guztiak",
@@ -86,35 +89,43 @@
     "app.userList.userOptions.muteAllExceptPresenterLabel": "Isilarazi erabiltzaile guztiak aurkezlea izan ezik",
     "app.userList.userOptions.muteAllExceptPresenterDesc": "Isilarazi bilerako erabiltzaile guztiak aurkezlea izan ezik",
     "app.userList.userOptions.unmuteAllLabel": "Itzali bilera isila",
-    "app.userList.userOptions.unmuteAllDesc": "Bilera isilarazten du",
+    "app.userList.userOptions.unmuteAllDesc": "Bilera isila desgaitzen du",
     "app.userList.userOptions.lockViewersLabel": "Blokeatu ikusleak",
     "app.userList.userOptions.lockViewersDesc": "Blokeatu bileraren parte-hartzaileentzako zenbait funtzionalitate",
     "app.userList.userOptions.disableCam": "Ikusleen web-kamerak desgaituta daude",
     "app.userList.userOptions.disableMic": "Ikusleen mikrofonoak desgaituta daude",
     "app.userList.userOptions.disablePrivChat": "Txat pribatua desgaituta dago",
     "app.userList.userOptions.disablePubChat": "Txat publikoa desgaituta dago",
-    "app.userList.userOptions.disableNote": "Partekatutako oharrak blokeatuta daude orain",
+    "app.userList.userOptions.disableNote": "Ohar partekatuak blokeatuta daude orain",
+    "app.userList.userOptions.hideUserList": "Erabiltzaileen zerrenda ezkutuan dago ikusleentzat",
     "app.userList.userOptions.webcamsOnlyForModerator": "Moderatzaileek soilik ikus ditzakete ikusleen web-kamerak (blokeo ezarpenak direla medio)",
-    "app.userList.content.participants.options.clearedStatus": "Garbitu erabiltzaileen estatus guztiak",
-    "app.userList.userOptions.enableCam": "Ikusleen web-kamerak aktibo daude",
-    "app.userList.userOptions.enableMic": "Ikusleen mikrofonoak aktibo daude",
-    "app.userList.userOptions.enablePrivChat": "Txat pribatua aktibo dago",
-    "app.userList.userOptions.enablePubChat": "Txat publikoa aktibo dago",
-    "app.userList.userOptions.enableNote": "Partekatutako oharrak aktibo daude orain",
-    "app.userList.userOptions.enableOnlyModeratorWebcam": "Zure web-kamera aktiba dezakezu orain, edonork ikusiko zaitu",
+    "app.userList.content.participants.options.clearedStatus": "Garbitu erabiltzaileen egoera guztiak",
+    "app.userList.userOptions.enableCam": "Ikusleen web-kamerak gaituta daude",
+    "app.userList.userOptions.enableMic": "Ikusleen mikrofonoak gaituta daude",
+    "app.userList.userOptions.enablePrivChat": "Txat pribatua gaituta dago",
+    "app.userList.userOptions.enablePubChat": "Txat publikoa gaituta dago",
+    "app.userList.userOptions.enableNote": "Ohar partekatuak gaituta daude orain",
+    "app.userList.userOptions.showUserList": "Erabiltzaileen zerrenda ikusgai dago ikusleentzat",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Zure web-kamera piztu dezakezu orain, edonork ikusiko zaitu",
     "app.media.label": "Multimedia",
+    "app.media.autoplayAlertDesc": "Baimendu sartzea",
     "app.media.screenshare.start": "Pantaila partekatzea hasi da",
     "app.media.screenshare.end": "Pantaila partekatzea bukatu da",
-    "app.media.screenshare.safariNotSupported": "Safarik ez du pantaila partekatzea onartzen. Erabili Firefox edo Google Chrome.",
-    "app.meeting.ended": "Saioa bukatu da.",
-    "app.meeting.meetingTimeRemaining": "Bileran geratzen den denbora: {0}",
-    "app.meeting.meetingTimeHasEnded": "Denbora agortu da. Bilera itxiko da laster.",
+    "app.media.screenshare.autoplayBlockedDesc": "Zure baimena behar dugu aurkezlearen pantaila zuri erakusteko.",
+    "app.media.screenshare.autoplayAllowLabel": "Ikusi partekatutako pantaila",
+    "app.screenshare.notAllowed": "Errorea: Pantailan sartzeko baimena ez da eman.",
+    "app.screenshare.notSupportedError": "Errorea: pantaila partekatzea soilik domeinu seguruetan (SSL) onartzen da ",
+    "app.screenshare.notReadableError": "Errorea: zure pantailaren argazkia egiteak huts egin du",
+    "app.screenshare.genericError": "Errore bat gertatu da pantaila partekatzean, saiatu berriro.",
+    "app.meeting.ended": "Saio hau bukatu da.",
+    "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": "Taldeko bilera minutu batean itxiko da.",
+    "app.meeting.alertBreakoutEndsUnderOneMinute": "Banatze-taldeko bilera minutu batean itxiko da.",
     "app.presentation.hide": "Ezkutatu aurkezpena",
     "app.presentation.notificationLabel": "Uneko aurkezpena",
-    "app.presentation.slideContent": "Diapositiba edukia",
+    "app.presentation.slideContent": "Diapositiba aurkezpena",
     "app.presentation.startSlideContent": "Diapositiba aurkezpenaren hasiera",
     "app.presentation.endSlideContent": "Diapositiba aurkezpenaren bukaera",
     "app.presentation.emptySlideContent": "Uneko diapositibak ez du edukirik",
@@ -135,34 +146,41 @@
     "app.presentation.presentationToolbar.zoomDesc": "Aldatu aurkezpenaren zoom-maila",
     "app.presentation.presentationToolbar.zoomInLabel": "Hurbildu",
     "app.presentation.presentationToolbar.zoomInDesc": "Hurbildu aurkezpenera",
-    "app.presentation.presentationToolbar.zoomOutLabel": "Urrutiratu",
-    "app.presentation.presentationToolbar.zoomOutDesc": "Urrutiratu aurkezpenetik",
-    "app.presentation.presentationToolbar.zoomReset": "Berrezarri zooma ",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Urrundu",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Urrundu aurkezpenetik",
+    "app.presentation.presentationToolbar.zoomReset": "Berrabiarazi zooma ",
     "app.presentation.presentationToolbar.zoomIndicator": "Uneko zooma ehunekotan",
     "app.presentation.presentationToolbar.fitToWidth": "Doitu zabalera",
     "app.presentation.presentationToolbar.fitToPage": "Doitu orrira",
     "app.presentation.presentationToolbar.goToSlide": "{0}. diapositiba",
     "app.presentationUploder.title": "Aurkezpena",
-    "app.presentationUploder.uploadLabel": "Kargatu",
+    "app.presentationUploder.message": "Aurkezle gisa edozein bulegoko dokumentu edo PDF fitxategi igotzeko gaitasuna duzu. Emaitzarik onena lortzeko PDF fitxategia gomendatzen dugu. Ziurtatu ezazu aurkezpena hautatuta dagoela eskuinean dagoen kontrol-zirkulua erabiliz.",
+    "app.presentationUploder.uploadLabel": "Igo",
     "app.presentationUploder.confirmLabel": "Berretsi",
     "app.presentationUploder.confirmDesc": "Gorde aldaketak eta hasi aurkezpena",
     "app.presentationUploder.dismissLabel": "Utzi",
     "app.presentationUploder.dismissDesc": "Itxi leihoa eta baztertu aldaketak",
-    "app.presentationUploder.dropzoneLabel": "Arrastatu hona fitxategiak kargatzeko",
-    "app.presentationUploder.dropzoneImagesLabel": "Arrastatu hona irudiak kargatzeko",
+    "app.presentationUploder.dropzoneLabel": "Arrastatu hona fitxategiak igotzeko",
+    "app.presentationUploder.dropzoneImagesLabel": "Arrastatu hona irudiak igotzeko",
     "app.presentationUploder.browseFilesLabel": "edo arakatu fitxategiak",
     "app.presentationUploder.browseImagesLabel": "edo arakatu/kapturatu irudiak",
-    "app.presentationUploder.fileToUpload": "Kargatzeko ...",
+    "app.presentationUploder.fileToUpload": "Igotzeko...",
     "app.presentationUploder.currentBadge": "Unekoa",
     "app.presentationUploder.rejectedError": "Hautatutako fitxategia(k) baztertu egin d(ir)a. Egiaztatu fitxategi mota(k).",
-    "app.presentationUploder.upload.progress": "Kargatzen (%{0})",
-    "app.presentationUploder.conversion.conversionProcessingSlides": "{1} orritatik {0} prozesatzen",
+    "app.presentationUploder.upload.progress": "Igotzen (%{0})",
+    "app.presentationUploder.upload.413": "Fitxategia handiegia da. Hainbat fitxategitan zatitu ezazu mesedez.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "{1} orrietatik {0}.a prozesatzen",
     "app.presentationUploder.conversion.genericConversionStatus": "Fitxategia bihurtzen...",
     "app.presentationUploder.conversion.generatingThumbnail": "Miniaturak sortzen...",
     "app.presentationUploder.conversion.generatedSlides": "Diapositiba sortuak...",
     "app.presentationUploder.conversion.generatingSvg": "SVG irudiak sortzen...",
-    "app.presentationUploder.conversion.timeout": "Ops, bihurketa gehiegi luzatu da",
-    "app.presentationUploder.isDownloadableLabel": "Ez eman baimenik aurkezpena deskargatzeko",
+    "app.presentationUploder.conversion.pageCountExceeded": "Orrialde kopurua gainditu da. Fitxategia zatitu ezazu mesedez hainbat fitxategitan.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Ezin izan da bulegoko dokumentua prozesatu. Igo PDF bat horren ordez.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Ezin izan da bulegoko dokumentua prozesatu. Igo PDF bat horren ordez.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Ezin izan dugu PDF fitxategia bihurtu, saiatu optimizatzen",
+    "app.presentationUploder.conversion.timeout": "Ups, bihurketa gehiegi luzatu da",
+    "app.presentationUploder.conversion.pageCountFailed": "Orri kopurua zehazteak huts egin du ",
+    "app.presentationUploder.isDownloadableLabel": "Ez baimendu aurkezpena deskargatzea",
     "app.presentationUploder.isNotDownloadableLabel": "Baimena eman aurkezpena deskargatzeko",
     "app.presentationUploder.removePresentationLabel": "Kendu aurkezpena",
     "app.presentationUploder.setAsCurrentPresentation": "Ezarri uneko aurkezpen gisa",
@@ -176,17 +194,18 @@
     "app.poll.quickPollInstruction": "Hautatu beheko aukeretako bat zure inkesta hasteko.",
     "app.poll.customPollLabel": "Inkesta pertsonalizatua",
     "app.poll.startCustomLabel": "Hasi inkesta pertsonalizatua",
+    "app.poll.activePollInstruction": "Utzi panela hau irekita zure inkestari emandako erantzunak ikusteko. Prest zaudenean, hautatu 'Argitaratu inkesten emaitzak' emaitzak argitaratzeko eta inkesta amaitzeko.",
     "app.poll.publishLabel": "Argitaratu inkestaren emaitzak",
     "app.poll.backLabel": "Atzera jo inkestaren aukeretara",
     "app.poll.closeLabel": "Itxi",
-    "app.poll.waitingLabel": "Erantzunen zain ({0}/{1})",
+    "app.poll.waitingLabel": "Erantzunen zain ({1}/{0})",
     "app.poll.ariaInputCount": "Inkesta pertsonalizatuaren aukera {1}tik {0}",
     "app.poll.customPlaceholder": "Gehitu inkesta aukera",
-    "app.poll.noPresentationSelected": "Ez da aurkezpenik hautatu. Hautatu bat, mesedez.",
+    "app.poll.noPresentationSelected": "Ez da aurkezpenik hautatu! Hautatu bat, mesedez.",
     "app.poll.clickHereToSelect": "Egin klik hemen hautatzeko",
     "app.poll.t": "Egia",
-    "app.poll.f": "Faltsua",
-    "app.poll.tf": "Egia / Faltsua",
+    "app.poll.f": "Gezurra",
+    "app.poll.tf": "Egia / Gezurra",
     "app.poll.y": "Bai",
     "app.poll.n": "Ez",
     "app.poll.yn": "Bai / Ez",
@@ -195,7 +214,7 @@
     "app.poll.a4": "A / B / C / D",
     "app.poll.a5": "A / B / C / D / E",
     "app.poll.answer.true": "Egia",
-    "app.poll.answer.false": "Faltsua",
+    "app.poll.answer.false": "Gezurra",
     "app.poll.answer.yes": "Bai",
     "app.poll.answer.no": "Ez",
     "app.poll.answer.a": "A",
@@ -206,12 +225,12 @@
     "app.poll.liveResult.usersTitle": "Erabiltzaileak",
     "app.poll.liveResult.responsesTitle": "Erantzuna",
     "app.polling.pollingTitle": "Inkestaren aukerak",
-    "app.polling.pollAnswerLabel": "Inkestaren erantzunak {0}",
+    "app.polling.pollAnswerLabel": "Inkestaren erantzuna {0}",
     "app.polling.pollAnswerDesc": "Hautatu aukera hau {0} bozkatzeko",
-    "app.failedMessage": "Barkatu, zerbitzarira konektatzeko arazoak.",
-    "app.downloadPresentationButton.label": "Deskargatu jatorrizko aurkezpena",
+    "app.failedMessage": "Barkatu, zerbitzarira konektatzeko arazoak daude.",
+    "app.downloadPresentationButton.label": "Jaitsi jatorrizko aurkezpena",
     "app.connectingMessage": "Konektatzen...",
-    "app.waitingMessage": "Deskonektatuta. Saiatu berriro konektatzen {0} segundotan...",
+    "app.waitingMessage": "Deskonektatuta. Berriro konektatzeko saiakera egingo da {0} segundotan...",
     "app.retryNow": "Saiatu berriro orain",
     "app.navBar.settingsDropdown.optionsLabel": "Aukerak",
     "app.navBar.settingsDropdown.fullscreenLabel": "Bistaratu pantaila osoan",
@@ -221,21 +240,22 @@
     "app.navBar.settingsDropdown.exitFullscreenLabel": "Irten pantaila osotik",
     "app.navBar.settingsDropdown.fullscreenDesc": "Bistaratu ezarpenen menua pantaila osoan",
     "app.navBar.settingsDropdown.settingsDesc": "Aldatu ezarpen orokorrak",
-    "app.navBar.settingsDropdown.aboutDesc": "Bistaratu bezeroaren gaineko informazioa",
+    "app.navBar.settingsDropdown.aboutDesc": "Erakutsi bezeroaren gaineko informazioa",
     "app.navBar.settingsDropdown.leaveSessionDesc": "Irten bileratik",
     "app.navBar.settingsDropdown.exitFullscreenDesc": "Irten pantaila osotik",
     "app.navBar.settingsDropdown.hotkeysLabel": "Laster-teklak",
     "app.navBar.settingsDropdown.hotkeysDesc": "Laster-teklen zerrenda",
     "app.navBar.settingsDropdown.helpLabel": "Laguntza",
-    "app.navBar.settingsDropdown.helpDesc": "Bideo-tutorialak eskaintzen dizkio erabiltzaileari (fitxa berri batean)",
+    "app.navBar.settingsDropdown.helpDesc": "Bideo-tutorialak eskaintzen dizkio erabiltzaileari (fitxa berri bat irekitzen du)",
     "app.navBar.settingsDropdown.endMeetingDesc": "Uneko bilera amaitzen du",
     "app.navBar.settingsDropdown.endMeetingLabel": "Amaitu bilera",
     "app.navBar.userListToggleBtnLabel": "Bistaratu erabiltzaileen zerrenda",
     "app.navBar.toggleUserList.ariaLabel": "Bistaratu erabiltzaileak eta mezuak",
-    "app.navBar.toggleUserList.newMessages": "mezu berriaren jakinarazpenarekin",
-    "app.navBar.recording": "Saioa grabatuko da",
+    "app.navBar.toggleUserList.newMessages": "mezu berrien jakinarazpenekin",
+    "app.navBar.recording": "Saioa grabatzen ari da",
     "app.navBar.recording.on": "Grabatzen",
-    "app.navBar.recording.off": "Grabatu gabe",
+    "app.navBar.recording.off": "Ez da grabatzen ari",
+    "app.navBar.emptyAudioBrdige": "Ez dago mikrofono aktiborik. Partekatu zure mikrofonoa grabazio honi audioa gehitzeko.",
     "app.leaveConfirmation.confirmLabel": "Irten",
     "app.leaveConfirmation.confirmDesc": "Bileratik kanporatzen zaitu",
     "app.endMeeting.title": "Amaitu bilera",
@@ -243,7 +263,7 @@
     "app.endMeeting.yesLabel": "Bai",
     "app.endMeeting.noLabel": "Ez",
     "app.about.title": "Honi buruz",
-    "app.about.version": "Bezeroaren eraikuntza:",
+    "app.about.version": "Bezeroaren bertsioa:",
     "app.about.copyright": "Copyright:",
     "app.about.confirmLabel": "Ados",
     "app.about.confirmDesc": "Ados",
@@ -262,55 +282,60 @@
     "app.submenu.application.animationsLabel": "Animazioak",
     "app.submenu.application.audioAlertLabel": "Txataren audio-alarmak",
     "app.submenu.application.pushAlertLabel": "Txataren jakinarazpen-alarmak",
+    "app.submenu.application.userJoinAudioAlertLabel": "Audio alerta erabiltzailea sartzean",
+    "app.submenu.application.userJoinPushAlertLabel": "Alerta ireki erabiltzailea sartzean",
     "app.submenu.application.fontSizeControlLabel": "Letra tamaina",
-    "app.submenu.application.increaseFontBtnLabel": "Handiagotu aplikazioaren letra",
-    "app.submenu.application.decreaseFontBtnLabel": "Txikiagotu aplikazioaren letra",
-    "app.submenu.application.currentSize": "une honetan {0}",
+    "app.submenu.application.increaseFontBtnLabel": "Handitu aplikazioaren letra",
+    "app.submenu.application.decreaseFontBtnLabel": "Txikitu aplikazioaren letra",
+    "app.submenu.application.currentSize": "{0} une honetan",
     "app.submenu.application.languageLabel": "Aplikazioaren hizkuntza",
     "app.submenu.application.languageOptionLabel": "Aukeratu hizkuntza",
     "app.submenu.application.noLocaleOptionLabel": "Ez dago lokal aktiborik",
-    "app.submenu.audio.micSourceLabel": "Mikrofono iturria",
-    "app.submenu.audio.speakerSourceLabel": "Bozgorailuen iturria",
+    "app.submenu.audio.micSourceLabel": "Mikrofonoaren jatorria",
+    "app.submenu.audio.speakerSourceLabel": "Bozgorailuen jatorria",
     "app.submenu.audio.streamVolumeLabel": "Zure audioaren bolumena",
     "app.submenu.video.title": "Bideoa",
-    "app.submenu.video.videoSourceLabel": "Ikuspen-iturria",
-    "app.submenu.video.videoOptionLabel": "Aukeratu ikuspen-iturria",
-    "app.submenu.video.videoQualityLabel": "Bideo kalitatea",
-    "app.submenu.video.qualityOptionLabel": "Aukeratu bideo kalitatea",
-    "app.submenu.video.participantsCamLabel": "Parte-hartzaileen web-kamerak ikustea",
+    "app.submenu.video.videoSourceLabel": "Bideoaren jatorria",
+    "app.submenu.video.videoOptionLabel": "Aukeratu bideoaren jatorria",
+    "app.submenu.video.videoQualityLabel": "Bideoaren kalitatea",
+    "app.submenu.video.qualityOptionLabel": "Aukeratu bideoaren kalitatea",
+    "app.submenu.video.participantsCamLabel": "Parte-hartzaileen web-kamerak ikusten",
     "app.settings.applicationTab.label": "Aplikazioa",
     "app.settings.audioTab.label": "Audioa",
     "app.settings.videoTab.label": "Bideoa",
-    "app.settings.usersTab.label": "Parte hartzaileak",
+    "app.settings.usersTab.label": "Parte-hartzaileak",
     "app.settings.main.label": "Ezarpenak",
     "app.settings.main.cancel.label": "Utzi",
     "app.settings.main.cancel.label.description": "Baztertu aldaketak eta itxi ezarpenen menua",
     "app.settings.main.save.label": "Gorde",
     "app.settings.main.save.label.description": "Gorde aldaketak eta itxi ezarpenen menua",
-    "app.settings.dataSavingTab.label": "Datuak gordetzen",
+    "app.settings.dataSavingTab.label": "Datu-aurrezketa",
     "app.settings.dataSavingTab.webcam": "Gaitu web-kamerak",
     "app.settings.dataSavingTab.screenShare": "Gaitu mahaigaina partekatzea",
-    "app.settings.dataSavingTab.description": "Zure banda zabalera gordetzeko, doitu une honetan bistaratzen dena.",
+    "app.settings.dataSavingTab.description": "Zure banda zabalera aurrezteko, doitu ezazu une honetan erakusten dena.",
     "app.settings.save-notification.label": "Ezarpenak gorde dira",
     "app.switch.onLabel": "PIZTU",
     "app.switch.offLabel": "ITZALI",
+    "app.talkingIndicator.ariaMuteDesc" : "Aukeratu erabiltzailea isilarazteko",
+    "app.talkingIndicator.isTalking" : "{0} hitz egiten ari da",
+    "app.talkingIndicator.wasTalking" : "{0}-(e)k hitz egiteari utzi dio",
     "app.actionsBar.actionsDropdown.actionsLabel": "Ekintzak",
-    "app.actionsBar.actionsDropdown.presentationLabel": "Kargatu aurkezpen bat",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Igo aurkezpen bat",
     "app.actionsBar.actionsDropdown.initPollLabel": "Hasi inkesta bat",
     "app.actionsBar.actionsDropdown.desktopShareLabel": "Partekatu zure pantaila",
     "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Pantailaren partekatzea blokeatuta dago",
-    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Gelditu pantaila partekatzen",
-    "app.actionsBar.actionsDropdown.presentationDesc": "Kargatu zure aurkezpena",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Gelditu pantailaren partekatzea",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Igo zure aurkezpena",
     "app.actionsBar.actionsDropdown.initPollDesc": "Hasi inkesta bat",
     "app.actionsBar.actionsDropdown.desktopShareDesc": "Partekatu zure pantaila besteekin",
-    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Gelditu pantaila partekatzen",
-    "app.actionsBar.actionsDropdown.pollBtnLabel": "Hasi inkesta",
-    "app.actionsBar.actionsDropdown.pollBtnDesc": "Aldatzen du inkesten panela",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Gelditu pantailaren partekatzea",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "Hasi inkesta bat",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Bistaratu inkesten panela",
     "app.actionsBar.actionsDropdown.saveUserNames": "Gorde erabiltzaileen izenak",
-    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Sortu taldeen gelak",
-    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "sortu taldeak  uneko bilera zatitzeko",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Sortu banatze-taldeen gelak",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "sortu banatze-taldeak uneko bilera zatitzeko",
     "app.actionsBar.actionsDropdown.captionsLabel": "Idatzi azpitituluak",
-    "app.actionsBar.actionsDropdown.captionsDesc": "Aldatzen du azpitituluen panoramika",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Bistaratu azpitituluen panoramika",
     "app.actionsBar.actionsDropdown.takePresenter": "Hartu aurkezle rola",
     "app.actionsBar.actionsDropdown.takePresenterDesc": "Zure burua aurkezle berria izendatu",
     "app.actionsBar.emojiMenu.statusTriggerLabel": "Ezarri egoera",
@@ -319,7 +344,7 @@
     "app.actionsBar.emojiMenu.raiseHandLabel": "Altxatu eskua",
     "app.actionsBar.emojiMenu.raiseHandDesc": "Altxatu eskua hitza eskatzeko",
     "app.actionsBar.emojiMenu.neutralLabel": "Zalantzan",
-    "app.actionsBar.emojiMenu.neutralDesc": "Ezarri zure egoera: zalantzan",
+    "app.actionsBar.emojiMenu.neutralDesc": "Aldatu zure egoera: zalantzan",
     "app.actionsBar.emojiMenu.confusedLabel": "Nahastuta",
     "app.actionsBar.emojiMenu.confusedDesc": "Aldatu zure egoera: nahastuta",
     "app.actionsBar.emojiMenu.sadLabel": "Tristea",
@@ -337,40 +362,40 @@
     "app.actionsBar.currentStatusDesc": "Uneko egoera {0}",
     "app.actionsBar.captions.start": "Hasi azpitituluak ikusten",
     "app.actionsBar.captions.stop": "Gelditu azpitituluak ikusten",
-    "app.audioNotification.audioFailedError1001": "1001 errorea: websocket deskonektatuta",
-    "app.audioNotification.audioFailedError1002": "1002 errorea: Ezin izan da websocket konexioa egin",
-    "app.audioNotification.audioFailedError1003": "1003 errorea: ez da onartzen nabigatzailearen bertsioa",
-    "app.audioNotification.audioFailedError1004": "1004 errorea: hutsegitea deian  (arrazoia={0})",
-    "app.audioNotification.audioFailedError1005": "1005 errorea: ustekabeko deiaren etena",
-    "app.audioNotification.audioFailedError1006": "1006 errorea: Deiak denbora gainditu du",
-    "app.audioNotification.audioFailedError1007": "1007 errorea: ICE negoziazioak huts egin du",
-    "app.audioNotification.audioFailedError1008": "1008 errorea: transferentzia akatza",
-    "app.audioNotification.audioFailedError1009": "1009 errorea: STUN/TURN zerbitzariko informazioa ezin izan da berreskuratu",
-    "app.audioNotification.audioFailedError1010": "1010 errorea: ICE negoziazio denbora gainditu da",
-    "app.audioNotification.audioFailedError1011": "1011 errorea: elkarketaren denbora muga gainditu da",
-    "app.audioNotification.audioFailedError1012": "1012 errorea: ICE konexioa itxita",
+    "app.audioNotification.audioFailedError1001": "Websocket deskonektatuta (1001 errorea)",
+    "app.audioNotification.audioFailedError1002": "Ezin izan da Websocket konexioa egin (1002 errorea)",
+    "app.audioNotification.audioFailedError1003": "Ez da onartzen nabigatzailearen bertsioa (1003 errorea)",
+    "app.audioNotification.audioFailedError1004": "Hutsegitea deian  (arrazoia={0}) (1004 errorea)",
+    "app.audioNotification.audioFailedError1005": "Ustekabeko etena deian (1005 errorea)",
+    "app.audioNotification.audioFailedError1006": "Deiaren denbora-muga agortu da (1006 errorea)",
+    "app.audioNotification.audioFailedError1007": "Konexioaren hutsegitea (1007 errorea)",
+    "app.audioNotification.audioFailedError1008": "Transferentziak huts egin du (1008 errorea)",
+    "app.audioNotification.audioFailedError1009": "Ezin izan da STUN/TURN zerbitzariaren informazioa eskuratu (1009 errorea)",
+    "app.audioNotification.audioFailedError1010": "Konexioaren negoziazio-denbora agortu da (1010 ICE errorea)",
+    "app.audioNotification.audioFailedError1011": "Konexioaren denbora agortu da (1011 ICE errorea)",
+    "app.audioNotification.audioFailedError1012": "Konexioa itxi da (1012 ICE errorea)",
     "app.audioNotification.audioFailedMessage": "Zure audio konexioak huts egin du",
     "app.audioNotification.mediaFailedMessage": "getUserMicMediak huts egin du jatorri seguruak soilik onartzen baitira",
     "app.audioNotification.closeLabel": "Itxi",
     "app.audioNotificaion.reconnectingAsListenOnly": "Ikusleek mikrofonoak blokeatuta dituzte, soilik entzuteko moduan konektatzen ari zara",
-    "app.breakoutJoinConfirmation.title": "Sartu taldeko gelan",
+    "app.breakoutJoinConfirmation.title": "Sartu banatze-taldeko gelan",
     "app.breakoutJoinConfirmation.message": "Sartu nahi duzu",
-    "app.breakoutJoinConfirmation.confirmDesc": "Sartu taldeko gelan",
+    "app.breakoutJoinConfirmation.confirmDesc": "Sartu banatze-taldeko gelan",
     "app.breakoutJoinConfirmation.dismissLabel": "Utzi",
-    "app.breakoutJoinConfirmation.dismissDesc": "Itxi eta uko egiten dio taldeko gelan sartzeari",
-    "app.breakoutJoinConfirmation.freeJoinMessage": "Aukeratu taldeko gela bat sartzeko",
-    "app.breakoutTimeRemainingMessage": "Taldeko gelari geratzen zaion denbora: {0}",
-    "app.breakoutWillCloseMessage": "Denbora agortu da. Taldeko gela laster itxiko da",
+    "app.breakoutJoinConfirmation.dismissDesc": "Itxi eta uko egiten dio banatze-taldeko gelan sartzeari",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Aukeratu banatze-talde bateko gela bertara sartzeko",
+    "app.breakoutTimeRemainingMessage": "Banatze-taldeko gelari geratzen zaion denbora: {0}",
+    "app.breakoutWillCloseMessage": "Denbora agortu da. Banatze-taldeko gela laster itxiko da",
     "app.calculatingBreakoutTimeRemaining": "Geratzen den denbora kalkulatzen...",
     "app.audioModal.ariaTitle": "Erabili audio modala",
     "app.audioModal.microphoneLabel": "Mikrofonoa",
     "app.audioModal.listenOnlyLabel": "Entzuteko soilik",
     "app.audioModal.audioChoiceLabel": "Nola erabili nahi duzu audioa?",
     "app.audioModal.iOSBrowser": "Audioa/Bideoa ez onartua",
-    "app.audioModal.iOSErrorDescription": "Une honetan IOSentzako Chromek ez du onartzen audioa eta bideoa",
-    "app.audioModal.iOSErrorRecommendation": "Gomendatzen dugu Safari erabiltzea.",
+    "app.audioModal.iOSErrorDescription": "Une honetan iOSerako Chromek ez du audioa eta bideoa onartzen.",
+    "app.audioModal.iOSErrorRecommendation": "iOSerako Safari erabiltzea gomendatzen dugu.",
     "app.audioModal.audioChoiceDesc": "Aukeratu nola erabili audioa bilera honetan",
-    "app.audioModal.unsupportedBrowserLabel": "Ematen du erabiltzen ari zarela guztiz onartua ez dagoen nabigatzaile bat. Erabili {0} edo {1} erabateko onarpenerako.",
+    "app.audioModal.unsupportedBrowserLabel": "Guztiz sostengatua ez dagoen nabigatzaile bat erabiltzen ari zarela dirudi. Erabili {0} edo {1} erabateko sostengua izateko.",
     "app.audioModal.closeLabel": "Itxi",
     "app.audioModal.yes": "Bai",
     "app.audioModal.no": "Ez",
@@ -379,64 +404,69 @@
     "app.audioModal.echoTestTitle": "Hau oihartzun proba pribatu bat da. Esan zenbait hitz. Entzun duzu audioa?",
     "app.audioModal.settingsTitle": "Aldatu zure audio-ezarpenak",
     "app.audioModal.helpTitle": "Arazo bat dago zure multimedia gailuekin",
-    "app.audioModal.helpText": "Baimena ematen duzu zure mikrofonoa erabiltzeko? Kontuan izan audioa erabili nahi duzunean gailua erabiltzeko baimena agertuko zaizula, onar ezazu audio konferentzian sartzeko. Hori gertatzen ez bada saia zaitez aldatzen mikrofonoaren baimenak zure nabigatzailearen ezarpenetan.",
+    "app.audioModal.helpText": "Baimena ematen duzu zure mikrofonoa erabiltzeko? Kontuan izan audioa erabili nahi duzunean gailua erabiltzeko baimena eskatzeko mezua agertuko zaizula, onar ezazu audio konferentzian sartzeko. Hori gertatzen ez bada saiatu zure nabigatzailearen ezarpenetan zaitez mikrofonoaren baimenak aldatzen.",
+    "app.audioModal.help.noSSL": "Orria hau ez da segurua. Mikrofonoaren erabilera baimentzeko, orria HTTPS bidez bideratu behar da. Jarri harremanetan zerbitzariaren kudeatzailearekin.",
+    "app.audioModal.help.macNotAllowed": "Dirudienez, zure Mac Sistemaren hobespenek mikrofonoa erabiltzea blokeatzen dute. Ireki Sistemaren hobespenak > Segurtasuna eta pribatutasuna > Pribatutasuna > Mikrofonoa, eta egiaztatu ezazu erabiltzen ari zaren nabigatzailea markatuta dagoela.",
     "app.audioModal.audioDialTitle": "Sartu telefonoa erabiliz",
     "app.audioDial.audioDialDescription": "Markatu",
     "app.audioDial.audioDialConfrenceText": "eta sartu konferentziaren PIN zenbakia:",
+    "app.audioModal.autoplayBlockedDesc": "Audioa erreproduzitzeko zure baimena behar dugu.",
+    "app.audioModal.playAudio": "Erreproduzitu audioa",
+    "app.audioModal.playAudio.arialabel" : "Erreproduzitu audioa",
     "app.audioDial.tipIndicator": "Aholkua",
-    "app.audioDial.tipMessage": "Sakatu zure telefonoko '0' tekla isiltzeko/ez isiltzeko zure ahotsa",
+    "app.audioDial.tipMessage": "Sakatu zure telefonoko '0' tekla zure ahotsa isiltzeko eta berriz aktibatzeko.",
     "app.audioModal.connecting": "Konektatzen",
-    "app.audioModal.connectingEchoTest": "Konektatzen oihartzun probara",
-    "app.audioManager.joinedAudio": "Sartu zara audio konferentzian",
-    "app.audioManager.joinedEcho": "Sartu zara oihartzun proban",
-    "app.audioManager.leftAudio": "Utzi duzu audio konferentzia",
-    "app.audioManager.reconnectingAudio": "Saiatzen audioa berriro konektatzen",
+    "app.audioModal.connectingEchoTest": "Oihartzun probara konektatzen",
+    "app.audioManager.joinedAudio": "Audio konferentzian sartu zara",
+    "app.audioManager.joinedEcho": "Oihartzun proban sartu zara",
+    "app.audioManager.leftAudio": "Audio konferentzia utzi duzu",
+    "app.audioManager.reconnectingAudio": "Audioa berriro konektatzen saiatzen",
     "app.audioManager.genericError": "Errorea: errore bat gertatu da, saiatu berriro",
     "app.audioManager.connectionError": "Errorea: Konexio errorea",
     "app.audioManager.requestTimeout": "Errorea: Eskaeraren denbora-muga gainditu da",
-    "app.audioManager.invalidTarget": "Errorea: Saiatu zara zerbait eskatzen okerrekoari",
+    "app.audioManager.invalidTarget": "Errorea: helburu baliogabe bati zerbait eskatzen saiatu zara",
     "app.audioManager.mediaError": "Errorea: Arazo bat egon da zure multimedia gailuekin",
-    "app.audio.joinAudio": "Sartu audioa",
-    "app.audio.leaveAudio": "Utzi audioa",
+    "app.audio.joinAudio": "Piztu audioa",
+    "app.audio.leaveAudio": "Isilarazi audioa",
     "app.audio.enterSessionLabel": "Sartu saioan",
     "app.audio.playSoundLabel": "Erreproduzitu soinua",
     "app.audio.backLabel": "Atzera",
     "app.audio.audioSettings.titleLabel": "Aukeratu zure audio-ezarpenak",
-    "app.audio.audioSettings.descriptionLabel": "Zure mikrofonoa partekatzeko eskatuko duen elkarrizketa koadro bat agertuko da nabigatzailean.",
-    "app.audio.audioSettings.microphoneSourceLabel": "Mikrofono iturria",
-    "app.audio.audioSettings.speakerSourceLabel": "Bozgorailuen iturria",
+    "app.audio.audioSettings.descriptionLabel": "Kontuan izan zure nabigatzailean mikrofonoa partekatzeko eskatuko dizun mezu bat agertuko dela.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Mikrofonoaren jatorria",
+    "app.audio.audioSettings.speakerSourceLabel": "Bozgorailuen jatorria",
     "app.audio.audioSettings.microphoneStreamLabel": "Zure audioaren bolumena",
     "app.audio.audioSettings.retryLabel": "Saiatu berriro",
     "app.audio.listenOnly.backLabel": "Atzera",
     "app.audio.listenOnly.closeLabel": "Itxi",
     "app.audio.permissionsOverlay.title": "Baimena eman zure mikrofonoa erabiltzeko",
-    "app.audio.permissionsOverlay.hint": "Zure baimena behar dugu erabiltzeko zure multimedia gailuak sartzeko ahots konferentzian :)",
+    "app.audio.permissionsOverlay.hint": "Zure baimena behar dugu zure multimedia gailuak sartzeko ahots konferentzian erabiltzeko :)",
     "app.error.removed": "Konferentziatik bidali zaituzte",
     "app.error.meeting.ended": "Konferentzia utzi duzu",
-    "app.meeting.logout.duplicateUserEjectReason": "Bikoiztutako erabiltzaile bat saiatzen ari da bileran sartzen",
+    "app.meeting.logout.duplicateUserEjectReason": "Bikoiztutako erabiltzaile bat bileran sartzen saiatzen ari da",
     "app.meeting.logout.permissionEjectReason": "Kanporatua baimen bat urratzeagatik",
     "app.meeting.logout.ejectedFromMeeting": "Bileratik bidali zaituzte",
-    "app.meeting.logout.validateTokenFailedEjectReason": "Huts egin du baimenaren tokena balidatzeak",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Baimentze-tokena balidatzeak huts egin du",
     "app.meeting.logout.userInactivityEjectReason": "Erabiltzaile inaktiboa denbora luzez",
-    "app.meeting-ended.rating.legendLabel": "Iradokizunen balorazioa",
-    "app.meeting-ended.rating.starLabel": "Hasi",
+    "app.meeting-ended.rating.legendLabel": "Iruzkinaren puntuazioa",
+    "app.meeting-ended.rating.starLabel": "Gogokoa",
     "app.modal.close": "Itxi",
     "app.modal.close.description": "Aldaketak baztertzen ditu eta modala ixten du",
-    "app.modal.confirm": "Egina",
+    "app.modal.confirm": "Eginda",
     "app.modal.newTab": "(fitxa berria irekitzen du)",
-    "app.modal.confirm.description": "Gordetzen ditu aldaketak eta ixten du modala",
+    "app.modal.confirm.description": "Aldaketak gordetzen ditu eta modala ixten du",
     "app.dropdown.close": "Itxi",
     "app.error.400": "Eskaera okerra",
     "app.error.401": "Baimenik gabe",
     "app.error.403": "Bileratik bidali zaituzte",
     "app.error.404": "Ez da aurkitu",
     "app.error.410": "Bilera bukatu da",
-    "app.error.500": "Ops, zerbait oker joan da",
+    "app.error.500": "Ups, zerbait oker joan da",
     "app.error.leaveLabel": "Hasi saioa berriro",
     "app.error.fallback.presentation.title": "Errore bat gertatu da",
     "app.error.fallback.presentation.description": "Saioa hasi da. Saiatu orria berriro kargatzen.",
     "app.error.fallback.presentation.reloadButton": "Birkargatu",
-    "app.guest.waiting": "Sarrera onartzeko zain",
+    "app.guest.waiting": "Sartzeko onarpenaren zain",
     "app.userList.guest.waitingUsers": "Itxaron zerrenda",
     "app.userList.guest.waitingUsersTitle": "Erabiltzaileen kudeaketa",
     "app.userList.guest.optionTitle": "Berrikusi zain dauden erabiltzaileak",
@@ -446,80 +476,93 @@
     "app.userList.guest.denyEveryone": "Ukatu guztiak",
     "app.userList.guest.pendingUsers": "{0} erabiltzaile zain",
     "app.userList.guest.pendingGuestUsers": "{0} gonbidatu zain",
-    "app.userList.guest.pendingGuestAlert": "Sartu da saioan eta onarpenaren zain dago",
+    "app.userList.guest.pendingGuestAlert": "Saioan sartu da eta onarpenaren zain dago",
     "app.userList.guest.rememberChoice": "Gogoratu aukeratutakoa",
     "app.user-info.title": "Direktorio bilatzea",
-    "app.toast.breakoutRoomEnded": "Taldeko bilera amaitu da. Sartu berriro audioan.",
+    "app.toast.breakoutRoomEnded": "Banatze-taldeko bilera amaitu da. Piztu ezazu audioa berriro.",
     "app.toast.chat.public": "Txat publikoaren mezu berria",
     "app.toast.chat.private": "Txat pribatuko mezu berria",
     "app.toast.chat.system": "Sistema",
     "app.toast.clearedEmoji.label": "Egoera-emotikonoa garbitu da",
     "app.toast.setEmoji.label": "Egoera-emotikonoa {0}-an ezarri da",
     "app.toast.meetingMuteOn.label": "Erabiltzaile guztiak isilarazi dira",
-    "app.toast.meetingMuteOff.label": "Bileraren isilaraztea geratu da",
+    "app.toast.meetingMuteOff.label": "Bileraren isilaraztea itzali da",
     "app.notification.recordingStart": "Saio hau grabatzen ari da",
     "app.notification.recordingStop": "Saioa ez da grabatzen ari",
     "app.notification.recordingPaused": "Saio hau ez da jada grabatzen ari",
     "app.notification.recordingAriaLabel": "Grabatutako denbora",
+    "app.notification.userJoinPushAlert": "{0} sartu da saioan",
     "app.shortcut-help.title": "Laster-teklak",
     "app.shortcut-help.accessKeyNotAvailable": "Sartzeko gakoak ez daude erabilgarri",
     "app.shortcut-help.comboLabel": "Combo",
     "app.shortcut-help.functionLabel": "Funtzioa",
     "app.shortcut-help.closeLabel": "Itxi",
-    "app.shortcut-help.closeDesc": "Ixten du laster-teklen modua",
+    "app.shortcut-help.closeDesc": "Laster-teklen modua ixten du",
     "app.shortcut-help.openOptions": "Ireki aukerak",
-    "app.shortcut-help.toggleUserList": "Aldatu erabiltzaileen zerrenda",
+    "app.shortcut-help.toggleUserList": "Bistaratu erabiltzaileen zerrenda",
     "app.shortcut-help.toggleMute": "Isilarazi / hitza eman",
-    "app.shortcut-help.togglePublicChat": "Aldatu txat publikoa (erabiltzaileen zerrenda irekiko da)",
+    "app.shortcut-help.togglePublicChat": "Bistaratu txat publikoa (erabiltzaileen zerrenda irekiko da)",
     "app.shortcut-help.hidePrivateChat": "Ezkutatu txat pribatua",
     "app.shortcut-help.closePrivateChat": "Itxi txat pribatua",
     "app.shortcut-help.openActions": "Ireki ekintzen menua",
     "app.shortcut-help.openStatus": "Ireki egoeren menua",
-    "app.shortcut-help.togglePan": "Aktibatu Pan tresna (aurkezlea)",
+    "app.shortcut-help.togglePan": "Aktibatu Eskua tresna (aurkezlea)",
     "app.shortcut-help.nextSlideDesc": "Hurrengo diapositiba (aurkezlea)",
     "app.shortcut-help.previousSlideDesc": "Aurreko diapositiba (aurkezlea)",
     "app.lock-viewers.title": "Blokeatu ikusleak",
+    "app.lock-viewers.description": "Aukera hauen bidez ikusleen eginbide zehatzak murriztu ditzakezu.",
     "app.lock-viewers.featuresLable": "Eginbidea",
     "app.lock-viewers.lockStatusLabel": "Egoera",
     "app.lock-viewers.webcamLabel": "Partekatu web-kamera",
     "app.lock-viewers.otherViewersWebcamLabel": "Ikusi beste ikusleen web-kamerak",
+    "app.lock-viewers.microphoneLable": "Partekatu mikrofonoa",
+    "app.lock-viewers.PublicChatLabel": "Bidali mezuak txat publikoan",
+    "app.lock-viewers.PrivateChatLable": "Bidali mezuak txat pribatuan",
+    "app.lock-viewers.notesLabel": "Editatu ohar partekatuak",
+    "app.lock-viewers.userListLabel": "Ikusi beste ikusleak erabiltzaileen zerrendan",
+    "app.lock-viewers.ariaTitle": "Blokeatu ikusleen ezarpen modua",
+    "app.lock-viewers.button.apply": "Aplikatu",
     "app.lock-viewers.button.cancel": "Utzi",
     "app.lock-viewers.locked": "Blokeatua",
+    "app.lock-viewers.unlocked": "Desblokeatuta",
     "app.recording.startTitle": "Hasi grabatzen",
     "app.recording.stopTitle": "Pausarazi grabazioa",
     "app.recording.resumeTitle": "Jarraitu grabatzen",
+    "app.recording.startDescription": "Grabatzeko botoia geroago grabazioa eteteko sakatu dezakezu.",
+    "app.recording.stopDescription": "Ziur grabaketa eten nahi duzula? Grabazio-botoia berriz sakatuz grabatzen jarraitu dezakezu.",
     "app.videoPreview.cameraLabel": "Kamera",
     "app.videoPreview.profileLabel": "Kalitatea",
     "app.videoPreview.cancelLabel": "Utzi",
     "app.videoPreview.closeLabel": "Itxi",
+    "app.videoPreview.findingWebcamsLabel": "Web-kamerak bilatzen",
     "app.videoPreview.startSharingLabel": "Hasi partekatzen",
     "app.videoPreview.webcamOptionLabel": "Aukeratu web-kamera",
     "app.videoPreview.webcamPreviewLabel": "Web-kameraren aurrebista",
     "app.videoPreview.webcamSettingsTitle": "Web-kameraren ezarpenak",
-    "app.videoPreview.webcamNotFoundLabel": "Web-kamerarik ez da aurkitu",
-    "app.videoPreview.profileNotFoundLabel": "Kameraren profila ez da onartzen",
+    "app.videoPreview.webcamNotFoundLabel": "Ez da web-kamerarik aurkitu",
+    "app.videoPreview.profileNotFoundLabel": "Ez da kameraren profila onartzen",
     "app.video.joinVideo": "Partekatu web-kamera",
     "app.video.leaveVideo": "Gelditu web-kamera partekatzen",
     "app.video.iceCandidateError": "Errorea ICE hautagaia gehitzean",
-    "app.video.iceConnectionStateError": "1107 errorea: ICE negoziazioak huts egin du",
-    "app.video.permissionError": "Errorea web-kamera partekatzen. Begiratu baimenak.",
-    "app.video.sharingError": "Errorea web-kamera partekatzen.",
-    "app.video.notFoundError": "Ezin izan da web-kamerarik aurkitu. Begiratu konektatuta ote dagoen.",
-    "app.video.notAllowed": "Web-kamera partekatzeko baimena falta da. Begiratu nabigatzailearen baimenak.",
-    "app.video.notSupportedError": "Zure web-kamera soilik iturri seguruekin partekatu dezakezu. Egiaztatu zure SSL agiria baliozkoa dela.",
-    "app.video.notReadableError": "Ezin da lortu bideorik web-kameratik. Begiratu beste programa bat ez ote den kamera erabiltzen ari.",
-    "app.video.mediaFlowTimeout1020": "1020 errorea: multimedia ez da iristen zerbitzarira",
-    "app.video.suggestWebcamLock": "Aplikatu blokeoaren ezarpena ikusleentzako web-kametara?",
-    "app.video.suggestWebcamLockReason": "(hau bilera egonkortasuna hobetuko du)",
+    "app.video.iceConnectionStateError": "Konexioaren hutsegitea (1107 ICE errorea)",
+    "app.video.permissionError": "Errorea web-kamera partekatzen. Mesedez baimenak egiaztatu itzazu.",
+    "app.video.sharingError": "Errorea web-kamera partekatzean.",
+    "app.video.notFoundError": "Ezin izan da web-kamerarik aurkitu. Egiaztatu ezazu konektatuta ote dagoen.",
+    "app.video.notAllowed": "Web-kamera partekatzeko baimena falta da. Egiaztatu itzazu  zure nabigatzailean baimenak.",
+    "app.video.notSupportedError": "Zure web-kamera soilik jatorri seguruekin partekatu dezakezu. Egiaztatu zure SSL agiria baliozkoa dela.",
+    "app.video.notReadableError": "Ezin da lortu bideorik web-kameratik. Egiaztatu ezazu beste programa bat ez ote den kamera erabiltzen ari.",
+    "app.video.mediaFlowTimeout1020": "Multimedia ez da iristen zerbitzarira (1020 errorea)",
+    "app.video.suggestWebcamLock": "Behartu blokeoaren ezarpena ikusleen web-kameretan?",
+    "app.video.suggestWebcamLockReason": "(honek bileraren egonkortasuna hobetuko du)",
     "app.video.enable": "Aktibatu",
     "app.video.cancel": "Utzi",
     "app.video.swapCam": "Aldatu norabidea",
-    "app.video.swapCamDesc": "Web-kameraren norabidea aldatu",
+    "app.video.swapCamDesc": "aldatu web-kameraren norabidea",
     "app.video.videoLocked": "Web-kameraren partekatzea blokeatuta",
     "app.video.videoButtonDesc": "Partekatu web-kamera",
     "app.video.videoMenu": "Bideoaren menua",
-    "app.video.videoMenuDisabled": "Bideoaren menua, web-kamera desaktibatuta dago ezarpenetan",
-    "app.video.videoMenuDesc": "Ireki goitik-beherako bideo-menua",
+    "app.video.videoMenuDisabled": "Web-kameraren bideoaren menua desgaituta dago ezarpenetan",
+    "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",
@@ -527,29 +570,29 @@
     "app.video.stats.packetsSent": "Bidalitako paketeak",
     "app.video.stats.packetsLost": "Galdutako paketeak",
     "app.video.stats.bitrate": "Bit-emaria",
-    "app.video.stats.lostPercentage": "Galeraren ehunekoa",
-    "app.video.stats.lostRecentPercentage": "Galdu berrien ehunekoa",
-    "app.video.stats.dimensions": "Tamaina",
+    "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": "Kodetu erabilera",
+    "app.video.stats.encodeUsagePercent": "Kodetzearen erabilera",
     "app.video.stats.currentDelay": "Uneko atzerapena",
     "app.fullscreenButton.label": "Jarri  {0} pantaila osoan",
-    "app.deskshare.iceConnectionStateError": "1108 errorea: ICE konexioak huts egin du pantaila partekatzean",
-    "app.sfu.mediaServerConnectionError2000": "2000 errorea: Ezin da konektatu multimedia zerbitzaria",
-    "app.sfu.mediaServerOffline2001": "2001 errorea: Multimedia zerbitzaria konexiorik gabe dago. Saiatu geroago.",
-    "app.sfu.mediaServerNoResources2002": "2002 errorea: Multimedia zerbitzariak ez dauka baliabide erabilgarririk",
-    "app.sfu.mediaServerRequestTimeout2003": "2003 errorea: Multimedia zerbitzariaren eskaera denboraz kanpo dago",
-    "app.sfu.serverIceGatheringFailed2021": "2021 errorea: Multimedia zerbitzariak ezin du ICEko hautagaiak bildu",
-    "app.sfu.serverIceGatheringFailed2022": "2022 errorea: Multimedia zerbitzariaren ICE konexioak huts egin du",
-    "app.sfu.mediaGenericError2200": "2200 errorea: Multimedia zerbitzariak huts egin du eskaera prozesatzen",
-    "app.sfu.invalidSdp2202":"2202 errorea: Bezeroak baliozkoa ez den SDP bat sortu du",
-    "app.sfu.noAvailableCodec2203": "2203 errorea: Zerbitzariak ezin du aurkitu kodeketa egokia",
+    "app.deskshare.iceConnectionStateError": "Konexioak huts egin du pantaila partekatzean (1108 ICE errorea)",
+    "app.sfu.mediaServerConnectionError2000": "Ezin da konektatu multimedia zerbitzaria (2000 errorea)",
+    "app.sfu.mediaServerOffline2001": "Multimedia zerbitzaria konexiorik gabe dago. Saiatu geroago (2001 errorea)",
+    "app.sfu.mediaServerNoResources2002": "Multimedia zerbitzariak ez dauka baliabide erabilgarririk (2002 errorea)",
+    "app.sfu.mediaServerRequestTimeout2003": " Multimedia zerbitzariaren eskaera denboraz kanpo dago (2003 errorea)",
+    "app.sfu.serverIceGatheringFailed2021": "Multimedia zerbitzariak ezin du ICEko hautagaiak bildu (2021 errorea)",
+    "app.sfu.serverIceGatheringFailed2022": "Multimedia zerbitzariaren konexioak huts egin du (2022 ICE errorea)",
+    "app.sfu.mediaGenericError2200": "Multimedia zerbitzariak huts egin du eskaera prozesatzen (2200 errorea)",
+    "app.sfu.invalidSdp2202":"Bezeroak baliozkoa ez den multimedia eskaera bat sortu du (2202 errorea)",
+    "app.sfu.noAvailableCodec2203": "Zerbitzariak ezin du aurkitu kodeketa egokia (2203 errorea)",
     "app.meeting.endNotification.ok.label": "Ados",
     "app.whiteboard.annotations.poll": "Inkestaren emaitzak argitaratu dira",
     "app.whiteboard.toolbar.tools": "Tresnak",
-    "app.whiteboard.toolbar.tools.hand": "Pan",
+    "app.whiteboard.toolbar.tools.hand": "Eskua",
     "app.whiteboard.toolbar.tools.pencil": "Arkatza",
     "app.whiteboard.toolbar.tools.rectangle": "Laukizuzena",
     "app.whiteboard.toolbar.tools.triangle": "Triangelua",
@@ -559,7 +602,7 @@
     "app.whiteboard.toolbar.thickness": "Marrazketaren lodiera",
     "app.whiteboard.toolbar.thicknessDisabled": "Marrazketaren lodiera desgaituta dago",
     "app.whiteboard.toolbar.color": "Koloreak",
-    "app.whiteboard.toolbar.colorDisabled": "Koloreak desgaituta dago",
+    "app.whiteboard.toolbar.colorDisabled": "Koloreak desgaituta daude",
     "app.whiteboard.toolbar.color.black": "Beltza",
     "app.whiteboard.toolbar.color.white": "Zuria",
     "app.whiteboard.toolbar.color.red": "Gorria",
@@ -567,7 +610,7 @@
     "app.whiteboard.toolbar.color.eletricLime": "Berde argia",
     "app.whiteboard.toolbar.color.lime": "Berdea",
     "app.whiteboard.toolbar.color.cyan": "Zian",
-    "app.whiteboard.toolbar.color.dodgerBlue": "Urdina",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Urdin argia",
     "app.whiteboard.toolbar.color.blue": "Urdin iluna",
     "app.whiteboard.toolbar.color.violet": "Morea",
     "app.whiteboard.toolbar.color.magenta": "Magenta",
@@ -578,51 +621,63 @@
     "app.whiteboard.toolbar.multiUserOff": "Desaktibatu erabiltzaile anitzen arbela",
     "app.whiteboard.toolbar.fontSize": "Letra tamainen zerrenda",
     "app.feedback.title": "Konferentzia utzi duzu",
-    "app.feedback.subtitle": "Gustu handiz entzungo dugu BigBlueButtonekin izan duzun esperientziaren berri (aukerakoa)",
+    "app.feedback.subtitle": "Gustu handiz entzungo genuke BigBlueButton-ekin izan duzun esperientziaren berri (aukerakoa)",
     "app.feedback.textarea": "Nola hobetu dezakegu BigBlueButton?",
     "app.feedback.sendFeedback": "Bidali iruzkina",
     "app.feedback.sendFeedbackDesc": "Bidali iruzkina eta utzi bilera",
     "app.videoDock.webcamFocusLabel": "Fokua",
     "app.videoDock.webcamFocusDesc": "Fokuratu hautatutako web-kamera",
-    "app.videoDock.webcamUnfocusLabel": "Fokua kendu",
-    "app.videoDock.webcamUnfocusDesc": "Fokua kendu hautatutako web-kameratik",
-    "app.invitation.title": "Talde gelarako gonbidapena",
+    "app.videoDock.webcamUnfocusLabel": "Kendu fokua ",
+    "app.videoDock.webcamUnfocusDesc": "Kendu fokua hautatutako web-kameratik",
+    "app.videoDock.autoplayBlockedDesc": "Zure baimena behar dugu beste erabiltzaileen web kamerak zuri erakusteko.",
+    "app.videoDock.autoplayAllowLabel": "Ikusi web-kamerak",
+    "app.invitation.title": "Banatze-talde gelarako gonbidapena",
     "app.invitation.confirm": "Gonbidatu",
-    "app.createBreakoutRoom.title": "Taldeko gelak",
-    "app.createBreakoutRoom.ariaTitle": "Ezkutatu taldeko gelak",
-    "app.createBreakoutRoom.breakoutRoomLabel": "Taldeko gelak {0}",
+    "app.createBreakoutRoom.title": "Banatze-taldeetako gelak",
+    "app.createBreakoutRoom.ariaTitle": "Ezkutatu banatze-taldeetako gelak",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Banatze-taldeetako gelak {0}",
     "app.createBreakoutRoom.generatingURL": "URLa sortzen",
-    "app.createBreakoutRoom.generatedURL": "Sortua",
+    "app.createBreakoutRoom.generatedURL": "Sortuta",
     "app.createBreakoutRoom.duration": "Iraupena {0}",
     "app.createBreakoutRoom.room": "Gela {0}",
     "app.createBreakoutRoom.notAssigned": "Esleitu gabe ({0})",
     "app.createBreakoutRoom.join": "Sartu gelan",
-    "app.createBreakoutRoom.joinAudio": "Sartu audioa",
+    "app.createBreakoutRoom.joinAudio": "Piztu audioa",
     "app.createBreakoutRoom.returnAudio": "Itzuli audioa",
+    "app.createBreakoutRoom.alreadyConnected": "Dagoeneko gelan",
     "app.createBreakoutRoom.confirm": "Sortu",
     "app.createBreakoutRoom.record": "Grabatu",
     "app.createBreakoutRoom.numberOfRooms": "Gela kopurua",
     "app.createBreakoutRoom.durationInMinutes": "Iraupena (minutuak)",
     "app.createBreakoutRoom.randomlyAssign": "Ausazko esleipena",
-    "app.createBreakoutRoom.endAllBreakouts": "Amaitu taldeko gela guztiak",
+    "app.createBreakoutRoom.endAllBreakouts": "Amaitu banatze-taldeetako gela guztiak",
     "app.createBreakoutRoom.roomName": "{0} (Gela - {1})",
-    "app.createBreakoutRoom.doneLabel": "Egina",
+    "app.createBreakoutRoom.doneLabel": "Eginda",
     "app.createBreakoutRoom.nextLabel": "Hurrengoa",
-    "app.createBreakoutRoom.minusRoomTime": "Murriztu taldeko gelaren denbora hona:",
-    "app.createBreakoutRoom.addRoomTime": "Zabaldu taldeko gelaren denbora hona:",
-    "app.createBreakoutRoom.addParticipantLabel": "+ Gehitu parte hartzailea",
-    "app.createBreakoutRoom.freeJoin": "Baimena eman erabiltzaileei aukeratzeko zein talde gelan sartu",
-    "app.createBreakoutRoom.leastOneWarnBreakout": "Kokatu behar duzu gutxienez erabiltzaile bana talde geletan",
+    "app.createBreakoutRoom.minusRoomTime": "Murriztu banatze-taldeetako gelen denbora hona:",
+    "app.createBreakoutRoom.addRoomTime": "Zabaldu banatze-taldeetako gelen denbora hona:",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Gehitu parte-hartzailea",
+    "app.createBreakoutRoom.freeJoin": "Baimendu erabiltzaileei zein banatze-taldeko gelan sartu aukeratzeko ",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "Banatze-talde gela bakoitzean gutxienez erabiltzaile bana kokatu behar duzu.",
+    "app.createBreakoutRoom.modalDesc": "Aholkua: erabiltzaile baten izena arrastatu eta jaregin dezakezu banatze-talde zehatz bateko gela esleitzeko.",
     "app.createBreakoutRoom.roomTime": "{0} minutu",
     "app.createBreakoutRoom.numberOfRoomsError": "Gela kopurua ez da baliozkoa",
     "app.externalVideo.start": "Partekatu bideo berri bat",
+    "app.externalVideo.title": "Partekatu kanpoko bideo bat",
+    "app.externalVideo.input": "Kanpoko bideoaren URLa",
+    "app.externalVideo.urlInput": "Gehitu bideoaren URLa",
+    "app.externalVideo.urlError": "Bideo honen URLa ez da onartzen",
     "app.externalVideo.close": "Itxi",
+    "app.externalVideo.autoPlayWarning": "Erreproduzitu bideoa multimedia-sinkronizazioa gaitzeko",
     "app.network.connection.effective.slow": "Konexio arazoak antzematen ari gara",
     "app.network.connection.effective.slow.help": "Informazio gehiago",
-    "app.iOSWarning.label": "Eguneratu IOS 12.2 edo berriagora",
+    "app.externalVideo.noteLabel": "Oharra: kanpoko bideo partekatuak ez dira grabazioan agertuko. YouTube, Vimeo, Instructure Media, Twitch eta Daily Motion webguneetako URLak onartzen dira.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Partekatu kanpoko bideo bat",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Gelditu kanpoko bideoaren partekatzea",
+    "app.iOSWarning.label": "Eguneratu iOS 12.2 edo berriagora",
     "app.legacy.unsupportedBrowser": "Ematen du onartzen ez den nabigatzailea erabiltzen ari zarela. Erabili  {0} edo {1} emaitzak hobetzeko.",
-    "app.legacy.upgradeBrowser": "Ematen du onartutako nabigatzaile baten bertsio zaharra erabiltzen ari zarela. Eguneratu nabigatzailea emaitzak hobetzeko.",
-    "app.legacy.criosBrowser": "iOS sisteman Safari erabili emaitzak hobetzeko."
+    "app.legacy.upgradeBrowser": "Ematen du onartutako nabigatzaile baten bertsio zaharra erabiltzen ari zarela. Emaitzak hobetzeko nabigatzailea eguneratu ezazu .",
+    "app.legacy.criosBrowser": "iOS sisteman emaitzak hobetzeko Safari erabili ezazu."
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/fa_IR.json b/bigbluebutton-html5/private/locales/fa_IR.json
index 641fc71b5ce6bb7b3060481d58d678e255f3db28..89f6fa4d9b88e9a08a1ef11d1cb82a59987ccb3a 100644
--- a/bigbluebutton-html5/private/locales/fa_IR.json
+++ b/bigbluebutton-html5/private/locales/fa_IR.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "ارائه شما به زودی آغاز خواهد شد ...",
     "app.chat.submitLabel": "ارسال پیام",
-    "app.chat.errorMinMessageLength": "پیام {0} کاراکتر(ی) بسیار کوتاه است",
     "app.chat.errorMaxMessageLength": "پیام {0} کاراکتر(ی) بسیار بلند است",
     "app.chat.disconnected": "ارتباط شما قطع شده است، امکان ارسال پیام ها وجود ندارد",
     "app.chat.locked": "گفنگو قفل شده است، امکان ارسال پیام ها وجود ندارد",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "دادن اجازه دسترسی",
     "app.media.screenshare.start": "اشتراک صفحه نمایش شروع شد",
     "app.media.screenshare.end": "اشتراک صفحه نمایش به پایان رسید.",
-    "app.media.screenshare.safariNotSupported": "در حال حاضر اشتراک صفحه نمایش در مرورگر سافاری پشتیبانی نمیشود، لطفا از کروم یا فایرفاکس استفاده کنید.",
     "app.media.screenshare.autoplayBlockedDesc": "ما به مجوز شما برای نشان دادن شما به ارائه دهندگان نیاز داریم",
     "app.media.screenshare.autoplayAllowLabel": "مشاهده صفحه اشتراکی",
     "app.screenshare.notAllowed": "خطا : دسترسی برای نمایش صفحه ، ایجاد نشد",
@@ -176,8 +174,12 @@
     "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": "حذف ارائه",
@@ -360,18 +362,18 @@
     "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": "خطای 1004: خطا در تماس (دلیل = {0})",
-    "app.audioNotification.audioFailedError1005": "خطای 1005: تماس به دلیل نامشخصی قطع شد",
-    "app.audioNotification.audioFailedError1006": "خطای 1006: تماس با خطای تایم اوت مواجه شد",
-    "app.audioNotification.audioFailedError1007": "خطای 1007: مذاکره برای ICE با خطا مواجه شد",
-    "app.audioNotification.audioFailedError1008": "خطای 1008: انتقال با خطا مواجه شد",
-    "app.audioNotification.audioFailedError1009": "خطای 1009: امکان دریافت اطلاعات STUN/TURN وجود ندارد",
-    "app.audioNotification.audioFailedError1010": "خطای 1010: مذاکره برای ICE با خطای تایم اوت مواجه شد",
-    "app.audioNotification.audioFailedError1011": "خطای 1011: گردآوری اطلاعات از ICE با خطا مواجه شد",
-    "app.audioNotification.audioFailedError1012": "خطا 1012: اتصال ICE بسته شد",
+    "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": "تایم اون در اتصال اولیه (خطای 1010)",
+    "app.audioNotification.audioFailedError1011": "تایم اوت در اتصال (خطای ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "اتصال بسته شد (خطای ICE 1012)",
     "app.audioNotification.audioFailedMessage": "اتصال صدای شما با خطا موجه شد",
     "app.audioNotification.mediaFailedMessage": "متد getUserMicMedia به دلیل اینکه اتصال تنها از طریق لینک امن امکان پذیر است، با خطا مواجه شد",
     "app.audioNotification.closeLabel": "بستن",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "اشتراک گذاری دوربین",
     "app.video.leaveVideo": "متوقف کردن اشتراک گذاری دوربین",
     "app.video.iceCandidateError": "خطا در افزودن کاندید ICE",
-    "app.video.iceConnectionStateError": "خطای 1107: مذاکره برای 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.mediaFlowTimeout1020": "امکان دریافت مدیا از سرور وجود ندارد (خطای 1020)",
     "app.video.suggestWebcamLock": "آیا تنظیمات قفل به دوربین های کاربران اعمال شود؟",
     "app.video.suggestWebcamLockReason": "(این مورد باعث بهبود کیفیت جلسه خواهد شد)",
     "app.video.enable": "فعال",
@@ -577,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "میزان استفاده از انکود",
     "app.video.stats.currentDelay": "تاخیر جاری",
     "app.fullscreenButton.label": "تغییر {0} به تمام صفحه",
-    "app.deskshare.iceConnectionStateError": "خطای 1108: اتصال ICE هنگام اشتراک گذاری صفحه با خطا مواجه شد",
-    "app.sfu.mediaServerConnectionError2000": "خطای 2000: عدم امکان ارتباط با سرور مدیا",
-    "app.sfu.mediaServerOffline2001": "خطای 2001: سرور مدیا در دسترس نیست. لطفا بعدا تلاش کنید.",
-    "app.sfu.mediaServerNoResources2002": "خطای 2002: سرور مدیا منابع کافی ندارد",
-    "app.sfu.mediaServerRequestTimeout2003": "خطای 2003: درخواست های سرور مدیا با تایم اون مواجه میشود",
-    "app.sfu.serverIceGatheringFailed2021": "خطای 2021: سرور مدیا امکان جمع آوری داوطلب های ICE را ندارد",
-    "app.sfu.serverIceGatheringFailed2022": "خطای 2022: اتصال ICE به سرور مدیا با شکست مواجه شد",
-    "app.sfu.mediaGenericError2200": "خطای 2200: سرور مدیا در هنگام پردازش درخواست با مشکل مواجه شد",
-    "app.sfu.invalidSdp2202":"خطای 2202: کاربر SDP نادرست ایجاد کرده است",
-    "app.sfu.noAvailableCodec2203": "خطای 2203: سرور کدک مناسب را پیدا نکرد",
+    "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": "اتصال به مدیا سرور با خطا روبرو شد (خطای 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": "ابزارها",
diff --git a/bigbluebutton-html5/private/locales/fi.json b/bigbluebutton-html5/private/locales/fi.json
index 7923411ba14e786300d9bf2dd1f9112541b0fee4..200273c2f8792f85f99008107b5b537d8ce325c1 100644
--- a/bigbluebutton-html5/private/locales/fi.json
+++ b/bigbluebutton-html5/private/locales/fi.json
@@ -1,9 +1,9 @@
 {
     "app.home.greeting": "Esityksesi alkaa pian...",
     "app.chat.submitLabel": "Lähetä viesti",
-    "app.chat.errorMinMessageLength": "Tämä viesti on {0} merkki(ä) liian lyhyt",
     "app.chat.errorMaxMessageLength": "Tämä viesti on {0} merkki(ä) liian pitkä",
     "app.chat.inputLabel": "Viestinsyöttö chatille {0}",
+    "app.chat.inputPlaceholder": "Lähetä viesti {0}",
     "app.chat.titlePublic": "Julkinen chat",
     "app.chat.titlePrivate": "Yksityinen chat {0} kanssa",
     "app.chat.partnerDisconnected": "{0} poistui istunnosta",
@@ -97,7 +97,6 @@
     "app.media.label": "Media",
     "app.media.screenshare.start": "Ruudunjako aloitettu",
     "app.media.screenshare.end": "Ruudunjako lopetettu",
-    "app.media.screenshare.safariNotSupported": "Safari-selain ei tue ruudunjakoa, ole hyvä ja käytä Firefox tai Google Chrome selainta.",
     "app.meeting.ended": "Istunto päättyi",
     "app.meeting.meetingTimeRemaining": "Aikaa jäljellä tapaamisessa: {0}",
     "app.meeting.meetingTimeHasEnded": "Aika päättyi, tapaaminen suljetaan pian",
@@ -325,18 +324,6 @@
     "app.actionsBar.emojiMenu.thumbsDownLabel": "Peukalo alaspäin",
     "app.actionsBar.emojiMenu.thumbsDownDesc": "Aseta oma status peukalo alaspäin",
     "app.actionsBar.currentStatusDesc": "Nykyinen status {0}",
-    "app.audioNotification.audioFailedError1001": "Virhe 1001: WebSocket katkaistiin",
-    "app.audioNotification.audioFailedError1002": "Virhe 1002: Ei pystytty luomana Websocket yhteyttä",
-    "app.audioNotification.audioFailedError1003": "Virhe 1003: Selaimen versio ei ole tuettu.",
-    "app.audioNotification.audioFailedError1004": "Virhe 1004: Soittaminen epäonnistui (reason={0})",
-    "app.audioNotification.audioFailedError1005": "Virhe 1005: Puhelu katkesi odottomattomasti.",
-    "app.audioNotification.audioFailedError1006": "Virhe 1006: Puhelu aikakatkaistiin",
-    "app.audioNotification.audioFailedError1007": "Virhe 1007: ICE neuvottelu epäonnistui",
-    "app.audioNotification.audioFailedError1008": "Virhe 1008: Siirto epäonnistui",
-    "app.audioNotification.audioFailedError1009": "Virhe 1009: Ei pystytty noutaan STU/TURN palvelimen tietoja.",
-    "app.audioNotification.audioFailedError1010": "Virhe 1010: ICE neuvottelun aikakatkaisu",
-    "app.audioNotification.audioFailedError1011": "Virhe 1011: ICE keräänymisen aikakatkaisu",
-    "app.audioNotification.audioFailedError1012": "Virhe 1012: ICE yhteys suljettiin",
     "app.audioNotification.audioFailedMessage": "Sinun audioyhteytesi ei pystynyt yhdistymään.",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia epäonnistui koska vain alkuperäiset lähteet ovat sallittu.",
     "app.audioNotification.closeLabel": "Sulje",
@@ -485,14 +472,12 @@
     "app.video.joinVideo": "Jaa webkamera",
     "app.video.leaveVideo": "Lopeta webkameran jakaminen",
     "app.video.iceCandidateError": "Virhe lisättäessä ICE kandidaattia",
-    "app.video.iceConnectionStateError": "Virhe 1107: ICE neuvottelu epäonnistui",
     "app.video.permissionError": "Virhe webkameraa jaettaessa, ole hyvä ja tarkista käyttöoikeudet.",
     "app.video.sharingError": "Virhe webkameraa jaettaessa",
     "app.video.notFoundError": "Webkameraa ei löydetty, varmista että se on yhdistetty.",
     "app.video.notAllowed": "Webkameranjakamisoikeus puuttuu, tarkista että olet sallinut webkameran jakamisen selaimesi asetuksista.",
     "app.video.notSupportedError": "Webkameraa voi jakaa vain turvallisten sivustojen kanssa, tarkista että sivuton SSL-sertifikaatti on ajantasalla.",
     "app.video.notReadableError": "Webkameran kuva ei saatu, tarkista ettei mikään muu sovellus käytä webkameerasi samaan aikaan.",
-    "app.video.mediaFlowTimeout1020": "Virhe 1020: Media ei saavuttanut palvelinta",
     "app.video.cancel": "Peruuta",
     "app.video.swapCam": "Vaihda",
     "app.video.swapCamDesc": "Vaihda webkameroiden suuntaa",
@@ -515,16 +500,6 @@
     "app.video.stats.decodeDelay": "Dekoodauksen viive",
     "app.video.stats.currentDelay": "Nykyinen viive",
     "app.fullscreenButton.label": "Aseta {0} kokoruuduntilaan.",
-    "app.deskshare.iceConnectionStateError": "Virhe 1108: ICE yhteys epännostui ruutua jaettaessa",
-    "app.sfu.mediaServerConnectionError2000": "Virhe 2000: Mediapalvelimeen ei saada yhteyttä",
-    "app.sfu.mediaServerOffline2001": "Virhe 2001: Mediapalvelin on poissa verkosta. Ole hyvä ja yritä uudelleen.",
-    "app.sfu.mediaServerNoResources2002": "Virhe 2002: Mediapalvelimellaei ole käytettävissä olevia resursseja",
-    "app.sfu.mediaServerRequestTimeout2003": "Virhe 2003: Mediapalvelimen pyynnöt päätyvät aikatkaistuiksi",
-    "app.sfu.serverIceGatheringFailed2021": "Virhe 2021: Mediapalvelin ei voi kerätä ICE kanditaateja",
-    "app.sfu.serverIceGatheringFailed2022": "Virhe 2022: Mediapalvelimen ICE yhteys epäonnistui ",
-    "app.sfu.mediaGenericError2200": "Virhe 2200: Mediapalvelin ei pystynyt käsittelemään pyyntöä",
-    "app.sfu.invalidSdp2202":"Virhe 2202: Asiakas generoi epäkelvon SDP:n",
-    "app.sfu.noAvailableCodec2203": "Virhe 2203: Palvelin ei löytänyt sopivaa koodekkia",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Kyselyn tulokset julkistettiin",
     "app.whiteboard.toolbar.tools": "Työkalut",
diff --git a/bigbluebutton-html5/private/locales/fr.json b/bigbluebutton-html5/private/locales/fr.json
index f600f60f724bf01b4cf4320ac68f898131bcb55c..4ef38a3ebf7b68833ee78c39af5cd466e790f207 100644
--- a/bigbluebutton-html5/private/locales/fr.json
+++ b/bigbluebutton-html5/private/locales/fr.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Votre présentation commencera dans quelques instants...",
     "app.chat.submitLabel": "Envoyer message",
-    "app.chat.errorMinMessageLength": "Le message est {0} caractère(s) trop court",
     "app.chat.errorMaxMessageLength": "Le message est {0} caractère(s) trop long",
     "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",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Autoriser l'accès",
     "app.media.screenshare.start": "Le Partage d'écran a commencé",
     "app.media.screenshare.end": "Le Partage d'écran s'est terminé",
-    "app.media.screenshare.safariNotSupported": "Le Partage d'écran n'est pour le moment pas supporté par Safari. Veuillez utiliser Firefox ou Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Nous avons besoin de votre permission pour vous montrer l'écran du présentateur.",
     "app.media.screenshare.autoplayAllowLabel": "Afficher l'écran partagé",
     "app.screenshare.notAllowed": "Erreur: L'autorisation d'accès à l'écran n'a pas été accordée.",
@@ -176,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Génération des vignettes...",
     "app.presentationUploder.conversion.generatedSlides": "Diapositives générées...",
     "app.presentationUploder.conversion.generatingSvg": "Génération des images SVG...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Nombre de pages dépassés. Merci de diviser le fichier en plusieurs fichiers.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Échec du traitement du document office. Merci  de télécharger un PDF à la place.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Échec du traitement du document office. Merci  de télécharger un PDF à la place.",
     "app.presentationUploder.conversion.pdfHasBigPage": "Nous n'avons pas pu convertir le fichier PDF, veuillez essayer de l'optimiser.",
     "app.presentationUploder.conversion.timeout": "Oops, la conversion a pris trop de temps",
+    "app.presentationUploder.conversion.pageCountFailed": "Impossible de déterminer le nombre de pages.",
     "app.presentationUploder.isDownloadableLabel": "Ne pas autoriser le téléchargement de la présentation",
     "app.presentationUploder.isNotDownloadableLabel": "Autoriser le téléchargement de la présentation",
     "app.presentationUploder.removePresentationLabel": "Supprimer la présentation",
@@ -360,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "statut actuel {0}",
     "app.actionsBar.captions.start": "Démarrer l'affichage des sous-titres",
     "app.actionsBar.captions.stop": "Arrêter l'affichage des sous-titres",
-    "app.audioNotification.audioFailedError1001": "Erreur 1001 : WebSocket déconnecté",
-    "app.audioNotification.audioFailedError1002": "Erreur 1002 : impossible d'établir une connexion WebSocket.",
-    "app.audioNotification.audioFailedError1003": "Erreur 1003 : version de navigateur non supportée",
-    "app.audioNotification.audioFailedError1004": "Erreur 1004 : échec de l'appel (raison = {0})",
-    "app.audioNotification.audioFailedError1005": "Erreur 1005 : l'appel s'est terminé inopinément",
-    "app.audioNotification.audioFailedError1006": "Erreur 1006 : délai d'appel dépassé",
-    "app.audioNotification.audioFailedError1007": "Erreur 1007 : la négociation ICE a échoué",
-    "app.audioNotification.audioFailedError1008": "Erreur 1008 : échec du transfert",
-    "app.audioNotification.audioFailedError1009": "Erreur 1009 : impossible de récupérer les informations du serveur STUN/TURN.",
-    "app.audioNotification.audioFailedError1010": "Erreur 1010 :  délai dépassé durant la négociation ICE",
-    "app.audioNotification.audioFailedError1011": "Erreur 1011 : délai d'attente dépassé pour ICE",
-    "app.audioNotification.audioFailedError1012": "Erreur 1012 : connexion ICE fermée",
+    "app.audioNotification.audioFailedError1001": "WebSocket déconnecté (erreur 1001)",
+    "app.audioNotification.audioFailedError1002": "Échec de la connexion WebSocket (erreur 1002)",
+    "app.audioNotification.audioFailedError1003": "Version du navigateur non supporté (erreur 1003)",
+    "app.audioNotification.audioFailedError1004": "Échec lors de l'appel (raison={0}) (erreur 1004)",
+    "app.audioNotification.audioFailedError1005": "L'appel s'est terminé de façon inattendue (erreur 1005)",
+    "app.audioNotification.audioFailedError1006": "Délai d'appel dépassé (erreur 1006)",
+    "app.audioNotification.audioFailedError1007": "Échec de la connexion (erreur ICE 1007)",
+    "app.audioNotification.audioFailedError1008": "Transfert échoué (erreur 1008)",
+    "app.audioNotification.audioFailedError1009": "impossible de récupérer les informations du serveur STUN/TURN (erreur 1009)",
+    "app.audioNotification.audioFailedError1010": "Délai dépassé durant la négociation (erreur ICE 1010)",
+    "app.audioNotification.audioFailedError1011": "Délai d'attente de connexion dépassé (erreur ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "Connexion fermée (erreur ICE 1012)",
     "app.audioNotification.audioFailedMessage": "Votre connexion audio à échoué",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia a échoué car seules les origines sécurisées sont autorisées",
     "app.audioNotification.closeLabel": "Fermer",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "Partager webcam",
     "app.video.leaveVideo": "Arrêtez le partage de la webcam",
     "app.video.iceCandidateError": "Erreur lors de l'ajout du candidat ICE",
-    "app.video.iceConnectionStateError": "Erreur 1107 : négociation ICE échouée",
+    "app.video.iceConnectionStateError": "Échec de connexion (erreur ICE 1107)",
     "app.video.permissionError": "Erreur lors du partage de la webcam. Veuillez vérifier les permissions",
     "app.video.sharingError": "Erreur lors du partage de la Webcam",
     "app.video.notFoundError": "Webcam introuvable. Assurez-vous qu'elle soit bien connectée",
     "app.video.notAllowed": "Permission manquante pour partager la Webcam. Veuillez vérifier les permissions dans votre navigateur",
     "app.video.notSupportedError": "La vidéo de la webcam peut uniquement être partagée avec des sources sûres ; assurez-vous que votre certificat SSL est valide",
     "app.video.notReadableError": "Impossible d'obtenir la vidéo de la webcam. Assurez-vous qu'aucun autre programme n'utilise la webcam",
-    "app.video.mediaFlowTimeout1020": "Erreur 1020 : le média n'a pas pu atteindre le serveur",
+    "app.video.mediaFlowTimeout1020": "Le média n'a pas pu atteindre le serveur (erreur 1020)",
     "app.video.suggestWebcamLock": "Appliquer le paramètre de verrouillage aux webcams des téléspectateurs?",
     "app.video.suggestWebcamLockReason": "(cela améliorera la stabilité de la conférence)",
     "app.video.enable": "Activer",
@@ -577,16 +579,16 @@
     "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": "Erreur 1108 : connexion ICE échouée lors du partage d'écran",
-    "app.sfu.mediaServerConnectionError2000": "Erreur 2000 : impossible de se connecter au serveur multimédia",
-    "app.sfu.mediaServerOffline2001": "Erreur 2001 : le serveur multimédia est hors ligne. Veuillez réessayer plus tard.",
-    "app.sfu.mediaServerNoResources2002": "Erreur 2002 : le serveur de médias n'a pas de ressources disponibles",
-    "app.sfu.mediaServerRequestTimeout2003": "Erreur 2003 : les demandes du serveur multimédia expirent",
-    "app.sfu.serverIceGatheringFailed2021": "Erreur 2021 : le serveur multimédia ne peut pas rassembler de candidats ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Erreur 2022 : la connexion ICE au serveur de médias a échoué",
-    "app.sfu.mediaGenericError2200": "Erreur 2200 : le serveur de médias n'a pas pu traiter la demande",
-    "app.sfu.invalidSdp2202":"Erreur 2202 : le client a généré un SDP non valide",
-    "app.sfu.noAvailableCodec2203": "Erreur 2203 : le serveur n'a pas trouvé de codec approprié",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Le serveur multimédia est hors ligne. Veuillez réessayer plus tard (erreur 2001)",
+    "app.sfu.mediaServerNoResources2002": "Le serveur multimédia n'est plus de ressources disponibles (erreur 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Les demandes du serveur multimédia expirent (erreur 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Le serveur multimédia ne peut pas rassembler les candidats de connexion (erreur ICE 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Connexion au serveur multimédia échouée (erreur ICE 2022)",
+    "app.sfu.mediaGenericError2200": "Le serveur multimédia n'a pas pu traiter la demande (erreur 2200)",
+    "app.sfu.invalidSdp2202":"Le client a généré une requête multimédia invalide (erreur SDP 2202)",
+    "app.sfu.noAvailableCodec2203": "Le serveur n'a pas trouvé de codec approprié (erreur 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Les résultats du sondage ont été publiés",
     "app.whiteboard.toolbar.tools": "Outils",
diff --git a/bigbluebutton-html5/private/locales/gl.json b/bigbluebutton-html5/private/locales/gl.json
index cc39caa75fcfe7c1d8892df1defc8d6ced445abe..10f156aa2743d5815d326873c013bb87ed74ddb3 100644
--- a/bigbluebutton-html5/private/locales/gl.json
+++ b/bigbluebutton-html5/private/locales/gl.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "A túa presentación dara inicio nun momento...",
     "app.chat.submitLabel": "Enviar mensaxe",
-    "app.chat.errorMinMessageLength": "A mensaxe é {0} carácter(é) mais curto do esperado",
     "app.chat.errorMaxMessageLength": "A mensaxe é {0} carácter(é) mais longo do esperado",
     "app.chat.disconnected": "Estas desconectado, as mensaxes non poden ser enviados",
     "app.chat.locked": "Chat bloqueado, as mensaxes non poden ser enviados",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Permitir acceso",
     "app.media.screenshare.start": "Compartir pantalla iniciou",
     "app.media.screenshare.end": "Compartir pantalla finalizou",
-    "app.media.screenshare.safariNotSupported": "Compartir pantalla actualmente non é soportada por Safari. Por favor usilize Firefox ou Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Necesitamos o seu permiso para mostrarlle a pantalla do presentador",
     "app.media.screenshare.autoplayAllowLabel": "Ver pantalla compartida",
     "app.meeting.ended": "A sesión finalizou",
diff --git a/bigbluebutton-html5/private/locales/he.json b/bigbluebutton-html5/private/locales/he.json
index 71aca735c7c194d374e93f7f9ff4793f2061d6ca..a3d1ce710807388f2645451cc417a8722d93a332 100644
--- a/bigbluebutton-html5/private/locales/he.json
+++ b/bigbluebutton-html5/private/locales/he.json
@@ -1,60 +1,683 @@
 {
     "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": "Interim results",
+    "app.captions.pad.dictationStart": "Start dictation",
+    "app.captions.pad.dictationStop": "Stop dictation",
+    "app.captions.pad.dictationOnDesc": "Turns speech recognition on",
+    "app.captions.pad.dictationOffDesc": "Turns speech recognition off",
     "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": "New content is available in the shared notes section",
+    "app.userList.captionsTitle": "כתוביות",
+    "app.userList.presenter": "מנחה",
     "app.userList.you": "את/ה",
     "app.userList.locked": "נעול",
     "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.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": "Lock certain functionalities for attendees of the meeting",
+    "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.autoplayBlockedDesc": "נדרש אישור להצגת מסך המנחה.",
+    "app.media.screenshare.autoplayAllowLabel": "צפה בשיתוף מסך",
+    "app.screenshare.notAllowed": "Error: Permission to access screen wasn't granted.",
+    "app.screenshare.notSupportedError": "Error: Screensharing is allowed only on safe (SSL) domains",
+    "app.screenshare.notReadableError": "Error: There was a failure while trying to capture your screen",
+    "app.screenshare.genericError": "Error: An error has occurred with screensharing, please try again",
+    "app.meeting.ended": "המפגש הסתיים",
+    "app.meeting.meetingTimeRemaining": "זמן נותר למפגש: {0}",
+    "app.meeting.meetingTimeHasEnded": "המפגש הסתיים ויסגר בקרוב",
+    "app.meeting.endedMessage": "תופנה למסך הבית",
+    "app.meeting.alertMeetingEndsUnderOneMinute": "המפגש יסתיים בעוד כדקה.",
+    "app.meeting.alertBreakoutEndsUnderOneMinute": "Breakout is closing in a minute.",
+    "app.presentation.hide": "Hide presentation",
+    "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": "Current zoom percentage",
     "app.presentation.presentationToolbar.fitToWidth": "התאם רוחב",
+    "app.presentation.presentationToolbar.fitToPage": "Fit to page",
+    "app.presentation.presentationToolbar.goToSlide": "Slide {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": "or browse/capture for images",
+    "app.presentationUploder.fileToUpload": "להעלאה ...",
+    "app.presentationUploder.currentBadge": "נוכחי",
+    "app.presentationUploder.rejectedError": "לא ניתן להעלות קבצים מסוג זה.",
+    "app.presentationUploder.upload.progress": "מעלה ({0}%)",
+    "app.presentationUploder.upload.413": "קובץ גדול מדי, אנא פצל את הקובץ למספר קבצים קטנים יותר.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "מעבד דף {0} מתוך {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "ממיר קבצים ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "מייצר תצוגה מקדימה ...",
+    "app.presentationUploder.conversion.generatedSlides": "שקופיות הומרו בהצלחה ...",
+    "app.presentationUploder.conversion.generatingSvg": "ממיר קבצי SVG...",
+    "app.presentationUploder.conversion.pageCountExceeded": "לא ניתן להעלות מצגות עם מעל 200 עמודים",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "אירעה שגיאה במהלך הנסיון להציג את מסמך האופיס, אנא העלה מסמך PDF במקום",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "אירעה שגיאה במהלך הנסיון להציג את מסמך האופיס, אנא העלה מסמך PDF במקום",
+    "app.presentationUploder.conversion.pdfHasBigPage": "We could not convert the PDF file, please try optimizing it",
+    "app.presentationUploder.conversion.timeout": "המרת הקובץ ארכה זמן רב מדי, אנא נסה שנית",
+    "app.presentationUploder.conversion.pageCountFailed": "אירעה שגיאה בנסיון לקבוע את מספר העמודים במצגת",
+    "app.presentationUploder.isDownloadableLabel": "אל תאפשר למשתמשים להוריד את קובץ המצגת",
+    "app.presentationUploder.isNotDownloadableLabel": "אפשר למשתמשים להוריד את קובץ המצגת",
+    "app.presentationUploder.removePresentationLabel": "הסרת מצגת",
+    "app.presentationUploder.setAsCurrentPresentation": "Set presentation as current",
+    "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": "אפשרות סקר {0} מתוך {1}",
+    "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": "א / ב",
+    "app.poll.a3": "א / ב / ג",
+    "app.poll.a4": "א / ב / ג / ד",
+    "app.poll.a5": "א / ב / ג / ד / ה",
+    "app.poll.answer.true": "אמת",
+    "app.poll.answer.false": "שקר",
     "app.poll.answer.yes": "כן",
     "app.poll.answer.no": "לא",
+    "app.poll.answer.a": "א",
+    "app.poll.answer.b": "ב",
+    "app.poll.answer.c": "×’",
+    "app.poll.answer.d": "ד",
+    "app.poll.answer.e": "×”",
     "app.poll.liveResult.usersTitle": "משתתפים",
+    "app.poll.liveResult.responsesTitle": "תשובה",
+    "app.polling.pollingTitle": "אפשרויות סקר",
+    "app.polling.pollAnswerLabel": "מענה לסקר {0}",
+    "app.polling.pollAnswerDesc": "בחר באפשרות זו לבחירה ב {0}",
+    "app.failedMessage": "Apologies, trouble connecting to the server.",
+    "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": "Client build:",
+    "app.about.copyright": "Copyright:",
+    "app.about.confirmLabel": "אישור",
+    "app.about.confirmDesc": "אישור",
     "app.about.dismissLabel": "בטל",
+    "app.about.dismissDesc": "Close about client information",
+    "app.actionsBar.changeStatusLabel": "שנה מצב",
+    "app.actionsBar.muteLabel": "השתק",
+    "app.actionsBar.unmuteLabel": "בטל השתקה",
+    "app.actionsBar.camOffLabel": "כבה מצלמה",
+    "app.actionsBar.raiseLabel": "הרם",
+    "app.actionsBar.label": "Actions bar",
+    "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": "Error 1001: WebSocket disconnected",
+    "app.audioNotification.audioFailedError1002": "Error 1002: Could not make a WebSocket connection",
+    "app.audioNotification.audioFailedError1003": "Error 1003: Browser version not supported",
+    "app.audioNotification.audioFailedError1004": "Error 1004: Failure on call (reason={0})",
+    "app.audioNotification.audioFailedError1005": "Error 1005: Call ended unexpectedly",
+    "app.audioNotification.audioFailedError1006": "Error 1006: Call timed out",
+    "app.audioNotification.audioFailedError1007": "Error 1007: ICE negotiation failed",
+    "app.audioNotification.audioFailedError1008": "Error 1008: Transfer failed",
+    "app.audioNotification.audioFailedError1009": "Error 1009: Could not fetch STUN/TURN server information",
+    "app.audioNotification.audioFailedError1010": "Error 1010: ICE negotiation timeout",
+    "app.audioNotification.audioFailedError1011": "Error 1011: ICE gathering timeout",
+    "app.audioNotification.audioFailedError1012": "Error 1012: ICE connection closed",
+    "app.audioNotification.audioFailedMessage": "Your audio connection failed to connect",
+    "app.audioNotification.mediaFailedMessage": "getUserMicMedia failed as only secure origins are allowed",
+    "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": "כרגע וידאו וקול לא נתמכים בכרום למכשירי אפל",
+    "app.audioModal.iOSErrorRecommendation": "מומלץ להשתמש בספארי על מכשיר זה",
+    "app.audioModal.audioChoiceDesc": "איך ברצונך להצטרך למפגש הקולי?",
+    "app.audioModal.unsupportedBrowserLabel": "It looks like you're using a browser that is not fully supported. Please use either {0} or {1} for full support.",
+    "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": "Did you give permission for access to your microphone?  Note that a dialog should appear when you try to join audio, asking for your media device permissions, please accept that in order to join the audio conference.  If that is not the case, try changing your microphone permissions in your browser's settings.",
+    "app.audioModal.help.noSSL": "This page is unsecured. For microphone access to be allowed the page must be served over HTTPS. Please contact the server administrator.",
+    "app.audioModal.help.macNotAllowed": "It looks like your Mac System Preferences are blocking access to your microphone. Open System Preferences > Security & Privacy > Privacy > Microphone, and verify that the browser you're using is checked.",
+    "app.audioModal.audioDialTitle": "Join using your phone",
+    "app.audioDial.audioDialDescription": "Dial",
+    "app.audioDial.audioDialConfrenceText": "and enter the conference PIN number:",
+    "app.audioModal.autoplayBlockedDesc": "We need your permission to play audio.",
+    "app.audioModal.playAudio": "Play audio",
+    "app.audioModal.playAudio.arialabel" : "Play audio",
+    "app.audioDial.tipIndicator": "Tip",
+    "app.audioDial.tipMessage": "Press the '0' key on your phone to mute/unmute yourself.",
+    "app.audioModal.connecting": "Connecting",
+    "app.audioModal.connectingEchoTest": "Connecting to echo test",
+    "app.audioManager.joinedAudio": "You have joined the audio conference",
+    "app.audioManager.joinedEcho": "You have joined the echo test",
+    "app.audioManager.leftAudio": "You have left the audio conference",
+    "app.audioManager.reconnectingAudio": "Attempting to reconnect audio",
+    "app.audioManager.genericError": "Error: An error has occurred, please try again",
+    "app.audioManager.connectionError": "Error: Connection error",
+    "app.audioManager.requestTimeout": "Error: There was a timeout in the request",
+    "app.audioManager.invalidTarget": "Error: Tried to request something to an invalid target",
+    "app.audioManager.mediaError": "Error: There was an issue getting your media devices",
+    "app.audio.joinAudio": "הצטרף למפגש קולי",
+    "app.audio.leaveAudio": "עזוב את המפגש הקולי",
+    "app.audio.enterSessionLabel": "היכנס למפגש",
+    "app.audio.playSoundLabel": "נגן צליל",
+    "app.audio.backLabel": "חזור",
+    "app.audio.audioSettings.titleLabel": "בחר את הגדרות הקול",
+    "app.audio.audioSettings.descriptionLabel": "Please note, a dialog will appear in your browser, requiring you to accept sharing your microphone.",
+    "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": "We need you to allow us to use your media devices in order to join you to the voice conference :)",
+    "app.error.removed": "You have been removed from the conference",
+    "app.error.meeting.ended": "You have logged out of the conference",
+    "app.meeting.logout.duplicateUserEjectReason": "Duplicate user trying to join meeting",
+    "app.meeting.logout.permissionEjectReason": "Ejected due to permission violation",
+    "app.meeting.logout.ejectedFromMeeting": "You have been removed from the meeting",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Failed to validate authorization token",
+    "app.meeting.logout.userInactivityEjectReason": "User inactive for too long",
+    "app.meeting-ended.rating.legendLabel": "Feedback rating",
+    "app.meeting-ended.rating.starLabel": "Star",
+    "app.modal.close": "Close",
+    "app.modal.close.description": "Disregards changes and closes the modal",
+    "app.modal.confirm": "Done",
+    "app.modal.newTab": "(opens new tab)",
+    "app.modal.confirm.description": "Saves changes and closes the modal",
+    "app.dropdown.close": "Close",
+    "app.error.400": "Bad Request",
+    "app.error.401": "Unauthorized",
+    "app.error.403": "You have been removed from the meeting",
+    "app.error.404": "Not found",
+    "app.error.410": "Meeting has ended",
+    "app.error.500": "Ops, something went wrong",
+    "app.error.leaveLabel": "Log in again",
+    "app.error.fallback.presentation.title": "An error occurred",
+    "app.error.fallback.presentation.description": "It has been logged. Please try reloading the page.",
+    "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": "Access keys not available",
+    "app.shortcut-help.comboLabel": "Combo",
+    "app.shortcut-help.functionLabel": "Function",
+    "app.shortcut-help.closeLabel": "Close",
+    "app.shortcut-help.closeDesc": "Closes keyboard shortcuts modal",
+    "app.shortcut-help.openOptions": "Open Options",
+    "app.shortcut-help.toggleUserList": "Toggle UserList",
+    "app.shortcut-help.toggleMute": "השתק / בטל השתקה",
+    "app.shortcut-help.togglePublicChat": "Toggle Public Chat (User list must be open)",
+    "app.shortcut-help.hidePrivateChat": "הסתר צ'אט פרטי",
+    "app.shortcut-help.closePrivateChat": "סגור צ'אט פרטי",
+    "app.shortcut-help.openActions": "פתח את תפריט הפעולות",
+    "app.shortcut-help.openStatus": "פתח את תפריט הסטטוסים",
+    "app.shortcut-help.togglePan": "Activate Pan tool (Presenter)",
+    "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.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.video.cancel": "בטל"
+    "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": "Error on adding ICE candidate",
+    "app.video.iceConnectionStateError": "Error 1107: ICE negotiation failed",
+    "app.video.permissionError": "Error on sharing webcam.  Please check permissions",
+    "app.video.sharingError": "Error on sharing webcam",
+    "app.video.notFoundError": "Could not find webcam. Please make sure it's connected",
+    "app.video.notAllowed": "Missing permission for share webcam, please make sure your browser permissions",
+    "app.video.notSupportedError": "Can share webcam video only with safe sources, make sure your SSL certificate is valid",
+    "app.video.notReadableError": "Could not get webcam video. Please make sure another program is not using the webcam ",
+    "app.video.mediaFlowTimeout1020": "Error 1020: media could not reach the server",
+    "app.video.suggestWebcamLock": "Enforce lock setting to viewers webcams?",
+    "app.video.suggestWebcamLockReason": "(this will improve the stability of the meeting)",
+    "app.video.enable": "אפשר",
+    "app.video.cancel": "בטל",
+    "app.video.swapCam": "החלף",
+    "app.video.swapCamDesc": "החלף את כיווני המצלמות",
+    "app.video.videoLocked": "שיתוף וידאו נעול",
+    "app.video.videoButtonDesc": "שתף וידאו",
+    "app.video.videoMenu": "תפריט וידאו",
+    "app.video.videoMenuDisabled": "Video menu Webcam is disabled in settings",
+    "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",
+    "app.sfu.mediaServerOffline2001": "Error 2001: Media server is offline. Please try again later.",
+    "app.sfu.mediaServerNoResources2002": "Error 2002: Media server has no available resources",
+    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: Media server requests are timing out",
+    "app.sfu.serverIceGatheringFailed2021": "Error 2021: Media server cannot gather ICE candidates",
+    "app.sfu.serverIceGatheringFailed2022": "Error 2022: Media server ICE connection failed",
+    "app.sfu.mediaGenericError2200": "Error 2200: Media server failed to process request",
+    "app.sfu.invalidSdp2202":"Error 2202: Client generated an invalid SDP",
+    "app.sfu.noAvailableCodec2203": "Error 2203: Server could not find an appropriate codec",
+    "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": "We'd love to hear about your experience with BigBlueButton (optional)",
+    "app.feedback.textarea": "How can we make BigBlueButton better?",
+    "app.feedback.sendFeedback": "Send Feedback",
+    "app.feedback.sendFeedbackDesc": "Send a feedback and leave the meeting",
+    "app.videoDock.webcamFocusLabel": "פוקוס",
+    "app.videoDock.webcamFocusDesc": "קבע פוקוס למצלמה שנבחרה",
+    "app.videoDock.webcamUnfocusLabel": "בטל פוקוס",
+    "app.videoDock.webcamUnfocusDesc": "בטל פוקוס למצלמה שנבחרה",
+    "app.videoDock.autoplayBlockedDesc": "נדרש אישורך להצגת וידאו של שאר המשתתפים.",
+    "app.videoDock.autoplayAllowLabel": "הצג מצלמות רשת",
+    "app.invitation.title": "Breakout room invitation",
+    "app.invitation.confirm": "Invite",
+    "app.createBreakoutRoom.title": "Breakout Rooms",
+    "app.createBreakoutRoom.ariaTitle": "Hide Breakout Rooms",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Breakout Rooms {0}",
+    "app.createBreakoutRoom.generatingURL": "Generating URL",
+    "app.createBreakoutRoom.generatedURL": "Generated",
+    "app.createBreakoutRoom.duration": "Duration {0}",
+    "app.createBreakoutRoom.room": "Room {0}",
+    "app.createBreakoutRoom.notAssigned": "Not assigned ({0})",
+    "app.createBreakoutRoom.join": "Join room",
+    "app.createBreakoutRoom.joinAudio": "Join audio",
+    "app.createBreakoutRoom.returnAudio": "Return audio",
+    "app.createBreakoutRoom.alreadyConnected": "Already in room",
+    "app.createBreakoutRoom.confirm": "Create",
+    "app.createBreakoutRoom.record": "Record",
+    "app.createBreakoutRoom.numberOfRooms": "Number of rooms",
+    "app.createBreakoutRoom.durationInMinutes": "Duration (minutes)",
+    "app.createBreakoutRoom.randomlyAssign": "Randomly assign",
+    "app.createBreakoutRoom.endAllBreakouts": "End all breakout rooms",
+    "app.createBreakoutRoom.roomName": "{0} (Room - {1})",
+    "app.createBreakoutRoom.doneLabel": "Done",
+    "app.createBreakoutRoom.nextLabel": "Next",
+    "app.createBreakoutRoom.minusRoomTime": "Decrease breakout room time to",
+    "app.createBreakoutRoom.addRoomTime": "Increase breakout room time to",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Add participant",
+    "app.createBreakoutRoom.freeJoin": "Allow users to choose a breakout room to join",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "You must place at least one user in a breakout room.",
+    "app.createBreakoutRoom.modalDesc": "Tip: You can drag-and-drop a user's name to assign them to a specific breakout room.",
+    "app.createBreakoutRoom.roomTime": "{0} minutes",
+    "app.createBreakoutRoom.numberOfRoomsError": "The number of rooms is invalid.",
+    "app.externalVideo.start": "Share a new video",
+    "app.externalVideo.title": "Share an external video",
+    "app.externalVideo.input": "External Video URL",
+    "app.externalVideo.urlInput": "Add Video URL",
+    "app.externalVideo.urlError": "This video URL isn't supported",
+    "app.externalVideo.close": "Close",
+    "app.externalVideo.autoPlayWarning": "Play the video to enable media synchronization",
+    "app.network.connection.effective.slow": "We're noticing connectivity issues.",
+    "app.network.connection.effective.slow.help": "More information",
+    "app.externalVideo.noteLabel": "Note: Shared external videos will not appear in the recording. YouTube, Vimeo, Instructure Media, Twitch and Daily Motion URLs are supported.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Share an external video",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Stop sharing external video",
+    "app.iOSWarning.label": "Please upgrade to iOS 12.2 or higher",
+    "app.legacy.unsupportedBrowser": "It looks like you're using a browser that is not supported. Please use either {0} or {1} for full support.",
+    "app.legacy.upgradeBrowser": "It looks like you're using an older version of a supported browser. Please upgrade your browser for full support.",
+    "app.legacy.criosBrowser": "On iOS please use Safari for full support."
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/hi_IN.json b/bigbluebutton-html5/private/locales/hi_IN.json
index 2d912fbf161a7a187dc130cab6f96ef2ec87678e..69b1909f486e7a6200aa62c4f50752b39effac46 100644
--- a/bigbluebutton-html5/private/locales/hi_IN.json
+++ b/bigbluebutton-html5/private/locales/hi_IN.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "आपकी प्रस्तुति शीघ्र ही शुरू होगी ...",
     "app.chat.submitLabel": "मेसेज भेजें",
-    "app.chat.errorMinMessageLength": "संदेश {0} वर्णों का (है)",
     "app.chat.errorMaxMessageLength": "संदेश बहुत लंबा है {0} अक्षर()",
     "app.chat.inputLabel": "चैट के लिए संदेश इनपुट {0}",
     "app.chat.titlePublic": "सार्वजनिक चैट",
@@ -72,7 +71,6 @@
     "app.media.label": "मीडिया",
     "app.media.screenshare.start": "स्क्रीनशॉट की शुरुआत हो चुकी है",
     "app.media.screenshare.end": "स्क्रीनशेयर समाप्त हो गया है",
-    "app.media.screenshare.safariNotSupported": "स्क्रीनशेयर वर्तमान में सफारी द्वारा समर्थित नहीं है। कृपया, फ़ायरफ़ॉक्स या गूगल क्रोम का उपयोग करें।",
     "app.meeting.ended": "यह सत्र समाप्त हो गया है।",
     "app.meeting.meetingTimeRemaining": "बैठक का समय शेष: {0}",
     "app.meeting.meetingTimeHasEnded": "समय समाप्त हुआ। बैठक जल्द ही बंद हो जाएगी",
@@ -279,18 +277,6 @@
     "app.actionsBar.emojiMenu.thumbsDownLabel": "नाकामयाबी",
     "app.actionsBar.emojiMenu.thumbsDownDesc": "अंगूठे को अपनी स्थिति बदलें",
     "app.actionsBar.currentStatusDesc": "वर्तमान स्थिति {0}",
-    "app.audioNotification.audioFailedError1001": "त्रुटि 1001: वेबस्केट डिस्कनेक्ट हो गया",
-    "app.audioNotification.audioFailedError1002": "1002 त्रुटि: एक WebSocket कनेक्शन नहीं बना सका",
-    "app.audioNotification.audioFailedError1003": "त्रुटि 1003: ब्राउज़र संस्करण समर्थित नहीं है",
-    "app.audioNotification.audioFailedError1004": "त्रुटि 1004: कॉल पर विफलता (कारण = {0})",
-    "app.audioNotification.audioFailedError1005": "1005 त्रुटि: कॉल अप्रत्याशित रूप से समाप्त हो गया",
-    "app.audioNotification.audioFailedError1006": "त्रुटि 1006: कॉल समय समाप्त हो गया",
-    "app.audioNotification.audioFailedError1007": "त्रुटि 1007: ICE बातचीत विफल",
-    "app.audioNotification.audioFailedError1008": "त्रुटि 1008: स्थानांतरण विफल रहा",
-    "app.audioNotification.audioFailedError1009": "त्रुटि 1009: STUN / TURN सर्वर जानकारी प्राप्त नहीं कर सका",
-    "app.audioNotification.audioFailedError1010": "त्रुटि 1010: ICE बातचीत का समय समाप्त",
-    "app.audioNotification.audioFailedError1011": "1011 त्रुटि: ICE टाइमआउट एकत्रित करना",
-    "app.audioNotification.audioFailedError1012": "1012 त्रुटि: ICE कनेक्शन बंद",
     "app.audioNotification.audioFailedMessage": "आपका ऑडियो कनेक्शन कनेक्ट करने में विफल रहा",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia विफल हो गया क्योंकि केवल सुरक्षित उत्पत्ति की अनुमति है",
     "app.audioNotification.closeLabel": "बंद करे",
@@ -422,14 +408,12 @@
     "app.video.joinVideo": "वेब कैमरा साझा करें",
     "app.video.leaveVideo": "वेबकैम साझा करना बंद करें",
     "app.video.iceCandidateError": "ICE उम्मीदवार को जोड़ने में त्रुटि",
-    "app.video.iceConnectionStateError": "1107 त्रुटि: ICE बातचीत विफल",
     "app.video.permissionError": "वेबकैम साझा करने में त्रुटि। कृपया अनुमतियां जांचें",
     "app.video.sharingError": "वेबकैम साझा करने में त्रुटि",
     "app.video.notFoundError": "वेबकैम नहीं मिल सका। कृपया सुनिश्चित करें कि यह जुड़ा हुआ है",
     "app.video.notAllowed": "साझा वेब कैमरा के लिए अनुमति गुम है, कृपया अपने ब्राउज़र की अनुमति सुनिश्चित करें",
     "app.video.notSupportedError": "केवल सुरक्षित स्रोतों के साथ वेबकैम वीडियो साझा कर सकते हैं, सुनिश्चित करें कि आपका एसएसएल प्रमाणपत्र मान्य है",
     "app.video.notReadableError": "वेब कैमरा वीडियो नहीं मिल सका। कृपया सुनिश्चित करें कि एक और कार्यक्रम वेबकैम का उपयोग नहीं कर रहा है",
-    "app.video.mediaFlowTimeout1020": "त्रुटि 1020: मीडिया सर्वर तक नहीं पहुंच सका",
     "app.video.cancel": "रद्द करना",
     "app.video.swapCam": "विनिमय",
     "app.video.swapCamDesc": "वेबकैम की दिशा स्वैप करें",
@@ -454,16 +438,6 @@
     "app.video.stats.encodeUsagePercent": "उपयोग को एनकोड करें",
     "app.video.stats.currentDelay": "वर्तमान देरी",
     "app.fullscreenButton.label": "फुलस्क्रीन बनाएं {0}",
-    "app.deskshare.iceConnectionStateError": "1108 त्रुटि: स्क्रीन साझा करते समय ICE कनेक्शन विफल हो गया",
-    "app.sfu.mediaServerConnectionError2000": "त्रुटि 2000: मीडिया सर्वर से कनेक्ट करने में असमर्थ",
-    "app.sfu.mediaServerOffline2001": "त्रुटि 2001: मीडिया सर्वर ऑफ़लाइन है। बाद में पुन: प्रयास करें।",
-    "app.sfu.mediaServerNoResources2002": "त्रुटि 2002: मीडिया सर्वर के पास कोई उपलब्ध संसाधन नहीं है",
-    "app.sfu.mediaServerRequestTimeout2003": "त्रुटि 2003: मीडिया सर्वर अनुरोधों का समय समाप्त हो रहा है",
-    "app.sfu.serverIceGatheringFailed2021": "त्रुटि 2021: मीडिया सर्वर ICE उम्मीदवारों को इकट्ठा नहीं कर सकता",
-    "app.sfu.serverIceGatheringFailed2022": "त्रुटि 2022: मीडिया सर्वर ICE कनेक्शन विफल",
-    "app.sfu.mediaGenericError2200": "2200 त्रुटि: मीडिया सर्वर अनुरोध को संसाधित करने में विफल रहा",
-    "app.sfu.invalidSdp2202":"2202 त्रुटि: क्लाइंट ने एक अमान्य SDP उत्पन्न किया",
-    "app.sfu.noAvailableCodec2203": "2203 त्रुटि: सर्वर को एक उपयुक्त कोडेक नहीं मिल सका",
     "app.meeting.endNotification.ok.label": "ठीक",
     "app.whiteboard.toolbar.tools": "उपकरण",
     "app.whiteboard.toolbar.tools.hand": "कड़ाही",
diff --git a/bigbluebutton-html5/private/locales/hr.json b/bigbluebutton-html5/private/locales/hr.json
new file mode 100644
index 0000000000000000000000000000000000000000..4dce4c2c50116afc735d1387882b04ce938a1967
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/hr.json
@@ -0,0 +1,42 @@
+{
+    "app.home.greeting": "Vaša prezentacija započet će uskoro ...",
+    "app.chat.submitLabel": "Pošalji poruku",
+    "app.chat.inputPlaceholder": "Pošalji poruku {0}",
+    "app.chat.titlePublic": "Javni chat",
+    "app.chat.titlePrivate": "Privatni chat s {0}",
+    "app.chat.partnerDisconnected": "{0} je napustio sastanak",
+    "app.chat.closeChatLabel": "Zatvori {0}",
+    "app.chat.hideChatLabel": "Sakrij {0}",
+    "app.chat.dropdown.options": "Opcije chata",
+    "app.chat.dropdown.clear": "Očisti",
+    "app.chat.dropdown.copy": "Kopiraj",
+    "app.chat.dropdown.save": "Spremi",
+    "app.chat.label": "Chat",
+    "app.chat.one.typing": "{0} tipka",
+    "app.chat.two.typing": "{0} i {1} tipkaju",
+    "app.captions.menu.close": "Zatvori",
+    "app.captions.menu.fontSize": "Veličina",
+    "app.captions.menu.fontFamily": "Font",
+    "app.captions.menu.previewLabel": "Pregled",
+    "app.note.label": "Bilješka",
+    "app.note.hideNoteLabel": "Sakrij bilješku",
+    "app.user.activityCheck.check": "Provjeri",
+    "app.userList.usersTitle": "Korisnici",
+    "app.userList.notesTitle": "Bilješke",
+    "app.userList.presenter": "Prezenter",
+    "app.userList.you": "Vi",
+    "app.userList.guest": "Gost",
+    "app.poll.closeLabel": "Zatvori",
+    "app.poll.liveResult.usersTitle": "Korisnici",
+    "app.settings.main.save.label": "Spremi",
+    "app.audioNotification.closeLabel": "Zatvori",
+    "app.audioModal.closeLabel": "Zatvori",
+    "app.audio.listenOnly.closeLabel": "Zatvori",
+    "app.modal.close": "Zatvori",
+    "app.dropdown.close": "Zatvori",
+    "app.shortcut-help.closeLabel": "Zatvori",
+    "app.videoPreview.closeLabel": "Zatvori",
+    "app.externalVideo.close": "Zatvori"
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/hu_HU.json b/bigbluebutton-html5/private/locales/hu_HU.json
index da3750bf83fcdde89ab82750c3b54e8d16188d99..6aa1a09555b3a26ee1ba39e7f033ab6e77f8b69a 100644
--- a/bigbluebutton-html5/private/locales/hu_HU.json
+++ b/bigbluebutton-html5/private/locales/hu_HU.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "A prezentáció hamarosan elindul ...",
     "app.chat.submitLabel": "Üzenet küldése",
-    "app.chat.errorMinMessageLength": "Az üzenet {0} karakterrel túl rövid",
     "app.chat.errorMaxMessageLength": "Az üzenet {0} karakterrel túl hosszú",
     "app.chat.disconnected": "Nem küldhetsz üzenete, mert nem kapcsolódtál",
     "app.chat.locked": "Nem küldhetsz üzenete, mert a beszélgetés zárolt",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Hozzáférés engedélyezése",
     "app.media.screenshare.start": "A képernyőmegosztás elindult",
     "app.media.screenshare.end": "A képernyőmegosztás befejeződött",
-    "app.media.screenshare.safariNotSupported": "A képernyőmegosztás jelenleg nem működik Safari alatt. Javasoljuk Firefox, illetve Google Chrome használatát.",
     "app.media.screenshare.autoplayBlockedDesc": "Az előadó képernyőjének megjelenítéséhez az engedélyedre van szükségünk.",
     "app.media.screenshare.autoplayAllowLabel": "Megosztott képernyő megjelenítése",
     "app.screenshare.notAllowed": "Hiba: A képernyő hozzáféréséhez az engedélyét nem adták meg.",
@@ -273,7 +271,7 @@
     "app.about.dismissDesc": "Kliensinformációk bezárása",
     "app.actionsBar.changeStatusLabel": "Állapot módosítása",
     "app.actionsBar.muteLabel": "Némítás",
-    "app.actionsBar.unmuteLabel": "Hangosítás",
+    "app.actionsBar.unmuteLabel": "Mikrofon bekapcsolása",
     "app.actionsBar.camOffLabel": "Kamera kikapcsolása",
     "app.actionsBar.raiseLabel": "Kézfeltartás",
     "app.actionsBar.label": "Műveletek sáv",
@@ -364,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "{0} jelenlegi állapot",
     "app.actionsBar.captions.start": "Feliratok megtekintésének indítása",
     "app.actionsBar.captions.stop": "Feliratok megtekintésének befejezése",
-    "app.audioNotification.audioFailedError1001": "Hiba 1001: WebSocket kapcsolat megszakadt",
-    "app.audioNotification.audioFailedError1002": "Hiba 1002: Websocket kapcsolat nem jött létre",
-    "app.audioNotification.audioFailedError1003": "Hiba 1003: Nem támogatott böngészőverzió",
-    "app.audioNotification.audioFailedError1004": "Hiba 1004: Hiba a híváskor (ok={0})",
-    "app.audioNotification.audioFailedError1005": "Hiba 1005: Hívás váratlanul véget ért",
-    "app.audioNotification.audioFailedError1006": "Hiba 1006: Hívás időtúllépése",
-    "app.audioNotification.audioFailedError1007": "Hiba 1007: ICE egyezkedés sikertelen",
-    "app.audioNotification.audioFailedError1008": "Hiba 1008: Átvitel sikertelen",
-    "app.audioNotification.audioFailedError1009": "Hiba 1009: Nem sikerült hozzájutni a STUN/TURN szerverinformációhoz",
-    "app.audioNotification.audioFailedError1010": "Hiba 1010: ICE egyezkedési időtúllépés",
-    "app.audioNotification.audioFailedError1011": "Hiba 1011: ICE gyűjtési időtúllépés",
-    "app.audioNotification.audioFailedError1012": "Hiba 1012: ICE kapcsolat lezárult",
+    "app.audioNotification.audioFailedError1001": "WebSocket kapcsolat megszakadt (hiba 1001)",
+    "app.audioNotification.audioFailedError1002": "Websocket kapcsolat nem jött létre (hiba 1002)",
+    "app.audioNotification.audioFailedError1003": "Nem támogatott böngészőverzió (hiba 1003)",
+    "app.audioNotification.audioFailedError1004": "Hiba a híváskor (ok={0}) (hiba1004)",
+    "app.audioNotification.audioFailedError1005": "Hívás váratlanul véget ért (hiba 1005)",
+    "app.audioNotification.audioFailedError1006": "Hívás időtúllépése (hiba 1006)",
+    "app.audioNotification.audioFailedError1007": "Csatlakozási hiba (ICE hiba 1007)",
+    "app.audioNotification.audioFailedError1008": "Átvitel sikertelen (hiba 1008)",
+    "app.audioNotification.audioFailedError1009": "Nem sikerült hozzájutni a STUN/TURN szerverinformációhoz (hiba 1009)",
+    "app.audioNotification.audioFailedError1010": "Kapcsolategyezkedési időtúllépés (ICE hiba 1010)",
+    "app.audioNotification.audioFailedError1011": "Csatlakozási időtúllépés (ICE hiba 1011)",
+    "app.audioNotification.audioFailedError1012": "Kapcsolat lezárult (ICE hiba 1012)",
     "app.audioNotification.audioFailedMessage": "A hangcsatlakozásod sikertelen",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia sikertelen, mivel csak biztonságos eredet engedélyezett",
     "app.audioNotification.closeLabel": "Bezárás",
@@ -546,14 +544,14 @@
     "app.video.joinVideo": "Webkamerám megosztása",
     "app.video.leaveVideo": "Webkamerám megosztásának befejezése",
     "app.video.iceCandidateError": "Hiba az ICE-jelölt hozzáadásakor",
-    "app.video.iceConnectionStateError": "Hiba 1107: Az ICE-tárgyalások sikertelenek",
+    "app.video.iceConnectionStateError": "Csatlakozási hiba (ICE hiba 1107)",
     "app.video.permissionError": "Hiba a webkamera megosztásakor. Kérjük, ellenőrizd a jogosultságokat, engedélyeket",
     "app.video.sharingError": "Hiba a webkamera megosztásakor",
     "app.video.notFoundError": "A webkamera nem található. Kérem, győződj meg róla, hogy csatlakoztatva van",
     "app.video.notAllowed": "Hiányzik engedély a kamera megosztásához, kérem, ellenőrizd a böngésződ beállításait",
     "app.video.notSupportedError": "Csak biztonságok forrásból oszthatsz meg webkamerát, ezért kérjük, ellenőrizd, hogy SSL tanúsítványod érvényes-e",
     "app.video.notReadableError": "Nem vesszük a webkamera képét. Kérjük, ellenőrizd, hogy másik program ne használja a webkamerát",
-    "app.video.mediaFlowTimeout1020": "Hiba 1020: A média nem éri el a szervert",
+    "app.video.mediaFlowTimeout1020": "A média nem éri el a szervert (hiba 1020)",
     "app.video.suggestWebcamLock": "Érvényesíted a zárolási beállítást a nézők webkameráján?",
     "app.video.suggestWebcamLockReason": "(ez növeli a beszélgetés stabilitását)",
     "app.video.enable": "Engedélyezés",
@@ -581,16 +579,16 @@
     "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": "Hiba 1108: ICE kapcsolódási hiba a képernyőmegosztáskor",
-    "app.sfu.mediaServerConnectionError2000": "Hiba 2000: Nem sikerült csatlakozni a médiaszerverhez",
-    "app.sfu.mediaServerOffline2001": "Hiba 2001: A médiaszerver ki van kapcsolva. Kérjük, próbálja később.",
-    "app.sfu.mediaServerNoResources2002": "Hiba 2002: A médiaszervernek nincs elérhető erőforrása",
-    "app.sfu.mediaServerRequestTimeout2003": "Hiba: 2003: Időtúllépés a médiaszerver kéréseivel",
-    "app.sfu.serverIceGatheringFailed2021": "Hiba 2021: A médiaszerver nem tud ICE jelölteket gyűjteni",
-    "app.sfu.serverIceGatheringFailed2022": "Hiba 2022: Médiaszerver ICE kapcsolódási hiba",
-    "app.sfu.mediaGenericError2200": "Hiba 2200: A médiaszerver nem tudja kiszolgálni a kérést",
-    "app.sfu.invalidSdp2202":"Hiba 2202: A kliens nem valós SDP-t hozott létre",
-    "app.sfu.noAvailableCodec2203": "Hiba 2203: A szerver nem találja a megfelelő kodeket",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "A médiaszerver ki van kapcsolva. Kérjük, próbálja később. (hiba 2001)",
+    "app.sfu.mediaServerNoResources2002": "A médiaszervernek nincs elérhető erőforrása (hiba 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Időtúllépés a médiaszerver kéréseivel (hiba 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "A médiaszerver nem tud ICE jelölteket gyűjteni (ICE hiba 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Médiaszerver kapcsolódási hiba (ICE hiba 2022)",
+    "app.sfu.mediaGenericError2200": "A médiaszerver nem tudja kiszolgálni a kérést (hiba 2200)",
+    "app.sfu.invalidSdp2202":"A kliens érvénytelen médiakérést hozott létre (SDP hiba 2202)",
+    "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.toolbar.tools": "Eszközök",
diff --git a/bigbluebutton-html5/private/locales/hy_AM.json b/bigbluebutton-html5/private/locales/hy_AM.json
new file mode 100644
index 0000000000000000000000000000000000000000..fcc860f807031e13af6bd5baec531bc22937376c
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/hy_AM.json
@@ -0,0 +1,60 @@
+{
+    "app.home.greeting": "Ձեր շնորհանդեսը շուտով կսկսվի...",
+    "app.chat.submitLabel": "ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶",
+    "app.chat.closeChatLabel": "Õ“Õ¡Õ¯Õ¥Õ¬ {0}",
+    "app.chat.dropdown.clear": "Õ„Õ¡Ö„Ö€Õ¥Õ¬",
+    "app.chat.dropdown.copy": "ÕŠÕ¡Õ¿Õ³Õ¥Õ¶Õ¥Õ¬",
+    "app.chat.dropdown.save": "ÕŠÕ¡Õ°ÕºÕ¡Õ¶Õ¥Õ¬",
+    "app.chat.label": "Զրուցարան",
+    "app.chat.offline": "Անցանց",
+    "app.captions.label": "Õ†Õ¯Õ¡Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€",
+    "app.captions.menu.close": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.captions.menu.start": "Սկսել",
+    "app.captions.menu.select": "Ô¸Õ¶Õ¿Ö€Õ¥Ö„ Õ¡Ö€Õ¯Õ¡ Õ¬Õ¥Õ¦Õ¸Ö‚Õ¶",
+    "app.captions.menu.fontSize": "Õ‰Õ¡ÖƒÕ¨",
+    "app.captions.menu.fontColor": "Տեքստի գույնը",
+    "app.captions.menu.fontFamily": "Տառատեսակ",
+    "app.captions.menu.previewLabel": "Õ†Õ¡Õ­Õ¡Õ¤Õ«Õ¿Õ¸Ö‚Õ´",
+    "app.captions.menu.cancelLabel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.note.label": "Õ†Õ·Õ¸Ö‚Õ´",
+    "app.note.hideNoteLabel": "Թաքցնել գրությունը",
+    "app.user.activityCheck": "Õ•Õ£Õ¿Õ¡Õ£Õ¸Ö€Õ®Õ¸Õ²Õ« Õ£Õ¸Ö€Õ®Õ¸Ö‚Õ¶Õ¥Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ½Õ¿Õ¸Ö‚Õ£Õ¸Ö‚Õ´",
+    "app.user.activityCheck.label": "Ստուգեք, արդյոք օգտագործողը դեռ հանդիպման մեջ է ({0})",
+    "app.userList.usersTitle": "Õ•Õ£Õ¿Õ¡Õ£Õ¸Ö€Õ®Õ¸Õ²Õ¶Õ¥Ö€",
+    "app.userList.participantsTitle": "Մասնակիցները",
+    "app.userList.messagesTitle": "Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€",
+    "app.userList.notesTitle": "Õ†Õ¸Õ¿Õ¡Õ¶Õ¥Ö€",
+    "app.userList.captionsTitle": "Õ†Õ¯Õ¡Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€",
+    "app.userList.you": "Ô´Õ¸Ö‚",
+    "app.userList.label": "Օգտագործողների ցուցակ",
+    "app.userList.guest": "Õ€ÕµÕ¸Ö‚Ö€",
+    "app.userList.chatListItem.unreadSingular": "{0} Õ†Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶",
+    "app.userList.menu.chat.label": "Սկսեք անձնական զրույց",
+    "app.userList.userOptions.manageUsersLabel": "Ô¿Õ¡Õ¼Õ¡Õ¾Õ¡Ö€Õ¥Õ¬ Ö…Õ£Õ¿Õ¾Õ¸Õ²Õ¶Õ¥Ö€Õ«Õ¶",
+    "app.media.screenshare.start": "Սկսվեց էկրանի համօգտագործումը",
+    "app.media.screenshare.end": "Էկրանի համօգտագործումը ավարտվեց",
+    "app.presentationUploder.dismissLabel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.poll.closeLabel": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.poll.liveResult.usersTitle": "Õ•Õ£Õ¿Õ¡Õ£Õ¸Ö€Õ®Õ¸Õ²Õ¶Õ¥Ö€",
+    "app.about.dismissLabel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.settings.usersTab.label": "Մասնակիցները",
+    "app.settings.main.cancel.label": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.settings.main.save.label": "ÕŠÕ¡Õ°ÕºÕ¡Õ¶Õ¥Õ¬",
+    "app.audioNotification.closeLabel": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.breakoutJoinConfirmation.dismissLabel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.audioModal.closeLabel": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.audio.listenOnly.closeLabel": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.modal.close": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.dropdown.close": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.shortcut-help.closeLabel": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.lock-viewers.button.cancel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.videoPreview.cameraLabel": "Տեսախցիկ",
+    "app.videoPreview.profileLabel": "ÕˆÖ€Õ¡Õ¯",
+    "app.videoPreview.cancelLabel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.videoPreview.closeLabel": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.video.cancel": "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬",
+    "app.externalVideo.close": "Õ“Õ¡Õ¯Õ¥Õ¬",
+    "app.legacy.criosBrowser": "IOS- Õ« Õ¤Õ¥ÕºÖ„Õ¸Ö‚Õ´ Õ­Õ¶Õ¤Ö€Õ¸Ö‚Õ´ Õ¥Õ¶Ö„ Ö…Õ£Õ¿Õ¡Õ£Õ¸Ö€Õ®Õ¥Õ¬ Safari- Õ¨ `Õ¬Õ«Õ¡Ö€ÕªÕ¥Ö„ Õ°Õ¡Õ´Õ¡Õ¿Õ¥Õ²Õ¥Õ¬Õ«Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€:"
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/id.json b/bigbluebutton-html5/private/locales/id.json
index 867cc5d2e7b0934842c53df69a103d1e8ec95a74..ed6556d63186777fca947f8e3f5776bb26e6ab65 100644
--- a/bigbluebutton-html5/private/locales/id.json
+++ b/bigbluebutton-html5/private/locales/id.json
@@ -1,6 +1,5 @@
 {
     "app.chat.submitLabel": "Kirimkan pesan",
-    "app.chat.errorMinMessageLength": "Pesan ini terdiri dari {0} karakter(s) terlalu pendek",
     "app.chat.errorMaxMessageLength": "Pesan ini terdiri dari {0} karakter(s) terlalu panjang",
     "app.chat.inputLabel": "Input pesan untuk chat {0}",
     "app.chat.titlePublic": "Chat Publik",
diff --git a/bigbluebutton-html5/private/locales/it_IT.json b/bigbluebutton-html5/private/locales/it_IT.json
index 82038ae71241120a69243bd0be1ed6d0c32b5aaf..bb3b4c07920ea6a6c1b6c32db2d97df49dcb2caa 100644
--- a/bigbluebutton-html5/private/locales/it_IT.json
+++ b/bigbluebutton-html5/private/locales/it_IT.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "La presentazione comincerà tra poco...",
     "app.chat.submitLabel": "Invia Messaggio",
-    "app.chat.errorMinMessageLength": "Il messaggio di {0} carattere(i) è troppo breve",
     "app.chat.errorMaxMessageLength": "Il messaggio di {0} carattere(i) è troppo lungo",
     "app.chat.disconnected": "Sei disconnesso, la chat è disattivata.",
     "app.chat.locked": "La chat è disabilitata.",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Premetti l'accesso",
     "app.media.screenshare.start": "Condivisione schermo avviata",
     "app.media.screenshare.end": "Condivisione schermo terminata",
-    "app.media.screenshare.safariNotSupported": "La condivisione schermo non è attualmente supportata da Safari. Per favore usa Firefox o Google Chrome.",
     "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",
@@ -156,6 +154,7 @@
     "app.presentation.presentationToolbar.fitToPage": "Adatta alla pagina",
     "app.presentation.presentationToolbar.goToSlide": "Slide {0}",
     "app.presentationUploder.title": "Presentazione",
+    "app.presentationUploder.message": "Come presentatore hai la possibilità di caricare documenti office e file PDF. Raccomandiamo l'uso di file PDF per un migliore risultato. Assicurati di aver selezionato una presentazione usando il cerchio nella zona destra della lista.",
     "app.presentationUploder.uploadLabel": "Carica",
     "app.presentationUploder.confirmLabel": "Conferma",
     "app.presentationUploder.confirmDesc": "Salva modifiche e avvia presentazione",
@@ -175,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Elaborazione anteprima...",
     "app.presentationUploder.conversion.generatedSlides": "Slide elaborate...",
     "app.presentationUploder.conversion.generatingSvg": "Elaborazione immagine SVG...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Numero massimo di pagine ecceduto. Suddividi il file in documenti multipli.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Conversione del documento office fallita. È possibile provare a caricare un PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Conversione del documento office fallita. È possibile provare a caricare un PDF.",
     "app.presentationUploder.conversion.pdfHasBigPage": "Non &egrave; stato possibile convertire il file PDF, prova ad ottimizzarlo",
     "app.presentationUploder.conversion.timeout": "Maledizione, la conversione del file ci sta impiegando troppo",
+    "app.presentationUploder.conversion.pageCountFailed": "Impossibile determinare il numero di pagine.",
     "app.presentationUploder.isDownloadableLabel": "Non permettere il download della presentazione",
     "app.presentationUploder.isNotDownloadableLabel": "Permetti il download della presentazione",
     "app.presentationUploder.removePresentationLabel": "Rimuovi presentazione",
@@ -191,6 +194,7 @@
     "app.poll.quickPollInstruction": "Seleziona una delle seguenti opzioni per avviare il sondaggio",
     "app.poll.customPollLabel": "Sondaggio personalizzato",
     "app.poll.startCustomLabel": "Avvia una sondaggio personalizzato",
+    "app.poll.activePollInstruction": "Lascia questo pannello aperto per visualizzare le risposte in tempo reale al tuo sondaggio. Quando sei pronto, seleziona \"Pubblica risultati sondaggio\" per pubblicare i risultati alla fine del sondaggio.",
     "app.poll.publishLabel": "Pubblica i risultati",
     "app.poll.backLabel": "Torna alle opzioni del sondaggio",
     "app.poll.closeLabel": "Chiudi",
@@ -358,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "stato corrente {0}",
     "app.actionsBar.captions.start": "Avvia riproduzione dei sottotitoli",
     "app.actionsBar.captions.stop": "Interrompi riproduzione sottotitoli",
-    "app.audioNotification.audioFailedError1001": "Errore 1001: Websocket disconnesso",
-    "app.audioNotification.audioFailedError1002": "Errore 1002: Impossibile stabilire una connessione al WebSocket",
-    "app.audioNotification.audioFailedError1003": "Errore 1003: La versione del browser non è supportata",
-    "app.audioNotification.audioFailedError1004": "Error 1004: Chiamata fallita (ragione={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: La chiamata è terminata inaspettatamente",
-    "app.audioNotification.audioFailedError1006": "Errore 1006: La chiamata non ha più trasferito dati ed è stata chiusa",
-    "app.audioNotification.audioFailedError1007": "Errore 1007: Errore di negoziazione ICE",
-    "app.audioNotification.audioFailedError1008": "Errore 1008: Trasferimento fallito",
-    "app.audioNotification.audioFailedError1009": "Errore 1009: Impossibile recuperare le informazioni sui server STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Errore 1010: Tempo per la negoziazione ICE scaduto",
-    "app.audioNotification.audioFailedError1011": "Errore 1011: Tempo per la raccolta dati ICE scaduto",
-    "app.audioNotification.audioFailedError1012": "Errore 1012: Connessione ICE conclusa",
+    "app.audioNotification.audioFailedError1001": "WebSocket disconnesso (errore 1001)",
+    "app.audioNotification.audioFailedError1002": "Impossibile stabilire una connessione WebSocket (errore 1002)",
+    "app.audioNotification.audioFailedError1003": "Versione del browser non supportata (errore 1003)",
+    "app.audioNotification.audioFailedError1004": "Chiamata fallita (reason={0}) (errore 1004)",
+    "app.audioNotification.audioFailedError1005": "Chiamata chiusa inaspettatamente (errore 1005)",
+    "app.audioNotification.audioFailedError1006": "Tempo scaduto per la chiamata (error 1006)",
+    "app.audioNotification.audioFailedError1007": "Connessione fallita (error ICE 1007)",
+    "app.audioNotification.audioFailedError1008": "Trasferimento fallito (errore 1008)",
+    "app.audioNotification.audioFailedError1009": "Impossibile ricevere le informazioni del server STUN/TURN (errore 1009)",
+    "app.audioNotification.audioFailedError1010": "Tempo scaduto per la negozioazione della connessione (errore ICE 1010)",
+    "app.audioNotification.audioFailedError1011": "Tempo scaduto per la connessione (errore ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "Connessione chiusa (errore ICE 1012)",
     "app.audioNotification.audioFailedMessage": "La connessione audio non è riuscita",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia ha fallito la connessione perché accetta solo origini sicure",
     "app.audioNotification.closeLabel": "Chiudi",
@@ -401,6 +405,8 @@
     "app.audioModal.settingsTitle": "Cambia le impostazioni audio",
     "app.audioModal.helpTitle": "C'è stato un problema con i tuoi dispositivi audio/video",
     "app.audioModal.helpText": "Hai consentito l'accesso al tuo microfono? Una finestra dovrebbe apparire quando provi a partecipare, chiedendo il permesso di accedere ai dispositivi audio/video. Se non è così, prova a cambiare i permessi del microfono nelle impostazioni del browser.",
+    "app.audioModal.help.noSSL": "Questa pagina non è sicura. Per avere accesso al microfono la pagina deve essere servita tramite HTTPS. Contatta l'amministratore del server.",
+    "app.audioModal.help.macNotAllowed": "Sembra che le Preferenze di Sistema di macOS stiano bloccando l'accesso al microfono. Apri Preferenze di Sistema > Sicurezza e Privacy > Privacy > Microfono, e verifica che il browser che stai utilizzando sia abilitato.",
     "app.audioModal.audioDialTitle": "Partecipa utilizzando il telefono",
     "app.audioDial.audioDialDescription": "Componi",
     "app.audioDial.audioDialConfrenceText": "e inserisci il seguente numero PIN:",
@@ -537,14 +543,14 @@
     "app.video.joinVideo": "Mostra webcam",
     "app.video.leaveVideo": "Interrompi webcam",
     "app.video.iceCandidateError": "Errore nell'aggiunta del candidato ICE",
-    "app.video.iceConnectionStateError": "Errore 1107: Negoziazione ICE fallita",
+    "app.video.iceConnectionStateError": "Connessione fallita (errore ICE 1107)",
     "app.video.permissionError": "Errore nella condivisione webcam. Controllare i permessi",
     "app.video.sharingError": "Errore nella condivizione della webcam",
     "app.video.notFoundError": "impossibile trovare la webcam. Assicurati che sia connessa",
     "app.video.notAllowed": "Mancano i permessi per la condivisione della webcam, controllare i permessi del browser",
     "app.video.notSupportedError": "E' possibile condividere la webcam solo con sorgenti sicure, controllare che il certificato SSL sia valido",
     "app.video.notReadableError": "Impossibile condividere la webcam. Controlla che la webcam non sia utilizzata da un altro programma",
-    "app.video.mediaFlowTimeout1020": "Errore 1020: Impossibile raggiungere il server media",
+    "app.video.mediaFlowTimeout1020": "Impossibile raggiungere il server dei media (errore 1020)",
     "app.video.suggestWebcamLock": "Impostare il blocco delle webcam degli utenti?",
     "app.video.suggestWebcamLockReason": "(questo migliorerà la stabilità del meeting)",
     "app.video.enable": "Abilita",
@@ -572,16 +578,15 @@
     "app.video.stats.encodeUsagePercent": "Utilizzo decodifica",
     "app.video.stats.currentDelay": "Ritardo attuale",
     "app.fullscreenButton.label": "Metti {0} a schermo intero",
-    "app.deskshare.iceConnectionStateError": "Errore 1108: Connesione ICE fallita per la condivisione schermo",
-    "app.sfu.mediaServerConnectionError2000": "Errore 2000: Impossibile connettersi al server media",
-    "app.sfu.mediaServerOffline2001": "Errore 2001: Il server media è offline. Riprova più tardi.",
-    "app.sfu.mediaServerNoResources2002": "Errore 2002: Il server media non ha risorse disponibili",
-    "app.sfu.mediaServerRequestTimeout2003": "Errore 2003: Connessione scaduta durante le richieste al server media ",
-    "app.sfu.serverIceGatheringFailed2021": "Errore 2021: Il server media non riesce a recuperare i candidati ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Errore 2022: Conessione ICE al server media fallita",
-    "app.sfu.mediaGenericError2200": "Errore 2200: Il server media ha fallito l'elaborazione della richiesta",
-    "app.sfu.invalidSdp2202":"Errore 2202: Il client ha generato una SDP errata",
-    "app.sfu.noAvailableCodec2203": "Errore 2203: Il server non riesce a trovare un codec appropriato",
+    "app.deskshare.iceConnectionStateError": "Connessione fallita nella condivisione dello schermo (errore ICE 1108)",
+    "app.sfu.mediaServerConnectionError2000": "Impossibile connettersi al server dei media (errore 2000)",
+    "app.sfu.mediaServerOffline2001": "Il server dei media è offline. Riprova più tardi (errore 2001)",
+    "app.sfu.mediaServerNoResources2002": "Il server dei media non ha risorse disponibili (errore 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Le richieste al server dei media sono scadute (errore 2003)",
+    "app.sfu.serverIceGatheringFailed2022": "Connessione al server dei media fallita (errore ICE 2022)",
+    "app.sfu.mediaGenericError2200": "Il server dei media ha fallito a processare la richiesta (error 2200)",
+    "app.sfu.invalidSdp2202":"Il client ha generato una richiesta di media invalida (errore SDP 2202)",
+    "app.sfu.noAvailableCodec2203": "Il server non ha trovato un codec appropriato (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "I risultati del sondaggio sono stati pubblicati",
     "app.whiteboard.toolbar.tools": "Strumenti",
@@ -664,6 +669,7 @@
     "app.externalVideo.autoPlayWarning": "Avvia il video per abilitare la sincronizzazione media",
     "app.network.connection.effective.slow": "Stiamo rilevando problemi di connessione",
     "app.network.connection.effective.slow.help": "Più informazioni",
+    "app.externalVideo.noteLabel": "Nota: I video esterni condivisi non appariranno nella registrazione. Sono supportati i link di YouTube, Vimeo, Instructure Media, Twitch e Daily Motion.",
     "app.actionsBar.actionsDropdown.shareExternalVideo": "Condividi un video esterno",
     "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Interrompi la condivisione di un video esterno",
     "app.iOSWarning.label": "Aggiornare alla versione iOS 12.2 o seguenti",
diff --git a/bigbluebutton-html5/private/locales/ja.json b/bigbluebutton-html5/private/locales/ja.json
index d8c8d61c253007bd5f7df558566f07f5871e24e2..30006a62879d21427651d3600eef17d5bfa1e301 100644
--- a/bigbluebutton-html5/private/locales/ja.json
+++ b/bigbluebutton-html5/private/locales/ja.json
@@ -1,8 +1,7 @@
 {
     "app.home.greeting": "プレゼンテーションはまもなく始まります…",
     "app.chat.submitLabel": "メッセージを送信",
-    "app.chat.errorMinMessageLength": "このメッセージは文字数が{0}文字足りません",
-    "app.chat.errorMaxMessageLength": "このメッセージは文字数制限を{0}文字超えています",
+    "app.chat.errorMaxMessageLength": "このメッセージは文字数制限を {0} 文字超えています",
     "app.chat.disconnected": "通信が切断されたため、メッセージを送れません",
     "app.chat.locked": "チャットがロック状態のため、メッセージを送れません",
     "app.chat.inputLabel": "チャット {0} へメッセージ入力",
@@ -27,10 +26,10 @@
     "app.captions.label": "字幕",
     "app.captions.menu.close": "閉じる",
     "app.captions.menu.start": "開始",
-    "app.captions.menu.ariaStart": "見出しを書き込む",
-    "app.captions.menu.ariaStartDesc": "モーダルを閉じて見出しを編集する",
+    "app.captions.menu.ariaStart": "字幕を書き込む",
+    "app.captions.menu.ariaStartDesc": "モーダルを閉じて字幕を編集する",
     "app.captions.menu.select": "使用可能な言語を選択",
-    "app.captions.menu.ariaSelect": "見出しの言語",
+    "app.captions.menu.ariaSelect": "字幕の言語",
     "app.captions.menu.subtitle": "見出しの言語とスタイルを選択してください",
     "app.captions.menu.title": "字幕",
     "app.captions.menu.fontSize": "サイズ",
@@ -42,7 +41,7 @@
     "app.captions.pad.hide": "字幕を非表示",
     "app.captions.pad.tip": "Escを押してエディターツールバーにフォーカスする",
     "app.captions.pad.ownership": "代わる",
-    "app.captions.pad.ownershipTooltip": "{0}の見出しのオーナーになりました",
+    "app.captions.pad.ownershipTooltip": "{0} 字幕のオーナーになります",
     "app.captions.pad.interimResult": "中間結果",
     "app.captions.pad.dictationStart": "ディクテーション開始",
     "app.captions.pad.dictationStop": "ディクテーション終了",
@@ -60,7 +59,7 @@
     "app.userList.messagesTitle": "メッセージ",
     "app.userList.notesTitle": "メモ",
     "app.userList.notesListItem.unreadContent": "共有ノートに新しいコンテンツがあります",
-    "app.userList.captionsTitle": "キャプション",
+    "app.userList.captionsTitle": "字幕",
     "app.userList.presenter": "プレゼンター",
     "app.userList.you": "自分",
     "app.userList.locked": "ロック",
@@ -68,8 +67,8 @@
     "app.userList.toggleCompactView.label": "コンパクトモードに切り替え",
     "app.userList.guest": "ゲスト",
     "app.userList.menuTitleContext": "使用可能オプション",
-    "app.userList.chatListItem.unreadSingular": "未読メッセージ:{0}",
-    "app.userList.chatListItem.unreadPlural": "未読メッセージ{0}",
+    "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": "ユーザーを削除する",
@@ -110,9 +109,8 @@
     "app.userList.userOptions.enableOnlyModeratorWebcam": "ウェブカメラを有効にすると、全員があなたを見ることができます",
     "app.media.label": "メディア",
     "app.media.autoplayAlertDesc": "アクセス許可",
-    "app.media.screenshare.start": "スクリーンシェアが開始しました",
-    "app.media.screenshare.end": "スクリーンシェアが終了しました",
-    "app.media.screenshare.safariNotSupported": "Safariは画面共有をサポートしていません。FirefoxまたはGoogle Chromeをお使いください。",
+    "app.media.screenshare.start": "画面共有を開始しました",
+    "app.media.screenshare.end": "画面共有を終了しました",
     "app.media.screenshare.autoplayBlockedDesc": "プレゼンターの画面の共有を許可してください",
     "app.media.screenshare.autoplayAllowLabel": "共有画面を見る",
     "app.screenshare.notAllowed": "エラー:画面へのアクセスが許可されていません",
@@ -156,6 +154,7 @@
     "app.presentation.presentationToolbar.fitToPage": "ページに合わせる",
     "app.presentation.presentationToolbar.goToSlide": "スライド {0}",
     "app.presentationUploder.title": "プレゼンテーション",
+    "app.presentationUploder.message": "プレゼンタはドキュメントをアップロードすることができます。お勧めのファイル形式はPDFファイルです。右側のチェックボックスをクリックし、プレゼンテーションが選択されていることを確認してください。",
     "app.presentationUploder.uploadLabel": "アップロード",
     "app.presentationUploder.confirmLabel": "確認",
     "app.presentationUploder.confirmDesc": "変更を保存してプレゼンテーションを開始する",
@@ -169,12 +168,18 @@
     "app.presentationUploder.currentBadge": "現在",
     "app.presentationUploder.rejectedError": "選択ファイルが拒否されました。ファイル形式を確認してください。",
     "app.presentationUploder.upload.progress": "アップロード中({0}%)",
+    "app.presentationUploder.upload.413": "ファイルが大きすぎます。いくつかのファイルに分割してください。",
     "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": "Officeドキュメントが変換できませんでした。代わりにPDFをアップロードしてください。",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Officeドキュメントが変換できませんでした。代わりにPDFをアップロードしてください。",
+    "app.presentationUploder.conversion.pdfHasBigPage": "PDFファイルを変換できませんでした。最適化してみてください",
     "app.presentationUploder.conversion.timeout": "エラー:変換に時間がかかりすぎました",
+    "app.presentationUploder.conversion.pageCountFailed": "ページ数の判定に失敗しました。",
     "app.presentationUploder.isDownloadableLabel": "プレゼンテーションのダウンロードを許可しない",
     "app.presentationUploder.isNotDownloadableLabel": "プレゼンテーションのダウンロードを許可する",
     "app.presentationUploder.removePresentationLabel": "プレゼンテーション削除",
@@ -184,11 +189,12 @@
     "app.presentationUploder.tableHeading.status": "ステータス",
     "app.poll.pollPaneTitle": "投票",
     "app.poll.quickPollTitle": "簡易投票",
-    "app.poll.hidePollDesc": "投票メニュー枠を隠す",
+    "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": "閉じる",
@@ -224,7 +230,7 @@
     "app.failedMessage": "サーバー接続障害",
     "app.downloadPresentationButton.label": "元のプレゼンテーションをダウンロード",
     "app.connectingMessage": "接続中...",
-    "app.waitingMessage": "接続が切れました。{0}秒で再接続します...",
+    "app.waitingMessage": "接続が切れました。 {0} 秒で再接続します ...",
     "app.retryNow": "リトライ",
     "app.navBar.settingsDropdown.optionsLabel": "オプション",
     "app.navBar.settingsDropdown.fullscreenLabel": "全画面表示に切替",
@@ -249,6 +255,7 @@
     "app.navBar.recording": "このセッションは録画されています",
     "app.navBar.recording.on": "録画中",
     "app.navBar.recording.off": "録画されていません",
+    "app.navBar.emptyAudioBrdige": "アクティブなマイクがありません。この録画に音声を追加するには、マイクを使用してください。",
     "app.leaveConfirmation.confirmLabel": "退室",
     "app.leaveConfirmation.confirmDesc": "自分を会議からログアウトさせる",
     "app.endMeeting.title": "会議を終了する",
@@ -275,6 +282,8 @@
     "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": "アプリケーションのフォントサイズを小さくする",
@@ -305,23 +314,26 @@
     "app.settings.dataSavingTab.screenShare": "デスクトップ共有を有効にする",
     "app.settings.dataSavingTab.description": "データ量を下げるには設定を変更してください",
     "app.settings.save-notification.label": "設定が保存されました",
-    "app.switch.onLabel": "オン",
-    "app.switch.offLabel": "オフ",
+    "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.stopDesktopShareLabel": "画面共有をやめる",
     "app.actionsBar.actionsDropdown.presentationDesc": "プレゼンテーションをアップロード",
     "app.actionsBar.actionsDropdown.initPollDesc": "投票を初期化",
     "app.actionsBar.actionsDropdown.desktopShareDesc": "他の人と画面を共有する",
-    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "との画面共有を止める",
+    "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.createBreakoutRoom": "小会議室を作成する",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "現在の会議を分割し、小会議を作成する",
     "app.actionsBar.actionsDropdown.captionsLabel": "字幕を書く",
     "app.actionsBar.actionsDropdown.captionsDesc": "字幕を切り替える",
     "app.actionsBar.actionsDropdown.takePresenter": "プレゼンターになる",
@@ -350,30 +362,30 @@
     "app.actionsBar.currentStatusDesc": "現在のステータス {0}",
     "app.actionsBar.captions.start": "字幕を表示",
     "app.actionsBar.captions.stop": "字幕を非表示",
-    "app.audioNotification.audioFailedError1001": "エラー1001:WebSocketの接続が切れました",
-    "app.audioNotification.audioFailedError1002": "エラー1002:WebSocketに接続できませんでした",
-    "app.audioNotification.audioFailedError1003": "エラー1003:ブラウザのバージョンはサポートされていません",
-    "app.audioNotification.audioFailedError1004": "エラー1004:通話障害(原因 {0})",
-    "app.audioNotification.audioFailedError1005": "エラー1005:問題が発生し通話が終了しました",
-    "app.audioNotification.audioFailedError1006": "エラー1006:通話がタイムアウトしました",
-    "app.audioNotification.audioFailedError1007": "エラー1007:ICE接続失敗",
-    "app.audioNotification.audioFailedError1008": "エラー1008:トランスファー失敗",
-    "app.audioNotification.audioFailedError1009": "エラー1009:STUN/TURNサーバー情報にアクセスできませんでした",
-    "app.audioNotification.audioFailedError1010": "エラー1010:ICE接続がタイムアウトしました",
-    "app.audioNotification.audioFailedError1011": "エラー1011:ICEギャザリングがタイムアウトしました",
-    "app.audioNotification.audioFailedError1012": "エラー1012:ICE接続が切断されました",
+    "app.audioNotification.audioFailedError1001": "WebSocketが切断されました (error 1001)",
+    "app.audioNotification.audioFailedError1002": "WebSocket接続に失敗しました (error 1002)",
+    "app.audioNotification.audioFailedError1003": "このバージョンのブラウザはサポートされていません (error 1003)",
+    "app.audioNotification.audioFailedError1004": "呼び出しに失敗しました (理由={0}) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "通話が予期せず終了しました (error 1005)",
+    "app.audioNotification.audioFailedError1006": "呼び出しがタイムアウトしました (error 1006)",
+    "app.audioNotification.audioFailedError1007": "接続失敗 (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "転送に失敗しました (error 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN / TURNサーバー情報を取得できませんでした (error 1009)",
+    "app.audioNotification.audioFailedError1010": "接続ネゴシエーションのタイムアウト (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "接続タイムアウト (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "接続が閉じました (ICE error 1012)",
     "app.audioNotification.audioFailedMessage": "音声接続に失敗しました",
     "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": "マイク",
@@ -383,7 +395,7 @@
     "app.audioModal.iOSErrorDescription": "iOSのChromeでは、音声、  ビデオは現在サポートされていません",
     "app.audioModal.iOSErrorRecommendation": "Safari iOSをお使いください",
     "app.audioModal.audioChoiceDesc": "音声はどうしますか?",
-    "app.audioModal.unsupportedBrowserLabel": "サポート対象外のブラウザを使用している可能性があります。サポート対象の{0}または{1}をお使いください。",
+    "app.audioModal.unsupportedBrowserLabel": "サポート対象外のブラウザを使用している可能性があります。サポート対象の {0} または {1} をお使いください。",
     "app.audioModal.closeLabel": "閉じる",
     "app.audioModal.yes": "はい",
     "app.audioModal.no": "いいえ",
@@ -393,7 +405,9 @@
     "app.audioModal.settingsTitle": "オーディオ設定を変更する",
     "app.audioModal.helpTitle": "デバイスとの接続ができませんでした",
     "app.audioModal.helpText": "マイクへアクセス許可を与えましたか? 音声会議に参加しようとするとダイアログが表示され、メディアデバイスの許可を求めます。オーディオ会議に参加するには、アクセスを許可してください。 別の問題の場合は、ブラウザの設定でマイクのアクセス許可を変更してください。",
-    "app.audioModal.audioDialTitle": "携帯電話から参加",
+    "app.audioModal.help.noSSL": "このページは保護されていません。 マイクへのアクセスを許可するには、HTTPSでアクセスする必要があります。 サーバ管理者に連絡してください。",
+    "app.audioModal.help.macNotAllowed": "Macのシステム設定でマイクへのアクセスがブロックされているようです。 [システム環境設定]-[セキュリティとプライバシー]-[プライバシー]-[マイク]を開き、使用しているブラウザがチェックされていることを確認します。",
+    "app.audioModal.audioDialTitle": "電話から参加",
     "app.audioDial.audioDialDescription": "ダイアル",
     "app.audioDial.audioDialConfrenceText": "会議PINナンバーを入力:",
     "app.audioModal.autoplayBlockedDesc": "音声を再生するため、許可してください",
@@ -403,10 +417,10 @@
     "app.audioDial.tipMessage": "電話の「0」キーでミュートの設定/解除が行えます",
     "app.audioModal.connecting": "接続中",
     "app.audioModal.connectingEchoTest": "エコーテストに接続中",
-    "app.audioManager.joinedAudio": "セッションに参加しました",
+    "app.audioManager.joinedAudio": "音声会議に参加しました",
     "app.audioManager.joinedEcho": "エコーテストに入りました",
-    "app.audioManager.leftAudio": "セッションから退席しました",
-    "app.audioManager.reconnectingAudio": "音声接続中",
+    "app.audioManager.leftAudio": "音声会議から退席しました",
+    "app.audioManager.reconnectingAudio": "音声に再接続中",
     "app.audioManager.genericError": "エラー:もう一度やり直してください",
     "app.audioManager.connectionError": "エラー:接続エラー",
     "app.audioManager.requestTimeout": "エラー:リクエストに時間がかかりすぎました",
@@ -427,9 +441,9 @@
     "app.audio.listenOnly.closeLabel": "閉じる",
     "app.audio.permissionsOverlay.title": "デバイスのアクセスを許可する",
     "app.audio.permissionsOverlay.hint": "音声会議に参加するには、メディアデバイスの使用を許可する必要があります。",
-    "app.error.removed": "セッションから退室しました",
+    "app.error.removed": "会議から退席しました",
     "app.error.meeting.ended": "会議からログアウトしました",
-    "app.meeting.logout.duplicateUserEjectReason": "会議に参加しようとしている重複ユーザー",
+    "app.meeting.logout.duplicateUserEjectReason": "重複したユーザが会議に参加しようとしています",
     "app.meeting.logout.permissionEjectReason": "許可違反により強制退室されました",
     "app.meeting.logout.ejectedFromMeeting": "会議から退室しました",
     "app.meeting.logout.validateTokenFailedEjectReason": "認証トークンが確認できませんでした",
@@ -465,18 +479,19 @@
     "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": "システム",
     "app.toast.clearedEmoji.label": "絵文字ステータスがクリアされました",
-    "app.toast.setEmoji.label": "絵文字ステータスが{0}になりました",
+    "app.toast.setEmoji.label": "絵文字ステータスが {0} になりました",
     "app.toast.meetingMuteOn.label": "全てのユーザーがミュートされました",
-    "app.toast.meetingMuteOff.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": "コンボ",
@@ -484,8 +499,8 @@
     "app.shortcut-help.closeLabel": "閉じる",
     "app.shortcut-help.closeDesc": "キーボードショートカットウィンドウを閉じる",
     "app.shortcut-help.openOptions": "設定を開く",
-    "app.shortcut-help.toggleUserList": "ユーザーリストトグル",
-    "app.shortcut-help.toggleMute": "ミュート/ミュート解除",
+    "app.shortcut-help.toggleUserList": "ユーザーリスト切替",
+    "app.shortcut-help.toggleMute": "ミュート/ミュート解除",
     "app.shortcut-help.togglePublicChat": "グループチャット切替(ユーザーリストが開いている必要があります)",
     "app.shortcut-help.hidePrivateChat": "非公開チャットを隠す",
     "app.shortcut-help.closePrivateChat": "非公開チャットを閉じる",
@@ -506,7 +521,7 @@
     "app.lock-viewers.notesLabel": "共有ノートを編集する",
     "app.lock-viewers.userListLabel": "他の視聴者をユーザーリストに表示する",
     "app.lock-viewers.ariaTitle": "視聴者のモーダル設定をロックする",
-    "app.lock-viewers.button.apply": "適応",
+    "app.lock-viewers.button.apply": "適用",
     "app.lock-viewers.button.cancel": "キャンセル",
     "app.lock-viewers.locked": "ロック",
     "app.lock-viewers.unlocked": "ロック解除",
@@ -519,7 +534,7 @@
     "app.videoPreview.profileLabel": "品質",
     "app.videoPreview.cancelLabel": "キャンセル",
     "app.videoPreview.closeLabel": "閉じる",
-    "app.videoPreview.findingWebcamsLabel": "カメラ取得中",
+    "app.videoPreview.findingWebcamsLabel": "ウェブカメラ取得中",
     "app.videoPreview.startSharingLabel": "共有を開始",
     "app.videoPreview.webcamOptionLabel": "ウェブカメラを選択",
     "app.videoPreview.webcamPreviewLabel": "ウェブカメラのプレビュー",
@@ -529,25 +544,25 @@
     "app.video.joinVideo": "ウェブカメラを共有",
     "app.video.leaveVideo": "ウェブカメラの共有を終了",
     "app.video.iceCandidateError": "ICE候補の追加に失敗しました",
-    "app.video.iceConnectionStateError": "エラー1107:ICEネゴシエーションに失敗しました",
+    "app.video.iceConnectionStateError": "接続失敗 (ICE error 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.sharingError": "ウェブカメラ共有エラー",
+    "app.video.notFoundError": "ウェブカメラが見つかりませんでした。接続を確認してください",
+    "app.video.notAllowed": "ウェブカメラを共有する権限がありませんでした。ブラウザの設定を確認してください",
+    "app.video.notSupportedError": "ウェブカメラは安全なページでしか共有できません。SSL証明書が有効か確かめてください",
+    "app.video.notReadableError": "ウェブカメラの映像を取得できませんでした。他のプログラムが使ってないことを確認してください",
+    "app.video.mediaFlowTimeout1020": "映像がサーバに届いていません (error 1020)",
     "app.video.suggestWebcamLock": "視聴者のカメラをロックしますか?",
-    "app.video.suggestWebcamLockReason": "(ミーティングの安定度が高まります)",
+    "app.video.suggestWebcamLockReason": "(会議の安定性が向上します)",
     "app.video.enable": "起動する",
     "app.video.cancel": "キャンセル",
     "app.video.swapCam": "スワップ",
-    "app.video.swapCamDesc": "カメラの向きを反転する",
+    "app.video.swapCamDesc": "ウェブカメラの向きを反転する",
     "app.video.videoLocked": "ウェブカメラ共有がロックされています",
     "app.video.videoButtonDesc": "ウェブカメラを共有",
     "app.video.videoMenu": "ビデオメニュー",
-    "app.video.videoMenuDisabled": "ビデオメニューウェブカメラは無効な設定です",
-    "app.video.videoMenuDesc": "設定でビデオメニューがブロックされています",
+    "app.video.videoMenuDisabled": "ビデオメニューの設定でウェブカメラが無効です",
+    "app.video.videoMenuDesc": "ビデオメニューのドロップダウンを開く",
     "app.video.chromeExtensionError": "インストールしてください",
     "app.video.chromeExtensionErrorLink": "このChromeの拡張機能",
     "app.video.stats.title": "接続情報",
@@ -555,8 +570,8 @@
     "app.video.stats.packetsSent": "パケット送信",
     "app.video.stats.packetsLost": "エラーパケット",
     "app.video.stats.bitrate": "ビットレート",
-    "app.video.stats.lostPercentage": "トータルパーセンテージ(エラー)",
-    "app.video.stats.lostRecentPercentage": "最新のパーセンテージ(エラー)",
+    "app.video.stats.lostPercentage": "総損失率",
+    "app.video.stats.lostRecentPercentage": "最新の損失率",
     "app.video.stats.dimensions": "解像度",
     "app.video.stats.codec": "コーデック",
     "app.video.stats.decodeDelay": "遅延(ディコード)",
@@ -564,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "エンコードの使用状況",
     "app.video.stats.currentDelay": "遅延(最新)",
     "app.fullscreenButton.label": "{0}を全画面に切り替える",
-    "app.deskshare.iceConnectionStateError": "エラー1108:画面共有時にICE接続に失敗しました",
-    "app.sfu.mediaServerConnectionError2000": "エラー2000:メディアサーバーに接続できません",
-    "app.sfu.mediaServerOffline2001": "エラー2001:メディアサーバーはオフラインです。 後でもう一度やり直してください。",
-    "app.sfu.mediaServerNoResources2002": "エラー2002:メディアサーバーに利用可能なリソースがありません",
-    "app.sfu.mediaServerRequestTimeout2003": "エラー2003:メディアサーバー要求がタイムアウトしています",
-    "app.sfu.serverIceGatheringFailed2021": "エラー2021:メディアサーバーはICE候補を収集できません",
-    "app.sfu.serverIceGatheringFailed2022": "エラー2022:メディアサーバーのICE接続に失敗しました",
-    "app.sfu.mediaGenericError2200": "エラー2200:メディアサーバーはリクエストを処理できませんでした",
-    "app.sfu.invalidSdp2202":"エラー2202:クライアントが無効なSDPを作成しました",
-    "app.sfu.noAvailableCodec2203": "エラー2203年:適切なコーデックが見つかりませんでした",
+    "app.deskshare.iceConnectionStateError": "画面共有の接続に失敗しました (ICE error 1108)",
+    "app.sfu.mediaServerConnectionError2000": "メディアサーバーに接続できません (error 2000)",
+    "app.sfu.mediaServerOffline2001": "メディアサーバーがオフラインです。後ほど再度お試しください (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "メディアサーバーに利用可能なリソースがありません (error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "メディアサーバー要求がタイムアウトしています (error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "メディアサーバーは接続候補を収集できませんでした (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "メディアサーバーの接続に失敗しました (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "メディアサーバーが処理要求に失敗しました (error 2200)",
+    "app.sfu.invalidSdp2202":"クライアントが無効なメディア要求を作成しました (SDP error 2202)",
+    "app.sfu.noAvailableCodec2203": "適切なコーデックが見つかりませんでした (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "投票結果が公開されました",
     "app.whiteboard.toolbar.tools": "ツール",
@@ -599,63 +614,64 @@
     "app.whiteboard.toolbar.color.blue": "青",
     "app.whiteboard.toolbar.color.violet": "ç´«",
     "app.whiteboard.toolbar.color.magenta": "マゼンタ",
-    "app.whiteboard.toolbar.color.silver": "シルバー",
+    "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": "BigBlueButtonの感想は? (任意)",
-    "app.feedback.textarea": "BigBlueButtonに何が欲しいですか?",
+    "app.feedback.subtitle": "BigBlueButtonの感想は?(任意)",
+    "app.feedback.textarea": "改善案をお聞かせください。",
     "app.feedback.sendFeedback": "フィードバックを送る",
     "app.feedback.sendFeedbackDesc": "フィードバックを送り、会議から退室する",
     "app.videoDock.webcamFocusLabel": "フォーカス",
-    "app.videoDock.webcamFocusDesc": "選択したカメラにフォーカスする",
+    "app.videoDock.webcamFocusDesc": "選択したウェブカメラにフォーカスする",
     "app.videoDock.webcamUnfocusLabel": "フォーカスを外す",
-    "app.videoDock.webcamUnfocusDesc": "選択したカメラのフォーカスを外す",
-    "app.videoDock.autoplayBlockedDesc": "他の人のカメラを表示するため、許可してください",
-    "app.videoDock.autoplayAllowLabel": "カメラ表示",
-    "app.invitation.title": "ブレイクアウトルームへの招待",
+    "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.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.room": "会議室 {0}",
     "app.createBreakoutRoom.notAssigned": "未定({0})",
-    "app.createBreakoutRoom.join": "音声で参加",
+    "app.createBreakoutRoom.join": "会議室に参加",
     "app.createBreakoutRoom.joinAudio": "音声で参加",
     "app.createBreakoutRoom.returnAudio": "音声を戻す",
-    "app.createBreakoutRoom.alreadyConnected": "部屋に入っています",
+    "app.createBreakoutRoom.alreadyConnected": "会議室に入っています",
     "app.createBreakoutRoom.confirm": "作成",
     "app.createBreakoutRoom.record": "録画",
-    "app.createBreakoutRoom.numberOfRooms": "ルーム数",
+    "app.createBreakoutRoom.numberOfRooms": "会議室数",
     "app.createBreakoutRoom.durationInMinutes": "利用時間(秒)",
     "app.createBreakoutRoom.randomlyAssign": "ランダムに割り当てる",
-    "app.createBreakoutRoom.endAllBreakouts": "全てのブレイクアウトルームを終了する",
-    "app.createBreakoutRoom.roomName": "{0}(ルーム-{1})",
+    "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": "ブレイクアウトルームには最低1人のユーザーが必要です。",
-    "app.createBreakoutRoom.roomTime": "{0}分",
-    "app.createBreakoutRoom.numberOfRoomsError": "部屋の数が正しく設定されていません",
+    "app.createBreakoutRoom.freeJoin": "ユーザーに参加する小会議室を選択させる",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "小会議室には最低1人のユーザーが必要です。",
+    "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.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": "外部動画は録画に出てきません。YouTube, Vimeo, Instructure Media, Twitch, Daily MotionのURLがサポートされています",
+    "app.externalVideo.noteLabel": "注意:外部動画は録画できません。YouTube, Vimeo, Instructure Media, Twitch, Daily MotionのURLがサポートされています",
     "app.actionsBar.actionsDropdown.shareExternalVideo": "外部からの動画を共有する",
     "app.actionsBar.actionsDropdown.stopShareExternalVideo": "外部動画の共有停止",
     "app.iOSWarning.label": "iOS 12.2またはそれ以降のバージョンにアップグレードしてください",
diff --git a/bigbluebutton-html5/private/locales/ja_JP.json b/bigbluebutton-html5/private/locales/ja_JP.json
index 004fdd77817961a0ce8637cf8d49adcff2c82c1d..3517934bbce1dfb95d0c0a045f9026aa18df4b50 100644
--- a/bigbluebutton-html5/private/locales/ja_JP.json
+++ b/bigbluebutton-html5/private/locales/ja_JP.json
@@ -1,9 +1,11 @@
 {
     "app.home.greeting": "プレゼンテーションはまもなく始まります…",
     "app.chat.submitLabel": "メッセージを送信",
-    "app.chat.errorMinMessageLength": "このメッセージは文字数が{0}文字足りません",
-    "app.chat.errorMaxMessageLength": "このメッセージは文字数制限を{0}文字超えています",
+    "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} は会議から退出しました",
@@ -18,10 +20,17 @@
     "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": "テキスト色",
@@ -30,18 +39,26 @@
     "app.captions.menu.previewLabel": "プレビュー",
     "app.captions.menu.cancelLabel": "キャンセル",
     "app.captions.pad.hide": "字幕を非表示",
-    "app.captions.pad.tip": "Escを押してエディタツールバーにフォーカスする",
+    "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.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": "自分",
@@ -50,12 +67,12 @@
     "app.userList.toggleCompactView.label": "コンパクトモードに切り替える",
     "app.userList.guest": "ゲスト",
     "app.userList.menuTitleContext": "使用可能オプション",
-    "app.userList.chatListItem.unreadSingular": "未読メッセージ:{0}",
-    "app.userList.chatListItem.unreadPlural": "未読メッセージ{0}",
+    "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.muteUserAudio.label": "ユーザーをミュートする",
+    "app.userList.menu.muteUserAudio.label": "ユーザーをミュートにする",
     "app.userList.menu.unmuteUserAudio.label": "ユーザーのミュートを外す",
     "app.userList.userAriaLabel": "{0} {1} {2} ステータス {3}",
     "app.userList.menu.promoteUser.label": "モデレーターにする",
@@ -80,29 +97,40 @@
     "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.safariNotSupported": "Safariは画面共有をサポートしていません。FirefoxまたはGoogle Chromeをお使いください。",
+    "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.alertMeetingEndsUnderOneMinute": "あと1分で会議が終了します。",
-    "app.meeting.alertBreakoutEndsUnderOneMinute": "あと1分でブレイクアウトセッションが終了します。",
+    "app.meeting.alertMeetingEndsUnderOneMinute": "あと1分で会議が終了します。",
+    "app.meeting.alertBreakoutEndsUnderOneMinute": "あと1分でブレイクアウトセッションが終了します。",
     "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": "前のスライドに移動する",
@@ -126,6 +154,7 @@
     "app.presentation.presentationToolbar.fitToPage": "ページに合わせる",
     "app.presentation.presentationToolbar.goToSlide": "スライド {0}",
     "app.presentationUploder.title": "プレゼンテーション",
+    "app.presentationUploder.message": "プレゼンタはドキュメントをアップロードすることができます。お勧めのファイル形式はPDFファイルです。右側のチェックボックスをクリックし、プレゼンテーションが選択されていることを確認してください。",
     "app.presentationUploder.uploadLabel": "アップロード",
     "app.presentationUploder.confirmLabel": "確認",
     "app.presentationUploder.confirmDesc": "変更を保存してプレゼンテーションを開始する",
@@ -139,12 +168,18 @@
     "app.presentationUploder.currentBadge": "現在",
     "app.presentationUploder.rejectedError": "選択ファイルが拒否されました。ファイル形式を確認してください。",
     "app.presentationUploder.upload.progress": "アップロード中 ({0}%)",
+    "app.presentationUploder.upload.413": "ファイルが大きすぎます。いくつかのファイルに分割してください。",
     "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": "Officeドキュメントが変換できませんでした。代わりにPDFをアップロードしてください。",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Officeドキュメントが変換できませんでした。代わりにPDFをアップロードしてください。",
+    "app.presentationUploder.conversion.pdfHasBigPage": "PDFファイルを変換できませんでした。最適化してみてください",
     "app.presentationUploder.conversion.timeout": "エラー:変換に時間がかかりすぎました",
+    "app.presentationUploder.conversion.pageCountFailed": "ページ数の判定に失敗しました。",
     "app.presentationUploder.isDownloadableLabel": "プレゼンテーションのダウンロードを許可しない",
     "app.presentationUploder.isNotDownloadableLabel": "プレゼンテーションのダウンロードを許可する",
     "app.presentationUploder.removePresentationLabel": "プレゼンテーションを削除する",
@@ -159,10 +194,11 @@
     "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.waitingLabel": "投票待ち ({0}/{1})",
     "app.poll.ariaInputCount": "カスタム投票オプション{1}の{0}",
     "app.poll.customPlaceholder": "選択肢を追加する",
     "app.poll.noPresentationSelected": "プレゼンテーションが選択されていません!1つ選択してください。",
@@ -194,7 +230,8 @@
     "app.failedMessage": "サーバー接続障害",
     "app.downloadPresentationButton.label": "元のプレゼンテーションをダウンロード",
     "app.connectingMessage": "接続中...",
-    "app.waitingMessage": "接続が切れました。{0}秒で再接続します...",
+    "app.waitingMessage": "接続が切れました。 {0} 秒で再接続します ...",
+    "app.retryNow": "リトライ",
     "app.navBar.settingsDropdown.optionsLabel": "オプション",
     "app.navBar.settingsDropdown.fullscreenLabel": "全画面表示に切替",
     "app.navBar.settingsDropdown.settingsLabel": "設定",
@@ -218,6 +255,7 @@
     "app.navBar.recording": "このセッションは録画されています",
     "app.navBar.recording.on": "録画中",
     "app.navBar.recording.off": "録画されていません",
+    "app.navBar.emptyAudioBrdige": "アクティブなマイクがありません。この録画に音声を追加するには、マイクを使用してください。",
     "app.leaveConfirmation.confirmLabel": "退室",
     "app.leaveConfirmation.confirmDesc": "自分を会議からログアウトさせる",
     "app.endMeeting.title": "会議を終了する",
@@ -244,10 +282,12 @@
     "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.currentSize": "現在 {0}",
     "app.submenu.application.languageLabel": "アプリケーション言語",
     "app.submenu.application.languageOptionLabel": "言語を選択",
     "app.submenu.application.noLocaleOptionLabel": "アクティブなロケールがありません",
@@ -272,23 +312,28 @@
     "app.settings.dataSavingTab.label": "データ保存",
     "app.settings.dataSavingTab.webcam": "ウェブカメラを有効にする",
     "app.settings.dataSavingTab.screenShare": "デスクトップ共有を有効にする",
-    "app.settings.dataSavingTab.description": "帯域幅の容量をセーブするには、現在表示されている内容を調整してください。",
+    "app.settings.dataSavingTab.description": "データ量を下げるには設定を変更してください",
     "app.settings.save-notification.label": "設定が保存されました",
-    "app.switch.onLabel": "オン",
-    "app.switch.offLabel": "オフ",
+    "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.stopDesktopShareLabel": "画面共有を止める",
+    "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.stopDesktopShareDesc": "との画面共有をやめる",
     "app.actionsBar.actionsDropdown.pollBtnLabel": "投票を開始する",
     "app.actionsBar.actionsDropdown.pollBtnDesc": "投票画面を切替",
-    "app.actionsBar.actionsDropdown.createBreakoutRoom": "ブレイクアウトルームを作成する",
-    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "現在の会議を分割し、ブレイクアウトセッションを作成する",
+    "app.actionsBar.actionsDropdown.saveUserNames": "ユーザ名を保存する",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "小会議室を作成する",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "現在の会議を分割し、小会議を作成する",
     "app.actionsBar.actionsDropdown.captionsLabel": "字幕を書く",
     "app.actionsBar.actionsDropdown.captionsDesc": "字幕を切り替える",
     "app.actionsBar.actionsDropdown.takePresenter": "プレゼンターになる",
@@ -298,10 +343,10 @@
     "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.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": "ハッピー",
@@ -317,30 +362,30 @@
     "app.actionsBar.currentStatusDesc": "現在のステータス {0}",
     "app.actionsBar.captions.start": "字幕を表示",
     "app.actionsBar.captions.stop": "字幕を非表示",
-    "app.audioNotification.audioFailedError1001": "エラー1001:WebSocketの接続が切れました",
-    "app.audioNotification.audioFailedError1002": "エラー1002:WebSocketに接続できませんでした",
-    "app.audioNotification.audioFailedError1003": "エラー1003:サポートされていないブラウザバージョンです",
-    "app.audioNotification.audioFailedError1004": "エラー1004:通話障害(原因 {0})",
-    "app.audioNotification.audioFailedError1005": "エラー1005:問題が発生し通話が終了しました",
-    "app.audioNotification.audioFailedError1006": "エラー1006:通話がタイムアウトしました",
-    "app.audioNotification.audioFailedError1007": "エラー1007:ICE接続失敗",
-    "app.audioNotification.audioFailedError1008": "エラー1008:トランスファー失敗",
-    "app.audioNotification.audioFailedError1009": "エラー1009:STUN/TURNサーバー情報にアクセスできませんでした",
-    "app.audioNotification.audioFailedError1010": "エラー1010:ICE接続がタイムアウトしました",
-    "app.audioNotification.audioFailedError1011": "エラー1011:ICEギャザリングがタイムアウトしました",
-    "app.audioNotification.audioFailedError1012": "エラー1012:ICE接続が切断されました",
+    "app.audioNotification.audioFailedError1001": "WebSocketが切断されました (error 1001)",
+    "app.audioNotification.audioFailedError1002": "WebSocket接続に失敗しました (error 1002)",
+    "app.audioNotification.audioFailedError1003": "このバージョンのブラウザはサポートされていません (error 1003)",
+    "app.audioNotification.audioFailedError1004": "呼び出しに失敗しました (理由={0}) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "通話が予期せず終了しました (error 1005)",
+    "app.audioNotification.audioFailedError1006": "呼び出しがタイムアウトしました (error 1006)",
+    "app.audioNotification.audioFailedError1007": "接続失敗 (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "転送に失敗しました (error 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN / TURNサーバー情報を取得できませんでした (error 1009)",
+    "app.audioNotification.audioFailedError1010": "接続ネゴシエーションのタイムアウト (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "接続タイムアウト (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "接続が閉じました (ICE error 1012)",
     "app.audioNotification.audioFailedMessage": "音声接続に失敗しました",
     "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": "マイク",
@@ -349,8 +394,8 @@
     "app.audioModal.iOSBrowser": "サポートされていない音声/ビデオ",
     "app.audioModal.iOSErrorDescription": "iOSのChromeでは、音声、  ビデオは現在サポートされていません",
     "app.audioModal.iOSErrorRecommendation": "Safari iOSをお使いください",
-    "app.audioModal.audioChoiceDesc": "どちらの音声設定でこの会議に参加しますか?",
-    "app.audioModal.unsupportedBrowserLabel": "サポート対象外のブラウザを使用している可能性があります。サポート対象の{0}または{1}をお使いください。",
+    "app.audioModal.audioChoiceDesc": "音声はどうしますか?",
+    "app.audioModal.unsupportedBrowserLabel": "サポート対象外のブラウザを使用している可能性があります。サポート対象の {0} または {1} をお使いください。",
     "app.audioModal.closeLabel": "閉じる",
     "app.audioModal.yes": "はい",
     "app.audioModal.no": "いいえ",
@@ -360,14 +405,22 @@
     "app.audioModal.settingsTitle": "音声設定を変更する",
     "app.audioModal.helpTitle": "デバイスとの接続ができませんでした",
     "app.audioModal.helpText": "マイクへアクセス許可を与えましたか? 音声会議に参加しようとするとダイアログが表示され、メディアデバイスの許可を求めます。オーディオ会議に参加するには、アクセスを許可してください。 別の問題の場合は、ブラウザの設定でマイクのアクセス許可を変更してください。",
-    "app.audioModal.audioDialTitle": "携帯電話から参加",
+    "app.audioModal.help.noSSL": "このページは保護されていません。 マイクへのアクセスを許可するには、HTTPSでアクセスする必要があります。 サーバ管理者に連絡してください。",
+    "app.audioModal.help.macNotAllowed": "Macのシステム設定でマイクへのアクセスがブロックされているようです。 [システム環境設定]-[セキュリティとプライバシー]-[プライバシー]-[マイク]を開き、使用しているブラウザがチェックされていることを確認します。",
+    "app.audioModal.audioDialTitle": "電話から参加",
     "app.audioDial.audioDialDescription": "ダイアル",
     "app.audioDial.audioDialConfrenceText": "会議PINナンバーを入力:",
+    "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": "エラー:リクエストに時間がかかりすぎました",
@@ -388,9 +441,9 @@
     "app.audio.listenOnly.closeLabel": "閉じる",
     "app.audio.permissionsOverlay.title": "マイクへのアクセスを許可する",
     "app.audio.permissionsOverlay.hint": "音声会議に参加するには、メディアデバイスの使用を許可する必要があります。",
-    "app.error.removed": "セッションから退室しました",
+    "app.error.removed": "会議から退席しました",
     "app.error.meeting.ended": "会議からログアウトしました",
-    "app.meeting.logout.duplicateUserEjectReason": "会議に参加しようとしている重複ユーザー",
+    "app.meeting.logout.duplicateUserEjectReason": "重複したユーザが会議に参加しようとしています",
     "app.meeting.logout.permissionEjectReason": "許可違反により強制退室されました",
     "app.meeting.logout.ejectedFromMeeting": "会議から退室しました",
     "app.meeting.logout.validateTokenFailedEjectReason": "認証トークンが確認できませんでした",
@@ -413,7 +466,7 @@
     "app.error.fallback.presentation.title": "エラーが発生しました",
     "app.error.fallback.presentation.description": "記録されました。ページを再読み込みしてください。",
     "app.error.fallback.presentation.reloadButton": "再読み込み",
-    "app.guest.waiting": "参加の承認待ち",
+    "app.guest.waiting": "参加の承認を待っています",
     "app.userList.guest.waitingUsers": "承認待ちのユーザー",
     "app.userList.guest.waitingUsersTitle": "ユーザー管理",
     "app.userList.guest.optionTitle": "保留中のユーザーを確認",
@@ -426,22 +479,28 @@
     "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": "システム",
+    "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.openOptions": "設定を開く",
     "app.shortcut-help.toggleUserList": "ユーザーリスト切替",
-    "app.shortcut-help.toggleMute": "ミュート/ミュート解除",
+    "app.shortcut-help.toggleMute": "ミュート/ミュート解除",
     "app.shortcut-help.togglePublicChat": "グループチャット切替(ユーザーリストが開いている必要があります)",
     "app.shortcut-help.hidePrivateChat": "非公開チャットを隠す",
     "app.shortcut-help.closePrivateChat": "非公開チャットを閉じる",
@@ -451,19 +510,31 @@
     "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": "ウェブカメラのプレビュー",
@@ -473,31 +544,34 @@
     "app.video.joinVideo": "ウェブカメラを共有",
     "app.video.leaveVideo": "ウェブカメラの共有を終了",
     "app.video.iceCandidateError": "ICE候補の追加に失敗しました",
-    "app.video.iceConnectionStateError": "エラー1107:ICEネゴシエーションに失敗しました",
+    "app.video.iceConnectionStateError": "接続失敗 (ICE error 1107)",
     "app.video.permissionError": "ウェブカメラ共有でエラーが発生しました。許可設定を確認してください。",
     "app.video.sharingError": "ウェブカメラ共有エラー",
     "app.video.notFoundError": "ウェブカメラが見つかりませんでした。接続を確認してください",
-    "app.video.notAllowed": "ウェブカメラを共有が許可されていません。ブラウザの許可設定を確認してください。",
+    "app.video.notAllowed": "ウェブカメラの共有が許可されていません。ブラウザの設定を確認してください。",
     "app.video.notSupportedError": "ウェブカメラは安全なページでしか共有できません。有効なSSL証明書か確認してください。",
-    "app.video.notReadableError": "ウェブカメラのビデオを取得できませんでした。 他のプログラムがウェブカメラを使用していないことを確認してください。",
-    "app.video.mediaFlowTimeout1020": "エラー1020:メディアがサーバーに接続できませんでした",
+    "app.video.notReadableError": "ウェブカメラの映像を取得できませんでした。 他のプログラムがウェブカメラを使用していないことを確認してください。",
+    "app.video.mediaFlowTimeout1020": "映像がサーバに届いていません (error 1020)",
+    "app.video.suggestWebcamLock": "閲覧者のカメラをロックしますか?",
+    "app.video.suggestWebcamLockReason": "(会議の安定性が向上します)",
+    "app.video.enable": "使用可能",
     "app.video.cancel": "キャンセル",
     "app.video.swapCam": "反転",
-    "app.video.swapCamDesc": "カメラの向きを反転する",
+    "app.video.swapCamDesc": "ウェブカメラの向きを反転する",
     "app.video.videoLocked": "ウェブカメラ共有がロックされています",
     "app.video.videoButtonDesc": "ウェブカメラを共有",
     "app.video.videoMenu": "ビデオメニュー",
-    "app.video.videoMenuDisabled": "ビデオメニューウェブカメラは無効な設定です",
+    "app.video.videoMenuDisabled": "ビデオメニューの設定でウェブカメラが無効です",
     "app.video.videoMenuDesc": "ビデオメニューのドロップダウンを開く",
     "app.video.chromeExtensionError": "インストールしてください",
-    "app.video.chromeExtensionErrorLink": "このChromeの拡張機能",
+    "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.lostPercentage": "総損失率",
+    "app.video.stats.lostRecentPercentage": "最新の損失率",
     "app.video.stats.dimensions": "解像度",
     "app.video.stats.codec": "コーデック",
     "app.video.stats.decodeDelay": "遅延(ディコード)",
@@ -505,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "エンコードの使用状況",
     "app.video.stats.currentDelay": "遅延(最新)",
     "app.fullscreenButton.label": "{0}を全画面に切り替える",
-    "app.deskshare.iceConnectionStateError": "エラー1108:画面共有時にICE接続に失敗しました",
-    "app.sfu.mediaServerConnectionError2000": "エラー2000:メディアサーバーに接続できません",
-    "app.sfu.mediaServerOffline2001": "エラー2001:メディアサーバーはオフラインです。 後でもう一度やり直してください。",
-    "app.sfu.mediaServerNoResources2002": "エラー2002:メディアサーバーに利用可能なリソースがありません",
-    "app.sfu.mediaServerRequestTimeout2003": "エラー2003:メディアサーバー要求がタイムアウトしています",
-    "app.sfu.serverIceGatheringFailed2021": "エラー2021:メディアサーバーはICE候補を収集できません",
-    "app.sfu.serverIceGatheringFailed2022": "エラー2022:メディアサーバーのICE接続に失敗しました",
-    "app.sfu.mediaGenericError2200": "エラー2200:メディアサーバーはリクエストを処理できませんでした",
-    "app.sfu.invalidSdp2202":"エラー2202:クライアントが無効なSDPを作成しました",
-    "app.sfu.noAvailableCodec2203": "エラー2203年:適切なコーデックが見つかりませんでした",
+    "app.deskshare.iceConnectionStateError": "画面共有の接続に失敗しました (ICE error 1108)",
+    "app.sfu.mediaServerConnectionError2000": "メディアサーバーに接続できません (error 2000)",
+    "app.sfu.mediaServerOffline2001": "メディアサーバーがオフラインです。後ほど再度お試しください (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "メディアサーバーに利用可能なリソースがありません (error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "メディアサーバー要求がタイムアウトしています (error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "メディアサーバーは接続候補を収集できませんでした (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "メディアサーバーの接続に失敗しました (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "メディアサーバーが処理要求に失敗しました (error 2200)",
+    "app.sfu.invalidSdp2202":"クライアントが無効なメディア要求を作成しました (SDP error 2202)",
+    "app.sfu.noAvailableCodec2203": "適切なコーデックが見つかりませんでした (error 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "投票結果が公開されました",
     "app.whiteboard.toolbar.tools": "ツール",
@@ -555,35 +629,51 @@
     "app.videoDock.webcamFocusDesc": "選択したウェブカメラにフォーカスする",
     "app.videoDock.webcamUnfocusLabel": "フォーカスを外す",
     "app.videoDock.webcamUnfocusDesc": "選択したウェブカメラのフォーカスを外す",
-    "app.invitation.title": "ブレイクアウトルームへの招待",
+    "app.videoDock.autoplayBlockedDesc": "他のユーザーのウェブカメラを表示するには、あなたの許可が必要です。",
+    "app.videoDock.autoplayAllowLabel": "ウェブカメラ表示",
+    "app.invitation.title": "小会議室への招待",
     "app.invitation.confirm": "招待",
-    "app.createBreakoutRoom.title": "ブレイクアウトルーム",
-    "app.createBreakoutRoom.ariaTitle": "ブレイクアウトルームを隠す",
-    "app.createBreakoutRoom.breakoutRoomLabel": "ブレイクアウトルーム {0}",
+    "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.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.numberOfRooms": "会議室数",
     "app.createBreakoutRoom.durationInMinutes": "利用時間(分)",
     "app.createBreakoutRoom.randomlyAssign": "ランダムに割り当てる",
-    "app.createBreakoutRoom.endAllBreakouts": "全てのブレイクアウトルームを終了する",
-    "app.createBreakoutRoom.roomName": "{0}(ルーム-{1})",
+    "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": "ブレイクアウトルームには最低1人のユーザーが必要です。",
-    "app.createBreakoutRoom.roomTime": "{0}分",
+    "app.createBreakoutRoom.freeJoin": "ユーザに参加する小会議室を選択させる",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "小会議室には最低1人のユーザが必要です。",
+    "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": "注意:外部動画は録画されません。YouTube, Vimeo, Instructure Media, Twitch, Daily MotionのURLがサポートされています",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "外部からの動画を共有する",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "外部動画の共有停止",
     "app.iOSWarning.label": "iOS 12.2またはそれ以降のバージョンにアップグレードしてください",
     "app.legacy.unsupportedBrowser": "サポート対象外のブラウザを使用している可能性があります。サポート対象の{0}または{1}をお使いください。",
     "app.legacy.upgradeBrowser": "バージョンのブラウザが古い可能性があります。サポート対象のブラウザへアップグレードしてください。",
diff --git a/bigbluebutton-html5/private/locales/ka_GE.json b/bigbluebutton-html5/private/locales/ka_GE.json
new file mode 100644
index 0000000000000000000000000000000000000000..df4977d517a48d2f34d4e6a0f60dca3086d816ee
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/ka_GE.json
@@ -0,0 +1,683 @@
+{
+    "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": "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": "ხსნის სუბტიტრების რედაქტირების რეჟიმს - and closes the modal",
+    "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.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.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.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.alertMeetingEndsUnderOneMinute": "შეხვედრა ერთ წუთში დასრულდება",
+    "app.meeting.alertBreakoutEndsUnderOneMinute": "განხილვის ოთახი ერთ წუთში დაიხურება",
+    "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": "როგორც მომხსენებლს, შეგიძლიათ სისტემაში ატვირთოთ ნებისმიერი MS Office დოკუმენტი, ან PDF ფაილი. საუკეთსო შედეგის მისაღწევად, გირჩევთ  PDF ფორმატის გამოყენებას. დარწმუნდით, რომ პრეზენტაცია სწორად გაქვთ შერჩული წრის ფორმის მოსანიშნი ველის გამოყენებით ",
+    "app.presentationUploder.uploadLabel": "ატვირთვა",
+    "app.presentationUploder.confirmLabel": "დადასტურება",
+    "app.presentationUploder.confirmDesc": "შეინახეთ ცვლილებები და დაიწყეთ პრეზენტაცია",
+    "app.presentationUploder.dismissLabel": "გაუქმება",
+    "app.presentationUploder.dismissDesc": "Closes the modal window და აუქმებს ცვლილებებს",
+    "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.conversion.conversionProcessingSlides": "მუშავდება გვერდი {0} {1}-დან",
+    "app.presentationUploder.conversion.genericConversionStatus": "ფაილის კონვერტირება",
+    "app.presentationUploder.conversion.generatingThumbnail": "thumbnails შექმნა",
+    "app.presentationUploder.conversion.generatedSlides": "სლაიდები გენერირდება",
+    "app.presentationUploder.conversion.generatingSvg": "SVG გამოსახულებები გენერირდება",
+    "app.presentationUploder.conversion.pageCountExceeded": "გვერდების რაოდენობა დაშვებულზე მეტია. გთხოვთ, დაანაწევროთ რამდენიმე ფაილად",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "MS Office დოკუმენტის დამუშავება ვერ მოხერხდა. გთხოვთ, ატვირთოთ PDF ფორმატში",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "MS Office დოკუმენტის დამუშავება ვერ მოხერხდა. გთხოვთ, ატვირთოთ 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": "საკუთარი გამოკითხვის ვარიანტი {0} {1}-დან",
+    "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": "Client build:",
+    "app.about.copyright": "საავტორო უფლებები:",
+    "app.about.confirmLabel": "OK",
+    "app.about.confirmDesc": "OK",
+    "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": "No active locales",
+    "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": "WebSocket გათიშულია (შეცდომა 1001)",
+    "app.audioNotification.audioFailedError1002": "ვერ მოხერხდა WebSocket კავშირის შექმნა (შეცდომა 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": "getUserMedia შეცდომა, რადგან მხოლოდ დაცული წყაროებია ნებადართული",
+    "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": "Join audio modal",
+    "app.audioModal.microphoneLabel": "მიკროფონი",
+    "app.audioModal.listenOnlyLabel": "მხოლოდ მოსმენა",
+    "app.audioModal.audioChoiceLabel": "როგორ გსურთ აუდიო კავშრის განხორციელება?",
+    "app.audioModal.iOSBrowser": "აუდიო / ვიდეო არ არის მხარდაჭერილი",
+    "app.audioModal.iOSErrorDescription": "ამ დროისთვის აუდიო და ვიდეო არ არის მხარდაჭერილი Chrome- ზე iOS- ისთვის",
+    "app.audioModal.iOSErrorRecommendation": "გირჩევთ Safari 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 სისტემის პარამეტრები აკრძალავს მიკროფონს. გახსენით სისტემის პარამეტრები - System Preferences > უსაფრთხოება და კონფიდენციალურობა - Security & Privacy > კონფიდენციალურობა - Privacy > მიკროფონი - Microphone და შეამოწმეთ პარამეტრის მნიშვნელობა",
+    "app.audioModal.audioDialTitle": "შემოუერთდით ტელეფონის საშუალებით",
+    "app.audioDial.audioDialDescription": "დარეკვა",
+    "app.audioDial.audioDialConfrenceText": "და შეიყვანე კონფერენციის PIN-ის ნომერი: ",
+    "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": "Disregards changes and closes the modal",
+    "app.modal.confirm": "დასრულებულია",
+    "app.modal.newTab": "(ახალი ჩანართის გახსნა)",
+    "app.modal.confirm.description": "Saves changes and closes the modal",
+    "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": "Closes keyboard shortcuts modal",
+    "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": " Pan ხელსაწყოს აქტივირება (პრეზენტატორი)",
+    "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": "Lock viewers settings modal",
+    "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": "Error on adding ICE candidate",
+    "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.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)",
+    "app.sfu.mediaServerOffline2001": "მედია სერვერი offline რეჟიმშია. გთხოვთ, სცადოთ მოგვიანებით (შეცდომა 2001)",
+    "app.sfu.mediaServerNoResources2002": "მედია სერვერს არ აქვს ხელმისაწვდომი რესურსი (შეცდომა 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "მედია სერვერის მოთხოვნების დრო იწურება (შეცდომა 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Media server cannot gather connection candidates (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "მედია სერვერთან კავშირი ვერ ხერხდება (ICE შეცდომა 2022)",
+    "app.sfu.mediaGenericError2200": "Media server failed to process request (error 2200)",
+    "app.sfu.invalidSdp2202":"Client generated an invalid media request (SDP error 2202)",
+    "app.sfu.noAvailableCodec2203": "სერვერმა ვერ იპოვა შესაბამისი კოდეკი (შეცდომა 2203)",
+    "app.meeting.endNotification.ok.label": "OK",
+    "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": "ჩვენთვის საინტერესოა თქვენი აზრი BigBlueButton-თან მუშაობის შესახებ, გთხოვთ გაგვიზიაროთ (სურვილისამებრ)",
+    "app.feedback.textarea": "როგორ გავაუმჯობესოთ BigBlueButton?",
+    "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": "რჩევა: შეგიძლიათ გამოიყენოთ drug-and-drop ფუნქცია და მომხმარებლის სახელი კონკრეტულ განხილვის ოთახში მოათავსოთ",
+    "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": "შენიშვნა: გაზიარებული გარე ვიდეოები ჩანაწერში არ გამოჩნდება. მხოლოდ YouTube, Vimeo, Instructure Media, Twitch და Daily Motion 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/km.json b/bigbluebutton-html5/private/locales/km.json
index afe42aa7faeb2805e8b8c4a0108c5be9d6bd5bf0..1d6b744c58592af5ab0d0b22caf6b0b20ed27447 100644
--- a/bigbluebutton-html5/private/locales/km.json
+++ b/bigbluebutton-html5/private/locales/km.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "បទ​បង្ហាញ​របស់​អ្នក​នឹង​ចាប់ផ្តើម​បន្តិច​ទៀត​នេះ...",
     "app.chat.submitLabel": "ផ្ញើ​សារ",
-    "app.chat.errorMinMessageLength": "សារ​នេះ​នៅ​ខ្វះ {0} តួ​អក្សរ​ទៀត",
     "app.chat.errorMaxMessageLength": "សារ​នេះ​លើស {0} តួ​អក្សរ",
     "app.chat.disconnected": "អ្នកត្រូវបានកាត់ផ្តាច់។ សារមិនអាចផ្ញើចេញទេ។",
     "app.chat.locked": "ការជជែកត្រូវបានបិទ។ សារមិនអាចផ្ញើចេញទេ។",
@@ -21,6 +20,9 @@
     "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": "ចាប់ផ្តើម",
@@ -109,9 +111,12 @@
     "app.media.autoplayAlertDesc": "អនុញ្ញាតឲ្យប្រើ",
     "app.media.screenshare.start": "ការចែករំលែកអេក្រង់បានចាប់ផ្តើម",
     "app.media.screenshare.end": "ការចែករំលែកអេក្រង់បានបញ្ចប់",
-    "app.media.screenshare.safariNotSupported": "មុខងារចែករំលែកអេក្រង់មិនទាន់ប្រើបានលើ Safari ទេ។ សូមប្រើ​ Firefox ឬ Google Chrome។",
     "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": "ដល់ពេលកំណត់។ កិច្ចប្រជុំនឹងបញ្ចប់បន្តិចទៀតនេះ។",
@@ -343,18 +348,6 @@
     "app.actionsBar.currentStatusDesc": "ស្ថានភាព​បច្ចុប្បន្ន {0}",
     "app.actionsBar.captions.start": "ចាប់ផ្តើមការមើលចំណងជើងភ្ជាប់",
     "app.actionsBar.captions.stop": "បញ្ឈប់ការមើលចំណងជើងភ្ជាប់",
-    "app.audioNotification.audioFailedError1001": "កំហុស 1001: WebSocket មិនបានភ្ជាប់",
-    "app.audioNotification.audioFailedError1002": "កំហុស 1002: មិនអាចធ្វើការតភ្ជាប់ WebSocket បាន",
-    "app.audioNotification.audioFailedError1003": "កំហុស 1003: កំណែកម្មវិធីរុករកមិនត្រូវបានគាំទ្រទេ",
-    "app.audioNotification.audioFailedError1004": "កំហុស 1004: បរាជ័យក្នុងការហៅ (មូលហេតុ={0})",
-    "app.audioNotification.audioFailedError1005": "កំហុស 1005: ការហៅបានបញ្ចប់ដោយមិនបានរំពឹងទុក",
-    "app.audioNotification.audioFailedError1006": "កំហុស 1006: ការហៅបានអស់ពេល",
-    "app.audioNotification.audioFailedError1007": "កំហុស 1007: ការចរចា ICE បរាជ័យ",
-    "app.audioNotification.audioFailedError1008": "កំហុស 1008: ផ្ទេរបានបរាជ័យ",
-    "app.audioNotification.audioFailedError1009": "កំហុស 1009: មិនអាចទៅយកពត៌មានរបស់ម៉ាស៊ីនបម្រើ STUN / TURN",
-    "app.audioNotification.audioFailedError1010": "កំហុស 1010: អស់ពេលចរចា ICE",
-    "app.audioNotification.audioFailedError1011": "កំហុស 1011: អស់ពេលប្រមូលផ្តុំ ICE",
-    "app.audioNotification.audioFailedError1012": "កំហុស 1012: ការភ្ជាប់ទៅកាន់ ICE ត្រូវបានបិទ",
     "app.audioNotification.audioFailedMessage": "ការ​តភ្ជាប់​សម្លេង​របស់​អ្នក​មិន​បាន​ជោគជ័យ",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia មិន​បាន​ជោគជ័យ។ មាន​តែ​ប្រភព​ដើម​ដែល​មាន​សុវត្ថិភាព​ទេ​ទើប​ត្រូវ​បាន​អនុញ្ញាត។",
     "app.audioNotification.closeLabel": "បិទ",
@@ -510,14 +503,12 @@
     "app.video.joinVideo": "ចែករំលែកវេបខែម",
     "app.video.leaveVideo": "បញ្ឈប់ការចែករំលែកវេបខែម",
     "app.video.iceCandidateError": "កំហុសក្នុងការបន្ថែមបេក្ខជន ICE",
-    "app.video.iceConnectionStateError": "កំហុស 1107: ការចរចា ICE បានបរាជ័យ",
     "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": "បើក",
@@ -545,16 +536,6 @@
     "app.video.stats.encodeUsagePercent": "ការប្រើប្រាស់កូដ",
     "app.video.stats.currentDelay": "ពន្យាពេលបច្ចុប្បន្ន",
     "app.fullscreenButton.label": "ធ្វើឱ្យ {0} អេក្រង់ពេញ",
-    "app.deskshare.iceConnectionStateError": "កំហុស 1108: ការតភ្ជាប់ ICE បរាជ័យពេលការចែករំលែកអេក្រង់",
-    "app.sfu.mediaServerConnectionError2000": "កំហុស 2000: មិនអាចតភ្ជាប់ទៅម៉ាស៊ីនបម្រើមេឌា",
-    "app.sfu.mediaServerOffline2001": "កំហុស 2001: ម៉ាស៊ីនបម្រើមេឌាគឺក្រៅបណ្ដាញ។ សូម​ព្យាយាម​ម្តង​ទៀត​នៅ​ពេល​ក្រោយ។",
-    "app.sfu.mediaServerNoResources2002": "កំហុស 2002: ម៉ាស៊ីនបម្រើមេឌាមិនមានធនធានដែលអាចប្រើបាន",
-    "app.sfu.mediaServerRequestTimeout2003": "កំហុស 2003: សំណើរបស់ម៉ាស៊ីនបម្រើមេឌាអស់ពេល",
-    "app.sfu.serverIceGatheringFailed2021": "កំហុស 2021: ម៉ាស៊ីនបម្រើមេឌាមិនអាចប្រមូលផ្តុំបេក្ខជន ICE",
-    "app.sfu.serverIceGatheringFailed2022": "កំហុស 2022: ការតភ្ជាប់ម៉ាស៊ីនបម្រើ ICE បរាជ័យប្រព័ន្ធផ្សព្វផ្សាយ",
-    "app.sfu.mediaGenericError2200": "កំហុស 2200: ម៉ាស៊ីនបម្រើមេឌាបានបរាជ័យក្នុងការដំណើរការសំណើ",
-    "app.sfu.invalidSdp2202":"កំហុស 2202: ម៉ាស៊ីនភ្ញៀវបានបង្កើត SDP មិនត្រឹមត្រូវ",
-    "app.sfu.noAvailableCodec2203": "កំហុស 2203: ម៉ាស៊ីនបម្រើមិនអាចរកឃើញកម្មវិធីកូដសមរម្យ",
     "app.meeting.endNotification.ok.label": "យល់ព្រម",
     "app.whiteboard.annotations.poll": "លទ្ធផលការស្ទង់មតិត្រូវបានចេញផ្សាយ",
     "app.whiteboard.toolbar.tools": "ឧបករណ៍",
diff --git a/bigbluebutton-html5/private/locales/ko_KR.json b/bigbluebutton-html5/private/locales/ko_KR.json
index 4d6cd640587505058ef7e02fb64b4175d041ff08..e8650cb1a269977a3257fe0975d983fc30d0fb14 100644
--- a/bigbluebutton-html5/private/locales/ko_KR.json
+++ b/bigbluebutton-html5/private/locales/ko_KR.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "프리젠테이션은 바로 시작될것입니다 ",
     "app.chat.submitLabel": "메시지 보내기",
-    "app.chat.errorMinMessageLength": "메시지가  {0}글자(들이) 부족합니다 ",
     "app.chat.errorMaxMessageLength": "메시지가 {0} 글자(들이) 깁니다 ",
     "app.chat.disconnected": "연결이 끊어졌습니다. 메시지는 보내지지 않습니다  ",
     "app.chat.locked": "채팅은 막혔습니다. 메시지는 보내지지 않습니다 ",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "접속 허가",
     "app.media.screenshare.start": "스크린 공유 시작",
     "app.media.screenshare.end": "스크린공유 종료 ",
-    "app.media.screenshare.safariNotSupported": "스크린 공유는 사파리 브라우저에서 불가능합니다. 파이어폭스나 크롬을 사용하세요 ",
     "app.media.screenshare.autoplayBlockedDesc": "발표자의 스크린을 보여주기 위해 당신의 허가가 필요합니다 ",
     "app.media.screenshare.autoplayAllowLabel": "공유스크린 보기",
     "app.screenshare.notAllowed": "에러: 스크린에 접근하기 위한 권한이 아직 없습니다 ",
@@ -353,18 +351,6 @@
     "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": "에러 1004: 호출 실패 (이유={0})",
-    "app.audioNotification.audioFailedError1005": "에러 1005: 호출이 예기치 못하게 중단됨 ",
-    "app.audioNotification.audioFailedError1006": "에러 1006: 호출 시간 초과 ",
-    "app.audioNotification.audioFailedError1007": "에러 1007:  ICE 통신 실패 ",
-    "app.audioNotification.audioFailedError1008": "에러 1008: 전송 실패 ",
-    "app.audioNotification.audioFailedError1009": "에러 1009: STUN/TURN 서버 정보 수집 실패 ",
-    "app.audioNotification.audioFailedError1010": "에러 1010 : ICE 통신 시간초과",
-    "app.audioNotification.audioFailedError1011": "에러 1011: ICE 수집 시간초과",
-    "app.audioNotification.audioFailedError1012": "에러 1012 : ICE 접속 종료 ",
     "app.audioNotification.audioFailedMessage": "오디오 접속이 끊어졌습니다 ",
     "app.audioNotification.mediaFailedMessage": "마이크정보 가져오기가 실패. 보안상태만 허가됨",
     "app.audioNotification.closeLabel": "닫기",
@@ -534,14 +520,12 @@
     "app.video.joinVideo": "웹캠 공유",
     "app.video.leaveVideo": "웹캠 공유 중지",
     "app.video.iceCandidateError": "ICE 추가 에러 ",
-    "app.video.iceConnectionStateError": "에러 1107 : ICE 통신 실패 ",
     "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": "가능",
@@ -569,16 +553,6 @@
     "app.video.stats.encodeUsagePercent": "인코딩 사용율",
     "app.video.stats.currentDelay": "현재 지연",
     "app.fullscreenButton.label": "{0} 을 꽉찬화면으로 ",
-    "app.deskshare.iceConnectionStateError": "에러 1108 : 화면공유중 ICE 접속 실패 ",
-    "app.sfu.mediaServerConnectionError2000": "에러 2000 : 미디어 서버 접속 불가 ",
-    "app.sfu.mediaServerOffline2001": "에러 2001 : 미디어 서버 오프라인. 잠시후 다시 시도 하세요 ",
-    "app.sfu.mediaServerNoResources2002": "에러 2002 : 미디어 서버에 가능한 자원이 없습니다 ",
-    "app.sfu.mediaServerRequestTimeout2003": "에러 2003 : 미디어 서버 요청이 시간초과 되었습니다 ",
-    "app.sfu.serverIceGatheringFailed2021": "에러 2021 : 미디어 서버가 ICE 정보를 모을 수 없습니다 ",
-    "app.sfu.serverIceGatheringFailed2022": "에러 2022 : 미디어 서버 ICE 접속 실패 ",
-    "app.sfu.mediaGenericError2200": "에러 2200 : 미디어 서버 진행 요청 실패 ",
-    "app.sfu.invalidSdp2202":"에러 2202 : 클라이언트가 부적절한 SDP를 생성했습니다 ",
-    "app.sfu.noAvailableCodec2203": "에러 2203 : 서버에서 적절한 코덱을 찾지 못했습니다 ",
     "app.meeting.endNotification.ok.label": "예",
     "app.whiteboard.annotations.poll": "설문결과 공개 ",
     "app.whiteboard.toolbar.tools": "도구들",
diff --git a/bigbluebutton-html5/private/locales/lt_LT.json b/bigbluebutton-html5/private/locales/lt_LT.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e2cba431ae29ff9684ab2a5816442f52504423f
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/lt_LT.json
@@ -0,0 +1,101 @@
+{
+    "app.home.greeting": "Jūsų pristatymas netrukus prasidės ...",
+    "app.chat.submitLabel": "Siųsti žinutę",
+    "app.chat.errorMaxMessageLength": "Žinutė yra {0} simboliais(-ų) per ilga",
+    "app.chat.disconnected": "Jūs esate atsijungę, žinutės negali būti išsiųstos",
+    "app.chat.locked": "Susirašinėjimas yra draudžiamas, žinutės bus neišsiųstos.",
+    "app.chat.inputLabel": "Rašykite žinutę susirašinėjimui {0}",
+    "app.chat.inputPlaceholder": "Siųsti žinutę dalyviui {0}",
+    "app.chat.titlePublic": "Viešasis susirašinėjimas",
+    "app.chat.titlePrivate": "Privatus susirašinėjimas su {0}",
+    "app.chat.partnerDisconnected": "{0} paliko susitikimÄ…",
+    "app.chat.closeChatLabel": "Uždaryti {0}",
+    "app.chat.hideChatLabel": "PaslÄ—pti {0}",
+    "app.chat.moreMessages": "Daugiau žinučių žemiau",
+    "app.chat.dropdown.options": "Susirašinėjimo pasirinkimai",
+    "app.chat.dropdown.clear": "IÅ¡valyti",
+    "app.chat.dropdown.copy": "Kopijuoti",
+    "app.chat.dropdown.save": "IÅ¡saugoti",
+    "app.chat.label": "Susirašinėjimas",
+    "app.chat.offline": "Neprisijungęs",
+    "app.chat.emptyLogLabel": "Susirašinėjimo žurnalas tuščias",
+    "app.chat.clearPublicChatMessage": "Viešo susirašinėjimo istoriją panaikino administratorius",
+    "app.chat.multi.typing": "Rašo keletas dalyvių",
+    "app.chat.one.typing": "{0} rašo",
+    "app.chat.two.typing": "{0} ir {1} šiuo metu rašo",
+    "app.captions.label": "Antraštės",
+    "app.captions.menu.close": "Uždaryti",
+    "app.captions.menu.start": "PradÄ—ti",
+    "app.captions.menu.ariaStart": "Pradėti rašyti antraštes",
+    "app.captions.menu.ariaStartDesc": "Atidaro antraščių redaktorių ir uždaro modalinį",
+    "app.captions.menu.select": "Pasirinkite kalbÄ…",
+    "app.captions.menu.ariaSelect": "Antraščių kalba",
+    "app.captions.menu.subtitle": "Pasirinkite kalbą ir antraščių stilių savo sesijai",
+    "app.captions.menu.title": "Subtitrai",
+    "app.captions.menu.fontSize": "Dydis",
+    "app.captions.menu.fontColor": "Teksto spalva",
+    "app.captions.menu.fontFamily": "Å riftas",
+    "app.captions.menu.backgroundColor": "Fono spalva",
+    "app.captions.menu.previewLabel": "Peržiūra",
+    "app.captions.menu.cancelLabel": "Atšaukti",
+    "app.captions.pad.hide": "PaslÄ—pti subtitrus",
+    "app.captions.pad.tip": "Paspauskite ESC kad sufokusuoti redaktoriaus įrankinę.",
+    "app.captions.pad.ownership": "Perimti",
+    "app.captions.pad.ownershipTooltip": "Jūs būsite priskirta(-as) kaip {0} subtitrų savininkas",
+    "app.captions.pad.interimResult": "Tarpiniai rezultatai",
+    "app.captions.pad.dictationStart": "PradÄ—ti diktavimÄ…",
+    "app.captions.pad.dictationStop": "Baigti diktavimÄ…",
+    "app.captions.pad.dictationOnDesc": "Įjungia kalbos atpažinimą",
+    "app.captions.pad.dictationOffDesc": "Išjungią kalbos atpažinimą",
+    "app.note.title": "Bendri užrašai",
+    "app.note.label": "Užrašai",
+    "app.note.hideNoteLabel": "Paslėpti užrašą",
+    "app.user.activityCheck": "Vartotojo aktyvumo patikra",
+    "app.user.activityCheck.label": "Patikrina ar vartotojas vis dar yra susitikime ({0})",
+    "app.user.activityCheck.check": "Patikrinti",
+    "app.note.tipLabel": "Paspauskite ESC kad sufokusuoti redaktoriaus įrankinę.",
+    "app.userList.usersTitle": "Vartotojai",
+    "app.userList.participantsTitle": "Dalyviai",
+    "app.userList.messagesTitle": "Žinutės",
+    "app.userList.notesTitle": "Užrašai",
+    "app.userList.notesListItem.unreadContent": "Naujas turinys yra pasiekiamas bendrų užrašų skiltyje",
+    "app.userList.captionsTitle": "Antraštės",
+    "app.userList.presenter": "VedÄ—jas",
+    "app.userList.you": "JÅ«s",
+    "app.userList.locked": "Užrakinta",
+    "app.userList.label": "Vartotojų sąrašas",
+    "app.userList.toggleCompactView.label": "Perjungti kompaktišką rodinį",
+    "app.userList.guest": "Svečias",
+    "app.userList.menuTitleContext": "Galimi nustatymai",
+    "app.userList.chatListItem.unreadSingular": "{0} naujas pranešimas",
+    "app.userList.chatListItem.unreadPlural": "{0} nauji pranešimai",
+    "app.userList.menu.chat.label": "Pradėti privatų susirašinėjimą",
+    "app.userList.menu.clearStatus.label": "Išvalyti būseną",
+    "app.userList.menu.removeUser.label": "Pašalinti vartotoją",
+    "app.userList.menu.muteUserAudio.label": "Nutildyti vartotojÄ…",
+    "app.userList.menu.unmuteUserAudio.label": "Atitildyti vartotojÄ…",
+    "app.userList.menu.promoteUser.label": "Paaukštinti iki moderatoriaus",
+    "app.userList.menu.demoteUser.label": "Nužeminti iki žiūrovo",
+    "app.presentationUploder.dismissLabel": "Atšaukti",
+    "app.poll.closeLabel": "Uždaryti",
+    "app.poll.liveResult.usersTitle": "Vartotojai",
+    "app.about.dismissLabel": "Atšaukti",
+    "app.settings.usersTab.label": "Dalyviai",
+    "app.settings.main.cancel.label": "Atšaukti",
+    "app.settings.main.save.label": "IÅ¡saugoti",
+    "app.audioNotification.closeLabel": "Uždaryti",
+    "app.breakoutJoinConfirmation.dismissLabel": "Atšaukti",
+    "app.audioModal.closeLabel": "Uždaryti",
+    "app.audio.listenOnly.closeLabel": "Uždaryti",
+    "app.modal.close": "Uždaryti",
+    "app.dropdown.close": "Uždaryti",
+    "app.shortcut-help.closeLabel": "Uždaryti",
+    "app.lock-viewers.button.cancel": "Atšaukti",
+    "app.lock-viewers.locked": "Užrakinta",
+    "app.videoPreview.cancelLabel": "Atšaukti",
+    "app.videoPreview.closeLabel": "Uždaryti",
+    "app.video.cancel": "Atšaukti",
+    "app.externalVideo.close": "Uždaryti"
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/lv.json b/bigbluebutton-html5/private/locales/lv.json
new file mode 100644
index 0000000000000000000000000000000000000000..15e95d9a5c0535f05c7a186eaf4b115137da83dd
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/lv.json
@@ -0,0 +1,683 @@
+{
+    "app.home.greeting": "Jūsu prezentācija drīz sāksies...",
+    "app.chat.submitLabel": "Sūtīt ziņu",
+    "app.chat.errorMaxMessageLength": "Ziņa ir {0} rakstzīmes par garu",
+    "app.chat.disconnected": "Ziņas nevar nosūtīt, jo esat atvienojies no tīkla",
+    "app.chat.locked": "Ziņas nevar nosūtīt, jo tērzētava ir bloķēta",
+    "app.chat.inputLabel": "Tērzētavas {0} ziņas ievade",
+    "app.chat.inputPlaceholder": "Nosūtīt ziņu {0}",
+    "app.chat.titlePublic": "Publiskā tērzētava (čats)",
+    "app.chat.titlePrivate": "Privāts tērziņš ar {0}",
+    "app.chat.partnerDisconnected": "{0} pameta sapulci",
+    "app.chat.closeChatLabel": "AIztaistīt {0}",
+    "app.chat.hideChatLabel": "Slēpt {0}",
+    "app.chat.moreMessages": "Vairāk ziņas zemāk ",
+    "app.chat.dropdown.options": "Tērzēšanas iespējas",
+    "app.chat.dropdown.clear": "Notīrīt",
+    "app.chat.dropdown.copy": "Kopēt",
+    "app.chat.dropdown.save": "Saglabāt",
+    "app.chat.label": "Tērzētava (čats)",
+    "app.chat.offline": "Bezsaistē",
+    "app.chat.emptyLogLabel": "Tērzēšanas žurnāls ir tukšs",
+    "app.chat.clearPublicChatMessage": "Moderators izdzēsa publiskās tērzēšanas vēsturi",
+    "app.chat.multi.typing": "Vairāki dalībnieki raksta",
+    "app.chat.one.typing": "{0} raksta...",
+    "app.chat.two.typing": "{0} un {1} raksta...",
+    "app.captions.label": "Apraksti",
+    "app.captions.menu.close": "Aizvērt",
+    "app.captions.menu.start": "Sākt",
+    "app.captions.menu.ariaStart": "Sākt rakstīt aprakstus",
+    "app.captions.menu.ariaStartDesc": "Atver aprakstu redaktoru un aizver modālu",
+    "app.captions.menu.select": "Izvēlieties valodu no pieejamajām",
+    "app.captions.menu.ariaSelect": "Aprakstu valoda",
+    "app.captions.menu.subtitle": "Lūdzu, izvēlieties šīs sesijas valodu un stilu slēgtajiem aprakstiem.",
+    "app.captions.menu.title": "Slēgtie apraksti",
+    "app.captions.menu.fontSize": "Izmērs",
+    "app.captions.menu.fontColor": "Teksta krāsojums",
+    "app.captions.menu.fontFamily": "Å rifts",
+    "app.captions.menu.backgroundColor": "Fona krāsojums",
+    "app.captions.menu.previewLabel": "Priekšskats",
+    "app.captions.menu.cancelLabel": "Atcelt",
+    "app.captions.pad.hide": "Nerādīt slēgtos aprakstus",
+    "app.captions.pad.tip": "Nospiediet ESC lai fokusētos uz redaktora rīkrindu",
+    "app.captions.pad.ownership": "Pārņemiet",
+    "app.captions.pad.ownershipTooltip": "Jūs tiksiet norīkots par {0} aprakstu īpašnieku",
+    "app.captions.pad.interimResult": "Starprezultāti",
+    "app.captions.pad.dictationStart": "Sākt diktēšanu",
+    "app.captions.pad.dictationStop": "Beigt diktēšanu",
+    "app.captions.pad.dictationOnDesc": "Ieslēdz runas atpazīšanu",
+    "app.captions.pad.dictationOffDesc": "Izslēdz runas atpazīšanu",
+    "app.note.title": "Kopīgās piezīmes",
+    "app.note.label": "Piezīme",
+    "app.note.hideNoteLabel": "Nerādīt piezīmi",
+    "app.user.activityCheck": "Dalībnieka aktivitātes pārbaude",
+    "app.user.activityCheck.label": "Pārbaudīt, vai dalībnieks joprojām ir sapulcē ({0})",
+    "app.user.activityCheck.check": "Pārbaudīt",
+    "app.note.tipLabel": "Nospiediet ESC lai fokusētos uz redaktora rīkrindu",
+    "app.userList.usersTitle": "Dalībnieki",
+    "app.userList.participantsTitle": "Dalībnieki",
+    "app.userList.messagesTitle": "Ziņas",
+    "app.userList.notesTitle": "Piezīmes",
+    "app.userList.notesListItem.unreadContent": "Kopīgoto piezīmju sadaļā pieejams jauns saturs",
+    "app.userList.captionsTitle": "Apraksti",
+    "app.userList.presenter": "Ziņotājs",
+    "app.userList.you": "JÅ«s",
+    "app.userList.locked": "Slēgts/bloķēts",
+    "app.userList.label": "Dalībnieku saraksts",
+    "app.userList.toggleCompactView.label": "Pārslēgt uz kompaktā skata režīmu",
+    "app.userList.guest": "Ciemiņš",
+    "app.userList.menuTitleContext": "Pieejamās opcijas/izvēles",
+    "app.userList.chatListItem.unreadSingular": "{0} jauna ziņa",
+    "app.userList.chatListItem.unreadPlural": "{0} jaunas ziņas",
+    "app.userList.menu.chat.label": "Sākt privātu tērziņu",
+    "app.userList.menu.clearStatus.label": "Notīrīt statusu",
+    "app.userList.menu.removeUser.label": "Noņemt dalībnieku",
+    "app.userList.menu.muteUserAudio.label": "Noklusināt dalībnieku (izslēgt skaņu)",
+    "app.userList.menu.unmuteUserAudio.label": "Apskaņot dalībnieku (padarīt dzirdamu/ieslēgt skaņu)",
+    "app.userList.userAriaLabel": "{0} {1} {2}  statuss {3}",
+    "app.userList.menu.promoteUser.label": "Padarīt par moderatoru",
+    "app.userList.menu.demoteUser.label": "Padarīt par vērotāju",
+    "app.userList.menu.unlockUser.label": "Atslēgt/atbloķēt {0}",
+    "app.userList.menu.lockUser.label": "Slēgt/bloķēt {0}",
+    "app.userList.menu.directoryLookup.label": "Meklēšana katalogā",
+    "app.userList.menu.makePresenter.label": "Padarīt par ziņotāju",
+    "app.userList.userOptions.manageUsersLabel": "Pārvaldīt dalībniekus",
+    "app.userList.userOptions.muteAllLabel": "Noklusināt visus dalībniekus",
+    "app.userList.userOptions.muteAllDesc": "Noklusināt visus šīs sapulces dalībniekus",
+    "app.userList.userOptions.clearAllLabel": "Notīrīt visas statusa ikonas",
+    "app.userList.userOptions.clearAllDesc": "Notīra visas dalībnieka statusa ikonas",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Noklusināt visus dalībniekus, izņemot prezentētāju/ziņotāju",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Noklusina visus sapulces dalībniekus, izņemot prezentētāju/ziņotāju",
+    "app.userList.userOptions.unmuteAllLabel": "Atslēgt sapulces dalībnieku noklusināšanu",
+    "app.userList.userOptions.unmuteAllDesc": "Ieslēdz sapulcē skaņu",
+    "app.userList.userOptions.lockViewersLabel": "Bloķēt vērotājus",
+    "app.userList.userOptions.lockViewersDesc": "bloķēt sapulces apmeklētājiem noteiktas funkcijas ",
+    "app.userList.userOptions.disableCam": "Vērotāju kameras izslēgtas",
+    "app.userList.userOptions.disableMic": "Vērotāju mikrofoni izslēgti",
+    "app.userList.userOptions.disablePrivChat": "Privātā tērzēšana izslēgta",
+    "app.userList.userOptions.disablePubChat": "Publiskā tērzēšana izslēgta",
+    "app.userList.userOptions.disableNote": "Kopīgotās piezīmes slēgtas/bloķētas",
+    "app.userList.userOptions.hideUserList": "Dalībnieku saraksts vērotājiem nav pieejams",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Tikai moderatori var redzēt vērotāju kameras (dēļ ieslēgtās bloķēšanas)",
+    "app.userList.content.participants.options.clearedStatus": "Notīrīti visu dalībnieku statusi",
+    "app.userList.userOptions.enableCam": "Vērotāju kameras ieslēgtas",
+    "app.userList.userOptions.enableMic": "Vērotāju mikrofoni ieslēgti",
+    "app.userList.userOptions.enablePrivChat": "Privātā tērzēšana iespējota",
+    "app.userList.userOptions.enablePubChat": "Publiskā tērzēšana iespējota",
+    "app.userList.userOptions.enableNote": "Kopīgotās piezīmes iespējotas",
+    "app.userList.userOptions.showUserList": "Dalībnieku saraksts vērotājiem  ir pieejams",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Tagad varat ieslēgt savu tīmekļa kameru un visi jūs redzēs",
+    "app.media.label": "Medijs",
+    "app.media.autoplayAlertDesc": "Dot piekļuvi",
+    "app.media.screenshare.start": "Ekrāna koplietošana sākta",
+    "app.media.screenshare.end": "Ekrāna koplietošana beigta",
+    "app.media.screenshare.autoplayBlockedDesc": "Nepieciešama jūsu atļauja, lai Jums parādītu ziņotāja ekrānu.",
+    "app.media.screenshare.autoplayAllowLabel": "Skatīt koplietoto ekrānu",
+    "app.screenshare.notAllowed": "Ķibele: atļauja piekļūt ekrānam, netika piešķirta.",
+    "app.screenshare.notSupportedError": "Ķibele: ekrānu kopīgošana ir atļauta tikai drošos (SSL) domēnos",
+    "app.screenshare.notReadableError": "Ķibele: neizdevās nolasīt Jūsu ekrānu (lai to koplietotu)",
+    "app.screenshare.genericError": "Ķibele: ekrāna koplietošanas sakarā radās ķibele. Lūdzu, mēģiniet vēlreiz",
+    "app.meeting.ended": "Å Ä« sesija beigusies",
+    "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",
+    "app.presentation.startSlideContent": "Slaidu satura sākums",
+    "app.presentation.endSlideContent": "Slaidu satura beigas",
+    "app.presentation.emptySlideContent": "Tekošais slaids ir tukšs",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Prezentācijas beigas",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Prezentācijas sākums",
+    "app.presentation.presentationToolbar.selectLabel": "Izvēlēties slaidu",
+    "app.presentation.presentationToolbar.prevSlideLabel": "Iepriekšējais slaids",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Pāriet uz prezentācijas iepriekšējo slaidu",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Nākošais slaids",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Pāriet uz prezentācijas nākošo slaidu",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Izlaist slaidu",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Pāriet uz prezentācijas konkrētu slaidu",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Pielāgot prezentāciju ekrāna platumam",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Parādīt slaidu visā tā platumā",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Pielāgot prezentāciju ekrāna izmēram",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Parādīt slaidu pilnībā",
+    "app.presentation.presentationToolbar.zoomLabel": "Mērogošana",
+    "app.presentation.presentationToolbar.zoomDesc": "Mērogot (tuvināt/tālināt) prezentāciju",
+    "app.presentation.presentationToolbar.zoomInLabel": "Tuvināt",
+    "app.presentation.presentationToolbar.zoomInDesc": "Tuvināt prezentāciju",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Tālināt",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Tālināt prezentāciju",
+    "app.presentation.presentationToolbar.zoomReset": "Atstatīt mērogu uz noklusēto",
+    "app.presentation.presentationToolbar.zoomIndicator": "Pašreizējais mērogs procentos",
+    "app.presentation.presentationToolbar.fitToWidth": "Pielāgot ekrāna platumam",
+    "app.presentation.presentationToolbar.fitToPage": "Pielāgot lapas izmēram",
+    "app.presentation.presentationToolbar.goToSlide": "Slaids {0}",
+    "app.presentationUploder.title": "Prezentācija",
+    "app.presentationUploder.message": "Kā ziņotājam jums ir iespēja augšupielādēt jebkuru biroja dokumentu vai PDF failu. Drošākam rezultātam tiek ieteikta PDF failu izmantošāna. Lūdzu, pārliecinieties, vai prezentācija ir izvēlēta, izmantojot apaļo izvēles rūtiņu labajā pusē.",
+    "app.presentationUploder.uploadLabel": "Augšuplāde",
+    "app.presentationUploder.confirmLabel": "Apstiprināt",
+    "app.presentationUploder.confirmDesc": "Saglabājiet izmaiņas un sāciet ziņošanu/prezentāciju",
+    "app.presentationUploder.dismissLabel": "Atcelt",
+    "app.presentationUploder.dismissDesc": "Aizvērt modālo logu un atmest veiktās izmaiņas",
+    "app.presentationUploder.dropzoneLabel": "Lai augšupielādētu, velciet failus šeit",
+    "app.presentationUploder.dropzoneImagesLabel": "Lai augšupielādētu, velciet attēlus šeit",
+    "app.presentationUploder.browseFilesLabel": "vai izvēlieties failus pārlūkā",
+    "app.presentationUploder.browseImagesLabel": "vai izvēlieties/uzņemiet attēlus",
+    "app.presentationUploder.fileToUpload": "Tiks augšuplādēts...",
+    "app.presentationUploder.currentBadge": "Pašreizējais",
+    "app.presentationUploder.rejectedError": "Atlasītais (-ie) fails (i) netika pieņemts (i). Lūdzu, pārbaudiet faila tipu (-us).",
+    "app.presentationUploder.upload.progress": "Tiek augšuplādēts ({0}%)",
+    "app.presentationUploder.upload.413": "Fails ir pārāk liels. Sadaliet to vairākos failos.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Tiek apstrādāta {0}/{1} lapām",
+    "app.presentationUploder.conversion.genericConversionStatus": "Fails tiek konvertēts...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Tiek ģenerēti sīkattēli",
+    "app.presentationUploder.conversion.generatedSlides": "Izveidoti slaidi...",
+    "app.presentationUploder.conversion.generatingSvg": "Tiek ģenerēti SVG attēli",
+    "app.presentationUploder.conversion.pageCountExceeded": "Pārsniegts lapu skaits. Lūdzu, sadaliet failu vairākos failos.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Biroja dokumenta apstrādes kļūme. Tā vietā mēģiniet augšupielādēt PDF failu.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Biroja dokumenta apstrādes kļūme. Tā vietā mēģiniet augšupielādēt PDF failu.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Neizdevās konvertēt PDF failu. Lūdzu, mēģiniet to optimizēt",
+    "app.presentationUploder.conversion.timeout": "Konvertēšana notika pārāk ilgi...",
+    "app.presentationUploder.conversion.pageCountFailed": "Neizdevās noteikt lapu skaitu",
+    "app.presentationUploder.isDownloadableLabel": "Liegt prezentācijas lejupielādi",
+    "app.presentationUploder.isNotDownloadableLabel": "Ļaut prezentācijas lejupielādi",
+    "app.presentationUploder.removePresentationLabel": "Noņemt/dzēst prezentāciju",
+    "app.presentationUploder.setAsCurrentPresentation": "Iestatīt prezentāciju kā tekošo/pašreizējo",
+    "app.presentationUploder.tableHeading.filename": "Faila nosaukums",
+    "app.presentationUploder.tableHeading.options": "Iespējas/opcijas",
+    "app.presentationUploder.tableHeading.status": "Statuss",
+    "app.poll.pollPaneTitle": "Balsošana/aptauja",
+    "app.poll.quickPollTitle": "Zibaptauja",
+    "app.poll.hidePollDesc": "Paslēpj balsošanas/aptaujas izvēlnes paneli",
+    "app.poll.customPollInstruction": "Lai izveidotu pielāgotu aptauju, spiediet zemāk esošo pogu un ievadiet izvēles.",
+    "app.poll.quickPollInstruction": "Lai sāktu balsošanu/aptauju, izvēlieties zemāk redzamo opciju.",
+    "app.poll.customPollLabel": "Pielāgojama balsošana/aptauja",
+    "app.poll.startCustomLabel": "Sākt pielāgotu balsošanu/aptauju",
+    "app.poll.activePollInstruction": "Lai nekavējoši redzētu atbildes uz šo aptauju/balsojumu, atstājiet šo paneli atvērtu. Kad esiet gatavi publiskot rezultātus un beigt balsojumu/aptauju, nospiediet “Publicēt balsošanas/aptaujas rezultātus”.",
+    "app.poll.publishLabel": "Publiskot balsojuma/aptaujas rezultātus",
+    "app.poll.backLabel": "Atpakaļ pie balsošanas/aptaujas izvēlēm",
+    "app.poll.closeLabel": "Aizvērt",
+    "app.poll.waitingLabel": "Gaidām atbildes/balsojumu ({0}/{1})",
+    "app.poll.ariaInputCount": "Pielāgotas aptaujas iespēja {0} no {1}",
+    "app.poll.customPlaceholder": "Pievienot balsojuma/aptaujas opciju",
+    "app.poll.noPresentationSelected": "Neviena prezentācija nav izvēlēta. Lūdzu, atlasiet vienu.",
+    "app.poll.clickHereToSelect": "Noklikšķiniet šeit, lai izvēlētu",
+    "app.poll.t": "Piekrītu (apgalvojums patiess)",
+    "app.poll.f": "Nepiekrītu (apgalvojums nepatiess)",
+    "app.poll.tf": "Piekrītu / Nepiekrītu",
+    "app.poll.y": "Jā",
+    "app.poll.n": "NÄ“",
+    "app.poll.yn": "Jā / Nē",
+    "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": "Piekrītu (apgalvojums patiess)",
+    "app.poll.answer.false": "Nepiekrītu (apgalvojums nepatiess)",
+    "app.poll.answer.yes": "Jā",
+    "app.poll.answer.no": "NÄ“",
+    "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": "Dalībnieki",
+    "app.poll.liveResult.responsesTitle": "Atbilde/balsojums",
+    "app.polling.pollingTitle": "Atbilžu/balsojuma varianti",
+    "app.polling.pollAnswerLabel": "Balsojums/aptaujas atbilde {0}",
+    "app.polling.pollAnswerDesc": "Izvēlieties šo, lai balsotu par {0}",
+    "app.failedMessage": "Atvainojiet, radās problēma savienojumā ar serveri.",
+    "app.downloadPresentationButton.label": "Lejupielādēt oriģinālo prezentāciju",
+    "app.connectingMessage": "Notiek savienošanās...",
+    "app.waitingMessage": "Atvienots. Tiks mēģināts savienoties pēc {0} sekundēm...",
+    "app.retryNow": "Atkārtoti mēģināt tagad",
+    "app.navBar.settingsDropdown.optionsLabel": "Iespējas/opcijas",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Rādīt pilnekrānā",
+    "app.navBar.settingsDropdown.settingsLabel": "Iestatījumi",
+    "app.navBar.settingsDropdown.aboutLabel": "Par",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Izrakstīties",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Iziet no pilnekrāna režīma",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Iestatījumu izvēlni padarīt par pilnekrāna",
+    "app.navBar.settingsDropdown.settingsDesc": "Koriģēt vispārējos iestatījumus",
+    "app.navBar.settingsDropdown.aboutDesc": "Rādīt informāciju par klientu",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Pamest sapulci",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Pamest pilnekrāna režīmu",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Tastatūras īsceļi",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Pieejamo tastatūras īsceļu liste",
+    "app.navBar.settingsDropdown.helpLabel": "Palīdzība",
+    "app.navBar.settingsDropdown.helpDesc": "Dalībniekam atver video pamācības (jaunā cilnē)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Izbeidz pašreizējo sapulci",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Beigt sapulci",
+    "app.navBar.userListToggleBtnLabel": "Dalībnieku saraksta pārslēgšana",
+    "app.navBar.toggleUserList.ariaLabel": "Dalībnieku un ziņu pārslēgšana",
+    "app.navBar.toggleUserList.newMessages": "ar paziņojumiem par jaunām ziņām",
+    "app.navBar.recording": "Šī sesija tiek ierakstīta",
+    "app.navBar.recording.on": "Notiek ieraksts",
+    "app.navBar.recording.off": "Netiek ierakstīts",
+    "app.navBar.emptyAudioBrdige": "Nav aktīva mikrofona. Kopīgojiet savu mikrofonu, lai šim ierakstam būtu skaņa.",
+    "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",
+    "app.about.version": "Klienta-lietotnes būvējums:",
+    "app.about.copyright": "Autortiesības:",
+    "app.about.confirmLabel": "Labi",
+    "app.about.confirmDesc": "Labi",
+    "app.about.dismissLabel": "Atcelt",
+    "app.about.dismissDesc": "Aizvērt informāciju par klientu",
+    "app.actionsBar.changeStatusLabel": "Mainīt statusu",
+    "app.actionsBar.muteLabel": "Atslēgt skaņu (noklusināt)",
+    "app.actionsBar.unmuteLabel": "Ieslēgt skaņu (apskaņot)",
+    "app.actionsBar.camOffLabel": "Kamera izslēgta",
+    "app.actionsBar.raiseLabel": "Pacelt",
+    "app.actionsBar.label": "Darbību josla",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Atgriezt prezentāciju",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Poga, lai atgrieztu prezentāciju pēc tās aizvēršanas",
+    "app.screenshare.screenShareLabel" : "Ekrāna kopīgošana",
+    "app.submenu.application.applicationSectionTitle": "Lietotne",
+    "app.submenu.application.animationsLabel": "Animācijas",
+    "app.submenu.application.audioAlertLabel": "Audio paziņojumi tērzētavai",
+    "app.submenu.application.pushAlertLabel": "Uznirstošie paziņojumi tērzētavai",
+    "app.submenu.application.userJoinAudioAlertLabel": "Audio paziņojumi par dalībnieka pievienošanos",
+    "app.submenu.application.userJoinPushAlertLabel": "Uznirstošie paziņojumi par dalībnieka pievienošanos",
+    "app.submenu.application.fontSizeControlLabel": "Šrifta izmērs",
+    "app.submenu.application.increaseFontBtnLabel": "Palielināt lietotnes šrifta izmēru",
+    "app.submenu.application.decreaseFontBtnLabel": "Samazināt lietotnes šrifta izmēru",
+    "app.submenu.application.currentSize": "pašreiz {0}",
+    "app.submenu.application.languageLabel": "Lietotnes valoda",
+    "app.submenu.application.languageOptionLabel": "Izvēlieties valodu",
+    "app.submenu.application.noLocaleOptionLabel": "Nav aktīvas lokāles",
+    "app.submenu.audio.micSourceLabel": "Mikrofona avots",
+    "app.submenu.audio.speakerSourceLabel": "Skaļruņa avots",
+    "app.submenu.audio.streamVolumeLabel": "Jūsu audio straumes skaļums",
+    "app.submenu.video.title": "Video",
+    "app.submenu.video.videoSourceLabel": "Skata avots",
+    "app.submenu.video.videoOptionLabel": "Izvēlieties skata avotu",
+    "app.submenu.video.videoQualityLabel": "Video kvalitāte",
+    "app.submenu.video.qualityOptionLabel": "Izvēlieties video kvalitāti",
+    "app.submenu.video.participantsCamLabel": "Aktīvo dalībnieku kameras",
+    "app.settings.applicationTab.label": "Lietotne",
+    "app.settings.audioTab.label": "Audio",
+    "app.settings.videoTab.label": "Video",
+    "app.settings.usersTab.label": "Dalībnieki",
+    "app.settings.main.label": "Iestatījumi",
+    "app.settings.main.cancel.label": "Atcelt",
+    "app.settings.main.cancel.label.description": "Atceļ izmaiņas un aizver iestatījumu izvēlni",
+    "app.settings.main.save.label": "Saglabāt",
+    "app.settings.main.save.label.description": "Saglabā izmaiņas un aizver iestatījumu izvēlni",
+    "app.settings.dataSavingTab.label": "Trafika taupīšana",
+    "app.settings.dataSavingTab.webcam": "Iespējot kameras",
+    "app.settings.dataSavingTab.screenShare": "Iespējot darbvirsmu kopīgošanu",
+    "app.settings.dataSavingTab.description": "Lai kontrolētu patērēto interneta trafiku, iespējojiet/atspējojiet zemāk redzamos parametrus.",
+    "app.settings.save-notification.label": "Iestatījumi saglabāti",
+    "app.switch.onLabel": "IESLÄ’GTS",
+    "app.switch.offLabel": "IZSLÄ’GTS",
+    "app.talkingIndicator.ariaMuteDesc" : "Noklusināt dalībnieku",
+    "app.talkingIndicator.isTalking" : "{0} runā",
+    "app.talkingIndicator.wasTalking" : "{0} beidza runāt",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Rīcība",
+    "app.actionsBar.actionsDropdown.presentationLabel": "augšuplādēt prezentāciju",
+    "app.actionsBar.actionsDropdown.initPollLabel": "ierosināt balsojumu/aptauju",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "kopīgot jūsu ekrānu",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Ekrānu kopīgošana bloķēta",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "beigt kopīgot jūsu ekrānu",
+    "app.actionsBar.actionsDropdown.presentationDesc": "augšuplādēt jūsu prezentāciju",
+    "app.actionsBar.actionsDropdown.initPollDesc": "ierosināt balsojumu/aptauju",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "kopīgot savu ekrānu ar citiem",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "beigt kopīgot savu ekrānu ar citiem",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "Sākt balsojumu/aptauju",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Pārslēdz balsošanas/aptaujas rūti/logu/paneli",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Saglabāt dalībnieku vārdus",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Izveidot grupas telpas",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "izveidot grupas telpas, izdalot tās no pašreizējās sapulces",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Rakstīt slēgtos aprakstus",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Pārslēdz aprakstu rūti/logu/paneli",
+    "app.actionsBar.actionsDropdown.takePresenter": "Kļūt par runātāju/zinotāju/prezentētāju",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Nozīmēt sevi kā jauno runātāju/ziņotāju/prezentētāju",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Iestatīt statusu",
+    "app.actionsBar.emojiMenu.awayLabel": "prombūtnē",
+    "app.actionsBar.emojiMenu.awayDesc": "nomainīt statusu uz \"prombūtnē\"",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "pacelt",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "pacelt roku, lai izteiktu jautājumu, repliku, komentāru",
+    "app.actionsBar.emojiMenu.neutralLabel": "svārstīgs/neizlēmis",
+    "app.actionsBar.emojiMenu.neutralDesc": "nomainīt statusu uz \"svārstīgs/neizlēmis\"",
+    "app.actionsBar.emojiMenu.confusedLabel": "samulsis",
+    "app.actionsBar.emojiMenu.confusedDesc": "nomainīt statusu uz \"samulsis\"",
+    "app.actionsBar.emojiMenu.sadLabel": "skumjš",
+    "app.actionsBar.emojiMenu.sadDesc": "nomainīt statusu uz \"skumjš\"",
+    "app.actionsBar.emojiMenu.happyLabel": "laimīgs",
+    "app.actionsBar.emojiMenu.happyDesc": "nomainīt statusu uz \"laimīgs\"",
+    "app.actionsBar.emojiMenu.noneLabel": "Notīrīt statusu",
+    "app.actionsBar.emojiMenu.noneDesc": "Notīri savu statusu",
+    "app.actionsBar.emojiMenu.applauseLabel": "applaudējošs",
+    "app.actionsBar.emojiMenu.applauseDesc": "nomainīt statusu uz \"aplaudējošs\"",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "īkšķi augšā",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "nomainīt statusu uz \"īkšķi augšā\"",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "īkšķi lejā",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "nomainīt statusu uz \"īkšķi lejā\"",
+    "app.actionsBar.currentStatusDesc": "pašreizējais statuss {0}",
+    "app.actionsBar.captions.start": "Sākt slēgto aprakstu skatīšanu",
+    "app.actionsBar.captions.stop": "Beigt slēgto aprakstu skatīšanu",
+    "app.audioNotification.audioFailedError1001": "WebSocket atvienots (kļūme 1001)",
+    "app.audioNotification.audioFailedError1002": "Nevarēja izveidot WebSocket savienojumu (kļūme 1002)",
+    "app.audioNotification.audioFailedError1003": "Pārlūka versija netiek atbalstīta (kļūme 1003)",
+    "app.audioNotification.audioFailedError1004": "Kļūme zvana laikā (iemesls = {0}) (kļūme 1004)",
+    "app.audioNotification.audioFailedError1005": "Zvans negaidīti beidzās (kļūme 1005)",
+    "app.audioNotification.audioFailedError1006": "Zvana noildze (kļūme 1006)",
+    "app.audioNotification.audioFailedError1007": "Savienojuma kļūme (ICE kļūme 1007)",
+    "app.audioNotification.audioFailedError1008": "Pārsūtīšana neizdevās (kļūme 1008)",
+    "app.audioNotification.audioFailedError1009": "Nevarēja iegūt STUN / TURN servera informāciju (kļūme 1009)",
+    "app.audioNotification.audioFailedError1010": "Savienojuma nodibināšanas noildze (ICE kļūme 1010)",
+    "app.audioNotification.audioFailedError1011": "Savienojuma noildze (ICE kļūme 1011)",
+    "app.audioNotification.audioFailedError1012": "Savienojums aizvērās (ICE kļūme 1012)",
+    "app.audioNotification.audioFailedMessage": "Neizdevās izveidot jūsu audio savienojumu ",
+    "app.audioNotification.mediaFailedMessage": "getUserMicMedia neizdevās, jo ir atļauti tikai droši avoti/izcelsme",
+    "app.audioNotification.closeLabel": "Aizvērt",
+    "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofons vērotājiem ir bloķēts. Jūs esat pieslēdzies tikai klausīšanās režīmā.",
+    "app.breakoutJoinConfirmation.title": "Pievienoties grupas telpai",
+    "app.breakoutJoinConfirmation.message": "Vai vēlaties pievienoties",
+    "app.breakoutJoinConfirmation.confirmDesc": "Pievieno jūs grupas telpai",
+    "app.breakoutJoinConfirmation.dismissLabel": "Atcelt",
+    "app.breakoutJoinConfirmation.dismissDesc": "Aizver un noraida pievienošanos grupas telpai",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Izvēlieties grupas telpu, kurai pievienoties",
+    "app.breakoutTimeRemainingMessage": "Atlikušais grupas telpas laiks: {0} ",
+    "app.breakoutWillCloseMessage": "Laiks beidzies. Grupas telpa drīz pagaisīs.",
+    "app.calculatingBreakoutTimeRemaining": "Tiek rēķināts atlikušais laiks...",
+    "app.audioModal.ariaTitle": "Pievienojies audio modālam",
+    "app.audioModal.microphoneLabel": "Runāt un dzirdēt (mikrofons)",
+    "app.audioModal.listenOnlyLabel": "Tikai dzirdēt",
+    "app.audioModal.audioChoiceLabel": "Kādā audio statusā vēlaties pievienoties?",
+    "app.audioModal.iOSBrowser": "Audio/Video netiek atbalstīts",
+    "app.audioModal.iOSErrorDescription": "Pagaidām audio/video uz Chromium/Chome priekš iOS netiek atbalstīts.",
+    "app.audioModal.iOSErrorRecommendation": "Uz iOS iesakām izmantot Safari ",
+    "app.audioModal.audioChoiceDesc": "Izvēlieties audio statusu/aspektu (tikai klausītājs vai arī runātājs), kurā piedalīsieties šajā sapulcē",
+    "app.audioModal.unsupportedBrowserLabel": "Izskatās, ka jūs izmantojat pārlūku, kurš nav pilnībā atbalstīts. Lūdzu, pilnam atbalstam izmantojiet {0} vai {1}.",
+    "app.audioModal.closeLabel": "Aizvērt",
+    "app.audioModal.yes": "Jā",
+    "app.audioModal.no": "NÄ“",
+    "app.audioModal.yes.arialabel" : "Ierakstītā skaņa dzirdama",
+    "app.audioModal.no.arialabel" : "Ierakstītā skaņa nav dzirdama",
+    "app.audioModal.echoTestTitle": "Šis ir privāts jūsu mikrofona tests. Pasakiet dažus vārdus. Vai dzirdējāt savas balss ierakstu?",
+    "app.audioModal.settingsTitle": "Pamainiet audio iestatījumus",
+    "app.audioModal.helpTitle": "Gadījās ķibele ar jūsu multivides ierīcēm",
+    "app.audioModal.helpText": "Vai devāt piekļuvi savam mikrofonam? Ņemiet vērā, ka, mēģinot pieslēgt audio, būtu jāuznirst dialoga lodziņam, kurā tiek prasītas multimediju ierīces atļaujas. Lai pieslēgtos sapulcei ar audio (skaņu), jums jāatbild apstiprinoši. Ja tas tā nav, mēģiniet mainīt mikrofona atļaujas pārlūka iestatījumos.",
+    "app.audioModal.help.noSSL": "Šī lapa ir pagalam nedroša. Lai atļautu piekļuvi mikrofonam, lapai jābūt pieejamai, izmantojot HTTPS. Lūdzu, sazinieties ar servera administratoru.",
+    "app.audioModal.help.macNotAllowed": "Izskatās, ka jūsu Mac(īgās) sistēmas preferences (iestatījumi) bloķē piekļuvi jūsu mikrofonam. Atveriet: Sistēmas preferences -> Drošība un konfidencialitāte -> Konfidencialitāte -> Mikrofons, un pārliecinieties, vai tur atzīmēta jūsu izmantotā pārlūkprogramma.",
+    "app.audioModal.audioDialTitle": "Pievienoties, izmantojot tālruni",
+    "app.audioDial.audioDialDescription": "Sastādiet numuru",
+    "app.audioDial.audioDialConfrenceText": "un ievadiet sapulces PIN numuru:",
+    "app.audioModal.autoplayBlockedDesc": "Lai atskaņotu audio, nepieciešama jūsu atļauja.",
+    "app.audioModal.playAudio": "Atskaņot audio",
+    "app.audioModal.playAudio.arialabel" : "Atskaņot audio",
+    "app.audioDial.tipIndicator": "Padoms",
+    "app.audioDial.tipMessage": "Lai izslēgtu / ieslēgtu skaņu, tālrunī nospiediet taustiņu \"0\".",
+    "app.audioModal.connecting": "Notiek savienošanās...",
+    "app.audioModal.connectingEchoTest": "Notiek savienošanās ar mikrofona (atbalss) testu",
+    "app.audioManager.joinedAudio": "JÅ«s esat pievienojies sapulcei ar audio",
+    "app.audioManager.joinedEcho": "Jūs esat pievienojies mikrofona (atbalss) pārbaudei",
+    "app.audioManager.leftAudio": "JÅ«s esat pametis sapulces audio",
+    "app.audioManager.reconnectingAudio": "Mēģinājums atkārtoti pieslēgt skaņu (audio)...",
+    "app.audioManager.genericError": "Kļūme: gadījusies kļūme, lūdzu, mēģiniet vēlreiz",
+    "app.audioManager.connectionError": "Kļūme: savienojuma kļūme",
+    "app.audioManager.requestTimeout": "Kļūda: savienojuma nodibināšanas pieprasījumā iestājās noildze",
+    "app.audioManager.invalidTarget": "Kļūme: mēģinājums kaut ko pieprasīt nepareizam mērķim",
+    "app.audioManager.mediaError": "Kļūme: gadījās ķibele ar piekļuvi multimediju ierīcēm",
+    "app.audio.joinAudio": "Ieslēgt skaņu (pievienot audio)",
+    "app.audio.leaveAudio": "Izslēgt skaņu (atvienot audio)",
+    "app.audio.enterSessionLabel": "Ievadiet sesiju (ieiet sesijā, pievienoties sesijai)",
+    "app.audio.playSoundLabel": "Atskaņot skaņu",
+    "app.audio.backLabel": "Atpakaļ",
+    "app.audio.audioSettings.titleLabel": "Iestatiet audio iestatījumus",
+    "app.audio.audioSettings.descriptionLabel": "Atcerieties, ka jūsu pārlūkprogrammā parādīsies dialoga lodziņš, kurā jums jāpiekrīt koplietot mikrofonu.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Mikrofona avots",
+    "app.audio.audioSettings.speakerSourceLabel": "Skaļruņa avots",
+    "app.audio.audioSettings.microphoneStreamLabel": "Jūsu audio straumes skaļums",
+    "app.audio.audioSettings.retryLabel": "Mēģināt vēlreiz",
+    "app.audio.listenOnly.backLabel": "Atpakaļ",
+    "app.audio.listenOnly.closeLabel": "Aizvērt",
+    "app.audio.permissionsOverlay.title": "Dot piekļuvi jūsu mikrofonam",
+    "app.audio.permissionsOverlay.hint": "Lai jūs sekmīgi pievienotos audio sapulcei, jums jādod atļauja izmantot jūsu multimediju ierīces :)",
+    "app.error.removed": "JÅ«s esat izlikts no sapulces",
+    "app.error.meeting.ended": "Jūs esat izgājis no sapulces",
+    "app.meeting.logout.duplicateUserEjectReason": "Viens un tas pats dalībnieks divreiz mēģina pievienoties sapulcei",
+    "app.meeting.logout.permissionEjectReason": "Izlikts dēļ atļauju pārkāpuma",
+    "app.meeting.logout.ejectedFromMeeting": "JÅ«s esat izlikts no sapulces",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Neizdevās validēt autorizācijas tokenu",
+    "app.meeting.logout.userInactivityEjectReason": "Dalībnieks pārāk ilgi neaktīvs",
+    "app.meeting-ended.rating.legendLabel": "Atsauksme (vērtējums)",
+    "app.meeting-ended.rating.starLabel": "Zvaigzne",
+    "app.modal.close": "Aizvērt",
+    "app.modal.close.description": "Neņem vērā izmaiņas un aizver modālu",
+    "app.modal.confirm": "Darīts",
+    "app.modal.newTab": "(atver jaunu cilni)",
+    "app.modal.confirm.description": "Saglabā izmaiņas un aizver modālu",
+    "app.dropdown.close": "Aizvērt",
+    "app.error.400": "Nejēdzīgs pieprasījums",
+    "app.error.401": "Neautorizēts",
+    "app.error.403": "JÅ«s esat izlikts no sapulces",
+    "app.error.404": "Netika atrasta",
+    "app.error.410": "Sapulce beigusies",
+    "app.error.500": "Kaut kas nogāja greizi...",
+    "app.error.leaveLabel": "Ierakstieties sistēmā par jaunu",
+    "app.error.fallback.presentation.title": "Gadījās ķibele",
+    "app.error.fallback.presentation.description": "Tas ir reģistrēts žurnālā. Lūdzu, mēģiniet pārlādēt lapu.",
+    "app.error.fallback.presentation.reloadButton": "Pārlādēt",
+    "app.guest.waiting": "Gaidām apstiprinājumu, lai pievienotos",
+    "app.userList.guest.waitingUsers": "Gaidām daībniekus",
+    "app.userList.guest.waitingUsersTitle": "Dalībnieku vadība",
+    "app.userList.guest.optionTitle": "Izskatīt pieteikušos/potenciālos dalībniekus",
+    "app.userList.guest.allowAllAuthenticated": "Ļaut visiem autentificētajiem",
+    "app.userList.guest.allowAllGuests": "Ļaut visiem viesiem",
+    "app.userList.guest.allowEveryone": "Ļaut ikvienam",
+    "app.userList.guest.denyEveryone": "Liegt ikvienam",
+    "app.userList.guest.pendingUsers": "{0} izskatīšanu gaidošie dalībnieki",
+    "app.userList.guest.pendingGuestUsers": "{0} gaidošie viesi",
+    "app.userList.guest.pendingGuestAlert": "Ir pievienojies sesijai un gaida jūsu apstiprinājumu.",
+    "app.userList.guest.rememberChoice": "Atcerēties izvēli",
+    "app.user-info.title": "Meklēšana katalogā",
+    "app.toast.breakoutRoomEnded": "Grupas telpa pagaisusi (izbeigusies). LÅ«dzu pievienojies audio par jaunu.",
+    "app.toast.chat.public": "Jauna ziņa publiskajā tērziņā",
+    "app.toast.chat.private": "Jauna ziņa privātajā tērziņā",
+    "app.toast.chat.system": "Sistēma",
+    "app.toast.clearedEmoji.label": "Emoji statuss notīrīts",
+    "app.toast.setEmoji.label": "Emoji statuss iestatīts uz {0}",
+    "app.toast.meetingMuteOn.label": "Visi dalībnieki ir noklusināti",
+    "app.toast.meetingMuteOff.label": "Sapulces noklusināšana tika izslēgta",
+    "app.notification.recordingStart": "Šī sesija pašreiz tiek ierakstīta",
+    "app.notification.recordingStop": "Šī sesija netiek ierakstīta",
+    "app.notification.recordingPaused": "Šī sesija vairs netiek ierakstīta",
+    "app.notification.recordingAriaLabel": "Ieraksta laiks",
+    "app.notification.userJoinPushAlert": "{0} pievienojās sesijai",
+    "app.shortcut-help.title": "Tastatūras īsceļi",
+    "app.shortcut-help.accessKeyNotAvailable": "Piekļuves taustiņi nav pieejami",
+    "app.shortcut-help.comboLabel": "Kombo (kombinēts)",
+    "app.shortcut-help.functionLabel": "Funkcija",
+    "app.shortcut-help.closeLabel": "Aizvērt",
+    "app.shortcut-help.closeDesc": "Aizver īsinājumtaustiņu modālu",
+    "app.shortcut-help.openOptions": "Atvērt opcijas/iespējas",
+    "app.shortcut-help.toggleUserList": "Pārslēgt dalībnieku sarakstu",
+    "app.shortcut-help.toggleMute": "Noklusināt / Apskaņot",
+    "app.shortcut-help.togglePublicChat": "Pārslēgt publisko tērziņu (dalībnieku sarakstam jābūt atklātam)",
+    "app.shortcut-help.hidePrivateChat": "Nerādit privāto tērziņu",
+    "app.shortcut-help.closePrivateChat": "Aizvērt privāto tērziņu",
+    "app.shortcut-help.openActions": "Atvērt darbību izvēlni",
+    "app.shortcut-help.openStatus": "Atvērt statusu izvēlni",
+    "app.shortcut-help.togglePan": "Aktivēt panoramēšanas rīku (prezentētājam)",
+    "app.shortcut-help.nextSlideDesc": "Nākamais slaids (prezentētājam)",
+    "app.shortcut-help.previousSlideDesc": "Iepriekšējais slaids (prezentētājam)",
+    "app.lock-viewers.title": "Bloķēt vērotājus",
+    "app.lock-viewers.description": "Šīs izvēles ļauj ierobežot vērotāju iespējas izmantot noteiktas funkcijas.",
+    "app.lock-viewers.featuresLable": "Funkcija",
+    "app.lock-viewers.lockStatusLabel": "Statuss",
+    "app.lock-viewers.webcamLabel": "Kopīgot kameru",
+    "app.lock-viewers.otherViewersWebcamLabel": "Redzēt citu vērotāju kameras",
+    "app.lock-viewers.microphoneLable": "Kopīgot mikrofonu",
+    "app.lock-viewers.PublicChatLabel": "Sūtīt publiskā tērziņa ziņas",
+    "app.lock-viewers.PrivateChatLable": "Sūtīt privātā tērziņa ziņas",
+    "app.lock-viewers.notesLabel": "Rediģēt koplietotās piezīmes",
+    "app.lock-viewers.userListLabel": "Redzēt Dalībnieku sarakstā citus vērotājus ",
+    "app.lock-viewers.ariaTitle": "Bloķēt vērotāju iestatījumu modālu",
+    "app.lock-viewers.button.apply": "Pielietot",
+    "app.lock-viewers.button.cancel": "Atcelt",
+    "app.lock-viewers.locked": "Slēgts/bloķēts",
+    "app.lock-viewers.unlocked": "Atslēgts/nebloķēts",
+    "app.recording.startTitle": "Sākt ierakstu",
+    "app.recording.stopTitle": "Pauzēt ierakstu",
+    "app.recording.resumeTitle": "Turpināt ierakstu",
+    "app.recording.startDescription": "Ierakstīšanas pogu vēlāk var izmantot, lai pauzētu ierakstīšanu.",
+    "app.recording.stopDescription": "Patiešām vēlaties pauzēt ierakstīšanu? Jūs varēsiet turpināt ierakstu, vēlreiz nozpiežot ierakstīšanas pogu.",
+    "app.videoPreview.cameraLabel": "Kamera",
+    "app.videoPreview.profileLabel": "Kvalitāte",
+    "app.videoPreview.cancelLabel": "Atcelt",
+    "app.videoPreview.closeLabel": "Aizvērt",
+    "app.videoPreview.findingWebcamsLabel": "Tiek atrastas kameras",
+    "app.videoPreview.startSharingLabel": "Sākt kopīgot",
+    "app.videoPreview.webcamOptionLabel": "Izvēlēties kameru",
+    "app.videoPreview.webcamPreviewLabel": "Kameras priekšskats",
+    "app.videoPreview.webcamSettingsTitle": "Kameras iestatījumi",
+    "app.videoPreview.webcamNotFoundLabel": "Kamera nav atrasta",
+    "app.videoPreview.profileNotFoundLabel": "Nav atbalstīta kameras profila ",
+    "app.video.joinVideo": "Kopīgot kameru",
+    "app.video.leaveVideo": "Beigt kopīgot kameru",
+    "app.video.iceCandidateError": "Kļūme, pievienojot ICE kandidātu",
+    "app.video.iceConnectionStateError": "Savienojuma kļūme (ICE kļūme 1107)",
+    "app.video.permissionError": "Kļūme kopīgojot tīmekļa kameru. Lūdzu, pārbaudiet atļaujas",
+    "app.video.sharingError": "Kļūda kopīgojot tīmekļa kameru",
+    "app.video.notFoundError": "Nevarēja atrast kameru. Lūdzu pārliecinieties, ka tā pievienota",
+    "app.video.notAllowed": "Nav atļaujas kopīgot kameru. Lūdzu, pārbaudiet jūsu pārlūka atļaujas",
+    "app.video.notSupportedError": "Var koplietot kameras video tikai ar drošiem avotiem. Pārliecinieties, vai jūsu SSL sertifikāts ir derīgs",
+    "app.video.notReadableError": "Nevarēja iegūt kameras video. Lūdzu, pārliecinieties, vai cita programma neizmanto kameru",
+    "app.video.mediaFlowTimeout1020": "Multimediji nevarēja sasniegt serveri (kļūme 1020)",
+    "app.video.suggestWebcamLock": "Uzspiest bloķēšanas iestatījumu vērotāju kamerām?",
+    "app.video.suggestWebcamLockReason": "(tas uzlabos sapulces stabilitāti)",
+    "app.video.enable": "Iespējot",
+    "app.video.cancel": "Atcelt",
+    "app.video.swapCam": "Nomainīt",
+    "app.video.swapCamDesc": "nomainīt kameru virzienu",
+    "app.video.videoLocked": "Kameras kopīgošana bloķēta",
+    "app.video.videoButtonDesc": "Kopīgot kameru",
+    "app.video.videoMenu": "Video izvēlne",
+    "app.video.videoMenuDisabled": "Video izvēlne Kameras iestatījumos ir atspējota",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Multivides serveris ir bezsaistē. Lūdzu, mēģiniet vēlāk atkal (kļūme 2001)",
+    "app.sfu.mediaServerNoResources2002": "Multimediju serverim nav pietiekoši resursu (kļūme 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Multimediju servera pieprasījumi noilgst (kļūme 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Multimediju serveris nevar apkopot savienojuma kandidātus (ICE kļūme 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Multimediju servera savienojums neizdevās (ICE kļūme 2022)",
+    "app.sfu.mediaGenericError2200": "Multimediju serverim neizdevās apstrādāt pieprasījumu (kļūme 2200)",
+    "app.sfu.invalidSdp2202":"Klients ģenerēja nederīgu mediju pieprasījumu (SDP kļūme 2202)",
+    "app.sfu.noAvailableCodec2203": "Serveris nevarēja atrast piemērotu kodeku (kļūme 2203)",
+    "app.meeting.endNotification.ok.label": "Labi",
+    "app.whiteboard.annotations.poll": "Aptaujas/balsojuma rezultāti tika publiskoti",
+    "app.whiteboard.toolbar.tools": "RÄ«ki",
+    "app.whiteboard.toolbar.tools.hand": "Aplis",
+    "app.whiteboard.toolbar.tools.pencil": "ZÄ«mulis",
+    "app.whiteboard.toolbar.tools.rectangle": "Taisnstūris",
+    "app.whiteboard.toolbar.tools.triangle": "Trijstūris",
+    "app.whiteboard.toolbar.tools.ellipse": "Elipse",
+    "app.whiteboard.toolbar.tools.line": "LÄ«nija",
+    "app.whiteboard.toolbar.tools.text": "Teksts",
+    "app.whiteboard.toolbar.thickness": "Zīmēšanas biezums",
+    "app.whiteboard.toolbar.thicknessDisabled": "Zīmēšanas biezuma iestatīšana atspējota",
+    "app.whiteboard.toolbar.color": "Krāsas",
+    "app.whiteboard.toolbar.colorDisabled": "Krāsas atspējotas",
+    "app.whiteboard.toolbar.color.black": "Melns",
+    "app.whiteboard.toolbar.color.white": "Balts",
+    "app.whiteboard.toolbar.color.red": "Sarkans",
+    "app.whiteboard.toolbar.color.orange": "Oranžs",
+    "app.whiteboard.toolbar.color.eletricLime": "Dzeltens",
+    "app.whiteboard.toolbar.color.lime": "Zaļš",
+    "app.whiteboard.toolbar.color.cyan": "Gaiši zils (Cyan)",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Debesu zils (Dodger)",
+    "app.whiteboard.toolbar.color.blue": "Tumši zils",
+    "app.whiteboard.toolbar.color.violet": "Violets",
+    "app.whiteboard.toolbar.color.magenta": "Rozā (Magenta)",
+    "app.whiteboard.toolbar.color.silver": "Sudraba",
+    "app.whiteboard.toolbar.undo": "Atsaukt anotāciju",
+    "app.whiteboard.toolbar.clear": "Notīrīt visas anotācijas",
+    "app.whiteboard.toolbar.multiUserOn": "Ieslēgt tāfeles daudz-lietotāju režīmu",
+    "app.whiteboard.toolbar.multiUserOff": "Izslēgt tāfeles daudz-lietotāju režīmu",
+    "app.whiteboard.toolbar.fontSize": "Šriftu izmēra saraksts",
+    "app.feedback.title": "Jūs esat izgājis no sapulces",
+    "app.feedback.subtitle": "Labprāt uzzinātu par jūsu pieredzi ar BigBlueButton (neobligāts)",
+    "app.feedback.textarea": "Kā padarīt BigBlueButton labāku?",
+    "app.feedback.sendFeedback": "Atsūtīt atsauksmes",
+    "app.feedback.sendFeedbackDesc": "Atsūtīt atsauksmi un iziet no sapulces",
+    "app.videoDock.webcamFocusLabel": "Fokuss",
+    "app.videoDock.webcamFocusDesc": "Fokusēt izvēlēto kameru",
+    "app.videoDock.webcamUnfocusLabel": "Atfokusēt",
+    "app.videoDock.webcamUnfocusDesc": "Atfokusēt izvēlēto kameru",
+    "app.videoDock.autoplayBlockedDesc": "Ir nepieciešama jūsu atļauja, lai jums rādītu citu dalībnieku kameras.",
+    "app.videoDock.autoplayAllowLabel": "Skatīt kameras",
+    "app.invitation.title": "Grupas telpas uzaicinājums",
+    "app.invitation.confirm": "Uzaicināt",
+    "app.createBreakoutRoom.title": "Grupu (diskusiju) telpas",
+    "app.createBreakoutRoom.ariaTitle": "Nerādīt grupu telpas",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Grupu telpas {0}",
+    "app.createBreakoutRoom.generatingURL": "Tiek ģenerēts URL",
+    "app.createBreakoutRoom.generatedURL": "Ģenerēts",
+    "app.createBreakoutRoom.duration": "Ilgums {0}",
+    "app.createBreakoutRoom.room": "Istaba {0}",
+    "app.createBreakoutRoom.notAssigned": "Nav piešķirta ({0})",
+    "app.createBreakoutRoom.join": "Pievienoties istabai",
+    "app.createBreakoutRoom.joinAudio": "Pievienoties audio",
+    "app.createBreakoutRoom.returnAudio": "Atgriezt audio",
+    "app.createBreakoutRoom.alreadyConnected": "Jau esat istabā",
+    "app.createBreakoutRoom.confirm": "Izveidot",
+    "app.createBreakoutRoom.record": "Ierakstīt",
+    "app.createBreakoutRoom.numberOfRooms": "Istabu skaits",
+    "app.createBreakoutRoom.durationInMinutes": "Laiks (minūtēs)",
+    "app.createBreakoutRoom.randomlyAssign": "Piešķirt/sadalīt pēc nejaušības principa",
+    "app.createBreakoutRoom.endAllBreakouts": "Izgaisināt (likvidēt) visas grupu telpas",
+    "app.createBreakoutRoom.roomName": "{0} (Istaba - {1})",
+    "app.createBreakoutRoom.doneLabel": "Darīts",
+    "app.createBreakoutRoom.nextLabel": "Nākošais",
+    "app.createBreakoutRoom.minusRoomTime": "Samazināt grupu telpu laiku uz",
+    "app.createBreakoutRoom.addRoomTime": "Palielināt grupu telpu laiku uz",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Pievienot dalībnieku",
+    "app.createBreakoutRoom.freeJoin": "Ļaut dalībniekiem izvēlēties grupas telpu, kurai pievienoties",
+    "app.createBreakoutRoom.leastOneWarnBreakout": " Grupas telpā jāievieto vismaz viens dalībnieks.",
+    "app.createBreakoutRoom.modalDesc": "Padoms. Varat vilkt-un-nomest dalībnieka vārdu, lai to ievietotu noteiktā grupas telpā.",
+    "app.createBreakoutRoom.roomTime": "{0} minūtes",
+    "app.createBreakoutRoom.numberOfRoomsError": "Istabu skaits ir nederīgs.",
+    "app.externalVideo.start": "Kopīgot jaunu videoklipu",
+    "app.externalVideo.title": "Kopīgot ārējo videoklipu",
+    "app.externalVideo.input": "Ārējā videoklipa URL",
+    "app.externalVideo.urlInput": "Pievienot videoklipa URL",
+    "app.externalVideo.urlError": "Šis videoklipa URL netiek atbalstīts.",
+    "app.externalVideo.close": "Aizvērt",
+    "app.externalVideo.autoPlayWarning": "Atskaņojiet video, lai iespējotu multimediju sinhronizāciju",
+    "app.network.connection.effective.slow": "ir pamanītas savienojuma problēmas.",
+    "app.network.connection.effective.slow.help": "Vairāk informācijas",
+    "app.externalVideo.noteLabel": "Piezīme: kopīgotie ārējie videoklipi nebūs redzami ierakstā. Tiek atbalstīti Twitch, Vimeo, YouTube, Instructure Media un Daily Motion URL.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Kopīgot ārējo videoklipu",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Beigt kopīgot ārējo videoklipu",
+    "app.iOSWarning.label": "Lūdzu, augstiniet uz iOS 12.2 vai augstāku versiju",
+    "app.legacy.unsupportedBrowser": "Izskatās, ka izmantojat neatbalstītu pārlūku. Pilnīga atbalsta iegūšanai izmantojiet {0} vai {1}.",
+    "app.legacy.upgradeBrowser": "Izskatās, ka izmantojat atbalstīta pārlūka novecojušu versiju. Lai iegūtu pilnīgu atbalstu, lūdzu, aktualizējiet savu pārlūkprogrammu.",
+    "app.legacy.criosBrowser": "IOS ierīcē pilna atbalsta nodrošināšānai, lūdzu, izmantojiet Safari."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/nb_NO.json b/bigbluebutton-html5/private/locales/nb_NO.json
new file mode 100644
index 0000000000000000000000000000000000000000..cc3b046240e53928339cb7ec9ea2aeebd8882d3e
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/nb_NO.json
@@ -0,0 +1,685 @@
+{
+    "app.home.greeting": "Presentasjonen din starter snart ...",
+    "app.chat.submitLabel": "Send melding",
+    "app.chat.errorMaxMessageLength": "Meldingen er {0} bokstaver for lang",
+    "app.chat.disconnected": "Du er frakoblet, meldinger kan ikke bli sendt.",
+    "app.chat.locked": "Chat er for øyeblikket låst, meldinger kan ikke bli sendt",
+    "app.chat.inputLabel": "Skrivefelt for chat [0]",
+    "app.chat.inputPlaceholder": "Send melding til [0]",
+    "app.chat.titlePublic": "Gruppechat",
+    "app.chat.titlePrivate": "Privat chat med [0]",
+    "app.chat.partnerDisconnected": "[0] har forlatt møtet",
+    "app.chat.closeChatLabel": "Lukk [0]",
+    "app.chat.hideChatLabel": "Skjul [0]",
+    "app.chat.moreMessages": "Flere meldinger under",
+    "app.chat.dropdown.options": "Chatinnstillinger",
+    "app.chat.dropdown.clear": "Tøm",
+    "app.chat.dropdown.copy": "Kopier",
+    "app.chat.dropdown.save": "Lagre",
+    "app.chat.label": "Chat",
+    "app.chat.offline": "Frakoblet",
+    "app.chat.emptyLogLabel": "Chatloggen er tom",
+    "app.chat.clearPublicChatMessage": "Gruppechaten har blitt tømt av en moderator",
+    "app.chat.multi.typing": "Flere brukere skriver",
+    "app.chat.one.typing": "[0] skriver",
+    "app.chat.two.typing": "[0] og [1] skriver",
+    "app.captions.label": "Undertekster",
+    "app.captions.menu.close": "Lukk",
+    "app.captions.menu.start": "Start",
+    "app.captions.menu.ariaStart": "Skriv undertekster",
+    "app.captions.menu.ariaStartDesc": "Ã…pner redigering for undertekster og lukker modalvinduet",
+    "app.captions.menu.select": "Velg tilgjengelig språk",
+    "app.captions.menu.ariaSelect": "Undertekstspråk",
+    "app.captions.menu.subtitle": "Vennligst velg språk og stil for undertekster til dette møtet",
+    "app.captions.menu.title": "Undertekster",
+    "app.captions.menu.fontSize": "Størrelse",
+    "app.captions.menu.fontColor": "Tekstfarge",
+    "app.captions.menu.fontFamily": "Font",
+    "app.captions.menu.backgroundColor": "Bakgrunnsfarge",
+    "app.captions.menu.previewLabel": "Forhåndsvisning",
+    "app.captions.menu.cancelLabel": "Avbryt",
+    "app.captions.pad.hide": "Skjul undertekster",
+    "app.captions.pad.tip": "Trykk på Escape for å fokusere på verktøylinjen for redigering",
+    "app.captions.pad.ownership": "Ta over",
+    "app.captions.pad.ownershipTooltip": "Du vil bli satt som eier av [0] undertekster",
+    "app.captions.pad.interimResult": "Midlertidige resultater",
+    "app.captions.pad.dictationStart": "Start diktering",
+    "app.captions.pad.dictationStop": "Stopp diktering",
+    "app.captions.pad.dictationOnDesc": "Skrur stemmegjenkjenning på",
+    "app.captions.pad.dictationOffDesc": "Skrur stemmegjenkjenning av",
+    "app.note.title": "Delte notater",
+    "app.note.label": "Notat",
+    "app.note.hideNoteLabel": "Skjul notat",
+    "app.user.activityCheck": "Sjekk brukeraktivitet",
+    "app.user.activityCheck.label": "Sjekk at bruker fortsatt er i møtet ({0})",
+    "app.user.activityCheck.check": "Sjekk",
+    "app.note.tipLabel": "Trykk escape for å fokusere på verktøylinjen for redigering",
+    "app.userList.usersTitle": "Brukere",
+    "app.userList.participantsTitle": "Deltagere",
+    "app.userList.messagesTitle": "Meldinger",
+    "app.userList.notesTitle": "Notater",
+    "app.userList.notesListItem.unreadContent": "Nytt innhold er tilgjengelig i delte notater",
+    "app.userList.captionsTitle": "Undertekster",
+    "app.userList.presenter": "Presentator",
+    "app.userList.you": "Deg",
+    "app.userList.locked": "LÃ¥st",
+    "app.userList.label": "Brukerliste",
+    "app.userList.toggleCompactView.label": "Kompaktmodus",
+    "app.userList.guest": "Gjest",
+    "app.userList.menuTitleContext": "Tilgjengelige valg",
+    "app.userList.chatListItem.unreadSingular": "[0] Ny melding",
+    "app.userList.chatListItem.unreadPlural": "[0] nye meldinger",
+    "app.userList.menu.chat.label": "Start en privat chat",
+    "app.userList.menu.clearStatus.label": "Tilbakestill status",
+    "app.userList.menu.removeUser.label": "Fjern bruker",
+    "app.userList.menu.muteUserAudio.label": "Mute brukeren",
+    "app.userList.menu.unmuteUserAudio.label": "Unmute brukeren",
+    "app.userList.userAriaLabel": "{0} {1} {2} Status {3}",
+    "app.userList.menu.promoteUser.label": "Oppgrader til moderator",
+    "app.userList.menu.demoteUser.label": "Nedgrader til deltager",
+    "app.userList.menu.unlockUser.label": "LÃ¥s opp [0]",
+    "app.userList.menu.lockUser.label": "LÃ¥s [0]",
+    "app.userList.menu.directoryLookup.label": "Katalogoppslag",
+    "app.userList.menu.makePresenter.label": "Gi presentator",
+    "app.userList.userOptions.manageUsersLabel": "Administrer brukere",
+    "app.userList.userOptions.muteAllLabel": "Skru av mikrofonen for alle brukere",
+    "app.userList.userOptions.muteAllDesc": "Skru av mikrofonen til alle brukerne i møtet",
+    "app.userList.userOptions.clearAllLabel": "Tilbakestill alle statusikoner",
+    "app.userList.userOptions.clearAllDesc": "Tilbakestiller alle brukeres statusikoner",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Skru av mikrofonen til  alle utenom presentator",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Skrur av mikrofonen til alle brukere i møtet foruten presentator",
+    "app.userList.userOptions.unmuteAllLabel": "Skru av mute for møtet",
+    "app.userList.userOptions.unmuteAllDesc": "Unmuter møtet",
+    "app.userList.userOptions.lockViewersLabel": "LÃ¥s deltagere",
+    "app.userList.userOptions.lockViewersDesc": "Lås spesifikke funksjoner for deltagere i møtet",
+    "app.userList.userOptions.disableCam": "Deltageres webcam er skrudd av",
+    "app.userList.userOptions.disableMic": "Deltageres mikrofoner er skrudd av",
+    "app.userList.userOptions.disablePrivChat": "Privat chat er skrudd av",
+    "app.userList.userOptions.disablePubChat": "Gruppechat er skrudd av",
+    "app.userList.userOptions.disableNote": "Delte notater er nå låst",
+    "app.userList.userOptions.hideUserList": "Brukerliste er nå skjult for deltagere",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Bare moderatorer kan se brukeres webcam (på grunn av låseinnstillinger)",
+    "app.userList.content.participants.options.clearedStatus": "Tilbakestilte brukerstatuser",
+    "app.userList.userOptions.enableCam": "Deltageres webcam er nå skrudd på",
+    "app.userList.userOptions.enableMic": "Deltageres mikrofoner er nå tilgjengelig",
+    "app.userList.userOptions.enablePrivChat": "Privat chat er skrudd på",
+    "app.userList.userOptions.enablePubChat": "Gruppechat er skrudd på",
+    "app.userList.userOptions.enableNote": "Delte notater er nå skrudd på",
+    "app.userList.userOptions.showUserList": "Brukerliste er nå synlig for deltagere",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Du kan nå skru på webcamet ditt, alle vil se deg",
+    "app.media.label": "Media",
+    "app.media.autoplayAlertDesc": "Godta tilgang",
+    "app.media.screenshare.start": "Skjermdeling har startet",
+    "app.media.screenshare.end": "Skjermdeling avsluttet",
+    "app.media.screenshare.unavailable": "Skjermdeling utilgjengelig",
+    "app.media.screenshare.safariNotSupported": "Skjermdeling er for øyeblikket ikke støttet i Safari. Vennligst bruk Firefox eller Google Chrome.",
+    "app.media.screenshare.autoplayBlockedDesc": "Vi trenger din godkjennelse til å vise deg presentators skjerm.",
+    "app.media.screenshare.autoplayAllowLabel": "Se delte skjerm",
+    "app.screenshare.notAllowed": "Feil: Tilgang til skjermdeling ble ikke gitt",
+    "app.screenshare.notSupportedError": "Feil: Skjermdeling er kun tillatt på trygge (SSL) domener",
+    "app.screenshare.notReadableError": "Feil: Noe gikk galt under skjermdeling",
+    "app.screenshare.genericError": "Feil: Noe gikk galt under skjermdeling, vennligst prøv igjen",
+    "app.meeting.ended": "Denne økten er avsluttet",
+    "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",
+    "app.presentation.startSlideContent": "Sideinnhold start",
+    "app.presentation.endSlideContent": "Sideinnhold slutt",
+    "app.presentation.emptySlideContent": "Intet innhold for nåværende side",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Slutten av presentasjonen",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Starten av presentasjonen",
+    "app.presentation.presentationToolbar.selectLabel": "Velg side",
+    "app.presentation.presentationToolbar.prevSlideLabel": "Forrige side",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Bytt presentasjonen til forrige side",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Neste side",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Bytt presentasjonen til neste side",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Hopp over side",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Bytt presentasjonen til en spesifikk side",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Tilpass bredde",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Vis hele sidebredden",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Tilpass til skjerm",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Vis hele siden",
+    "app.presentation.presentationToolbar.zoomLabel": "Forstørr",
+    "app.presentation.presentationToolbar.zoomDesc": "Bytt forstørrelsesnivået på presentasjonen",
+    "app.presentation.presentationToolbar.zoomInLabel": "Forstørr",
+    "app.presentation.presentationToolbar.zoomInDesc": "Forstørr presentasjonen",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Forminsk",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Forminsk presentasjonen",
+    "app.presentation.presentationToolbar.zoomReset": "Tilbakestill størrelsen",
+    "app.presentation.presentationToolbar.zoomIndicator": "Nåværende størrelsesprosent",
+    "app.presentation.presentationToolbar.fitToWidth": "Tilpass bredde",
+    "app.presentation.presentationToolbar.fitToPage": "Tilpass side",
+    "app.presentation.presentationToolbar.goToSlide": "Slide [0]",
+    "app.presentationUploder.title": "Presentasjon",
+    "app.presentationUploder.message": "Som presentator har du muligheten til å laste opp ethvert officedokument eller PDF fil. Vi anbefaler PDF for optimalt resultat. Vennligst se at presentasjonen er valgt ved bruk av den runde avsjekksboksen på høyre side.",
+    "app.presentationUploder.uploadLabel": "Last opp",
+    "app.presentationUploder.confirmLabel": "Godta",
+    "app.presentationUploder.confirmDesc": "Lagre endringene og start presentasjonen",
+    "app.presentationUploder.dismissLabel": "Avbryt",
+    "app.presentationUploder.dismissDesc": "Lukk modalvinduet og forkast endringene dine",
+    "app.presentationUploder.dropzoneLabel": "Dra filer hit for å laste opp",
+    "app.presentationUploder.dropzoneImagesLabel": "Dra bilder hit for å laste opp",
+    "app.presentationUploder.browseFilesLabel": "eller velg filer",
+    "app.presentationUploder.browseImagesLabel": "eller velg/ta nye bilder",
+    "app.presentationUploder.fileToUpload": "Til opplasting",
+    "app.presentationUploder.currentBadge": "Nåværende",
+    "app.presentationUploder.rejectedError": "De valgte filen(e) har ikke blitt godtatt. Vennligst sjekk filtypen(e).",
+    "app.presentationUploder.upload.progress": "Laster opp ({0}%)",
+    "app.presentationUploder.upload.413": "Filen er for stor, vennligst del den opp i flere filer",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Bearbeider side [0] av [1]",
+    "app.presentationUploder.conversion.genericConversionStatus": "Konverterer fil ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Genererer miniatyrbilder",
+    "app.presentationUploder.conversion.generatedSlides": "Sider generert ...",
+    "app.presentationUploder.conversion.generatingSvg": "Generer SVG bilder ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Over godkjent antall sider. Vennligst del filen opp i flere filer",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Feilet ved konvertering av officedokument. Vennligst last opp PDF istedet.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Feilet ved konvertering av officedokument. Vennligst last opp en PDF istedet.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Vi kunne ikke konvertere PDF filen, forsøk å optimalisere den",
+    "app.presentationUploder.conversion.timeout": "Oi, konverteringen tok for lang tid",
+    "app.presentationUploder.conversion.pageCountFailed": "Kunne ikke finne antall sider.",
+    "app.presentationUploder.isDownloadableLabel": "Ikke tillat nedlasting av presentasjonen",
+    "app.presentationUploder.isNotDownloadableLabel": "Tillat nedlasting av presentasjonen",
+    "app.presentationUploder.removePresentationLabel": "Fjern presentasjonen",
+    "app.presentationUploder.setAsCurrentPresentation": "Sett presentasjonen som nåværende",
+    "app.presentationUploder.tableHeading.filename": "Filnavn",
+    "app.presentationUploder.tableHeading.options": "Valg",
+    "app.presentationUploder.tableHeading.status": "Status",
+    "app.poll.pollPaneTitle": "Spørsmål",
+    "app.poll.quickPollTitle": "Spørsmål",
+    "app.poll.hidePollDesc": "Skjuler menyvalget for spørsmål",
+    "app.poll.customPollInstruction": "For å lage et tilpasset Spørsmål, velg knappen under og skriv valgene.",
+    "app.poll.quickPollInstruction": "Velg ett av valgene under for å starte spørrerunden",
+    "app.poll.customPollLabel": "Tilpasset spørsmål",
+    "app.poll.startCustomLabel": "Start tilpasset spørsmål",
+    "app.poll.activePollInstruction": "Lukk dette panelet for å se svarene på spørsmålet ditt. Når du er klar kan du trykke på 'Publiser resultater' for å se de endelige svarene og avslutte spørsmålsrunden.",
+    "app.poll.publishLabel": "Publiser spørsmålsresultater",
+    "app.poll.backLabel": "Tilbake til spørsmålsvalg",
+    "app.poll.closeLabel": "Lukk",
+    "app.poll.waitingLabel": "Venter på svar ({0}/{1})",
+    "app.poll.ariaInputCount": "Tilpasset spørsmålsvalg[0] av [1]",
+    "app.poll.customPlaceholder": "Legg til spørsmålsvalg",
+    "app.poll.noPresentationSelected": "Ingen presentasjon valgt! Vennligst velg en.",
+    "app.poll.clickHereToSelect": "Trykk her for å velge",
+    "app.poll.t": "Sant",
+    "app.poll.f": "Usant",
+    "app.poll.tf": "Sant / Usant",
+    "app.poll.y": "Ja",
+    "app.poll.n": "Nei",
+    "app.poll.yn": "Ja / Nei",
+    "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": "Sant",
+    "app.poll.answer.false": "Usant",
+    "app.poll.answer.yes": "Ja",
+    "app.poll.answer.no": "Nei",
+    "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": "Brukere",
+    "app.poll.liveResult.responsesTitle": "Tilbakemelding",
+    "app.polling.pollingTitle": "Spørsmålsvalg",
+    "app.polling.pollAnswerLabel": "Svar[0]",
+    "app.polling.pollAnswerDesc": "Velg dette for å stemme på [0]",
+    "app.failedMessage": "Beklager, vi har problemer med å koble til serveren.",
+    "app.downloadPresentationButton.label": "Last ned presentasjonen",
+    "app.connectingMessage": "Kobler til ...",
+    "app.waitingMessage": "Frakoblet. Prøver å koble til på nytt om [0] sekunder ...",
+    "app.retryNow": "Prøv igjen nå",
+    "app.navBar.settingsDropdown.optionsLabel": "Valg",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Gjør fullskjerm",
+    "app.navBar.settingsDropdown.settingsLabel": "Innstillinger",
+    "app.navBar.settingsDropdown.aboutLabel": "Om",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Logg ut",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Avslutt fullskjerm",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Gjør innstillingsmenyen fullskjerm",
+    "app.navBar.settingsDropdown.settingsDesc": "Endre generelle innstillinger",
+    "app.navBar.settingsDropdown.aboutDesc": "Vis informasjon om klienten",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Forlat møtet",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Avslutt fullskjermmodus",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Tastatursnarveier",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Liste over tilgjengelige tastatursnarveier",
+    "app.navBar.settingsDropdown.helpLabel": "Hjelp",
+    "app.navBar.settingsDropdown.helpDesc": "Sender brukeren til opplæringsvideoer (åpnes i ny fane)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Avslutter møtet",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Avslutt møtet",
+    "app.navBar.userListToggleBtnLabel": "Brukerliste",
+    "app.navBar.toggleUserList.ariaLabel": "Brukere og meldinger",
+    "app.navBar.toggleUserList.newMessages": "med nye meldingsnotifikasjoner",
+    "app.navBar.recording": "Dette møtet blir tatt opp",
+    "app.navBar.recording.on": "Spiller inn",
+    "app.navBar.recording.off": "Spiller ikke inn",
+    "app.navBar.emptyAudioBrdige": "Ingen aktive mikrofoner. Del mikrofonen for å kunne bruke audio i dette møtet",
+    "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",
+    "app.about.version": "Klientens byggeversjon",
+    "app.about.copyright": "Opphavsrett",
+    "app.about.confirmLabel": "OK",
+    "app.about.confirmDesc": "OK",
+    "app.about.dismissLabel": "Avbryt",
+    "app.about.dismissDesc": "Lukk klientinformasjon",
+    "app.actionsBar.changeStatusLabel": "Endre status",
+    "app.actionsBar.muteLabel": "Skru av mikrofonen",
+    "app.actionsBar.unmuteLabel": "Skru på mikrofonen",
+    "app.actionsBar.camOffLabel": "Skru av kameraet",
+    "app.actionsBar.raiseLabel": "Løft hånden",
+    "app.actionsBar.label": "Handlingslinje",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Tilbakestill presentasjonen",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Knapp som tilbakestiller presentasjonen etter den er lukket",
+    "app.screenshare.screenShareLabel" : "Skjermdeling",
+    "app.submenu.application.applicationSectionTitle": "Applikasjon",
+    "app.submenu.application.animationsLabel": "Animasjoner",
+    "app.submenu.application.audioAlertLabel": "Lydvarsling for chat",
+    "app.submenu.application.pushAlertLabel": "Synlige varsler for chat",
+    "app.submenu.application.userJoinAudioAlertLabel": "Lydvarsling når deltager blir med",
+    "app.submenu.application.userJoinPushAlertLabel": "Synlig varsling for brukerpålogging",
+    "app.submenu.application.fontSizeControlLabel": "Tekststørrelse",
+    "app.submenu.application.increaseFontBtnLabel": "Forstørr applikasjonens tekststørrelse",
+    "app.submenu.application.decreaseFontBtnLabel": "Forminsk applikasjonens fontstørrelse",
+    "app.submenu.application.currentSize": "for øyeblikket [0]",
+    "app.submenu.application.languageLabel": "Applikasjonsspråk",
+    "app.submenu.application.languageOptionLabel": "Velg språk",
+    "app.submenu.application.noLocaleOptionLabel": "Ingen aktive språk",
+    "app.submenu.audio.micSourceLabel": "Mikrofonkilde",
+    "app.submenu.audio.speakerSourceLabel": "Høyttalerkilde",
+    "app.submenu.audio.streamVolumeLabel": "Ditt lydnivå",
+    "app.submenu.video.title": "Video",
+    "app.submenu.video.videoSourceLabel": "Vis kilde",
+    "app.submenu.video.videoOptionLabel": "Velg vis kilde",
+    "app.submenu.video.videoQualityLabel": "Videokvalitet",
+    "app.submenu.video.qualityOptionLabel": "Velg videokvalitet",
+    "app.submenu.video.participantsCamLabel": "Se andre deltageres webcam",
+    "app.settings.applicationTab.label": "Applikasjon",
+    "app.settings.audioTab.label": "Lyd",
+    "app.settings.videoTab.label": "Video",
+    "app.settings.usersTab.label": "Deltagere",
+    "app.settings.main.label": "Innstillinger",
+    "app.settings.main.cancel.label": "Avbryt",
+    "app.settings.main.cancel.label.description": "Forkaster endringer og lukker innstillingsmenyen",
+    "app.settings.main.save.label": "Lagre",
+    "app.settings.main.save.label.description": "Lagrer endringer og lukker innstillingsmenyen",
+    "app.settings.dataSavingTab.label": "Datasparing",
+    "app.settings.dataSavingTab.webcam": "Skru på webkamera",
+    "app.settings.dataSavingTab.screenShare": "Skru på skjermdeling",
+    "app.settings.dataSavingTab.description": "For å spare båndbredde juster hva som for øyeblikket blir vist",
+    "app.settings.save-notification.label": "Innstillinger har blitt lagret",
+    "app.switch.onLabel": "PÃ¥",
+    "app.switch.offLabel": "Av",
+    "app.talkingIndicator.ariaMuteDesc" : "Velg for å gjøre brukeren lydløs",
+    "app.talkingIndicator.isTalking" : "[0] snakker",
+    "app.talkingIndicator.wasTalking" : "[0] stoppet å snakke",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Handlinger",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Last opp en presentasjon",
+    "app.actionsBar.actionsDropdown.initPollLabel": "Start en spørrerunde",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "Del skjermen din",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Skjermdeling låst",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Stopp skjermdeling",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Last opp presentasjonen",
+    "app.actionsBar.actionsDropdown.initPollDesc": "Start en spørrerunde",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Del skjermen din med andre",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Stopp skjermdeling med",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "Start en spørrerunde",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Spørsmålspanel",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Lagre brukernavn",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Lag grupperom",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "lag grupperom for å dele det nåværende møtet inn i mindre møter",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Skriv undertekster",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Underteksting",
+    "app.actionsBar.actionsDropdown.takePresenter": "Ta presentator",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Gjør deg selv til den nye presentatoren",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Sett status",
+    "app.actionsBar.emojiMenu.awayLabel": "Borte",
+    "app.actionsBar.emojiMenu.awayDesc": "Endre din status til borte",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "Løft hånden",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "Løft hånden for å stille et spørsmål",
+    "app.actionsBar.emojiMenu.neutralLabel": "Ubestemt",
+    "app.actionsBar.emojiMenu.neutralDesc": "Endre din status til ubestemt",
+    "app.actionsBar.emojiMenu.confusedLabel": "Forvirret",
+    "app.actionsBar.emojiMenu.confusedDesc": "Endre din status til forvirret",
+    "app.actionsBar.emojiMenu.sadLabel": "Trist",
+    "app.actionsBar.emojiMenu.sadDesc": "ndre din status til trist",
+    "app.actionsBar.emojiMenu.happyLabel": "lad",
+    "app.actionsBar.emojiMenu.happyDesc": "Endre din status til glad",
+    "app.actionsBar.emojiMenu.noneLabel": "Tilbakestill status",
+    "app.actionsBar.emojiMenu.noneDesc": "Tilbakestill statusen din",
+    "app.actionsBar.emojiMenu.applauseLabel": "Applauder",
+    "app.actionsBar.emojiMenu.applauseDesc": "Endre din status til applauder",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Tommel opp",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Endre din status til tommel opp",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Tommel ned",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "ndre din status til tommel ned",
+    "app.actionsBar.currentStatusDesc": "Nåværende status [0]",
+    "app.actionsBar.captions.start": "Start visning av undertekster",
+    "app.actionsBar.captions.stop": "Stopp visning av undertekster",
+    "app.audioNotification.audioFailedError1001": "WebSocket Disconnected (error 1002)",
+    "app.audioNotification.audioFailedError1002": "Kunne ikke lage en WebSocket tilkobling (error 1002)",
+    "app.audioNotification.audioFailedError1003": "Nettleserversjonen er ikke støttet (error 1003)",
+    "app.audioNotification.audioFailedError1004": "Feil ved oppringning (Ã¥rsak=[0])) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "Oppringningen stoppet uvventet (error 1005)",
+    "app.audioNotification.audioFailedError1006": "Oppringningen tok for lang tid (error 1006)",
+    "app.audioNotification.audioFailedError1007": "Tilkoblingsfeil (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "Overføring feilet (error 1008)",
+    "app.audioNotification.audioFailedError1009": "Kunne ikke hente STUN/TURN serverinformasjon (error 1009)",
+    "app.audioNotification.audioFailedError1010": "Connection negotiation timeout (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "Connection timeout (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "Connection closed (ICE error 1012)",
+    "app.audioNotification.audioFailedMessage": "Kunne ikke koble til audio",
+    "app.audioNotification.mediaFailedMessage": "getUserMicMedia failed as only secure origins are allowed",
+    "app.audioNotification.closeLabel": "Lukk",
+    "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofon har blitt låst for deltagere, du kan kun lytte",
+    "app.breakoutJoinConfirmation.title": "Bli med i grupperom",
+    "app.breakoutJoinConfirmation.message": "Vil du bli med",
+    "app.breakoutJoinConfirmation.confirmDesc": "Legger deg til i grupperom",
+    "app.breakoutJoinConfirmation.dismissLabel": "Avbryt",
+    "app.breakoutJoinConfirmation.dismissDesc": "Lukker og avviser forespørselen om grupperom",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Velg et grupperom å bli med i",
+    "app.breakoutTimeRemainingMessage": "Gjenværende tid for grupperom: [0]",
+    "app.breakoutWillCloseMessage": "Tiden er ute. Grupperom avsluttes snart",
+    "app.calculatingBreakoutTimeRemaining": "Kalkulerer gjenværende tid ...",
+    "app.audioModal.ariaTitle": "Audiomodal",
+    "app.audioModal.microphoneLabel": "Mikrofon",
+    "app.audioModal.listenOnlyLabel": "Kun lytte",
+    "app.audioModal.audioChoiceLabel": "Hvordan ønsker du å delta i lydmøtet?",
+    "app.audioModal.iOSBrowser": "Audio/video ikke støttet",
+    "app.audioModal.iOSErrorDescription": "På nåværende tidspunkt er ikke audio og video støttet på Chrome for iOS",
+    "app.audioModal.iOSErrorRecommendation": "Vi anbefaler at du bruker Safari for iOS",
+    "app.audioModal.audioChoiceDesc": "Velg hvordan du ønsker å bli med i lydmøtet",
+    "app.audioModal.unsupportedBrowserLabel": "Det ser ut som du bruker en nettleser som ikke er fullt støttet. Velg enten [0] eller [1] for full støtte.",
+    "app.audioModal.closeLabel": "Lukk",
+    "app.audioModal.yes": "Ja",
+    "app.audioModal.no": "Nei",
+    "app.audioModal.yes.arialabel" : "Ekko er hørbart",
+    "app.audioModal.no.arialabel" : "Ekkoeer ikke hørbart",
+    "app.audioModal.echoTestTitle": "Dette er en privat ekkotest",
+    "app.audioModal.settingsTitle": "Endre lydinnstillinger",
+    "app.audioModal.helpTitle": "Det var et problem med mediaenhetene dine",
+    "app.audioModal.helpText": "Har du gitt tillatelse til tilgang til mikrofonen din? Vær oppmerksom på at en dialogboks skal vises når du prøver å bli med på lyd, der du ber om tillatelser for medieenheten, godta det for å delta på lydkonferansen. Hvis det ikke er tilfelle, kan du prøve å endre mikrofon-rettighetene i nettleserens innstillinger.",
+    "app.audioModal.help.noSSL": "Denne siden er ikke sikker. For mikrofontilgang må siden være sikret over HTTPS. Vennligst kontakt serveradministratoren",
+    "app.audioModal.help.macNotAllowed": "Det ser ut som om dine Mac systeminnstillinger blokkerer tilgangen til mikrofonen din. Ã…pne Systemvalg> Sikkerhet og personvern> Personvern> Mikrofon, og bekreft at nettleseren du bruker er sjekket.",
+    "app.audioModal.audioDialTitle": "Bli med via telefon",
+    "app.audioDial.audioDialDescription": "Ring opp",
+    "app.audioDial.audioDialConfrenceText": "og oppgi pinkoden til møtet",
+    "app.audioModal.autoplayBlockedDesc": "Vi trenger din tillatelse for å spille av audio",
+    "app.audioModal.playAudio": "Spill av audio",
+    "app.audioModal.playAudio.arialabel" : "Spill av audio",
+    "app.audioDial.tipIndicator": "Tips",
+    "app.audioDial.tipMessage": "Trykk '0' på telefonen din for å mute/unmute deg selv",
+    "app.audioModal.connecting": "Kobler til",
+    "app.audioModal.connectingEchoTest": "Kobler til lydtest",
+    "app.audioManager.joinedAudio": "Du har blitt med i audiokonferansen",
+    "app.audioManager.joinedEcho": "Du har blitt med i ekkotesten",
+    "app.audioManager.leftAudio": "Du har forlatt audiokonferansen",
+    "app.audioManager.reconnectingAudio": "Forsøker å koble til audio",
+    "app.audioManager.genericError": "Feil: En feil har skjedd, vennligst prøv igjen",
+    "app.audioManager.connectionError": "Feil: Connection error",
+    "app.audioManager.requestTimeout": "Error: There was a timeout in the request",
+    "app.audioManager.invalidTarget": "Error: Tried to request something to an invalid target",
+    "app.audioManager.mediaError": "Error: There was an issue getting your media devices",
+    "app.audio.joinAudio": "Bli med i lydkonferansen",
+    "app.audio.leaveAudio": "Forlat lydkonferansen",
+    "app.audio.enterSessionLabel": "Gå inn i økt",
+    "app.audio.playSoundLabel": "Spill lyd",
+    "app.audio.backLabel": "Tilbake",
+    "app.audio.audioSettings.titleLabel": "Velg lydinnstillinger",
+    "app.audio.audioSettings.descriptionLabel": "Vær oppmerksom på at en dialogboks vil vises i nettleseren din som spør om lov til å dele mikrofonen din",
+    "app.audio.audioSettings.microphoneSourceLabel": "Mikrofonkilde",
+    "app.audio.audioSettings.speakerSourceLabel": "Høyttalerkilde",
+    "app.audio.audioSettings.microphoneStreamLabel": "Ditt lydnivå",
+    "app.audio.audioSettings.retryLabel": "Prøv igjen",
+    "app.audio.listenOnly.backLabel": "Tilbake",
+    "app.audio.listenOnly.closeLabel": "Lukk",
+    "app.audio.permissionsOverlay.title": "Godta tilgang til mikrofonen din",
+    "app.audio.permissionsOverlay.hint": "Vi er avhengige av at du godtar tilgang til dine mediaenheter for å kunne bli med i lydkonferansen :)",
+    "app.error.removed": "Du har blitt fjernet fra møtet",
+    "app.error.meeting.ended": "Du har logget ut av møtet",
+    "app.meeting.logout.duplicateUserEjectReason": "Duplikatbruker forsøker å bli med i møtet",
+    "app.meeting.logout.permissionEjectReason": "Fjernet på grunnlag av rettighetsovertredelse",
+    "app.meeting.logout.ejectedFromMeeting": "Du har blitt fjernet fra møtet",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Kunne ikke validere autorisasjonsnøkkelen",
+    "app.meeting.logout.userInactivityEjectReason": "Brukeren har vært inaktiv for lenge",
+    "app.meeting-ended.rating.legendLabel": "Feedback nivå",
+    "app.meeting-ended.rating.starLabel": "Stjerne",
+    "app.modal.close": "Lukk",
+    "app.modal.close.description": "Forkaster endringer og  lukker modalvinduet",
+    "app.modal.confirm": "Ferdig",
+    "app.modal.newTab": "(Ã¥pner ny fane)",
+    "app.modal.confirm.description": "Lagrer endringer og lukker modalvinduet",
+    "app.dropdown.close": "Lukk",
+    "app.error.400": "Feil i forespørsel",
+    "app.error.401": "Uautorisert",
+    "app.error.403": "Du har blitt fjernet fra møtet",
+    "app.error.404": "Ikke funnet",
+    "app.error.410": "Møtet er avsluttet",
+    "app.error.500": "Oops, noe gikk galt",
+    "app.error.leaveLabel": "Logg inn igjen",
+    "app.error.fallback.presentation.title": "En feil har skjedd",
+    "app.error.fallback.presentation.description": "det har blitt loggført. Vennligst forsøk å oppdater siden",
+    "app.error.fallback.presentation.reloadButton": "Oppdater",
+    "app.guest.waiting": "Avventer godkjenning for å bli med",
+    "app.userList.guest.waitingUsers": "Ventende brukere",
+    "app.userList.guest.waitingUsersTitle": "Brukerstyring",
+    "app.userList.guest.optionTitle": "Administrer ventende brukere",
+    "app.userList.guest.allowAllAuthenticated": "Tillat alle uautentiserte",
+    "app.userList.guest.allowAllGuests": "Godta alle gjester",
+    "app.userList.guest.allowEveryone": "Godta alle",
+    "app.userList.guest.denyEveryone": "Blokker alle",
+    "app.userList.guest.pendingUsers": "[0] Ventende brukere",
+    "app.userList.guest.pendingGuestUsers": "[0] ventende gjestebrukere",
+    "app.userList.guest.pendingGuestAlert": "Har blitt med i møtet og venter på din godkjenning",
+    "app.userList.guest.rememberChoice": "Husk valg",
+    "app.user-info.title": "Katalogoppslag",
+    "app.toast.breakoutRoomEnded": "Grupperommet er avsluttet. Bli med i audiokonferansen igjen",
+    "app.toast.chat.public": "Ny gruppemelding",
+    "app.toast.chat.private": "Ny privatmelding",
+    "app.toast.chat.system": "System",
+    "app.toast.clearedEmoji.label": "Emoji status tilbakesatt",
+    "app.toast.setEmoji.label": "Emoji status satt til [0]",
+    "app.toast.meetingMuteOn.label": "Alle brukere har blitt mutet",
+    "app.toast.meetingMuteOff.label": "Møtemute er skrudd av",
+    "app.notification.recordingStart": "Dette møtet blir nå spilt inn",
+    "app.notification.recordingStop": "Dette møtet blir ikke spilt inn",
+    "app.notification.recordingPaused": "Dette møtet blir ikke spilt inn lengre",
+    "app.notification.recordingAriaLabel": "Innspillingstid",
+    "app.notification.userJoinPushAlert": "[0] ble med i møtet",
+    "app.shortcut-help.title": "Tastatursnarveier",
+    "app.shortcut-help.accessKeyNotAvailable": "Tilgangsnøkler ikke tilgjengelig",
+    "app.shortcut-help.comboLabel": "Kombinasjon",
+    "app.shortcut-help.functionLabel": "Funksjon",
+    "app.shortcut-help.closeLabel": "Lukk",
+    "app.shortcut-help.closeDesc": "Lukker vindu for tastatursnarveier",
+    "app.shortcut-help.openOptions": "Ã…pne innstillinger",
+    "app.shortcut-help.toggleUserList": "Brukerliste",
+    "app.shortcut-help.toggleMute": "Mute / Unmute",
+    "app.shortcut-help.togglePublicChat": "Gruppechat (brukerlisten må være åpen)",
+    "app.shortcut-help.hidePrivateChat": "Skjul privat chat",
+    "app.shortcut-help.closePrivateChat": "Lukk privat chat",
+    "app.shortcut-help.openActions": "Ã…pne handlingsmenyen",
+    "app.shortcut-help.openStatus": "Ã…pne statusmenyen",
+    "app.shortcut-help.togglePan": "Aktiver panoreringsverktøy (Presentator)",
+    "app.shortcut-help.nextSlideDesc": "Neste side (presentator)",
+    "app.shortcut-help.previousSlideDesc": "Forrige side (presentator)",
+    "app.lock-viewers.title": "LÃ¥s deltagere",
+    "app.lock-viewers.description": "Disse valgene lar deg hindre brukere i å bruke visse funksjoner",
+    "app.lock-viewers.featuresLable": "Funksjon",
+    "app.lock-viewers.lockStatusLabel": "Status",
+    "app.lock-viewers.webcamLabel": "Del webcam",
+    "app.lock-viewers.otherViewersWebcamLabel": "Se andre brukeres webcam",
+    "app.lock-viewers.microphoneLable": "Del mikrofon",
+    "app.lock-viewers.PublicChatLabel": "Send gruppechat",
+    "app.lock-viewers.PrivateChatLable": "Send privatmelding",
+    "app.lock-viewers.notesLabel": "Rediger delt notat",
+    "app.lock-viewers.userListLabel": "See andre brukere i brukerlisten",
+    "app.lock-viewers.ariaTitle": "LÃ¥s brukerinnstillingsvinduet",
+    "app.lock-viewers.button.apply": "Bruk",
+    "app.lock-viewers.button.cancel": "Avbryt",
+    "app.lock-viewers.locked": "LÃ¥st",
+    "app.lock-viewers.unlocked": "Opplåst",
+    "app.recording.startTitle": "Start innspilling",
+    "app.recording.stopTitle": "Pause innspilling",
+    "app.recording.resumeTitle": "Gjenoppta innspilling",
+    "app.recording.startDescription": "Du kan trykke på innspillingsknappen igjen senere for å pause innspilling.",
+    "app.recording.stopDescription": "Er du sikker på at du vil pause innspillingen? Du kan gjenoppta innspilling når som helst ved å trykke på innspillingsknappen på ny.",
+    "app.videoPreview.cameraLabel": "Kamera",
+    "app.videoPreview.profileLabel": "Kvalitet",
+    "app.videoPreview.cancelLabel": "Avbryt",
+    "app.videoPreview.closeLabel": "Lukk",
+    "app.videoPreview.findingWebcamsLabel": "Finner webkameraer",
+    "app.videoPreview.startSharingLabel": "Start deling",
+    "app.videoPreview.webcamOptionLabel": "Velg webcam",
+    "app.videoPreview.webcamPreviewLabel": "Kameraforhåndsvisning",
+    "app.videoPreview.webcamSettingsTitle": "Webcaminnstillinger",
+    "app.videoPreview.webcamNotFoundLabel": "Ingen webcam funnet",
+    "app.videoPreview.profileNotFoundLabel": "Ingen støttede kameraprofiler",
+    "app.video.joinVideo": "Del webcam",
+    "app.video.leaveVideo": "Stopp webcamdeling",
+    "app.video.iceCandidateError": "Error on adding ICE candidate",
+    "app.video.iceConnectionStateError": "Connection failure (ICE error 1107)",
+    "app.video.permissionError": "Error on sharing webcam.  Please check permissions",
+    "app.video.sharingError": "Problem ved deling av webcam",
+    "app.video.notFoundError": "Kunne ikke finne webcam, Vennligst sjekk at det er tilkoblet.",
+    "app.video.notAllowed": "Mangler rettigheter for å dele webcam, sjekk at nettleserinnstillingene er riktige",
+    "app.video.notSupportedError": "Kan kun dele webcam med trygge kilder, vennligst påpse at SSL sertifikatet er gyldig",
+    "app.video.notReadableError": "Kunne ikke hente webcamvideo. Vennligst sjekk om andre programmer bruker kameraet",
+    "app.video.mediaFlowTimeout1020": "Media could not reach the server (error 1020)",
+    "app.video.suggestWebcamLock": "Påkrev låseinnstillinger for brukeres webkamera?",
+    "app.video.suggestWebcamLockReason": "(dette vil forbedre stabiliteten i møtet)",
+    "app.video.enable": "Aktiver",
+    "app.video.cancel": "Avbryt",
+    "app.video.swapCam": "Bytt",
+    "app.video.swapCamDesc": "bytt webcamretning",
+    "app.video.videoLocked": "Webcamdeling låst",
+    "app.video.videoButtonDesc": "Del webcam",
+    "app.video.videoMenu": "Videomeny",
+    "app.video.videoMenuDisabled": "Videomeny webcam er deaktivert i innstillinger",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Media server is offline. Please try again later (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "Media server has no available resources (error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Media server requests are timing out (error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Media server cannot gather connection candidates (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Media server connection failed (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "Media server failed to process request (error 2200)",
+    "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": "Spørsmålsresultatene ble publisert",
+    "app.whiteboard.toolbar.tools": "Verktøy",
+    "app.whiteboard.toolbar.tools.hand": "Panorer",
+    "app.whiteboard.toolbar.tools.pencil": "Blyant",
+    "app.whiteboard.toolbar.tools.rectangle": "Rektangel",
+    "app.whiteboard.toolbar.tools.triangle": "Triangel",
+    "app.whiteboard.toolbar.tools.ellipse": "Ellipse",
+    "app.whiteboard.toolbar.tools.line": "Linje",
+    "app.whiteboard.toolbar.tools.text": "Tekst",
+    "app.whiteboard.toolbar.thickness": "Tegnetykkhet",
+    "app.whiteboard.toolbar.thicknessDisabled": "Tegnetykkelse er deaktivert",
+    "app.whiteboard.toolbar.color": "Farger",
+    "app.whiteboard.toolbar.colorDisabled": "Farger er deaktivert",
+    "app.whiteboard.toolbar.color.black": "Svart",
+    "app.whiteboard.toolbar.color.white": "Hvitt",
+    "app.whiteboard.toolbar.color.red": "Rød",
+    "app.whiteboard.toolbar.color.orange": "Oransje",
+    "app.whiteboard.toolbar.color.eletricLime": "Elektrisk lime",
+    "app.whiteboard.toolbar.color.lime": "Lime",
+    "app.whiteboard.toolbar.color.cyan": "Cyan",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Dodger blå",
+    "app.whiteboard.toolbar.color.blue": "Blå",
+    "app.whiteboard.toolbar.color.violet": "Fiolett",
+    "app.whiteboard.toolbar.color.magenta": "Magenta",
+    "app.whiteboard.toolbar.color.silver": "Sølv",
+    "app.whiteboard.toolbar.undo": "Fjern annotering",
+    "app.whiteboard.toolbar.clear": "Tilbakestill alle annotasjoner",
+    "app.whiteboard.toolbar.multiUserOn": "Aktiver tavle for flere brukere",
+    "app.whiteboard.toolbar.multiUserOff": "Deaktiver tavle for flere brukere",
+    "app.whiteboard.toolbar.fontSize": "Liste over fontstørrelse",
+    "app.feedback.title": "Du har logget ut av møtet",
+    "app.feedback.subtitle": "Vi hadde elsket å høre om din opplevelse med BigBlueButton (valgfritt)",
+    "app.feedback.textarea": "Hvordan kan vi gjøre BigBlueButton bedre?",
+    "app.feedback.sendFeedback": "Send tilbakemelding",
+    "app.feedback.sendFeedbackDesc": "Send tilbakemelding og forlat møtet",
+    "app.videoDock.webcamFocusLabel": "Fokuser",
+    "app.videoDock.webcamFocusDesc": "Fokuser på det valgte webcamet",
+    "app.videoDock.webcamUnfocusLabel": "Defokuser.",
+    "app.videoDock.webcamUnfocusDesc": "Defokuser det valgte kameraet",
+    "app.videoDock.autoplayBlockedDesc": "Vi trenger din godkjenning til å vise deg andre brukeres webcam",
+    "app.videoDock.autoplayAllowLabel": "Se webcams",
+    "app.invitation.title": "Invitasjon til grupperom",
+    "app.invitation.confirm": "Inviter",
+    "app.createBreakoutRoom.title": "Grupperom",
+    "app.createBreakoutRoom.ariaTitle": "Skjul grupperom",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Grupperom [0]",
+    "app.createBreakoutRoom.generatingURL": "Genererer URL",
+    "app.createBreakoutRoom.generatedURL": "Generert",
+    "app.createBreakoutRoom.duration": "Varighet [0]",
+    "app.createBreakoutRoom.room": "Rom [0]",
+    "app.createBreakoutRoom.notAssigned": "Ikke designert ((0))",
+    "app.createBreakoutRoom.join": "Bli med i rommet",
+    "app.createBreakoutRoom.joinAudio": "Bli med i lydkonferansen",
+    "app.createBreakoutRoom.returnAudio": "Lydsvar",
+    "app.createBreakoutRoom.alreadyConnected": "Allerede i rommet",
+    "app.createBreakoutRoom.confirm": "Opprett",
+    "app.createBreakoutRoom.record": "Spill inn",
+    "app.createBreakoutRoom.numberOfRooms": "Antall rom",
+    "app.createBreakoutRoom.durationInMinutes": "Varighet (minutter)",
+    "app.createBreakoutRoom.randomlyAssign": "Tilfeldig designert",
+    "app.createBreakoutRoom.endAllBreakouts": "Avslutt alle grupperom",
+    "app.createBreakoutRoom.roomName": "(0) (Room - (1))",
+    "app.createBreakoutRoom.doneLabel": "Ferdig",
+    "app.createBreakoutRoom.nextLabel": "Neste",
+    "app.createBreakoutRoom.minusRoomTime": "Forkort tiden til grupperom",
+    "app.createBreakoutRoom.addRoomTime": "Forleng tiden til grupperom",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Legg til deltager",
+    "app.createBreakoutRoom.freeJoin": "Tillat brukere å velge grupperom å bli med i",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "Du må plassere minst en bruker i et grupperom",
+    "app.createBreakoutRoom.modalDesc": "Tips: Du kan dra-og-slippe en brukers navn for å designere de til et spesifikt grupperom",
+    "app.createBreakoutRoom.roomTime": "[0] minutter",
+    "app.createBreakoutRoom.numberOfRoomsError": "Ugyldig antall rom",
+    "app.externalVideo.start": "Del en ny video",
+    "app.externalVideo.title": "Del en ekstern video",
+    "app.externalVideo.input": "Ekstern videoadresse",
+    "app.externalVideo.urlInput": "Legg til videoadresse",
+    "app.externalVideo.urlError": "Denne videoadressen er ikke støttet",
+    "app.externalVideo.close": "Lukk",
+    "app.externalVideo.autoPlayWarning": "Spill av videoen for å aktivere mediasynkronisering",
+    "app.network.connection.effective.slow": "Vi legger merke til tilkoblingsproblemer",
+    "app.network.connection.effective.slow.help": "Mer informasjon",
+    "app.externalVideo.noteLabel": "Notat: Delte eksterne videoer vil ikke bli synlige i innspillingen. YouTube, Vimeo, Instructure Media, Twitch og Daily Motion URLer er godkjent.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Del en ekstern video",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Stopp deling av ekstern video",
+    "app.iOSWarning.label": "Vennligst oppgrader til iOS 12.2 eller høyere",
+    "app.legacy.unsupportedBrowser": "Det ser ut som du bruker en nettleser som ikke er støttet. Vennligst bruk [0] eller[1] for full støtte.",
+    "app.legacy.upgradeBrowser": "Det ser ut som du bruker en eldre utgave av en støttet nettleser. Vennligst oppdater nettleseren for å få full funksjonalitet",
+    "app.legacy.criosBrowser": "Vennligst bruk Safari på iOS for full funksjonalitet"
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/nl.json b/bigbluebutton-html5/private/locales/nl.json
index 14350eda94cec7757df8e237dab16b73bfe5b312..f5337ac9ce6079ab5d2914efbb7cbebd37c82922 100644
--- a/bigbluebutton-html5/private/locales/nl.json
+++ b/bigbluebutton-html5/private/locales/nl.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Uw presentatie begint binnenkort ...",
     "app.chat.submitLabel": "Bericht verzenden",
-    "app.chat.errorMinMessageLength": "Het bericht is {0} tekens te kort",
     "app.chat.errorMaxMessageLength": "Het bericht is {0} tekens (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",
@@ -10,7 +9,7 @@
     "app.chat.titlePublic": "Openbare chat",
     "app.chat.titlePrivate": "Privéchat met {0}",
     "app.chat.partnerDisconnected": "{0} heeft de vergadering verlaten",
-    "app.chat.closeChatLabel": "Sluiten {0}",
+    "app.chat.closeChatLabel": "Sluit {0}",
     "app.chat.hideChatLabel": "Verberg {0}",
     "app.chat.moreMessages": "Meer berichten hieronder",
     "app.chat.dropdown.options": "Chatopties",
@@ -21,12 +20,12 @@
     "app.chat.offline": "Offline",
     "app.chat.emptyLogLabel": "Chatlogboek leeg",
     "app.chat.clearPublicChatMessage": "De openbare chatgeschiedenis is gewist door een moderator",
-    "app.chat.multi.typing": "Meerdere gebruikers typen",
+    "app.chat.multi.typing": "Meerdere gebruikers zijn aan het typen",
     "app.chat.one.typing": "{0} is aan het typen",
     "app.chat.two.typing": "{0} en {1} zijn aan het typen",
-    "app.captions.label": "Captions",
+    "app.captions.label": "Bijschriften",
     "app.captions.menu.close": "Sluiten",
-    "app.captions.menu.start": "Start",
+    "app.captions.menu.start": "Starten",
     "app.captions.menu.ariaStart": "Begin bijschriften te schrijven",
     "app.captions.menu.ariaStartDesc": "Opent de ondertitelingseditor en sluit de modal",
     "app.captions.menu.select": "Selecteer beschikbare taal",
@@ -44,28 +43,28 @@
     "app.captions.pad.ownership": "Overnemen",
     "app.captions.pad.ownershipTooltip": "U wordt toegewezen als de eigenaar van {0} bijschriften",
     "app.captions.pad.interimResult": "Tussentijdse resultaten",
-    "app.captions.pad.dictationStart": "Start dictation",
-    "app.captions.pad.dictationStop": "Stop dictation",
+    "app.captions.pad.dictationStart": "Start met dicteren",
+    "app.captions.pad.dictationStop": "Stop met dicteren",
     "app.captions.pad.dictationOnDesc": "Schakelt spraakherkenning in",
     "app.captions.pad.dictationOffDesc": "Schakelt spraakherkenning uit",
     "app.note.title": "Gedeelde notities",
-    "app.note.label": "Opmerking",
+    "app.note.label": "Notitie",
     "app.note.hideNoteLabel": "Notitie verbergen",
     "app.user.activityCheck": "Controle gebruikersactiviteit",
     "app.user.activityCheck.label": "Controleer of de gebruiker nog steeds in vergadering is ({0})",
-    "app.user.activityCheck.check": "Check",
+    "app.user.activityCheck.check": "Controleer",
     "app.note.tipLabel": "Druk op Esc om de werkbalk van de editor scherp te stellen",
     "app.userList.usersTitle": "Gebruikers",
     "app.userList.participantsTitle": "Deelnemers",
     "app.userList.messagesTitle": "Berichten",
-    "app.userList.notesTitle": "Notes",
+    "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.you": "U",
     "app.userList.locked": "Vergrendeld",
     "app.userList.label": "Gebruikerslijst",
-    "app.userList.toggleCompactView.label": "Compacte weergavemodus schakelen",
+    "app.userList.toggleCompactView.label": "Overschakelen naar de compacte weergavemodus",
     "app.userList.guest": "Gast",
     "app.userList.menuTitleContext": "Beschikbare opties",
     "app.userList.chatListItem.unreadSingular": "{0} Nieuw bericht",
@@ -76,7 +75,7 @@
     "app.userList.menu.muteUserAudio.label": "Gebruiker dempen",
     "app.userList.menu.unmuteUserAudio.label": "Gebruiker dempen ongedaan maken",
     "app.userList.userAriaLabel": "{0} {1} {2} Status {3}",
-    "app.userList.menu.promoteUser.label": "Promoveren naar moderator",
+    "app.userList.menu.promoteUser.label": "Promoveren tot moderator",
     "app.userList.menu.demoteUser.label": "Degraderen tot gebruiker",
     "app.userList.menu.unlockUser.label": "Ontgrendel {0}",
     "app.userList.menu.lockUser.label": "Vergrendel {0}",
@@ -112,7 +111,8 @@
     "app.media.autoplayAlertDesc": "Toegang toestaan",
     "app.media.screenshare.start": "Screenshare is gestart",
     "app.media.screenshare.end": "Screenshare is afgelopen",
-    "app.media.screenshare.safariNotSupported": "Screenshare wordt momenteel niet ondersteund door Safari. Gebruik Firefox of Google Chrome.",
+    "app.media.screenshare.unavailable": "Screenshare Onbeschikbaar",
+    "app.media.screenshare.safariNotSupported": "Screenshare is momenteel niet ondersteund in Safari. Gelieve Firefox of Google Chrome te gebruiken.",
     "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",
     "app.screenshare.notAllowed": "Fout: toestemming voor toegang tot scherm is niet verleend.",
@@ -176,8 +176,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Miniaturen genereren ...",
     "app.presentationUploder.conversion.generatedSlides": "Dia's gegenereerd ...",
     "app.presentationUploder.conversion.generatingSvg": "SVG-afbeeldingen genereren ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Aantal pagina's overschreden. Splits het bestand in meerdere bestanden.",
+    "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.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.removePresentationLabel": "Presentatie verwijderen",
@@ -360,18 +364,18 @@
     "app.actionsBar.currentStatusDesc": "huidige status {0}",
     "app.actionsBar.captions.start": "Begin met het bekijken van ondertitels",
     "app.actionsBar.captions.stop": "Stop met het bekijken van ondertitels",
-    "app.audioNotification.audioFailedError1001": "Fout 1001: WebSocket verbroken",
-    "app.audioNotification.audioFailedError1002": "Fout 1002: Kon geen WebSocket-verbinding maken",
-    "app.audioNotification.audioFailedError1003": "Fout 1003: browserversie niet ondersteund",
-    "app.audioNotification.audioFailedError1004": "Fout 1004: mislukte oproep (reden = {0})",
-    "app.audioNotification.audioFailedError1005": "Fout 1005: oproep is onverwacht beëindigd",
-    "app.audioNotification.audioFailedError1006": "Fout 1006: time-out voor oproep",
-    "app.audioNotification.audioFailedError1007": "Fout 1007: ICE-onderhandelingen mislukt",
-    "app.audioNotification.audioFailedError1008": "Fout 1008: overdracht mislukt",
-    "app.audioNotification.audioFailedError1009": "Fout 1009: kan STUN / TURN-serverinformatie niet ophalen",
-    "app.audioNotification.audioFailedError1010": "Fout 1010: time-out ICE-onderhandelingen",
-    "app.audioNotification.audioFailedError1011": "Fout 1011: ICE die time-out verzamelt",
-    "app.audioNotification.audioFailedError1012": "Fout 1012: ICE-verbinding gesloten",
+    "app.audioNotification.audioFailedError1001": "WebSocket 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)",
+    "app.audioNotification.audioFailedError1005": "Oproep is onverwacht beëindigd (fout 1005)",
+    "app.audioNotification.audioFailedError1006": "Time-out bij oproep (fout 1006)",
+    "app.audioNotification.audioFailedError1007": "Verbindingsfout (ICE-fout 1007)",
+    "app.audioNotification.audioFailedError1008": "Overdracht mislukt (fout 1008)",
+    "app.audioNotification.audioFailedError1009": "Kan STUN / TURN-serverinformatie niet ophalen (fout 1009)",
+    "app.audioNotification.audioFailedError1010": "Time-out bij onderhandeling van verbinding (ICE-fout 1010)",
+    "app.audioNotification.audioFailedError1011": "Verbinding time-out (ICE-fout 1011)",
+    "app.audioNotification.audioFailedError1012": "Verbinding gesloten (ICE-fout 1012)",
     "app.audioNotification.audioFailedMessage": "Uw audioverbinding kon geen verbinding maken",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia is mislukt omdat alleen beveiligde oorsprong is toegestaan",
     "app.audioNotification.closeLabel": "Sluiten",
@@ -542,14 +546,14 @@
     "app.video.joinVideo": "Webcam delen",
     "app.video.leaveVideo": "Stop met delen webcam",
     "app.video.iceCandidateError": "Fout bij het toevoegen van ICE-kandidaat",
-    "app.video.iceConnectionStateError": "Fout 1107: ICE-onderhandelingen mislukt",
+    "app.video.iceConnectionStateError": "Verbindingsfout (ICE-fout 1107)",
     "app.video.permissionError": "Fout bij het delen van webcam. Controleer de rechten",
     "app.video.sharingError": "Fout bij delen webcam",
     "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.mediaFlowTimeout1020": "Fout 1020: media kan de server niet bereiken",
+    "app.video.mediaFlowTimeout1020": "Media konden de server niet bereiken (fout 1020)",
     "app.video.suggestWebcamLock": "Lock-instelling afdwingen voor webcams van kijkers?",
     "app.video.suggestWebcamLockReason": "(dit zal de stabiliteit van de vergadering verbeteren)",
     "app.video.enable": "Inschakelen",
@@ -577,16 +581,16 @@
     "app.video.stats.encodeUsagePercent": "Gebruik coderen",
     "app.video.stats.currentDelay": "Huidige vertraging",
     "app.fullscreenButton.label": "Maak {0} volledig scherm",
-    "app.deskshare.iceConnectionStateError": "Fout 1108: ICE-verbinding mislukt tijdens delen van scherm",
-    "app.sfu.mediaServerConnectionError2000": "Fout 2000: kan geen verbinding maken met mediaserver",
-    "app.sfu.mediaServerOffline2001": "Fout 2001: mediaserver is offline. Probeer het later opnieuw.",
-    "app.sfu.mediaServerNoResources2002": "Fout 2002: mediaserver heeft geen beschikbare bronnen",
-    "app.sfu.mediaServerRequestTimeout2003": "Fout 2003: aanvragen voor mediaserver verlopen niet meer",
-    "app.sfu.serverIceGatheringFailed2021": "Fout 2021: Mediaserver kan geen ICE-kandidaten verzamelen",
-    "app.sfu.serverIceGatheringFailed2022": "Fout 2022: Mediaserver ICE-verbinding mislukt",
-    "app.sfu.mediaGenericError2200": "Fout 2200: mediaserver kan verzoek niet verwerken",
-    "app.sfu.invalidSdp2202":"Fout 2202: client heeft een ongeldige SDP gegenereerd",
-    "app.sfu.noAvailableCodec2203": "Fout 2203: server kan geen geschikte codec vinden",
+    "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.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)",
+    "app.sfu.mediaGenericError2200": "Mediaserver kan verzoek niet verwerken (fout 2200)",
+    "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.toolbar.tools": "Gereedschappen",
diff --git a/bigbluebutton-html5/private/locales/pl_PL.json b/bigbluebutton-html5/private/locales/pl_PL.json
index 10371d2d531fec51d2f8ba996bd95b2369bf644c..de6e56057f9a0a2f873dad20a4a5a2d1a9d51a1f 100644
--- a/bigbluebutton-html5/private/locales/pl_PL.json
+++ b/bigbluebutton-html5/private/locales/pl_PL.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Twoja prezentacja wkrótce się rozpocznie...",
     "app.chat.submitLabel": "Wyślij wiadomość",
-    "app.chat.errorMinMessageLength": "Wiadomość za krótka o {0} znak(i)(ów)",
     "app.chat.errorMaxMessageLength": "Wiadomość za długa o {0} znak(i)(ów)",
     "app.chat.disconnected": "Jesteś rozłączony, wiadomości nie mogą zostać wysłane",
     "app.chat.locked": "Czat jest zablokowany, nie można wysyłać wiadomości",
@@ -40,6 +39,7 @@
     "app.captions.menu.previewLabel": "PodglÄ…d",
     "app.captions.menu.cancelLabel": "Anuluj",
     "app.captions.pad.hide": "Ukryj napisy",
+    "app.captions.pad.tip": "Naciśnij Esc by aktywować pasek narzędziowy edytora",
     "app.captions.pad.ownership": "Przejmij",
     "app.captions.pad.ownershipTooltip": "Zostaniesz oznaczony jako właściciel {0} napisów",
     "app.captions.pad.interimResult": "Wstępne wyniki",
@@ -53,6 +53,7 @@
     "app.user.activityCheck": "Sprawdź aktywność uczestnika",
     "app.user.activityCheck.label": "Sprawdź czy uczestnik nadal uczestniczy w spotkaniu ({0})",
     "app.user.activityCheck.check": "Sprawdź",
+    "app.note.tipLabel": "Naciśnij Esc by aktywować pasek narzędziowy edytora",
     "app.userList.usersTitle": "Uczestnicy",
     "app.userList.participantsTitle": "Uczestnicy",
     "app.userList.messagesTitle": "Wiadomości",
@@ -110,16 +111,24 @@
     "app.media.autoplayAlertDesc": "Zezwól na dostęp",
     "app.media.screenshare.start": "Rozpoczęto udostępnianie ekranu",
     "app.media.screenshare.end": "Zakończono udostępnianie ekranu",
-    "app.media.screenshare.safariNotSupported": "Udostępnianie ekranu na razie nie jest wspierane w przeglądarce Safari. Proszę użyj Firefoxa lub Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Potrzebujemy Twojej zgody aby wyświetlić ekran prelegenta.",
+    "app.media.screenshare.autoplayAllowLabel": "Zobacz udostępniony ekran",
+    "app.screenshare.notAllowed": "Błąd: Nie udzielono uprawnień na dostęp do ekranu.",
     "app.screenshare.notSupportedError": "Błąd: Udostępnianie ekanu jest dozwolone tylko na bezpiecznych domenach (SSL)",
+    "app.screenshare.notReadableError": "Błąd: Przejęcie Twojego ekranu nie powiodło się",
+    "app.screenshare.genericError": "Błąd: Wystąpił problem podczas współdzielenia ekranu, spróbuj ponownie",
     "app.meeting.ended": "Sesja zakończyła się",
     "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",
+    "app.presentation.startSlideContent": "Początek zawartości slajdu",
+    "app.presentation.endSlideContent": "Koniec zawartości slajdu",
+    "app.presentation.emptySlideContent": "Brak zawartości dla aktualnego slajdu",
     "app.presentation.presentationToolbar.noNextSlideDesc": "Koniec prezentacji",
     "app.presentation.presentationToolbar.noPrevSlideDesc": "PoczÄ…tek prezentacji",
     "app.presentation.presentationToolbar.selectLabel": "Wybierz slajd",
@@ -165,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Generowanie miniatur...",
     "app.presentationUploder.conversion.generatedSlides": "Utworzono slajdy...",
     "app.presentationUploder.conversion.generatingSvg": "Generowanie obrazów SVG...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Limit stron przekroczony. Podziel plik na kilka części",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Nie udało się przetworzyć dokumentu. Proszę przesłać PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Nie udało się przetworzyć dokumentu. Proszę przesłać PDF.",
     "app.presentationUploder.conversion.pdfHasBigPage": "Nie można skonwertować pliku PDF, spróbuj go zoptymalizować",
     "app.presentationUploder.conversion.timeout": "Ups, konwersja trwała zbyt długo",
+    "app.presentationUploder.conversion.pageCountFailed": "Nie udało się określić ilości stron.",
     "app.presentationUploder.isDownloadableLabel": "Nie pozwalaj pobierać prezentacji",
     "app.presentationUploder.isNotDownloadableLabel": "Pozwól pobierać prezentację",
     "app.presentationUploder.removePresentationLabel": "Usuń prezentację",
@@ -181,6 +194,7 @@
     "app.poll.quickPollInstruction": "Wybierz opcję poniżej aby rozpocząć ankietę",
     "app.poll.customPollLabel": "Ankieta niestandardowa",
     "app.poll.startCustomLabel": "Utwórz niestandardową ankietę",
+    "app.poll.activePollInstruction": "Pozostaw to okno otwarte, by widzieć na żywo odpowiedzi. Naciśnij 'Publikuj wyniki ankiety', aby zakończyć ankietę i wyświetlić wyniki.",
     "app.poll.publishLabel": "Publikuj wyniki ankiety",
     "app.poll.backLabel": "Powrót do opcji ankiety",
     "app.poll.closeLabel": "Zamknij",
@@ -237,9 +251,11 @@
     "app.navBar.settingsDropdown.endMeetingLabel": "Zakończ spotkanie",
     "app.navBar.userListToggleBtnLabel": "Przełącz listę uczestników",
     "app.navBar.toggleUserList.ariaLabel": "Przełącza listę uczestników i okno wiadomości",
+    "app.navBar.toggleUserList.newMessages": "z nowym powiadomieniem",
     "app.navBar.recording": "Ta sesja jest rejestrowana",
     "app.navBar.recording.on": "Nagrywam",
     "app.navBar.recording.off": "Nie nagrywam",
+    "app.navBar.emptyAudioBrdige": "Brak aktywnego mikrofonu. Udostępnij mikrofon, by umożliwić nagrywanie dźwięku.",
     "app.leaveConfirmation.confirmLabel": "Wyjdź",
     "app.leaveConfirmation.confirmDesc": "Wylogowuje CiÄ™ ze spotkania",
     "app.endMeeting.title": "Zakończ spotkanie",
@@ -248,6 +264,7 @@
     "app.endMeeting.noLabel": "Nie",
     "app.about.title": "O kliencie",
     "app.about.version": "Kompilacja:",
+    "app.about.copyright": "Prawa autorskie:",
     "app.about.confirmLabel": "OK",
     "app.about.confirmDesc": "OK",
     "app.about.dismissLabel": "Anuluj",
@@ -255,7 +272,9 @@
     "app.actionsBar.changeStatusLabel": "Zmień stan",
     "app.actionsBar.muteLabel": "Wycisz",
     "app.actionsBar.unmuteLabel": "Wyłącz wyciszenie",
+    "app.actionsBar.camOffLabel": "Wyłącz kamerę",
     "app.actionsBar.raiseLabel": "Podnieś rękę",
+    "app.actionsBar.label": "Pasek akcji",
     "app.actionsBar.actionsDropdown.restorePresentationLabel": "Przywróć prezentację",
     "app.actionsBar.actionsDropdown.restorePresentationDesc": "Przywraca prezentację po jej zamknięciu",
     "app.screenshare.screenShareLabel" : "Udostępnianie ekranu",
@@ -263,12 +282,15 @@
     "app.submenu.application.animationsLabel": "Animacje",
     "app.submenu.application.audioAlertLabel": "Dźwięki powiadomień dla czatu",
     "app.submenu.application.pushAlertLabel": "Powiadomienia dla czatu",
+    "app.submenu.application.userJoinAudioAlertLabel": "Powiadomienie dźwiękowe o dołączeniu użytkownika",
+    "app.submenu.application.userJoinPushAlertLabel": "Powiadomienie o dołączeniu użytkownika",
     "app.submenu.application.fontSizeControlLabel": "Rozmiar czcionki",
     "app.submenu.application.increaseFontBtnLabel": "Zwiększ rozmiar czcionki",
     "app.submenu.application.decreaseFontBtnLabel": "Zmniejsz rozmiar czcionki",
     "app.submenu.application.currentSize": "bieżący {0}",
     "app.submenu.application.languageLabel": "Język aplikacji",
     "app.submenu.application.languageOptionLabel": "Wybierz język",
+    "app.submenu.application.noLocaleOptionLabel": "Brak aktywnych ustawień regionalnych",
     "app.submenu.audio.micSourceLabel": "Mikrofon",
     "app.submenu.audio.speakerSourceLabel": "Głośniki",
     "app.submenu.audio.streamVolumeLabel": "Głośność",
@@ -294,6 +316,9 @@
     "app.settings.save-notification.label": "Ustawienia zostały zapisane",
     "app.switch.onLabel": "WŁ",
     "app.switch.offLabel": "WYŁ",
+    "app.talkingIndicator.ariaMuteDesc" : "Wybierz aby wyciszyć uczestnika",
+    "app.talkingIndicator.isTalking" : "{0} mówi",
+    "app.talkingIndicator.wasTalking" : "{0} przestał mówić",
     "app.actionsBar.actionsDropdown.actionsLabel": "Akcje",
     "app.actionsBar.actionsDropdown.presentationLabel": "Prześlij prezentację",
     "app.actionsBar.actionsDropdown.initPollLabel": "Tworzy ankietÄ™",
@@ -337,7 +362,20 @@
     "app.actionsBar.currentStatusDesc": "bieżący stan {0}",
     "app.actionsBar.captions.start": "Pokaż napisy",
     "app.actionsBar.captions.stop": "Ukryj napisy",
+    "app.audioNotification.audioFailedError1001": "WebSocket rozłączony (błąd 1001)",
+    "app.audioNotification.audioFailedError1002": "Nawiązanie połączenia WebSocket nie powiodło się (błąd 1002)",
+    "app.audioNotification.audioFailedError1003": "Wersja przeglądarki nieobsługiwana (błąd 1003)",
+    "app.audioNotification.audioFailedError1004": "Połączenia nie powiodło się (powód={0}) (błąd 1004)",
+    "app.audioNotification.audioFailedError1005": "Połączenie niespodziewanie zakończone (błąd 1005)",
+    "app.audioNotification.audioFailedError1006": "Czas żądania dla połączenia przekroczony (błąd 1006)",
+    "app.audioNotification.audioFailedError1007": "Błąd połączenia (ICE 1007)",
+    "app.audioNotification.audioFailedError1008": "Transfer nie powiódł się (błąd 1008)",
+    "app.audioNotification.audioFailedError1009": "Pobranie informacji STUN/TURN z serwera nie powiodło się (błąd 1009)",
+    "app.audioNotification.audioFailedError1010": "Czas negocjacji połączenia przekroczony (ICE 1010)",
+    "app.audioNotification.audioFailedError1011": "Czas żądania dla połączenia przekroczony (ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "Połączenie zakończone (błąd ICE 1012)",
     "app.audioNotification.audioFailedMessage": "Połączenie dźwiękowe nieudane",
+    "app.audioNotification.mediaFailedMessage": "Wywołanie getUserMicMedia nie powiodło się ponieważ tylko bezpieczne źródła są dozwolone",
     "app.audioNotification.closeLabel": "Zamknij",
     "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofony uczestników zostały zablokowane. Zostaniesz połączony w trybie 'Tylko słucham'",
     "app.breakoutJoinConfirmation.title": "Dołącz do podgrupy",
@@ -367,6 +405,8 @@
     "app.audioModal.settingsTitle": "Ustawienia dźwięku",
     "app.audioModal.helpTitle": "Wystąpił problem z urządzeniami obsługi mediów",
     "app.audioModal.helpText": "Czy udzielono zgody na używanie mikrofonu? Okno dialogowe udzielenia zgody powinno pokazać się w momencie dołączania do spotkania w trybie 'Używam mikrofonu'. Musisz udzielić zgody aby dołączyć w tym trybie do konferencji głosowej. Jeśli zgody już udzielono, spróbuj zmienić ustawienia uprawnień dla mikrofonu w opcjach przeglądarki.",
+    "app.audioModal.help.noSSL": "Ta strona jest niezabezpieczona. Aby zezwolić na dostęp do mikrofonu strona musi być serwowana z użyciem HTTPS. Skontaktuj się z administratorem serwera.",
+    "app.audioModal.help.macNotAllowed": "Ustawienia Twojego systemu Mac blokują dostęp do mikrofonu. Otwórz Preferencje systemowe -> Ochrona i prywatność -> Prywatność -> Mikrofon i upewnij się, że przeglądarka z której korzystasz jest zaznaczona.",
     "app.audioModal.audioDialTitle": "Dołącz używając telefonu",
     "app.audioDial.audioDialDescription": "Wybierz numer",
     "app.audioDial.audioDialConfrenceText": "i wprowadź numer PIN konferencji:",
@@ -384,9 +424,11 @@
     "app.audioManager.genericError": "Błąd: Wystąpił błąd, spróbuj ponownie",
     "app.audioManager.connectionError": "Bład: Błąd połączenia",
     "app.audioManager.requestTimeout": "Błąd: Przekroczony czas żądania",
+    "app.audioManager.invalidTarget": "Błąd: Próba wykonania żądania do nieprawidłowego celu",
     "app.audioManager.mediaError": "Błąd: Problem z uzyskaniem dostępu do urządzeń obsługi mediów",
     "app.audio.joinAudio": "Dołącz dźwięk",
     "app.audio.leaveAudio": "Odłącz dźwięk",
+    "app.audio.enterSessionLabel": "Dołącz do sesji",
     "app.audio.playSoundLabel": "Odtwórz dźwięk",
     "app.audio.backLabel": "Wstecz",
     "app.audio.audioSettings.titleLabel": "Wybierz ustawienia dźwięku",
@@ -402,9 +444,12 @@
     "app.error.removed": "Zostałeś usunięty z konferencji",
     "app.error.meeting.ended": "Wylogowałeś się z konferencji",
     "app.meeting.logout.duplicateUserEjectReason": "Ten sam uczestnik próbował ponownie dołączyć do spotkania",
+    "app.meeting.logout.permissionEjectReason": "Odrzucono przez naruszenie uprawnień",
     "app.meeting.logout.ejectedFromMeeting": "Usunięto Cię ze spotkania",
     "app.meeting.logout.validateTokenFailedEjectReason": "Weryfikacja tokenu nieudana",
     "app.meeting.logout.userInactivityEjectReason": "Uczestnik zbyt długo nieaktywny",
+    "app.meeting-ended.rating.legendLabel": "Ocena opinii",
+    "app.meeting-ended.rating.starLabel": "Gwiazdka",
     "app.modal.close": "Zamknij",
     "app.modal.close.description": "Ignoruje zmiany i zamyka okno",
     "app.modal.confirm": "Zrobione",
@@ -419,11 +464,13 @@
     "app.error.500": "Ups, coś poszło nie tak",
     "app.error.leaveLabel": "Zaloguj siÄ™ ponownie",
     "app.error.fallback.presentation.title": "Wystąpił błąd",
+    "app.error.fallback.presentation.description": "Zdarzenie zalogowane. Proszę spróbować przeładować stronę.",
     "app.error.fallback.presentation.reloadButton": "Załaduj ponownie",
     "app.guest.waiting": "Oczekiwanie na zgodę na dołączenie",
     "app.userList.guest.waitingUsers": "OczekujÄ…cy uczestnicy",
     "app.userList.guest.waitingUsersTitle": "ZarzÄ…dzanie uczestnikami",
     "app.userList.guest.optionTitle": "Przeglądaj oczekujących uczestników",
+    "app.userList.guest.allowAllAuthenticated": "Pozwół wszystkim uwierzytelnionym",
     "app.userList.guest.allowAllGuests": "Pozwól wszystkim gościom",
     "app.userList.guest.allowEveryone": "Pozwól wszystkim",
     "app.userList.guest.denyEveryone": "Zabroń wszystkim",
@@ -446,6 +493,7 @@
     "app.notification.recordingAriaLabel": "Czas nagrania",
     "app.notification.userJoinPushAlert": "{0} dołączył(a) do sesji",
     "app.shortcut-help.title": "Skróty klawiszowe",
+    "app.shortcut-help.accessKeyNotAvailable": "Brak kluczy dostępowych",
     "app.shortcut-help.comboLabel": "Skrót",
     "app.shortcut-help.functionLabel": "Funkcja",
     "app.shortcut-help.closeLabel": "Zamknij",
@@ -458,6 +506,7 @@
     "app.shortcut-help.closePrivateChat": "Zamknij Czat Prywatny",
     "app.shortcut-help.openActions": "Otwórz menu akcji",
     "app.shortcut-help.openStatus": "Otwórz menu stanu",
+    "app.shortcut-help.togglePan": "Włącz narzędzie do przesuwania (prowadzący)",
     "app.shortcut-help.nextSlideDesc": "Następny slajd (Prelegent)",
     "app.shortcut-help.previousSlideDesc": "Poprzedni slajd (Prelegent)",
     "app.lock-viewers.title": "Zablokuj uczestników",
@@ -494,16 +543,22 @@
     "app.videoPreview.profileNotFoundLabel": "Brak obsługiwanego profilu kamery",
     "app.video.joinVideo": "Dołącz wideo",
     "app.video.leaveVideo": "Odłącz wideo",
+    "app.video.iceCandidateError": "BÅ‚Ä…d podczas dodawania kandydata ICE",
+    "app.video.iceConnectionStateError": "Błąd połączenia (ICE 1107)",
     "app.video.permissionError": "Błąd podczas udostępniania obrazu z kamery internetowej. Sprawdź uprawnienia",
     "app.video.sharingError": "Błąd podczas udostępniania obrazu z kamery internetowej",
     "app.video.notFoundError": "Nie mogę odnaleźć kamery. Upewnij się, że jest podłączona",
     "app.video.notAllowed": "Brak pozwolenia na udostępnianie kamery, sprawdź uprawnienia przeglądarki",
     "app.video.notSupportedError": "Możesz udostępniać obraz z kamery internetowej tylko bezpiecznymi źródłami, upewnij się, że certyfikat SSL jest ważny",
     "app.video.notReadableError": "Nie można pobrać obrazu z kamery internetowej. Upewnij się, że inny program nie używa kamery",
+    "app.video.mediaFlowTimeout1020": "Media nie mogły zostać przesłane do serwera (błąd 1020)",
+    "app.video.suggestWebcamLock": "Wymusić blokadę zmiany ustawień kamer uczestników?",
     "app.video.suggestWebcamLockReason": "(to poprawi stabilność spotkania)",
+    "app.video.enable": "WÅ‚Ä…cz",
     "app.video.cancel": "Anuluj",
     "app.video.swapCam": "Zamień",
     "app.video.swapCamDesc": "zamień kierunek kamer internetowych",
+    "app.video.videoLocked": "Udostępnianie obrazu z kamery zablokowane",
     "app.video.videoButtonDesc": "Dołącz wideo",
     "app.video.videoMenu": "Menu wideo",
     "app.video.videoMenuDisabled": "Menu wideo zostało wyłączone w ustawieniach",
@@ -521,17 +576,23 @@
     "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.sfu.mediaServerConnectionError2000": "Błąd 2000: Nie można połączyć się z serwerem multimediów",
-    "app.sfu.mediaServerOffline2001": "Błąd 2001: Serwer multimediów jest niedostępny. Spróbuj ponownie później.",
-    "app.sfu.mediaServerNoResources2002": "Błąd 2002: Serwer multimediów nie ma dostępnych zasobów",
-    "app.sfu.mediaServerRequestTimeout2003": "Błąd 2003: Żądania serwera multimediów przekraczają limit czasu",
-    "app.sfu.serverIceGatheringFailed2022": "Błąd 2022: Nieudane połączenie ICE z serwerem multimediów",
-    "app.sfu.mediaGenericError2200": "Błą 2200: Serwer multimediów nie przetworzył żądania",
-    "app.sfu.noAvailableCodec2203": "Błąd 2203: Serwer nie odnalazł odpowiedniego kodeka",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Serwer multimediów jest niedostępny. Spróbuj ponownie później (błąd 2001)",
+    "app.sfu.mediaServerNoResources2002": "Serwer multimediów nie ma dostępnych zasobów (błąd 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Żądania serwera multimediów przekraczają limit czasu (błąd 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Serwer multimediów nie może zebrać kandydatów do połączenia (ICE 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Błąd połączenia z serwerem multimediów (ICE 2022)",
+    "app.sfu.mediaGenericError2200": "Serwer multimediów nie przetworzył żądania (błąd 2200)",
+    "app.sfu.invalidSdp2202":"Klient utworzył nieprawidłowe żądanie multimediów (SDP 2202)",
+    "app.sfu.noAvailableCodec2203": "Serwer nie odnalazł odpowiedniego kodeka (błąd 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Opublikowano wyniki ankiety",
     "app.whiteboard.toolbar.tools": "Narzędzia",
+    "app.whiteboard.toolbar.tools.hand": "RÄ…czka",
     "app.whiteboard.toolbar.tools.pencil": "Ołówek",
     "app.whiteboard.toolbar.tools.rectangle": "ProstokÄ…t",
     "app.whiteboard.toolbar.tools.triangle": "Trójkąt",
@@ -560,14 +621,16 @@
     "app.whiteboard.toolbar.multiUserOff": "Wyłącz wspólną tablicę",
     "app.whiteboard.toolbar.fontSize": "Lista rozmiarów czcionek",
     "app.feedback.title": "Wylogowałeś się z konferencji",
+    "app.feedback.subtitle": "Z chęcią dowiemy się jakie masz wrażenia z korzystania z BigBlueButton (opcjonalne)",
     "app.feedback.textarea": "Jak możemy ulepszyć BigBlueButton?",
     "app.feedback.sendFeedback": "Wyślij opinię",
     "app.feedback.sendFeedbackDesc": "Wyślij informację zwrotną i opuść spotkanie",
-    "app.videoDock.webcamFocusLabel": "Zwiększ ostrość",
-    "app.videoDock.webcamFocusDesc": "Zwiększ ostrość wybranej kamery internetowej",
-    "app.videoDock.webcamUnfocusLabel": "Zmniejsz ostrość",
-    "app.videoDock.webcamUnfocusDesc": "Zmniejsz ostrość wybranej kamery internetowej",
+    "app.videoDock.webcamFocusLabel": "Przybliż",
+    "app.videoDock.webcamFocusDesc": "Powiększ obraz wybranej kamery",
+    "app.videoDock.webcamUnfocusLabel": "Oddal",
+    "app.videoDock.webcamUnfocusDesc": "Pomniejsz obraz wybranej kamery",
     "app.videoDock.autoplayBlockedDesc": "Potrzebujemy Twojej zgody aby pokazywać widok z kamer innych uczestników",
+    "app.videoDock.autoplayAllowLabel": "Zobacz obraz z kamer",
     "app.invitation.title": "Zaproszenie do podgrupy",
     "app.invitation.confirm": "ZaproÅ›",
     "app.createBreakoutRoom.title": "Podgrupy",
@@ -596,6 +659,7 @@
     "app.createBreakoutRoom.addParticipantLabel": "+ Dodaj uczestnika",
     "app.createBreakoutRoom.freeJoin": "Pozwól uczestnikom wybrać podgrupę do której chcą dołączyć",
     "app.createBreakoutRoom.leastOneWarnBreakout": "Musisz umieścić co najmniej jedną osobę w pokoju dla podgrupy",
+    "app.createBreakoutRoom.modalDesc": "Wskazówka: Możesz przeciągnąć i upuścić imię uczestnika aby przydzielić go do konkretnej podgrupy.",
     "app.createBreakoutRoom.roomTime": "{0} minut",
     "app.createBreakoutRoom.numberOfRoomsError": "Liczba podgrup jest nieprawidłowa",
     "app.externalVideo.start": "Udostępnij nowy film",
diff --git a/bigbluebutton-html5/private/locales/pt.json b/bigbluebutton-html5/private/locales/pt.json
index e3211c279bf18c1acca51c05ec5d1251135acc1f..27bec1f2582a70ab4df80fdd0e54ffa4b7abda20 100644
--- a/bigbluebutton-html5/private/locales/pt.json
+++ b/bigbluebutton-html5/private/locales/pt.json
@@ -1,9 +1,11 @@
 {
     "app.home.greeting": "A sessão vai iniciar em breve ...",
     "app.chat.submitLabel": "Enviar mensagem",
-    "app.chat.errorMinMessageLength": "Mensagem menor do que {0} caracter(es)",
     "app.chat.errorMaxMessageLength": "Mensagem maior do que {0} caracter(es)",
+    "app.chat.disconnected": "Está desligado, pelo que mensagens não podem ser enviadas",
+    "app.chat.locked": "Chat bloqueado, pelo que mensagens não podem ser enviadas",
     "app.chat.inputLabel": "Entrada de mensagem para o chat {0}",
+    "app.chat.inputPlaceholder": "Enviar mensagem para {0}",
     "app.chat.titlePublic": "Chat Público",
     "app.chat.titlePrivate": "Chat Privado com {0}",
     "app.chat.partnerDisconnected": "{0} saiu da sessão",
@@ -18,10 +20,17 @@
     "app.chat.offline": "Offline",
     "app.chat.emptyLogLabel": "Registo do chat está vazio",
     "app.chat.clearPublicChatMessage": "O histórico do chat público foi apagado por um moderador",
+    "app.chat.multi.typing": "Múltiplos utilizadores estão a escrever",
+    "app.chat.one.typing": "{0} está a escrever",
+    "app.chat.two.typing": "{0} e {1} estão a escrever",
     "app.captions.label": "Legendas",
     "app.captions.menu.close": "Fechar",
     "app.captions.menu.start": "Iniciar",
+    "app.captions.menu.ariaStart": "Começar a escrever legendas",
+    "app.captions.menu.ariaStartDesc": "Abre o editor de legendas e fecha a janela",
     "app.captions.menu.select": "Selecione um idioma disponível",
+    "app.captions.menu.ariaSelect": "Idioma das legendas",
+    "app.captions.menu.subtitle": "Por favor escolha o idioma e o estilo das legendas para a sua sessão.",
     "app.captions.menu.title": "Legendas",
     "app.captions.menu.fontSize": "Tamanho",
     "app.captions.menu.fontColor": "Cor do texto",
@@ -31,6 +40,13 @@
     "app.captions.menu.cancelLabel": "Cancelar",
     "app.captions.pad.hide": "Esconder legendas",
     "app.captions.pad.tip": "Prima Esc para barra voltar à barra de ferramentas do editor",
+    "app.captions.pad.ownership": "Assumir controlo",
+    "app.captions.pad.ownershipTooltip": "Será definido como o dono das legendas de {0}",
+    "app.captions.pad.interimResult": "Resultados interinos",
+    "app.captions.pad.dictationStart": "Iniciar ditado",
+    "app.captions.pad.dictationStop": "Parar ditado",
+    "app.captions.pad.dictationOnDesc": "Activar reconhecimento de fala",
+    "app.captions.pad.dictationOffDesc": "Desactivar reconhecimento de fala",
     "app.note.title": "Notas Partilhadas",
     "app.note.label": "Nota",
     "app.note.hideNoteLabel": "Ocultar nota",
@@ -42,6 +58,7 @@
     "app.userList.participantsTitle": "Participantes",
     "app.userList.messagesTitle": "Mensagens",
     "app.userList.notesTitle": "Notas",
+    "app.userList.notesListItem.unreadContent": "Novos conteúdos disponíveis na secção de anotações partilhadas",
     "app.userList.captionsTitle": "Legendas",
     "app.userList.presenter": "Apresentador",
     "app.userList.you": "Eu",
@@ -52,6 +69,7 @@
     "app.userList.menuTitleContext": "Opções disponíveis",
     "app.userList.chatListItem.unreadSingular": "{0} Nova Mensagem",
     "app.userList.chatListItem.unreadPlural": "{0} Novas Mensagens",
+    "app.userList.menu.chat.label": "Iniciar um chat privado",
     "app.userList.menu.clearStatus.label": "Limpar estado",
     "app.userList.menu.removeUser.label": "Remover utilizador",
     "app.userList.menu.muteUserAudio.label": "Silenciar utilizador",
@@ -79,11 +97,26 @@
     "app.userList.userOptions.disablePrivChat": "O chat privado está desativado",
     "app.userList.userOptions.disablePubChat": "O chat público está desativado",
     "app.userList.userOptions.disableNote": "As notas partilhadas estão bloqueadas",
+    "app.userList.userOptions.hideUserList": "A lista de utilizadores está agora oculta para participantes",
     "app.userList.userOptions.webcamsOnlyForModerator": "Apenas moderadores podem ver as webcams dos participantes (devido às configurações de bloqueio)",
+    "app.userList.content.participants.options.clearedStatus": "Foram limpos todos os estados de utilizador",
+    "app.userList.userOptions.enableCam": "Webcams de participantes estão ativas",
+    "app.userList.userOptions.enableMic": "Microfones de participantes estão ativos",
+    "app.userList.userOptions.enablePrivChat": "Chat privado está ativo",
+    "app.userList.userOptions.enablePubChat": "Chat público está ativo",
+    "app.userList.userOptions.enableNote": "Notas partilhadas estão agora ativas",
+    "app.userList.userOptions.showUserList": "Lista de utilizadores é agora exibida a participantes",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Pode ativar a sua webcam agora, e todos o poderão ver",
     "app.media.label": "Media",
+    "app.media.autoplayAlertDesc": "Permitir acesso",
     "app.media.screenshare.start": "A partilha do ecrã iniciou",
     "app.media.screenshare.end": "A partilha do ecrã terminou",
-    "app.media.screenshare.safariNotSupported": "Atualmente, a partilha de ecrã não é suportada pelo Safari. Por favor, use o Firefox ou o Google Chrome.",
+    "app.media.screenshare.autoplayBlockedDesc": "Necessitamos da sua permissão para lhe mostrar o ecrã do apresentador",
+    "app.media.screenshare.autoplayAllowLabel": "Ver ecrã partilhado",
+    "app.screenshare.notAllowed": "Erro: Permissão para aceder ao ecrã não for fornecida",
+    "app.screenshare.notSupportedError": "Erro: Partilha de ecrã é apenas permitida em domínio seguros (SSL)",
+    "app.screenshare.notReadableError": "Erro: Ocorreu uma falha ao tentar capturar o seu ecrã",
+    "app.screenshare.genericError": "Erro: Ocorreu um erro na partilha de ecrã, por favor tente novamente",
     "app.meeting.ended": "Esta sessão terminou",
     "app.meeting.meetingTimeRemaining": "Tempo restante da sessão: {0}",
     "app.meeting.meetingTimeHasEnded": "Tempo limite atingido. A sessão vai fechar dentro de momentos",
@@ -96,6 +129,8 @@
     "app.presentation.startSlideContent": "Início do conteúdo de slide",
     "app.presentation.endSlideContent": "Fim do conteúdo de slide",
     "app.presentation.emptySlideContent": "Sem conteúdo para o slide atual",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Fim da apresentação",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Início da apresentação",
     "app.presentation.presentationToolbar.selectLabel": "Selecionar slide",
     "app.presentation.presentationToolbar.prevSlideLabel": "Slide anterior",
     "app.presentation.presentationToolbar.prevSlideDesc": "Mudar a apresentação para o slide anterior",
@@ -119,7 +154,9 @@
     "app.presentation.presentationToolbar.fitToPage": "Ajustar à página",
     "app.presentation.presentationToolbar.goToSlide": "Slide {0}",
     "app.presentationUploder.title": "Apresentação",
+    "app.presentationUploder.message": "Como um apresentador, possui acesso à funcionalidade de carregar qualquer documento do Office ou ficheiro PDF. Recomendamos PDF para melhores resultados. Por favor, certifique-se que uma apresentação está escolhida, usado a checkbox circular do lado direito.",
     "app.presentationUploder.uploadLabel": "Carregar",
+    "app.presentationUploder.confirmLabel": "Confirmar",
     "app.presentationUploder.confirmDesc": "Guardar as alterações e iniciar a apresentação",
     "app.presentationUploder.dismissLabel": "Cancelar",
     "app.presentationUploder.dismissDesc": "Fechar a janela e não guardar as alterações",
@@ -131,12 +168,18 @@
     "app.presentationUploder.currentBadge": "Atual",
     "app.presentationUploder.rejectedError": "O(s) ficheiro(s) selecionados foram rejeitados.\nVerifique por favor os tipos de ficheiro.",
     "app.presentationUploder.upload.progress": "A carregar ({0}%)",
+    "app.presentationUploder.upload.413": "O ficheiro é demasiado grande. Por favor divida o mesmo em vários ficheiros.",
     "app.presentationUploder.conversion.conversionProcessingSlides": "A processar a página {0} de {1}",
     "app.presentationUploder.conversion.genericConversionStatus": "A converter o ficheiro ...",
     "app.presentationUploder.conversion.generatingThumbnail": "A gerar miniaturas ...",
     "app.presentationUploder.conversion.generatedSlides": "Slides gerados ...",
     "app.presentationUploder.conversion.generatingSvg": "A gerar imagens SVG ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Número de páginas excedido. Por favor, divida o ficheiro em vários ficheiros.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Não foi possível processar este documento do Office. Por favor tente enviar em formato PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Não foi possível processar este documento do Office. Por favor tente enviar em formato PDF.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Não foi possível converter este ficheiro PDF. Por favor, tente optimizar o mesmo ou tente com um ficheiro diferente.",
     "app.presentationUploder.conversion.timeout": "Ops, a conversão demorou muito",
+    "app.presentationUploder.conversion.pageCountFailed": "Não foi possível determinar o número de páginas.",
     "app.presentationUploder.isDownloadableLabel": "Não permitir que a apresentação seja descarregada",
     "app.presentationUploder.isNotDownloadableLabel": "Permitir que a apresentação seja descarregada",
     "app.presentationUploder.removePresentationLabel": "Eliminar apresentação",
@@ -151,6 +194,7 @@
     "app.poll.quickPollInstruction": "Selecione uma opção abaixo para iniciar a sua sondagem.",
     "app.poll.customPollLabel": "Sondagem personalizada",
     "app.poll.startCustomLabel": "Iniciar sondagem personalizada",
+    "app.poll.activePollInstruction": "Deixe este painel aberto de forma a ver as respostas à sua sondagem, em tempo real. Quando estiver pronto, escolha \"Publicar resultado da sondagem\" para publicar os resultados e fechar a sondagem.",
     "app.poll.publishLabel": "Publicar resultados de sondagem",
     "app.poll.backLabel": "Voltar às opções da sondagem",
     "app.poll.closeLabel": "Fechar",
@@ -187,6 +231,7 @@
     "app.downloadPresentationButton.label": "Descarregar a apresentação original",
     "app.connectingMessage": "A ligar ...",
     "app.waitingMessage": "Desligado. A tentar ligar novamente em {0} segundos ...\n",
+    "app.retryNow": "Tentar agora",
     "app.navBar.settingsDropdown.optionsLabel": "Opções",
     "app.navBar.settingsDropdown.fullscreenLabel": "Alternar para ecrã inteiro",
     "app.navBar.settingsDropdown.settingsLabel": "Abrir configurações",
@@ -210,6 +255,7 @@
     "app.navBar.recording": "Esta sessão está a ser gravada",
     "app.navBar.recording.on": "A gravar",
     "app.navBar.recording.off": "Sem gravação",
+    "app.navBar.emptyAudioBrdige": "Não existe um microfone active. Partilhe o seu microfone para adicionar audio a esta gravação.",
     "app.leaveConfirmation.confirmLabel": "Sair",
     "app.leaveConfirmation.confirmDesc": "Sai da sessão",
     "app.endMeeting.title": "Terminar sessão",
@@ -236,6 +282,8 @@
     "app.submenu.application.animationsLabel": "Animações",
     "app.submenu.application.audioAlertLabel": "Alertas de áudio do chat",
     "app.submenu.application.pushAlertLabel": "Alertas pop-up do chat",
+    "app.submenu.application.userJoinAudioAlertLabel": "Alerta audio quando um utilizador entrar",
+    "app.submenu.application.userJoinPushAlertLabel": "Alerta popup quando um utilizador entrar",
     "app.submenu.application.fontSizeControlLabel": "Tamanho da fonte",
     "app.submenu.application.increaseFontBtnLabel": "Aumentar o tamanho da fonte da aplicação",
     "app.submenu.application.decreaseFontBtnLabel": "Diminuir o tamanho da fonte da aplicação",
@@ -268,10 +316,14 @@
     "app.settings.save-notification.label": "As configurações foram guardadas",
     "app.switch.onLabel": "Ligar",
     "app.switch.offLabel": "Desligar",
+    "app.talkingIndicator.ariaMuteDesc" : "Escolher para silenciar o utilizador",
+    "app.talkingIndicator.isTalking" : "{0} está a falar",
+    "app.talkingIndicator.wasTalking" : "{0} parou de falar",
     "app.actionsBar.actionsDropdown.actionsLabel": "Ações",
     "app.actionsBar.actionsDropdown.presentationLabel": "Carregar uma apresentação",
     "app.actionsBar.actionsDropdown.initPollLabel": "Iniciar uma sondagem",
     "app.actionsBar.actionsDropdown.desktopShareLabel": "Partilhar o seu ecrã",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Partilha de ecrã bloqueada",
     "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Parar partilha de ecrã",
     "app.actionsBar.actionsDropdown.presentationDesc": "Carregar a apresentação",
     "app.actionsBar.actionsDropdown.initPollDesc": "Iniciar uma sondagem",
@@ -279,6 +331,7 @@
     "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Parar a partilha do seu ecrã com",
     "app.actionsBar.actionsDropdown.pollBtnLabel": "Iniciar sondagem",
     "app.actionsBar.actionsDropdown.pollBtnDesc": "Alterna painel da sondagem",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Guardar nomes de utilizador",
     "app.actionsBar.actionsDropdown.createBreakoutRoom": "Criar salas de grupo",
     "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "Cria salas de grupo para dividir a sessão atual",
     "app.actionsBar.actionsDropdown.captionsLabel": "Introduzir legenda",
@@ -309,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "estado atual {0}",
     "app.actionsBar.captions.start": "Iniciar visualização das legendas",
     "app.actionsBar.captions.stop": "Terminar visualização das legendas",
-    "app.audioNotification.audioFailedError1001": "Erro 1001: Ligação ao WebSocket terminada",
-    "app.audioNotification.audioFailedError1002": "Erro 1002: Não foi possível estabelecer a ligação WebSocket",
-    "app.audioNotification.audioFailedError1003": "Erro 1003: Versão do navegador não suportada",
-    "app.audioNotification.audioFailedError1004": "Erro 1004: Falha na chamada (razão={0})",
-    "app.audioNotification.audioFailedError1005": "Erro 1005: Chamada terminou inesperadamente",
-    "app.audioNotification.audioFailedError1006": "Erro 1006: Chamada excedeu o tempo",
-    "app.audioNotification.audioFailedError1007": "Erro 1007: Negociação ICE falhou",
-    "app.audioNotification.audioFailedError1008": "Erro 1008: Falha na transferência",
-    "app.audioNotification.audioFailedError1009": "Erro 1009: Não foi possível recuperar as informações do servidor STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Erro 1010: Negociação ICE excedeu o tempo",
-    "app.audioNotification.audioFailedError1011": "Erro 1011: Obtenção de candidatos ICE excedeu o tempo",
-    "app.audioNotification.audioFailedError1012": "Erro 1012: Ligação ICE terminada",
+    "app.audioNotification.audioFailedError1001": "WebSocket desligado (erro 1001)",
+    "app.audioNotification.audioFailedError1002": "Não foi possível criar uma ligação WebSocket (erro 1002)",
+    "app.audioNotification.audioFailedError1003": "Versão de browser não suportada (erro 1003)",
+    "app.audioNotification.audioFailedError1004": "Falha na chamada (motivo={0}) (erro 1004)",
+    "app.audioNotification.audioFailedError1005": "Chamada terminou inesperadamente (erro 1005)",
+    "app.audioNotification.audioFailedError1006": "Timeout na chamada (error 1006)",
+    "app.audioNotification.audioFailedError1007": "Erro de ligação (erro ICE 1007)",
+    "app.audioNotification.audioFailedError1008": "Falhou a transferência (erro 1008)",
+    "app.audioNotification.audioFailedError1009": "Não foi possível obter a informação do servidor STUN/TURN (erro 1009)",
+    "app.audioNotification.audioFailedError1010": "Timeout na negociação da ligação (erro ICE 1010)",
+    "app.audioNotification.audioFailedError1011": "Timeout na ligação (erro ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "Ligação terminada (erro ICE 1012)",
     "app.audioNotification.audioFailedMessage": "A ligação de áudio falhou",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia falhou pois só são permitidas origens seguras",
     "app.audioNotification.closeLabel": "Fechar",
@@ -352,14 +405,22 @@
     "app.audioModal.settingsTitle": "Alterar as configurações de áudio",
     "app.audioModal.helpTitle": "Houve um problema com seus dispositivos de media",
     "app.audioModal.helpText": "Autorizou o acesso ao microfone?  Note que uma caixa de dialogo deve aparecer quando tenta ativar o áudio, pedindo permissão para aceder aos seus dispositivos de media. Por favor aceite para poder entrar na conferência de áudio. Se não consegue, tente mudar as suas permissões de microfone nas configurações do seu navegador.",
+    "app.audioModal.help.noSSL": "Esta página não está certificada com SSL. Para obter acesso ao microfone a página deve ser servida por SSL. Por favor, contacte o administrador do sistema.",
+    "app.audioModal.help.macNotAllowed": "Parece que as Preferências de Sistema do seu Mac estão a bloquear o acesso ao seu microfone. Abra as Preferências de Sistema > Segurança e Privacidade > Privacidade > Microfone e verifique que o browser que está a usar está activo.",
     "app.audioModal.audioDialTitle": "Entrar usando o telefone",
     "app.audioDial.audioDialDescription": "Ligue para o",
     "app.audioDial.audioDialConfrenceText": "e introduza o número PIN da conferência:",
+    "app.audioModal.autoplayBlockedDesc": "Necessitamos da sua permissão para reproduzir audio",
+    "app.audioModal.playAudio": "Reproduzir audio",
+    "app.audioModal.playAudio.arialabel" : "Reproduzir audio",
+    "app.audioDial.tipIndicator": "Dica",
+    "app.audioDial.tipMessage": "Prima a tecla '0' no seu telefone para alternar entre o modo silencio",
     "app.audioModal.connecting": "A estabelecer ligação",
     "app.audioModal.connectingEchoTest": "A ligar ao teste de áudio",
     "app.audioManager.joinedAudio": "Entrou na conferência de áudio",
     "app.audioManager.joinedEcho": "Iniciou o teste de áudio",
     "app.audioManager.leftAudio": "Saiu da conferência de áudio",
+    "app.audioManager.reconnectingAudio": "A tentar restablecer ligação audio",
     "app.audioManager.genericError": "Erro: Ocorreu um erro, tente novamente",
     "app.audioManager.connectionError": "Erro: Erro de ligação",
     "app.audioManager.requestTimeout": "Erro: Tempo limite do pedido foi ultrapassado",
@@ -422,9 +483,15 @@
     "app.toast.chat.public": "Nova mensagem de Chat público",
     "app.toast.chat.private": "Nova mensagem de Chat privado",
     "app.toast.chat.system": "Sistema",
+    "app.toast.clearedEmoji.label": "Estado emoji limpo",
+    "app.toast.setEmoji.label": "Estado emoji definido para {0}",
+    "app.toast.meetingMuteOn.label": "Todos os utilizadores foram silenciados",
+    "app.toast.meetingMuteOff.label": "Esta sessão não se encontra agora silenciada",
     "app.notification.recordingStart": "Esta reunião está a ser gravada",
+    "app.notification.recordingStop": "Esta sessão não está a ser gravada",
     "app.notification.recordingPaused": "Esta sessão já não está a ser gravada",
     "app.notification.recordingAriaLabel": "Tempo gravado",
+    "app.notification.userJoinPushAlert": "{0} entrou nesta sessão",
     "app.shortcut-help.title": "Atalhos do teclado",
     "app.shortcut-help.accessKeyNotAvailable": "Teclas de acesso não disponíveis",
     "app.shortcut-help.comboLabel": "Combo",
@@ -443,19 +510,31 @@
     "app.shortcut-help.nextSlideDesc": "Slide seguinte (apresentador)",
     "app.shortcut-help.previousSlideDesc": "Slide anterior (apresentador)",
     "app.lock-viewers.title": "Bloquear participantes",
+    "app.lock-viewers.description": "Esta opção permite-lhe restringir determinados utilizadores de aceder a funcionalidades específicas.",
     "app.lock-viewers.featuresLable": "Funcionalidade",
     "app.lock-viewers.lockStatusLabel": "Estado",
     "app.lock-viewers.webcamLabel": "Partilhar webcam",
     "app.lock-viewers.otherViewersWebcamLabel": "Ver a webcam dos outros participantes",
+    "app.lock-viewers.microphoneLable": "Partilhar microfone",
+    "app.lock-viewers.PublicChatLabel": "Enviar mensagem no Chat Público",
+    "app.lock-viewers.PrivateChatLable": "Enviar mensagens privadas",
+    "app.lock-viewers.notesLabel": "Editar as Notas Partilhadas",
+    "app.lock-viewers.userListLabel": "Ver outros utilizadores na Lista de Utilizadores",
+    "app.lock-viewers.ariaTitle": "Bloquear a lista de definições dos utilizadores",
+    "app.lock-viewers.button.apply": "Aplicar",
     "app.lock-viewers.button.cancel": "Cancelar",
     "app.lock-viewers.locked": "Bloqueado",
+    "app.lock-viewers.unlocked": "Desbloqueado",
     "app.recording.startTitle": "Iniciar gravação",
     "app.recording.stopTitle": "Pausar gravação",
     "app.recording.resumeTitle": "Retomar gravação",
+    "app.recording.startDescription": "Pode clicar no botão gravar novamente para pausar a gravação.",
+    "app.recording.stopDescription": "Pretende pausar a gravação? Poderá recomeçar novamente mais tarde clicando no botão de gravação.",
     "app.videoPreview.cameraLabel": "Câmera",
     "app.videoPreview.profileLabel": "Qualidade",
     "app.videoPreview.cancelLabel": "Cancelar",
     "app.videoPreview.closeLabel": "Fechar",
+    "app.videoPreview.findingWebcamsLabel": "À procura de webcams",
     "app.videoPreview.startSharingLabel": "Iniciar partilha",
     "app.videoPreview.webcamOptionLabel": "Escolher webcam",
     "app.videoPreview.webcamPreviewLabel": "Pré-visualização da webcam",
@@ -465,14 +544,17 @@
     "app.video.joinVideo": "Partilhar webcam",
     "app.video.leaveVideo": "Parar partilha de webcam",
     "app.video.iceCandidateError": "Error ao adicionar candidato ICE",
-    "app.video.iceConnectionStateError": "Erro 1107: Negociação ICE falhou",
+    "app.video.iceConnectionStateError": "Falha na ligação (erro ICE 1107)",
     "app.video.permissionError": "Erro ao partilhar a webcam. Por favor verifique as permissões",
     "app.video.sharingError": "Erro ao partilhar a webcam",
     "app.video.notFoundError": "Não foi possível encontrar uma webcam. Por favor, verifique se ela está ligada",
     "app.video.notAllowed": "A partilha da webcam não foi possível, verifique as permissões do seu navegador",
     "app.video.notSupportedError": "A webcam só pode ser partilhada via conexão segura, verifique se o certificado SSL é válido",
     "app.video.notReadableError": "Não foi possível aceder à webcam. Por favor, certifique-se que a webcam não está a ser usada por nenhum outro programa",
-    "app.video.mediaFlowTimeout1020": "Erro 1020: A media não conseguiu chegar ao servidor",
+    "app.video.mediaFlowTimeout1020": "O ficheiro de media não chegou ao servidor (erro 1020)",
+    "app.video.suggestWebcamLock": "Forçar a definição de bloqueio das webcams dos utilizadores?",
+    "app.video.suggestWebcamLockReason": "(isto irá melhorar a estabilidade desta sessão)",
+    "app.video.enable": "Activar",
     "app.video.cancel": "Cancelar",
     "app.video.swapCam": "Trocar",
     "app.video.swapCamDesc": "Trocar a orientação das webcams",
@@ -497,16 +579,16 @@
     "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": "Erro 1108: Falha na conexão ICE ao partilhar o ecrã",
-    "app.sfu.mediaServerConnectionError2000": "Erro 2000: Não foi possível estabelecer uma ligação ao servidor de media",
-    "app.sfu.mediaServerOffline2001": "Erro 2001: Servidor de media está offline. Por favor, tente novamente mais tarde.",
-    "app.sfu.mediaServerNoResources2002": "Erro 2002: Servidor de media não possui recursos disponíveis",
-    "app.sfu.mediaServerRequestTimeout2003": "Erro 2003: Tempo dos pedidos ao servidor de media está a exceder o limite",
-    "app.sfu.serverIceGatheringFailed2021": "Erro 2021: O servidor de media não obteve candidatos ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Erro 2022: Falha na conexão ICE do servidor de media",
-    "app.sfu.mediaGenericError2200": "Erro 2200: Servidor de media não conseguiu processar o pedido",
-    "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.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)",
+    "app.sfu.mediaServerOffline2001": "O media server está offline. Por favor, tente mais tarde (erro 2001)",
+    "app.sfu.mediaServerNoResources2002": "O media server não dispõe de recursos disponíveis (erro 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Estão a ocorrer timeouts nos pedidos ao media server (erro 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "O media server não conseguiu obter ligações (erro ICE 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Ligação ao media server falhou (erro ICE 2022)",
+    "app.sfu.mediaGenericError2200": " O media server falhou ao processar este pedido (erro 2200)",
+    "app.sfu.invalidSdp2202":"O cliente gerou um pedido inválido de media (erro SDP 2202)",
+    "app.sfu.noAvailableCodec2203": "O servidor não foi capaz de encontrar o codec apropriado (erro 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Os resultados da sondagem foram publicados",
     "app.whiteboard.toolbar.tools": "Ferramentas",
@@ -547,6 +629,8 @@
     "app.videoDock.webcamFocusDesc": "Focar a webcam selecionada",
     "app.videoDock.webcamUnfocusLabel": "Desfocar",
     "app.videoDock.webcamUnfocusDesc": "Desfocar a webcam selecionada",
+    "app.videoDock.autoplayBlockedDesc": "Necessitamos da sua permissão para exibir a webcam de outros utilizadores",
+    "app.videoDock.autoplayAllowLabel": "Ver webcams",
     "app.invitation.title": "Convite para sala de grupo",
     "app.invitation.confirm": "Convidar",
     "app.createBreakoutRoom.title": "Salas de Grupo",
@@ -560,6 +644,7 @@
     "app.createBreakoutRoom.join": "Entrar na sala",
     "app.createBreakoutRoom.joinAudio": "Ativar áudio",
     "app.createBreakoutRoom.returnAudio": "Retornar áudio",
+    "app.createBreakoutRoom.alreadyConnected": "Já na sala",
     "app.createBreakoutRoom.confirm": "Criar",
     "app.createBreakoutRoom.record": "Gravar",
     "app.createBreakoutRoom.numberOfRooms": "Número de salas",
@@ -569,16 +654,30 @@
     "app.createBreakoutRoom.roomName": "{0} (Sala - {1})",
     "app.createBreakoutRoom.doneLabel": "Terminado",
     "app.createBreakoutRoom.nextLabel": "Próximo",
+    "app.createBreakoutRoom.minusRoomTime": "Diminuir o tempo da sala de grupo",
+    "app.createBreakoutRoom.addRoomTime": "Aumentar o tempo da sala de grupo para",
     "app.createBreakoutRoom.addParticipantLabel": "+ Adicionar participante",
     "app.createBreakoutRoom.freeJoin": "Permitir que os utilizadores escolham uma sala de grupo para entrar",
     "app.createBreakoutRoom.leastOneWarnBreakout": "É necessário atribuir pelo menos um utilizador a uma sala de grupo",
+    "app.createBreakoutRoom.modalDesc": "Dica: Pode arrastar um utilizador para uma sala de grupo.",
     "app.createBreakoutRoom.roomTime": "{0} minutos",
+    "app.createBreakoutRoom.numberOfRoomsError": "O número de salas é inválido",
     "app.externalVideo.start": "Partilhar novo vídeo",
+    "app.externalVideo.title": "Partilhar um vídeo externo",
+    "app.externalVideo.input": "URL do vídeo externo",
+    "app.externalVideo.urlInput": "Adicionar URL ",
+    "app.externalVideo.urlError": "Este tipo de URL de vídeo não é suportado",
     "app.externalVideo.close": "Fechar",
+    "app.externalVideo.autoPlayWarning": "Reproduzir o vídeo de forma a activar a sincronização de media",
     "app.network.connection.effective.slow": "Estão a ocorrer problemas na ligação",
+    "app.network.connection.effective.slow.help": "Mais informações",
+    "app.externalVideo.noteLabel": "Nota: vídeos partilhados através de links externos não serão exibidos em gravações de sala. Youtube, Vimeo, Instructure Media, Twitch e Daily Motion são tipos de URL de vídeos externos suportados.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Partilhar um vídeo externo",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Parar a partilha de vídeo externo",
     "app.iOSWarning.label": "Por favor atualize para iOS 12.2 ou posterior",
     "app.legacy.unsupportedBrowser": "Aparentemente está a usar um navegador não suportado. Por favor use o {0} or {1}. ",
-    "app.legacy.upgradeBrowser": "Aparentemente está a usar uma versão antiga dum navegador suportado. Por favor atualize o seu navegador."
+    "app.legacy.upgradeBrowser": "Aparentemente está a usar uma versão antiga dum navegador suportado. Por favor atualize o seu navegador.",
+    "app.legacy.criosBrowser": "No iOS por favor use o Safari para obter suporte completo a esta aplicação"
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/pt_BR.json b/bigbluebutton-html5/private/locales/pt_BR.json
index 0d6f657e7c2625fb28d11d63b4ce63c33cc441a3..1b9bf8bf356bebde5ff293f7eb2df6c6d6c69012 100644
--- a/bigbluebutton-html5/private/locales/pt_BR.json
+++ b/bigbluebutton-html5/private/locales/pt_BR.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Sua apresentação irá começar em breve...",
     "app.chat.submitLabel": "Enviar mensagem",
-    "app.chat.errorMinMessageLength": "Mensagem menor do que {0} caracter(es)",
     "app.chat.errorMaxMessageLength": "Mensagem maior do que {0} caracter(es)",
     "app.chat.disconnected": "Você está desconectado, as mensagens não podem ser enviadas",
     "app.chat.locked": "O bate-papo está bloqueado, as mensagens não podem ser enviadas",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Permitir acesso",
     "app.media.screenshare.start": "O compartilhamento de tela foi iniciado",
     "app.media.screenshare.end": "O compartilhamento de tela foi encerrado",
-    "app.media.screenshare.safariNotSupported": "Atualmente, o compartilhamento de tela não é suportado pelo Safari. Por favor, use o Firefox ou o Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Precisamos da sua permissão para mostrar a tela do apresentador.",
     "app.media.screenshare.autoplayAllowLabel": "Ver tela compartilhada",
     "app.screenshare.notAllowed": "Erro: Permissão para acessar a tela não foi concedida.",
@@ -364,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "status atual {0}",
     "app.actionsBar.captions.start": "Iniciar legendas",
     "app.actionsBar.captions.stop": "Parar legendas",
-    "app.audioNotification.audioFailedError1001": "Erro 1001: WebSocket desconectou",
-    "app.audioNotification.audioFailedError1002": "Erro 1002: Não foi possível estabelecer a conexão WebSocket",
-    "app.audioNotification.audioFailedError1003": "Erro 1003: Versão do navegador não suportada",
-    "app.audioNotification.audioFailedError1004": "Erro 1004: Falha na chamada (causa={0})",
-    "app.audioNotification.audioFailedError1005": "Erro 1005: Chamada encerrada inesperadamente",
-    "app.audioNotification.audioFailedError1006": "Erro 1006: Tempo de espera da chamada expirou",
-    "app.audioNotification.audioFailedError1007": "Erro 1007: Negociação ICE falhou",
-    "app.audioNotification.audioFailedError1008": "Erro 1008: Falha na transferência",
-    "app.audioNotification.audioFailedError1009": "Erro 1009: Não foi possível recuperar as informações do servidor STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Erro 1010: Negociação ICE expirou",
-    "app.audioNotification.audioFailedError1011": "Erro 1011: Coleta de candidatos ICE expirou",
-    "app.audioNotification.audioFailedError1012": "Erro 1012: Conexão ICE fechou",
+    "app.audioNotification.audioFailedError1001": "WebSocket desconectado (erro 1001)",
+    "app.audioNotification.audioFailedError1002": "Não foi possível estabelecer uma conexão WebSocket (erro 1002)",
+    "app.audioNotification.audioFailedError1003": "Versão do navegador não suportada (erro 1003)",
+    "app.audioNotification.audioFailedError1004": "Falha na chamada (motivo = {0}) (erro 1004)",
+    "app.audioNotification.audioFailedError1005": "A chamada terminou inesperadamente (erro 1005)",
+    "app.audioNotification.audioFailedError1006": "O tempo limite da chamada expirou (erro 1006)",
+    "app.audioNotification.audioFailedError1007": "Falha na conexão (erro ICE 1007)",
+    "app.audioNotification.audioFailedError1008": "Falha na transferência (erro 1008)",
+    "app.audioNotification.audioFailedError1009": "Não foi possível buscar a informação do servidor STUN/TURN (erro 1009)",
+    "app.audioNotification.audioFailedError1010": "Tempo limite de negociação da conexão (erro ICE 1010)",
+    "app.audioNotification.audioFailedError1011": "Tempo limite de conexão (erro ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "Conexão fechada (erro ICE 1012)",
     "app.audioNotification.audioFailedMessage": "Conexão de áudio não pôde ser estabelecida",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia falhou, somente origens seguras são permitidas",
     "app.audioNotification.closeLabel": "Fechar",
@@ -546,14 +544,14 @@
     "app.video.joinVideo": "Compartilhar webcam",
     "app.video.leaveVideo": "Parar de compartilhar webcam",
     "app.video.iceCandidateError": "Erro ao adicionar o candidato ICE",
-    "app.video.iceConnectionStateError": "Erro 1107: Negociação ICE falhou",
+    "app.video.iceConnectionStateError": "Falha na conexão (erro ICE 1107)",
     "app.video.permissionError": "Erro ao compartilhar webcam. Por favor verifique as permissões",
     "app.video.sharingError": "Erro ao compartilhar a webcam",
     "app.video.notFoundError": "Não foi possível encontrar uma webcam. Por favor, verifique se ela está conectada",
     "app.video.notAllowed": "Autorização não concedida para o compartilhamento da webcam, verifique as permissões do seu navegador",
     "app.video.notSupportedError": "A webcam só pode ser compartilhada via conexão segura, verifique se o certificado SSL é válido",
     "app.video.notReadableError": "Não foi possível acessar a webcam. Por favor, certifique-se de que nenhum outro programa esteja acessando a webcam",
-    "app.video.mediaFlowTimeout1020": "Erro 1020: A mídia não conseguiu chegar no servidor",
+    "app.video.mediaFlowTimeout1020": "A mídia não pôde acessar o servidor (erro 1020)",
     "app.video.suggestWebcamLock": "Aplicar configuração de bloqueio às webcams dos participantes?",
     "app.video.suggestWebcamLockReason": "(isso irá melhorar a estabilidade da sessão)",
     "app.video.enable": "Ativar",
@@ -581,16 +579,16 @@
     "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": "Erro 1108: Falha na conexão ICE ao compartilhar a tela",
-    "app.sfu.mediaServerConnectionError2000": "Erro 2000: Não foi possível conectar ao servidor de mídia",
-    "app.sfu.mediaServerOffline2001": "Erro 2001: Servidor de mídia está offline. Por favor, tente novamente mais tarde.",
-    "app.sfu.mediaServerNoResources2002": "Erro 2002: Servidor de mídia não possui recursos disponíveis",
-    "app.sfu.mediaServerRequestTimeout2003": "Erro 2003: Tempo limite para solicitações ao servidor de mídia",
-    "app.sfu.serverIceGatheringFailed2021": "Erro 2021: O servidor de mídia não pode capturar candidatos ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Erro 2022: Falha na conexão ICE do servidor de mídia",
-    "app.sfu.mediaGenericError2200": "Erro 2200: Servidor de mídia não conseguiu processar a requisição",
-    "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.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)",
+    "app.sfu.mediaServerOffline2001": "O servidor de mídia está offline. Por favor, tente novamente mais tarde (erro 2001)",
+    "app.sfu.mediaServerNoResources2002": "O servidor de mídia não possui recursos disponíveis (erro 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "As solicitações do servidor de mídia estão atingindo o tempo limite (erro 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "O servidor de mídia não pode reunir candidatos à conexão (erro ICE 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Falha na conexão do servidor de mídia (erro ICE 2022)",
+    "app.sfu.mediaGenericError2200": "Falha no servidor de mídia ao processar a solicitação (erro 2200)",
+    "app.sfu.invalidSdp2202":"O cliente gerou uma solicitação de mídia inválida (erro SDP 2202)",
+    "app.sfu.noAvailableCodec2203": "O servidor não conseguiu encontrar um codec apropriado (erro 2203)",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Os resultados da enquete foram publicados",
     "app.whiteboard.toolbar.tools": "Ferramentas",
diff --git a/bigbluebutton-html5/private/locales/ro_RO.json b/bigbluebutton-html5/private/locales/ro_RO.json
index ab9ece2924e7c1a1420c77944ecea6a1e9bc631f..a4fa8413262604c642c32e7789e0287d9911355f 100644
--- a/bigbluebutton-html5/private/locales/ro_RO.json
+++ b/bigbluebutton-html5/private/locales/ro_RO.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Prezentarea dvs va incepe in curand ...",
     "app.chat.submitLabel": "Trimit mesaj",
-    "app.chat.errorMinMessageLength": "Mesajul este cu {0} caracter(e) prea scurt",
     "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",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Permite accesul",
     "app.media.screenshare.start": "Procesul de partajare ecran a pornit",
     "app.media.screenshare.end": "Procesul de partajare ecran s-a terminat",
-    "app.media.screenshare.safariNotSupported": "Procesul de partajare ecran nu este suportat de Safari. Va rog sa folositi Firefox sau Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Avem nevoie de permisiunea ta sa-ti aratam ecranul prezentatorului",
     "app.media.screenshare.autoplayAllowLabel": "Vizualizare ecran partajat",
     "app.screenshare.notAllowed": "Eroare: Permisiunea de accesare a ecranului nu a fost acordata",
@@ -360,18 +358,6 @@
     "app.actionsBar.currentStatusDesc": "Status curent {0}",
     "app.actionsBar.captions.start": "Pornire vizualizare titluri inchise",
     "app.actionsBar.captions.stop": "Opreste vizualizare titluri inchise",
-    "app.audioNotification.audioFailedError1001": "Eroare 1001: WebSocket deconectat",
-    "app.audioNotification.audioFailedError1002": "Eroare 1002: Nu pot face o conexiune WebSocket",
-    "app.audioNotification.audioFailedError1003": "Eroare 1003: Versiune de browser fara suport",
-    "app.audioNotification.audioFailedError1004": "Eroare 1004: Esec la apelare ( motiv={0})",
-    "app.audioNotification.audioFailedError1005": "Eroare 1005: Apel terminat neasteptat",
-    "app.audioNotification.audioFailedError1006": "Eroare 1006: Apelul nu raspunde",
-    "app.audioNotification.audioFailedError1007": "Eroare 1007: ICE negociere esuata",
-    "app.audioNotification.audioFailedError1008": "Eroare 1008: Transfer esuat",
-    "app.audioNotification.audioFailedError1009": "Eroare 1009: Nu pot extrage informatiile serverului STUN/TURN",
-    "app.audioNotification.audioFailedError1010": "Eroare 1010: ICE negociere esuata",
-    "app.audioNotification.audioFailedError1011": "Eroare 1011: ICE colectare informatii esuata",
-    "app.audioNotification.audioFailedError1012": "Eroare 1012: ICE conexiune inchisa",
     "app.audioNotification.audioFailedMessage": "Nu s-a efectuat conexiunea audio",
     "app.audioNotification.mediaFailedMessage": "Conexiunea cu microfonul nu s-a putut efectua, sunt permise doar conexiuni securizate",
     "app.audioNotification.closeLabel": "Inchide",
@@ -542,14 +528,12 @@
     "app.video.joinVideo": "Partajarea camera web",
     "app.video.leaveVideo": "Opreste partajarea camerei web",
     "app.video.iceCandidateError": "Eroare la adaugarea unui candidat ICE",
-    "app.video.iceConnectionStateError": "Eroare 1107: negociere ICE esuata ",
     "app.video.permissionError": "Eroare la partajarea camerei web. Va rog sa verificati permisiunile",
     "app.video.sharingError": "Eroare la partajarea camrei 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",
     "app.video.notReadableError": "Nu pot prelua camera video. Va rog asigurati-va ca nici un program nu foloseste camera web",
-    "app.video.mediaFlowTimeout1020": "Eroare 1020: media nu gaseste serverul",
     "app.video.suggestWebcamLock": "Aplicati setarea de blocare pentru camerele web ale spectatorilor?",
     "app.video.suggestWebcamLockReason": "(acesta va imbunatati stabilitatea sedintei)",
     "app.video.enable": "Activare",
@@ -577,16 +561,6 @@
     "app.video.stats.encodeUsagePercent": "Folosire decodare",
     "app.video.stats.currentDelay": "Intarziere curenta",
     "app.fullscreenButton.label": "Faceti {0} ecran complet",
-    "app.deskshare.iceConnectionStateError": "Eroare 1108:L Conexiunea ICE esuata la partajarea ecranului",
-    "app.sfu.mediaServerConnectionError2000": "Eroare 2000: Eroare de conectare la serverul media",
-    "app.sfu.mediaServerOffline2001": "Eroare 2001: Serverul media este deconectat. Incercati inca o data mai tarziu.",
-    "app.sfu.mediaServerNoResources2002": "Eroare 2002: Serverul media nu mai are resurse.",
-    "app.sfu.mediaServerRequestTimeout2003": "Eroare 2003: Serverul media nu raspunde",
-    "app.sfu.serverIceGatheringFailed2021": "Eroare 2012: Serverul media nu poate extrage candidati ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Eroare 2022: Serverul media conectarea ICE esuata",
-    "app.sfu.mediaGenericError2200": "Eroare 2200: Serverul media nu a putut procesa cererea",
-    "app.sfu.invalidSdp2202":"Eroare 2202: Clientul a generat SDP invalid",
-    "app.sfu.noAvailableCodec2203": "Eroare 2203: Serverul nu a putut gasi un codec potrivit",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Rezultatul sondajului a fost publicat",
     "app.whiteboard.toolbar.tools": "Unelte",
diff --git a/bigbluebutton-html5/private/locales/ru.json b/bigbluebutton-html5/private/locales/ru.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe2105c58b3a27b27d8024525f47467baa953767
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/ru.json
@@ -0,0 +1,683 @@
+{
+    "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.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.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.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.alertMeetingEndsUnderOneMinute": "Конференция закроется через 1 минуту",
+    "app.meeting.alertBreakoutEndsUnderOneMinute": "Комната для групповой работы закроется через минуту",
+    "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.conversion.conversionProcessingSlides": "Обработка страницы {0} из {1}",
+    "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": "Пользовательский параметр опроса {0} из {1}",
+    "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": "WebSocket отсоединен (ошибка 1001)",
+    "app.audioNotification.audioFailedError1002": "Не удалось установить соединение с WebSocket (error 1002)",
+    "app.audioNotification.audioFailedError1003": "Версия браузера не поддерживается (error 1003)",
+    "app.audioNotification.audioFailedError1004": "Ошибка при вызове (reason={0}) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "Звонок неожиданно завершился (error 1005)",
+    "app.audioNotification.audioFailedError1006": "Время ожидания истекло (error 1006)",
+    "app.audioNotification.audioFailedError1007": "Обрыв связи (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "Перевод не удался (error 1008)",
+    "app.audioNotification.audioFailedError1009": "Не смогли получить информацию о сервере STUN/TURN. (error 1009)",
+    "app.audioNotification.audioFailedError1010": "Тайм-аут согласования соединения (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "Тайм-аут подключения (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "Соединение закрыто (ICE error 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": "В настоящее время аудио и видео не поддерживаются в Chrome для iOS.",
+    "app.audioModal.iOSErrorRecommendation": "Мы рекомендуем использовать Safari для 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 блокируют доступ к Вашему микрофону. Откройте System Preferences > Security & Privacy > Privacy > Microphone, и убедитесь, что используемый Вами браузер отмечен. ",
+    "app.audioModal.audioDialTitle": "Присоединься используя свой телефон",
+    "app.audioDial.audioDialDescription": "Набрать номер",
+    "app.audioDial.audioDialConfrenceText": "и вбить PIN-код  конференции.",
+    "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": "Connection failure (ICE error 1107)",
+    "app.video.permissionError": "Ошибка. Проверьте разрешение на доступ к веб-камере.",
+    "app.video.sharingError": "Ошибка трансляции веб-камеры",
+    "app.video.notFoundError": "Невозможно найти веб-камеру. Пожалуйста, проверте присоединена ли она",
+    "app.video.notAllowed": "Отсутствует разрешение на трансляцию веб-камеры, пожалуйста, убедитесь, что ваш браузер имеет необходиміе разрешения",
+    "app.video.notSupportedError": "Можна транслировать видео с веб-камеры только с безопасных источников, убедитесь, что ваш сертификат SSL действителен",
+    "app.video.notReadableError": "Не удалось получить видео с веб-камеры. Убедитесь, что другая программа не использует веб-камеру",
+    "app.video.mediaFlowTimeout1020": "Медиа не удалось связаться с сервером (error 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.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)",
+    "app.sfu.mediaServerOffline2001": "Медиа-сервер выключен. Пожалуйста, повторите попытку позже (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "Медиа-сервер не имеет доступных ресурсов (error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Запросы медиа-сервера не получили во время отклики (error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Медиасервер не может собрать кандидатов на подключение (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Подключение медиа-сервера завершилось неудачей (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "Медиа-сервер не смог обработать запрос (error 2200)",
+    "app.sfu.invalidSdp2202":"Клиент сгенерировал недействительный мультимедиа запрос (SDP error 2202)",
+    "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": "Карандаш",
+    "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": "Мы бы хотели услышать о вашем опыте работы с BigBlueButton (необязательно)",
+    "app.feedback.textarea": "Как мы можем сделать BigBlueButton лучше?",
+    "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": "Внешняя ссылка на видео",
+    "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": "Заметка: видео со внешних ресурсов не будет отображаться в записи. Поддерживаются ссылки YouTube, Vimeo, Instructure Media, Twitch и Daily Motion.",
+    "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/ru_RU.json b/bigbluebutton-html5/private/locales/ru_RU.json
index d51ec5688b847738763cb0b234af960bc712def2..b714ffc18b825f2ac6548d47a2de17c84af7f650 100644
--- a/bigbluebutton-html5/private/locales/ru_RU.json
+++ b/bigbluebutton-html5/private/locales/ru_RU.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Ваша презентация скоро начнется...",
     "app.chat.submitLabel": "Отправить сообщение",
-    "app.chat.errorMinMessageLength": "Сообщение из {0} символа(-ов) слишком короткое",
     "app.chat.errorMaxMessageLength": "Сообщение из {0} символа(-ов) слишком длинное",
     "app.chat.disconnected": "Вы отсоединены, сообщения не могут быть отправлены",
     "app.chat.locked": "Чат заблокирован, сообщения не могут быть отправлены",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Разрешить доступ",
     "app.media.screenshare.start": "Демонстрация экрана началась",
     "app.media.screenshare.end": "Демонстрация экрана закончилась",
-    "app.media.screenshare.safariNotSupported": "Демонстрация экрана на данный момент не поддерживается Safari. Пожалуйста, используйте Firefox или Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Нам требуется ваше разрешение, чтобы показать вам экран ведущего.",
     "app.media.screenshare.autoplayAllowLabel": "Показать демонстрируемый экран",
     "app.screenshare.notAllowed": "Ошибка:разрешение на доступ к экрану не было предоставлено",
@@ -166,7 +164,7 @@
     "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}%)",
@@ -176,8 +174,12 @@
     "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": "Удалить презентацию",
@@ -360,18 +362,15 @@
     "app.actionsBar.currentStatusDesc": "текущий статус {0}",
     "app.actionsBar.captions.start": "Начать просмотр скрытых субтитров",
     "app.actionsBar.captions.stop": "Прекратить просмотр скрытых субтитров",
-    "app.audioNotification.audioFailedError1001": "Ошибка 1001: WebSocket отключен",
-    "app.audioNotification.audioFailedError1002": "Ошибка 1002: Не удалось установить соединение WebSocket",
-    "app.audioNotification.audioFailedError1003": "Ошибка 1003: Версия браузера не поддерживается",
-    "app.audioNotification.audioFailedError1004": "Ошибка 1004: Сбой вызова (reason={0})",
-    "app.audioNotification.audioFailedError1005": "Ошибка 1005: Вызов внезапно прервался",
-    "app.audioNotification.audioFailedError1006": "Ошибка 1006: Время вызова истекло",
-    "app.audioNotification.audioFailedError1007": "Ошибка 1007: Согласование ICE не состоялось",
-    "app.audioNotification.audioFailedError1008": "Ошибка 1008: Сбой передачи",
-    "app.audioNotification.audioFailedError1009": "Ошибка 1009: не удалось получить информацию STUN/TURN сервера",
-    "app.audioNotification.audioFailedError1010": "Ошибка 1010: Время согласования ICE истекло ",
-    "app.audioNotification.audioFailedError1011": "Ошибка 1011: Превышено время сбора ICE",
-    "app.audioNotification.audioFailedError1012": "Ошибка 1012: соединение ICE закрыто",
+    "app.audioNotification.audioFailedError1001": "WebSocket отключен (ошибка 1001)",
+    "app.audioNotification.audioFailedError1002": "Не устанавливается соединение WebSocket (ошибка 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.audioFailedMessage": "Не удалось установить аудио-соединение",
     "app.audioNotification.mediaFailedMessage": "Ошибка getUserMicMedia, разрешены только безопасные источники",
     "app.audioNotification.closeLabel": "Закрыть",
@@ -405,7 +404,7 @@
     "app.audioModal.helpText": "Дали ли вы BigBlueButton разрешение на использование вашего микрофона? Когда вы подключаете аудио, вы должны увидеть диалог запроса доступа к аудио-устройствам - вы должны предоставить доступ, чтобы учавствовать в аудио-конференции. Если этого не произошло, попробуйте изменить настройки доступа к микрофону в настройках вашего браузера.",
     "app.audioModal.help.noSSL": "Страница небезопасна. Чтобы разрешить доступ к микрофону, страница должна обслуживаться через HTTPS. Пожалуйста, свяжитесь с администратором сервера.",
     "app.audioModal.help.macNotAllowed": "Похоже, системные настройки Mac блокируют доступ к Вашему микрофону. Откройте System Preferences > Security & Privacy > Privacy > Microphone, и убедитесь, что используемый Вами браузер отмечен. ",
-    "app.audioModal.audioDialTitle": "Присоединься используя свой телефон",
+    "app.audioModal.audioDialTitle": "Присоединиться используя свой телефон",
     "app.audioDial.audioDialDescription": "Набрать номер",
     "app.audioDial.audioDialConfrenceText": "и вбить PIN-код  конференции.",
     "app.audioModal.autoplayBlockedDesc": "Нам необходимо ваше разрешение на воспроизведение аудио",
@@ -542,14 +541,12 @@
     "app.video.joinVideo": "Транслировать веб-камеру",
     "app.video.leaveVideo": "Прекратить транслировать вэбкамеру",
     "app.video.iceCandidateError": "Ошибка добавления ICE кандидата",
-    "app.video.iceConnectionStateError": "Ошибка 1107: согласование ICE провалилось",
     "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": "Включить",
@@ -577,16 +574,6 @@
     "app.video.stats.encodeUsagePercent": "Использование кодировкой",
     "app.video.stats.currentDelay": "Текущая задержка",
     "app.fullscreenButton.label": "Включить {0} на полный экран",
-    "app.deskshare.iceConnectionStateError": "Ошибка 1108: соединение с ICE не удалось при совместном использовании экрана",
-    "app.sfu.mediaServerConnectionError2000": "Ошибка 2000: невозможно подключиться к медиа-серверу",
-    "app.sfu.mediaServerOffline2001": "Ошибка 2001: Медиа-сервер отключен. Пожалуйста, повторите попытку позже.",
-    "app.sfu.mediaServerNoResources2002": "Ошибка 2002: у медиасервера нет доступных ресурсов",
-    "app.sfu.mediaServerRequestTimeout2003": "Ошибка 2003: время запроса на медиа сервер вышло",
-    "app.sfu.serverIceGatheringFailed2021": "Ошибка 2021: Медиа-сервер не может собирать кандидатов ICE",
-    "app.sfu.serverIceGatheringFailed2022": "Ошибка 2022: Медиа серверу не удалось подключиться к ICE",
-    "app.sfu.mediaGenericError2200": "Ошибка 2200: Медиа сервер не смог обработать запрос",
-    "app.sfu.invalidSdp2202":"Ошибка 2202: клиент создал недопустимый SDP",
-    "app.sfu.noAvailableCodec2203": "Ошибка 2203: сервер не смог найти соответствующий кодек",
     "app.meeting.endNotification.ok.label": "ОК",
     "app.whiteboard.annotations.poll": "Результаты опроса были опубликованы",
     "app.whiteboard.toolbar.tools": "Инструменты",
diff --git a/bigbluebutton-html5/private/locales/sk_SK.json b/bigbluebutton-html5/private/locales/sk_SK.json
index 7657092e7fe4112ec68d93199ff961ea39bfa19d..538ef8af208a5235260eed3d901c3b132efcbfcf 100644
--- a/bigbluebutton-html5/private/locales/sk_SK.json
+++ b/bigbluebutton-html5/private/locales/sk_SK.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Vaša prezentácia začne za okamih...",
     "app.chat.submitLabel": "Odoslať správu",
-    "app.chat.errorMinMessageLength": "Správa je o {0} znakov prikrátka",
     "app.chat.errorMaxMessageLength": "Správa je o {0} znakov pridlhá",
     "app.chat.disconnected": "Boli ste odpojený, nemôžete odosielať správy",
     "app.chat.locked": "Chat je uzamknutý, nemôžete odosielať správy",
@@ -112,7 +111,6 @@
     "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.safariNotSupported": "Zdieľanie obrazovky v prehliadači Safari nie je podporované, použite prosím Firefox alebo Google Chrome.",
     "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é.",
@@ -360,18 +358,6 @@
     "app.actionsBar.currentStatusDesc": "Aktuálny stav {0}",
     "app.actionsBar.captions.start": "Zapnúť zobrazenie vložených titulkov",
     "app.actionsBar.captions.stop": "Vypnúť zobrazenie vložených titulkov",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket odpojený",
-    "app.audioNotification.audioFailedError1002": "Error 1002: Nemôžem vytvoriť spojenie WebSocket",
-    "app.audioNotification.audioFailedError1003": "Error 1003: Verzia prehliadača nie je podporovaná",
-    "app.audioNotification.audioFailedError1004": "Error 1004: Chyba pri volaní (reason={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: Volanie neočakávane ukončené",
-    "app.audioNotification.audioFailedError1006": "Error 1006: Čas pre volanie vypršal",
-    "app.audioNotification.audioFailedError1007": "Error 1007: ICE vyjednávanie neúspešné",
-    "app.audioNotification.audioFailedError1008": "Error 1008: Prenos zlyhal",
-    "app.audioNotification.audioFailedError1009": "Error 1009: Nemôžem získať STUN/TURN informáciu servra",
-    "app.audioNotification.audioFailedError1010": "Error 1010: Čas pre vyjednávanie ICE vypršal",
-    "app.audioNotification.audioFailedError1011": "Error 1011: Čas pre zber údajov ICE vypršal",
-    "app.audioNotification.audioFailedError1012": "Error 1012: ICE spojenie uzavreté",
     "app.audioNotification.audioFailedMessage": "Nepodarilo se vytvoriť audio spojenie",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia zlyhalo, pretože sú povolené iba bezpečné zdroje",
     "app.audioNotification.closeLabel": "Zatvoriť",
@@ -542,14 +528,12 @@
     "app.video.joinVideo": "Zdieľať webkameru",
     "app.video.leaveVideo": "Ukončiť zdieľanie webkamery",
     "app.video.iceCandidateError": "Chyba pri pridávaní kandidáta ICE",
-    "app.video.iceConnectionStateError": "Chyba 1107: ICE vyjednávanie zlyhalo",
     "app.video.permissionError": "Chyba pri zdieľaní webkamery. Prosím skontrolujte oprávnenia",
     "app.video.sharingError": "Chyba pri zdieľaní webkamery",
     "app.video.notFoundError": "Nemôžem nájsť webkameru. Ubezpečte sa, že je pripojená",
     "app.video.notAllowed": "Chýbajúce práva pre zdieľanie webkamery, prosím skontrolujte oprávnenia vo vašom prehliadači",
     "app.video.notSupportedError": "Zdieľanie videa je povolené iba s bezpečnými stránkami, ubezpečte sa, že je SSL certifikát platný",
     "app.video.notReadableError": "Video z webkamery nie je možné získať. Ubezpečte sa, že webkameru nepoužíva iný program ",
-    "app.video.mediaFlowTimeout1020": "Chyba 1020: médiá nemôžu dosiahnuť na server",
     "app.video.suggestWebcamLock": "Vynútiť uzamknutie nastavení pre kamery všetkých poslucháčov?",
     "app.video.suggestWebcamLockReason": "(dosiahneme tým zvýšenie stability konferencie)",
     "app.video.enable": "Povoliť",
@@ -577,16 +561,6 @@
     "app.video.stats.encodeUsagePercent": "Využitie enkodéra",
     "app.video.stats.currentDelay": "Aktuálne oneskorenie",
     "app.fullscreenButton.label": "Nastaviť {0} na celú obrazovku",
-    "app.deskshare.iceConnectionStateError": "Chyba 1108: ICE spojenie zlyhalo pri zdieľaní obrazovky",
-    "app.sfu.mediaServerConnectionError2000": "Chyba 2000: Nebolo možné sa pripojiť k média servru",
-    "app.sfu.mediaServerOffline2001": "Chyba 2001: Média server je vypnutý. Skúste to prosím neskôr.",
-    "app.sfu.mediaServerNoResources2002": "Chyba 2002: Média server nemá dostupné zdroje",
-    "app.sfu.mediaServerRequestTimeout2003": "Chyba 2003: Požiadavkám na média server vypršala platnosť",
-    "app.sfu.serverIceGatheringFailed2021": "Chyba 2021: Média server nemôže získať ICE kandidátov",
-    "app.sfu.serverIceGatheringFailed2022": "Chyba 2022: Média server spojenie ICE zlyhalo",
-    "app.sfu.mediaGenericError2200": "Chyba 2200: Zlyhalo spracovanie požadavky na média server",
-    "app.sfu.invalidSdp2202":"Chyba 2202: Klient vygeneroval neplatné SDP",
-    "app.sfu.noAvailableCodec2203": "Chyba 2203: Server nemôže nájsť žiadny vhodný kodek",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Výsledky ankety boli publikované",
     "app.whiteboard.toolbar.tools": "Nástroje tabule",
diff --git a/bigbluebutton-html5/private/locales/sl.json b/bigbluebutton-html5/private/locales/sl.json
new file mode 100644
index 0000000000000000000000000000000000000000..870a2090aa938a554adad8d668e18d7a0a826a20
--- /dev/null
+++ b/bigbluebutton-html5/private/locales/sl.json
@@ -0,0 +1,685 @@
+{
+    "app.home.greeting": "Predstavitev se bo v kratkem začela ...",
+    "app.chat.submitLabel": "Pošlji sporočilo",
+    "app.chat.errorMaxMessageLength": "Sporočilo je predolgo ({0} znakov)",
+    "app.chat.disconnected": "Do vzpostavitve povezave pošiljanje sporočil ni mogoče.",
+    "app.chat.locked": "Klepet je zaklenjen in sporočil ni mogoče pošiljati",
+    "app.chat.inputLabel": "Sporočilo za klepet {0}",
+    "app.chat.inputPlaceholder": "Sporočilo: {0}",
+    "app.chat.titlePublic": "Javni klepet",
+    "app.chat.titlePrivate": "Zasebni klepet: {0}",
+    "app.chat.partnerDisconnected": "{0} je zapustil sestanek",
+    "app.chat.closeChatLabel": "Zapri {0}",
+    "app.chat.hideChatLabel": "Skrij {0}",
+    "app.chat.moreMessages": "Več sporočil spodaj",
+    "app.chat.dropdown.options": "Možnosti klepeta",
+    "app.chat.dropdown.clear": "Počisti",
+    "app.chat.dropdown.copy": "Kopiraj",
+    "app.chat.dropdown.save": "Shrani",
+    "app.chat.label": "Klepet",
+    "app.chat.offline": "Brez povezave",
+    "app.chat.emptyLogLabel": "Dnevnik klepeta je prazen",
+    "app.chat.clearPublicChatMessage": "Zgodovino javnega klepeta je moderator počistil",
+    "app.chat.multi.typing": "Več udeležencev vpisuje besedilo",
+    "app.chat.one.typing": "{0} vpisuje besedilo",
+    "app.chat.two.typing": "{0} in {1} vpisujeta besedilo",
+    "app.captions.label": "Podnapisi",
+    "app.captions.menu.close": "Zapri",
+    "app.captions.menu.start": "Začni",
+    "app.captions.menu.ariaStart": "Začnite zapisovati podnapise",
+    "app.captions.menu.ariaStartDesc": "Odpre urejevalnik podnapisov in zapre drugo okno",
+    "app.captions.menu.select": "Izbor razpoložljivih jezikov",
+    "app.captions.menu.ariaSelect": "Jezik podnapisov",
+    "app.captions.menu.subtitle": "Izberite jezik in slog izpisa podnapisov za predstavitev.",
+    "app.captions.menu.title": "Podnapisi",
+    "app.captions.menu.fontSize": "Velikost",
+    "app.captions.menu.fontColor": "Barva pisave",
+    "app.captions.menu.fontFamily": "Pisava",
+    "app.captions.menu.backgroundColor": "Barva ozadja",
+    "app.captions.menu.previewLabel": "Predogled",
+    "app.captions.menu.cancelLabel": "Prekliči",
+    "app.captions.pad.hide": "Skrij podnapise",
+    "app.captions.pad.tip": "Pritisnite tipko Esc za prikaz orodne vrstice urejevalnika",
+    "app.captions.pad.ownership": "Prevzemi",
+    "app.captions.pad.ownershipTooltip": "Prevzamete lahko pripravo podnapisov za jezik {0} ",
+    "app.captions.pad.interimResult": "Vmesni rezultati",
+    "app.captions.pad.dictationStart": "Začni diktiranje",
+    "app.captions.pad.dictationStop": "Zaustavi diktiranje",
+    "app.captions.pad.dictationOnDesc": "Omogoči prepoznavanje govora",
+    "app.captions.pad.dictationOffDesc": "Onemogoči prepoznavanje govora",
+    "app.note.title": "Skupne beležke",
+    "app.note.label": "Beležka",
+    "app.note.hideNoteLabel": "Skrij beležko",
+    "app.user.activityCheck": "Preverjanje dejavnosti udeleženca",
+    "app.user.activityCheck.label": "Preveri, ali je udeleženec še vedno prisoten ({0})",
+    "app.user.activityCheck.check": "Preveri",
+    "app.note.tipLabel": "Pritisnite tipko Esc za prikaz orodne vrstice urejevalnika",
+    "app.userList.usersTitle": "Udeleženci",
+    "app.userList.participantsTitle": "Udeleženci",
+    "app.userList.messagesTitle": "Sporočila",
+    "app.userList.notesTitle": "Beležke",
+    "app.userList.notesListItem.unreadContent": "V razdelku beležk je na voljo nova vsebina",
+    "app.userList.captionsTitle": "Podnapisi",
+    "app.userList.presenter": "Govornik",
+    "app.userList.you": "Jaz",
+    "app.userList.locked": "Zaklenjeno",
+    "app.userList.label": "Seznam udeležencev",
+    "app.userList.toggleCompactView.label": "Preklopi način skrčenega pogleda",
+    "app.userList.guest": "Gost",
+    "app.userList.menuTitleContext": "Razpoložljive možnosti",
+    "app.userList.chatListItem.unreadSingular": "Nova sporočila: {0}",
+    "app.userList.chatListItem.unreadPlural": "Nova sporočila: {0}",
+    "app.userList.menu.chat.label": "Začni zasebni klepet",
+    "app.userList.menu.clearStatus.label": "Počisti stanje",
+    "app.userList.menu.removeUser.label": "Odstrani udeleženca",
+    "app.userList.menu.muteUserAudio.label": "Utišaj udeleženca",
+    "app.userList.menu.unmuteUserAudio.label": "Povrni zvok udeleženca",
+    "app.userList.userAriaLabel": "{0} {1} {2}  Stanje {3}",
+    "app.userList.menu.promoteUser.label": "Povišaj v moderatorja",
+    "app.userList.menu.demoteUser.label": "Ponižaj v opazovalca",
+    "app.userList.menu.unlockUser.label": "Odkleni {0}",
+    "app.userList.menu.lockUser.label": "Zakleni {0}",
+    "app.userList.menu.directoryLookup.label": "Pregled mape",
+    "app.userList.menu.makePresenter.label": "Postavi za govornika",
+    "app.userList.userOptions.manageUsersLabel": "Upravljanje z udeleženci",
+    "app.userList.userOptions.muteAllLabel": "Utišaj vse udeležence",
+    "app.userList.userOptions.muteAllDesc": "Utiša vse udeležence sestanka",
+    "app.userList.userOptions.clearAllLabel": "Počisti vse ikone stanja",
+    "app.userList.userOptions.clearAllDesc": "Počisti vse ikone stanja udeležencev",
+    "app.userList.userOptions.muteAllExceptPresenterLabel": "Utišaj vse udeležence razen govornika",
+    "app.userList.userOptions.muteAllExceptPresenterDesc": "Utiša vse udeležence sestanka razen govornika",
+    "app.userList.userOptions.unmuteAllLabel": "Povrni zvok udeležencev",
+    "app.userList.userOptions.unmuteAllDesc": "Povrne zvok za vse udeležence",
+    "app.userList.userOptions.lockViewersLabel": "Uporaba možnosti",
+    "app.userList.userOptions.lockViewersDesc": "Zakleni izbrane možnosti za udeležence sestanka",
+    "app.userList.userOptions.disableCam": "Spletne kamere opazovalcev so onemogočene",
+    "app.userList.userOptions.disableMic": "Mikrofoni opazovalcev so onemogočeni",
+    "app.userList.userOptions.disablePrivChat": "Zasebni klepet je onemogočen",
+    "app.userList.userOptions.disablePubChat": "Javni klepet je onemogočen",
+    "app.userList.userOptions.disableNote": "Skupne beležke so sedaj zaklenjene",
+    "app.userList.userOptions.hideUserList": "Seznam udeležencev je skrit pred opazovalci",
+    "app.userList.userOptions.webcamsOnlyForModerator": "Le moderatorji lahko vidijo kamere opazovalcev (zaradi nastavitev zaklepa)",
+    "app.userList.content.participants.options.clearedStatus": "Počisti stanja vseh udeležencev",
+    "app.userList.userOptions.enableCam": "Spletne kamere opazovalcev so omogočene",
+    "app.userList.userOptions.enableMic": "Mikrofoni opazovalcev so omogočeni",
+    "app.userList.userOptions.enablePrivChat": "Zasebni klepet je omogočen",
+    "app.userList.userOptions.enablePubChat": "Javni klepet je omogočen",
+    "app.userList.userOptions.enableNote": "Skupne beležke so sedaj omogočene",
+    "app.userList.userOptions.showUserList": "Seznam udeležencev je sedaj opazovalcem viden",
+    "app.userList.userOptions.enableOnlyModeratorWebcam": "Sedaj je mogoče prikazati spletno kamero in vsi bodo sliko videli",
+    "app.media.label": "Predstavna vsebina",
+    "app.media.autoplayAlertDesc": "Dovoli dostop",
+    "app.media.screenshare.start": "Souporaba zaslona je omogočena",
+    "app.media.screenshare.end": "Souporaba zaslona je onemogočena",
+    "app.media.screenshare.unavailable": "Souporaba zaslona ni na voljo",
+    "app.media.screenshare.safariNotSupported": "Souporaba zaslona trenutno v brskalniku Safari ni na voljo. Uporabite Firefox ali Google Chrome.",
+    "app.media.screenshare.autoplayBlockedDesc": "Zahtevana je odobritev za prikaz govornikovega zaslona.",
+    "app.media.screenshare.autoplayAllowLabel": "Pokaži zaslon v souporabi",
+    "app.screenshare.notAllowed": "Napaka: dovoljenje za dostop do zaslona ni odobreno",
+    "app.screenshare.notSupportedError": "Napaka: souporaba zaslona je dovoljena le na varnih (SSL) domenah",
+    "app.screenshare.notReadableError": "Napaka: prišlo je do napake med poskusom zajemanja zaslona",
+    "app.screenshare.genericError": "Napaka: med souporabo zaslona je prišlo do napake; poskusite znova",
+    "app.meeting.ended": "Predstavitev je končana",
+    "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.presentation.hide": "Skrij predstavitev",
+    "app.presentation.notificationLabel": "Trenutna predstavitev",
+    "app.presentation.slideContent": "Vsebina strani",
+    "app.presentation.startSlideContent": "Začetek vsebine strani",
+    "app.presentation.endSlideContent": "Konec vsebine strani",
+    "app.presentation.emptySlideContent": "NI vsebine za trenutno stran",
+    "app.presentation.presentationToolbar.noNextSlideDesc": "Konec predstavitve",
+    "app.presentation.presentationToolbar.noPrevSlideDesc": "Začetek predstavitve",
+    "app.presentation.presentationToolbar.selectLabel": "Izberi stran",
+    "app.presentation.presentationToolbar.prevSlideLabel": "Predhodna stran",
+    "app.presentation.presentationToolbar.prevSlideDesc": "Vrni predstavitev na predhodno stran",
+    "app.presentation.presentationToolbar.nextSlideLabel": "Naslednja stran",
+    "app.presentation.presentationToolbar.nextSlideDesc": "Postavi predstavitev na naslednjo stran",
+    "app.presentation.presentationToolbar.skipSlideLabel": "Preskoči stran",
+    "app.presentation.presentationToolbar.skipSlideDesc": "Postavi predstavitev na določeno stran",
+    "app.presentation.presentationToolbar.fitWidthLabel": "Prilagodi Å¡irini",
+    "app.presentation.presentationToolbar.fitWidthDesc": "Prikaži celotno širino strani",
+    "app.presentation.presentationToolbar.fitScreenLabel": "Prilagodi zaslonu",
+    "app.presentation.presentationToolbar.fitScreenDesc": "Pokaži celotno stran",
+    "app.presentation.presentationToolbar.zoomLabel": "Približanje",
+    "app.presentation.presentationToolbar.zoomDesc": "Spremeni raven približanja predstavitve",
+    "app.presentation.presentationToolbar.zoomInLabel": "Približaj",
+    "app.presentation.presentationToolbar.zoomInDesc": "Približaj predstavitev",
+    "app.presentation.presentationToolbar.zoomOutLabel": "Oddalji",
+    "app.presentation.presentationToolbar.zoomOutDesc": "Oddalji predstavitev",
+    "app.presentation.presentationToolbar.zoomReset": "Ponastavi približanje",
+    "app.presentation.presentationToolbar.zoomIndicator": "Trenutna raven približanja",
+    "app.presentation.presentationToolbar.fitToWidth": "Prilagodi Å¡irini",
+    "app.presentation.presentationToolbar.fitToPage": "Prilagodi Å¡irini strani",
+    "app.presentation.presentationToolbar.goToSlide": "Stran {0}",
+    "app.presentationUploder.title": "Predstavitev",
+    "app.presentationUploder.message": "Kot govornik lahko pošljete na strežnik katerikoli pisarniški dokument. Za najboljše rezultate je priporočljivo uporabiti datoteko PDF. Prepričajte se, da je predstavitev izbrana, kar je nakazano s kljukico v zelenem krogu na desni strani seznama.",
+    "app.presentationUploder.uploadLabel": "Pošlji",
+    "app.presentationUploder.confirmLabel": "Potrdi",
+    "app.presentationUploder.confirmDesc": "Shrani spremembe in začne s predstavitvijo",
+    "app.presentationUploder.dismissLabel": "Prekliči",
+    "app.presentationUploder.dismissDesc": "Zaprite okno nastavitev · in zavrzite spremembe",
+    "app.presentationUploder.dropzoneLabel": "Potegnite datoteke za pošiljanje na strežnik",
+    "app.presentationUploder.dropzoneImagesLabel": "Potegnite slike za pošiljanje na strežnik",
+    "app.presentationUploder.browseFilesLabel": "ali pa prebrskajte med krajevnimi datotekami",
+    "app.presentationUploder.browseImagesLabel": "ali pa prebrskajte mape oziroma zajemite slike",
+    "app.presentationUploder.fileToUpload": "Pripravljeno za pošiljanje na strežnik ...",
+    "app.presentationUploder.currentBadge": "Trenutno",
+    "app.presentationUploder.rejectedError": "Izbrane datoteke so zavrnjene. Preverite podprtost vrst datotek.",
+    "app.presentationUploder.upload.progress": "Poteka pošiljanje ({0} %)",
+    "app.presentationUploder.upload.413": "Datoteka je prevelika. Razdelite jo na več manjših.",
+    "app.presentationUploder.conversion.conversionProcessingSlides": "Poteka priprava strani {0} od {1}",
+    "app.presentationUploder.conversion.genericConversionStatus": "Poteka pretvarjanje datoteke ...",
+    "app.presentationUploder.conversion.generatingThumbnail": "Poteka ustvarjanje sličic ...",
+    "app.presentationUploder.conversion.generatedSlides": "Strani predstavitve so uspešno ustvarjene ...",
+    "app.presentationUploder.conversion.generatingSvg": "Poteka ustvarjanje sličic SVG ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Število strani predstavitve je preseženo. Razdelite datoteko na več delov.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Pretvorba pisarniškega dokumenta je spodletela. Pošljite na strežnik datoteko PDF.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Pretvorba pisarniškega dokumenta je spodletela. Pošljite na strežnik datoteko PDF.",
+    "app.presentationUploder.conversion.pdfHasBigPage": "Ni mogoče pretvoriti datoteke PDF. Poskusite jo shraniti v drugi različici.",
+    "app.presentationUploder.conversion.timeout": "Ojoj, pretvorba je trajala malce predolgo.",
+    "app.presentationUploder.conversion.pageCountFailed": "Ni mogoče določiti števila strani dokumenta.",
+    "app.presentationUploder.isDownloadableLabel": "Ne dovoli prejema predstavitve",
+    "app.presentationUploder.isNotDownloadableLabel": "Dovoli prejem predstavitve",
+    "app.presentationUploder.removePresentationLabel": "Odstrani predstavitev",
+    "app.presentationUploder.setAsCurrentPresentation": "Nastavi predstavitev kot trenutno",
+    "app.presentationUploder.tableHeading.filename": "Ime datoteke",
+    "app.presentationUploder.tableHeading.options": "Možnosti",
+    "app.presentationUploder.tableHeading.status": "Stanje",
+    "app.poll.pollPaneTitle": "Ankete",
+    "app.poll.quickPollTitle": "Hitra anketa",
+    "app.poll.hidePollDesc": "Skrije okno menija ankete",
+    "app.poll.customPollInstruction": "Za pripravo ankete po meri, pritisnite spodnji gumb.",
+    "app.poll.quickPollInstruction": "Izberite eno izmed spodnjih možnosti za anketo.",
+    "app.poll.customPollLabel": "Anketa po meri",
+    "app.poll.startCustomLabel": "Začni anketo po meri",
+    "app.poll.activePollInstruction": "Pustite to okno odprto za spremljanje odzivov na anketo v živo. Ko bodo odgovori zbrani, lahko »Objavite rezultate ankete« in končate zbiranje.",
+    "app.poll.publishLabel": "Objavi rezultate ankete",
+    "app.poll.backLabel": "Nazaj na možnosti ankete",
+    "app.poll.closeLabel": "Zapri",
+    "app.poll.waitingLabel": "Zbiranje odzivov ({0}/{1})",
+    "app.poll.ariaInputCount": "Možnost ankete po meri {0} od {1}",
+    "app.poll.customPlaceholder": "Dodaj možnost ankete",
+    "app.poll.noPresentationSelected": "Ni izbrane predstavitve. Izberite jo.",
+    "app.poll.clickHereToSelect": "Kliknite za izbor",
+    "app.poll.t": "Prav",
+    "app.poll.f": "Napak",
+    "app.poll.tf": "Prav / Napak",
+    "app.poll.y": "Da",
+    "app.poll.n": "Ne",
+    "app.poll.yn": "Da / 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": "Prav",
+    "app.poll.answer.false": "Napak",
+    "app.poll.answer.yes": "Da",
+    "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": "Udeleženci",
+    "app.poll.liveResult.responsesTitle": "Odziv",
+    "app.polling.pollingTitle": "Možnosti ankete",
+    "app.polling.pollAnswerLabel": "Odgovor ankete {0}",
+    "app.polling.pollAnswerDesc": "Izberite možnost za izbor {0}",
+    "app.failedMessage": "Zaznane so težave pri povezovanju na strežnik.",
+    "app.downloadPresentationButton.label": "Prejmi izvorno predstavitev",
+    "app.connectingMessage": "Poteka povezovanje ...",
+    "app.waitingMessage": "Povezava je prekinjena. Poskus ponovnega povezovanja bo izveden čez {0} sekund ...",
+    "app.retryNow": "Poskusi takoj",
+    "app.navBar.settingsDropdown.optionsLabel": "Možnosti",
+    "app.navBar.settingsDropdown.fullscreenLabel": "Prikaži v celozaslonskem načinu",
+    "app.navBar.settingsDropdown.settingsLabel": "Nastavitve",
+    "app.navBar.settingsDropdown.aboutLabel": "O programu",
+    "app.navBar.settingsDropdown.leaveSessionLabel": "Odjava",
+    "app.navBar.settingsDropdown.exitFullscreenLabel": "Končaj celozaslonski način",
+    "app.navBar.settingsDropdown.fullscreenDesc": "Postavi meni nastavitev v celozaslonski način",
+    "app.navBar.settingsDropdown.settingsDesc": "Spremeni splošne nastavitve",
+    "app.navBar.settingsDropdown.aboutDesc": "Pokaži podrobnosti odjemalca",
+    "app.navBar.settingsDropdown.leaveSessionDesc": "Zapustite srečanje",
+    "app.navBar.settingsDropdown.exitFullscreenDesc": "Zapusti celozaslonski način",
+    "app.navBar.settingsDropdown.hotkeysLabel": "Tipkovne bližnjice",
+    "app.navBar.settingsDropdown.hotkeysDesc": "Izpis razpoložljivih tipkovnih bližnjic",
+    "app.navBar.settingsDropdown.helpLabel": "Pomoč",
+    "app.navBar.settingsDropdown.helpDesc": "Poveže udeleženca z vsebinami pomoči (odpre se nov zavihek)",
+    "app.navBar.settingsDropdown.endMeetingDesc": "Zaključi trenutni sestanek",
+    "app.navBar.settingsDropdown.endMeetingLabel": "Končaj sestanek",
+    "app.navBar.userListToggleBtnLabel": "Preklopi seznam udeležencev",
+    "app.navBar.toggleUserList.ariaLabel": "Preklop seznama udeležencev in sporočil",
+    "app.navBar.toggleUserList.newMessages": "z novim obvestilnim sporočilom",
+    "app.navBar.recording": "Predstavitev se snema",
+    "app.navBar.recording.on": "Snemanje",
+    "app.navBar.recording.off": "Brez snemanja",
+    "app.navBar.emptyAudioBrdige": "Ni zaznanega dejavnega mikrofona. Za snemanje zvoka ga je treba omogočiti.",
+    "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.yesLabel": "Da",
+    "app.endMeeting.noLabel": "Ne",
+    "app.about.title": "O programu",
+    "app.about.version": "Trenutna izgradnja:",
+    "app.about.copyright": "Avtorske pravice:",
+    "app.about.confirmLabel": "V redu",
+    "app.about.confirmDesc": "V redu",
+    "app.about.dismissLabel": "Prekliči",
+    "app.about.dismissDesc": "Zaprite okno podrobnosti o odjemalcu",
+    "app.actionsBar.changeStatusLabel": "Spremeni stanje",
+    "app.actionsBar.muteLabel": "Utišaj",
+    "app.actionsBar.unmuteLabel": "Povrni zvok",
+    "app.actionsBar.camOffLabel": "Izklopi kamero",
+    "app.actionsBar.raiseLabel": "Dvigni",
+    "app.actionsBar.label": "Orodna vrstica",
+    "app.actionsBar.actionsDropdown.restorePresentationLabel": "Obnovi predstavitev",
+    "app.actionsBar.actionsDropdown.restorePresentationDesc": "Gumb za obnovitev predstavitve, ko je ta zaprta",
+    "app.screenshare.screenShareLabel" : "Souporaba zaslona",
+    "app.submenu.application.applicationSectionTitle": "Program",
+    "app.submenu.application.animationsLabel": "Animacije",
+    "app.submenu.application.audioAlertLabel": "Zvočna obvestila za klepet",
+    "app.submenu.application.pushAlertLabel": "Pojavna obvestila za klepet",
+    "app.submenu.application.userJoinAudioAlertLabel": "Zvočna obvestila ob prijavi udeleženca",
+    "app.submenu.application.userJoinPushAlertLabel": "Pojavna obvestila ob prijavi udeleženca",
+    "app.submenu.application.fontSizeControlLabel": "Velikost pisave",
+    "app.submenu.application.increaseFontBtnLabel": "Povečaj velikost pisave vmesnika",
+    "app.submenu.application.decreaseFontBtnLabel": "Zmanjšaj velikost pisave vmesnika",
+    "app.submenu.application.currentSize": "trenutno {0}",
+    "app.submenu.application.languageLabel": "Jezik programa",
+    "app.submenu.application.languageOptionLabel": "Izbor jezika",
+    "app.submenu.application.noLocaleOptionLabel": "Ni nameščenih jezikov",
+    "app.submenu.audio.micSourceLabel": "Vir mikrofona",
+    "app.submenu.audio.speakerSourceLabel": "Uporabljeni zvočniki",
+    "app.submenu.audio.streamVolumeLabel": "Glasnost zvokovnega pretoka",
+    "app.submenu.video.title": "Video",
+    "app.submenu.video.videoSourceLabel": "Pokaži vir",
+    "app.submenu.video.videoOptionLabel": "Izbor vira pogleda",
+    "app.submenu.video.videoQualityLabel": "Kakovost videa",
+    "app.submenu.video.qualityOptionLabel": "Izbor kakovosti videa",
+    "app.submenu.video.participantsCamLabel": "Ogled spletnih kamer udeležencev",
+    "app.settings.applicationTab.label": "Program",
+    "app.settings.audioTab.label": "Zvok",
+    "app.settings.videoTab.label": "Video",
+    "app.settings.usersTab.label": "Udeleženci",
+    "app.settings.main.label": "Nastavitve",
+    "app.settings.main.cancel.label": "Prekliči",
+    "app.settings.main.cancel.label.description": "Zavrže spremembe in zapre meni nastavitev",
+    "app.settings.main.save.label": "Shrani",
+    "app.settings.main.save.label.description": "Shrani spremembe in zapre meni nastavitev",
+    "app.settings.dataSavingTab.label": "Obremenitev",
+    "app.settings.dataSavingTab.webcam": "Omogoči spletne kamere",
+    "app.settings.dataSavingTab.screenShare": "Omogoči souporabo namizja",
+    "app.settings.dataSavingTab.description": "Obremenitev povezav med udeleženci je mogoče zmanjšati s prilagajanjem prikazovanja.",
+    "app.settings.save-notification.label": "Nastavitve so shranjene",
+    "app.switch.onLabel": "I",
+    "app.switch.offLabel": "O",
+    "app.talkingIndicator.ariaMuteDesc" : "Izberite za utišanje udeleženca",
+    "app.talkingIndicator.isTalking" : "Govori {0}",
+    "app.talkingIndicator.wasTalking" : "{0} konča govor",
+    "app.actionsBar.actionsDropdown.actionsLabel": "Dejanja",
+    "app.actionsBar.actionsDropdown.presentationLabel": "Pošlji predstavitev",
+    "app.actionsBar.actionsDropdown.initPollLabel": "Začni anketo",
+    "app.actionsBar.actionsDropdown.desktopShareLabel": "Omogoči souporabo zaslona",
+    "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Souporaba zaslona je zaklenjena",
+    "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Zaustavi souporabo zaslona",
+    "app.actionsBar.actionsDropdown.presentationDesc": "Pošlji predstavitev",
+    "app.actionsBar.actionsDropdown.initPollDesc": "Začni anketo",
+    "app.actionsBar.actionsDropdown.desktopShareDesc": "Omogoči souporabo zaslona z drugimi",
+    "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Zaustavi souporabo zaslona:",
+    "app.actionsBar.actionsDropdown.pollBtnLabel": "Začni anketo",
+    "app.actionsBar.actionsDropdown.pollBtnDesc": "Preklopi prikaz okna ankete",
+    "app.actionsBar.actionsDropdown.saveUserNames": "Shrani imena udeležencev",
+    "app.actionsBar.actionsDropdown.createBreakoutRoom": "Ustvari skupine",
+    "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "ustvari ločene skupine za trenutno srečanje",
+    "app.actionsBar.actionsDropdown.captionsLabel": "Zapis podnapisov",
+    "app.actionsBar.actionsDropdown.captionsDesc": "Preklopi okno urejevalnika podnapisov",
+    "app.actionsBar.actionsDropdown.takePresenter": "Prevzemi govor",
+    "app.actionsBar.actionsDropdown.takePresenterDesc": "Potrdite se kot novi voditelj predstavitve",
+    "app.actionsBar.emojiMenu.statusTriggerLabel": "Nastavi stanje",
+    "app.actionsBar.emojiMenu.awayLabel": "Odsotno",
+    "app.actionsBar.emojiMenu.awayDesc": "Spremeni stanje v: Odsotno",
+    "app.actionsBar.emojiMenu.raiseHandLabel": "Dvignjena roka",
+    "app.actionsBar.emojiMenu.raiseHandDesc": "Dvignite roko za vprašanje",
+    "app.actionsBar.emojiMenu.neutralLabel": "Neodločeno",
+    "app.actionsBar.emojiMenu.neutralDesc": "Spremeni stanje v: Neodločeno",
+    "app.actionsBar.emojiMenu.confusedLabel": "Nejasno",
+    "app.actionsBar.emojiMenu.confusedDesc": "Spremeni stanje v: Nejasno",
+    "app.actionsBar.emojiMenu.sadLabel": "Žalostno",
+    "app.actionsBar.emojiMenu.sadDesc": "Spremeni stanje v: Žalostno",
+    "app.actionsBar.emojiMenu.happyLabel": "Veselo",
+    "app.actionsBar.emojiMenu.happyDesc": "Spremeni stanje v: Veselo",
+    "app.actionsBar.emojiMenu.noneLabel": "Počisti stanje",
+    "app.actionsBar.emojiMenu.noneDesc": "Počistite svoje stanje",
+    "app.actionsBar.emojiMenu.applauseLabel": "Aplavz",
+    "app.actionsBar.emojiMenu.applauseDesc": "Spremeni stanje v: Aplavz",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Se strinjam",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Spremeni stanje v: Se strinjam",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Se ne strinjam",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "Spremeni stanje v: Se ne strinjam",
+    "app.actionsBar.currentStatusDesc": "trenutno stanje {0}",
+    "app.actionsBar.captions.start": "Prikaži podnapise",
+    "app.actionsBar.captions.stop": "Skrij podnapise",
+    "app.audioNotification.audioFailedError1001": "Vtič WebSocket ni povezan (napaka 1001)",
+    "app.audioNotification.audioFailedError1002": "Ni mogoče ustvariti povezave z vtičem WebSocket (napaka 1002)",
+    "app.audioNotification.audioFailedError1003": "Različica brskalnika ni podprta (napaka 1003)",
+    "app.audioNotification.audioFailedError1004": "Klic je spodletel (razlog = {0}) (napaka 1004)",
+    "app.audioNotification.audioFailedError1005": "Pogovor se je nepričakovano končal (napaka 1005)",
+    "app.audioNotification.audioFailedError1006": "Pogovor je časovno potekel (napaka 1006)",
+    "app.audioNotification.audioFailedError1007": "Povezava je spodletela (Napaka ICE 1007)",
+    "app.audioNotification.audioFailedError1008": "Prenos je spodletel (napaka 1008)",
+    "app.audioNotification.audioFailedError1009": "Ni mogoče pridobiti podatkov strežnika STUN/TURN (napaka 1009)",
+    "app.audioNotification.audioFailedError1010": "Vzpostavljanje povezave je časovno poteklo (napaka ICE 1010)",
+    "app.audioNotification.audioFailedError1011": "Povezava je časovno potekla (napaka ICE 1011)",
+    "app.audioNotification.audioFailedError1012": "Povezava je zaprta (napaka ICE 1012)",
+    "app.audioNotification.audioFailedMessage": "Zvočna povezava je spodletela",
+    "app.audioNotification.mediaFailedMessage": "Ukaz getUserMicMedia je spodletel, ker so dovoljeni le varni viri",
+    "app.audioNotification.closeLabel": "Zapri",
+    "app.audioNotificaion.reconnectingAsListenOnly": "Za opazovalce je uporaba mikrofona onemogočena. Vzpostavljena bo le slušna povezava.",
+    "app.breakoutJoinConfirmation.title": "Pridruži se ločeni skupini",
+    "app.breakoutJoinConfirmation.message": "Ali se želite pridružiti",
+    "app.breakoutJoinConfirmation.confirmDesc": "Pridružite se ločeni skupini",
+    "app.breakoutJoinConfirmation.dismissLabel": "Prekliči",
+    "app.breakoutJoinConfirmation.dismissDesc": "Zapre in zavrne pridruženje v ločeno skupino",
+    "app.breakoutJoinConfirmation.freeJoinMessage": "Izbor ločene skupine za pridruženje",
+    "app.breakoutTimeRemainingMessage": "Preostali čas ločenih skupin: {0}",
+    "app.breakoutWillCloseMessage": "Čas je potekel. Ločene skupine se bodo kmalu razpustile",
+    "app.calculatingBreakoutTimeRemaining": "Poteka preračunavanje preostalega časa ...",
+    "app.audioModal.ariaTitle": "Nastavitve · omogočanje zvoka",
+    "app.audioModal.microphoneLabel": "Vključi mikrofon",
+    "app.audioModal.listenOnlyLabel": "Vključi le slušalke",
+    "app.audioModal.audioChoiceLabel": "Kako želite sodelovati v predstavitvi?",
+    "app.audioModal.iOSBrowser": "Zvok / Video ni podprt",
+    "app.audioModal.iOSErrorDescription": "V tem trenutku zvok in video na brskalniku Chrome za okolje iOS nista podprta.",
+    "app.audioModal.iOSErrorRecommendation": "Priporočamo uporabo Safari iOS.",
+    "app.audioModal.audioChoiceDesc": "Izberite, kako želite priklopiti zvok za to srečanje",
+    "app.audioModal.unsupportedBrowserLabel": "Kaže, da uporabljate brskalnik, ki ni popolnoma podprt. Uporabite ali {0} ali {1} za polno podporo.",
+    "app.audioModal.closeLabel": "Zapri",
+    "app.audioModal.yes": "Da",
+    "app.audioModal.no": "Ne",
+    "app.audioModal.yes.arialabel" : "Odmev je slišen",
+    "app.audioModal.no.arialabel" : "Odmev ni slišen",
+    "app.audioModal.echoTestTitle": "To je zasebni preizkus odmeva. Izgovorite nekaj besed in odgovorite, ali slišite zvok.",
+    "app.audioModal.settingsTitle": "Spremeni zvokovne nastavitve",
+    "app.audioModal.helpTitle": "Prišlo je do napake z uporabo predstavnih naprav",
+    "app.audioModal.helpText": "Ali ste odobrili dostop do mikrofona? Ob povezavi se mora pokazati pogovorno okno za odobritev dostopa do predstavne naprave. Za sodelovanje v pogovoru mora biti ta omogočena. Če ni v tem problem, poskusite zamenjati dovoljenja za dostop do mikrofona med nastavitvami brskalnika.",
+    "app.audioModal.help.noSSL": "Ta stran ne omogoča varne povezave. Za uporabo mikrofona mora biti povezava vzpostavljena prek protokola HTTPS. Stopite v stik s skrbnikom strežnika.",
+    "app.audioModal.help.macNotAllowed": "Kaže, da sistemske nastavitve Mac onemogočajo dostop do mikrofona. Odprite Lastnosti sistema > Varnost in zasebnost > Zasebnost > Mikrofon in preverite, da je brskalnik med odobrenimi programi.",
+    "app.audioModal.audioDialTitle": "Pridružite se z uporabo telefona",
+    "app.audioDial.audioDialDescription": "Pokličite",
+    "app.audioDial.audioDialConfrenceText": "in vpišite kodo PIN konference:",
+    "app.audioModal.autoplayBlockedDesc": "Za predvajanje zvoka je zahtevana odobritev.",
+    "app.audioModal.playAudio": "Predvajaj zvok",
+    "app.audioModal.playAudio.arialabel" : "Predvajaj zvok",
+    "app.audioDial.tipIndicator": "Namig",
+    "app.audioDial.tipMessage": "Pritisnite » 0 « na telefonu za utišanje oziroma povrnitev  zvoka.",
+    "app.audioModal.connecting": "Poteka povezovanje",
+    "app.audioModal.connectingEchoTest": "Povezovanje za preizkus odmeva",
+    "app.audioManager.joinedAudio": "Pridružili ste se zvočni konferenci",
+    "app.audioManager.joinedEcho": "Zagnali ste preizkus odmeva",
+    "app.audioManager.leftAudio": "Zapustili ste se zvočno konferenco",
+    "app.audioManager.reconnectingAudio": "Poteka poskus ponovnega povezovanja zvoka",
+    "app.audioManager.genericError": "Napaka: prišlo je do napake, poskusite znova",
+    "app.audioManager.connectionError": "Napaka: napaka povezave",
+    "app.audioManager.requestTimeout": "Napaka: zahteva je časovno potekla",
+    "app.audioManager.invalidTarget": "Napaka: zahteva je bila posredovana neveljavnemu cilju",
+    "app.audioManager.mediaError": "Napaka: prišlo je do napake med povezovanjem zvočnih naprav",
+    "app.audio.joinAudio": "Omogoči zvok",
+    "app.audio.leaveAudio": "Onemogoči zvok",
+    "app.audio.enterSessionLabel": "Vstopi v predstavitev",
+    "app.audio.playSoundLabel": "Predvajaj zvok",
+    "app.audio.backLabel": "Nazaj",
+    "app.audio.audioSettings.titleLabel": "Izberite nastavitve zvoka",
+    "app.audio.audioSettings.descriptionLabel": "Bodite pozorni na pogovorno okno brskalnika, ki zahteva odobritev souporabe mikrofona.",
+    "app.audio.audioSettings.microphoneSourceLabel": "Uporabljen mikrofon",
+    "app.audio.audioSettings.speakerSourceLabel": "Uporabljeni zvočniki",
+    "app.audio.audioSettings.microphoneStreamLabel": "Glasnost zvokovnega pretoka",
+    "app.audio.audioSettings.retryLabel": "Poskusi znova",
+    "app.audio.listenOnly.backLabel": "Nazaj",
+    "app.audio.listenOnly.closeLabel": "Zapri",
+    "app.audio.permissionsOverlay.title": "Dovoli dostop do mikrofona",
+    "app.audio.permissionsOverlay.hint": "Za sodelovanje v konferenci je treba odobriti uporabo predstavnih naprav ;)",
+    "app.error.removed": "Odstranjeni ste s konference",
+    "app.error.meeting.ended": "Odjavili ste se iz konference",
+    "app.meeting.logout.duplicateUserEjectReason": "Podvojen udeleženec se poskuša udeležiti sestanka",
+    "app.meeting.logout.permissionEjectReason": "Odstranjeni zaradi neupoštevanja dovoljenj",
+    "app.meeting.logout.ejectedFromMeeting": "Odstranjeni ste s sestanka",
+    "app.meeting.logout.validateTokenFailedEjectReason": "Preverjanje overitvenega žetona je spodletelo",
+    "app.meeting.logout.userInactivityEjectReason": "Udeleženec je že predolgo nedejaven",
+    "app.meeting-ended.rating.legendLabel": "Ocena zadovoljstva",
+    "app.meeting-ended.rating.starLabel": "Zvezdica",
+    "app.modal.close": "Zapri",
+    "app.modal.close.description": "Prezre spremembe in zapre okno nastavitev ·",
+    "app.modal.confirm": "Končano",
+    "app.modal.newTab": "(odpre nov zavihek)",
+    "app.modal.confirm.description": "Shrani spremembe in zapre okno nastavitev ·",
+    "app.dropdown.close": "Zapri",
+    "app.error.400": "Slaba zahteva",
+    "app.error.401": "Neoverjeno",
+    "app.error.403": "Odstranjeni ste s sestanka",
+    "app.error.404": "Ni mogoče najti",
+    "app.error.410": "Srečanje je končano",
+    "app.error.500": "Ojoj, prišlo je do napake.",
+    "app.error.leaveLabel": "Znova se prijavite",
+    "app.error.fallback.presentation.title": "Prišlo je do napake",
+    "app.error.fallback.presentation.description": "Vpis je zapisan v dnevnik. Poskusite ponovno naložiti stran.",
+    "app.error.fallback.presentation.reloadButton": "Ponovno naloži",
+    "app.guest.waiting": "Na čakanju za odobritev prijave",
+    "app.userList.guest.waitingUsers": "Čakajoč na udeležence",
+    "app.userList.guest.waitingUsersTitle": "Upravljanje z udeleženci",
+    "app.userList.guest.optionTitle": "Pregled čakajočih udeležencev",
+    "app.userList.guest.allowAllAuthenticated": "Dovoli vsem overjenim",
+    "app.userList.guest.allowAllGuests": "Dovoli vsem gostom",
+    "app.userList.guest.allowEveryone": "Dovoli vsem",
+    "app.userList.guest.denyEveryone": "Zavrni vse",
+    "app.userList.guest.pendingUsers": "Čakajoči udeleženci: {0}",
+    "app.userList.guest.pendingGuestUsers": "Čakajoči gosti: {0}",
+    "app.userList.guest.pendingGuestAlert": "Prijava čaka na vašo odobritev.",
+    "app.userList.guest.rememberChoice": "Zapomni si izbiro",
+    "app.user-info.title": "Pregled mape",
+    "app.toast.breakoutRoomEnded": "Ločene skupine so razpuščene. Pridružite se z zvokom.",
+    "app.toast.chat.public": "Novo javno sporočilo klepeta",
+    "app.toast.chat.private": "Novo zasebno sporočilo klepeta",
+    "app.toast.chat.system": "Sistem",
+    "app.toast.clearedEmoji.label": "Stanje ikone je počiščeno",
+    "app.toast.setEmoji.label": "Stanje ikone je spremenjeno na {0}",
+    "app.toast.meetingMuteOn.label": "Vsi udeleženci so utišani",
+    "app.toast.meetingMuteOff.label": "Utišanje sestanka je onemogočeno",
+    "app.notification.recordingStart": "Predstavitev se sedaj snema",
+    "app.notification.recordingStop": "Predstavitev se ne snema",
+    "app.notification.recordingPaused": "Predstavitev se ne snema več",
+    "app.notification.recordingAriaLabel": "ÄŒas snemanja",
+    "app.notification.userJoinPushAlert": "{0} se je pridružil predstavitvi",
+    "app.shortcut-help.title": "Tipkovne bližnjice",
+    "app.shortcut-help.accessKeyNotAvailable": "Ključ za dostop ni na voljo",
+    "app.shortcut-help.comboLabel": "Tipke",
+    "app.shortcut-help.functionLabel": "Funkcija",
+    "app.shortcut-help.closeLabel": "Zapri",
+    "app.shortcut-help.closeDesc": "Zapre okno nastavitev · tipkovnih bližnjic",
+    "app.shortcut-help.openOptions": "Odpre meni Možnosti",
+    "app.shortcut-help.toggleUserList": "Preklopi seznam udeležencev",
+    "app.shortcut-help.toggleMute": "Utiša / Povrne zvok",
+    "app.shortcut-help.togglePublicChat": "Preklopi okno javnega klepeta (seznam udeležencev mora biti odprt)",
+    "app.shortcut-help.hidePrivateChat": "Skrije zasebni klepet",
+    "app.shortcut-help.closePrivateChat": "Zapre zasebni klepet",
+    "app.shortcut-help.openActions": "Odpre meni Dejanja",
+    "app.shortcut-help.openStatus": "Odpre meni Stanje",
+    "app.shortcut-help.togglePan": "Omogoči zaslonsko kazalko (za govorca)",
+    "app.shortcut-help.nextSlideDesc": "Pokaže naslednjo stran (predstavitev)",
+    "app.shortcut-help.previousSlideDesc": "Pokaže predhodno stran (predstavitev)",
+    "app.lock-viewers.title": "Uporaba možnosti",
+    "app.lock-viewers.description": "Nastavitve omogočajo omejevanje uporabe možnosti med predstavitvijo.",
+    "app.lock-viewers.featuresLable": "Možnost",
+    "app.lock-viewers.lockStatusLabel": "Stanje",
+    "app.lock-viewers.webcamLabel": "Prikaz spletne kamere",
+    "app.lock-viewers.otherViewersWebcamLabel": "Prikaz drugih spletnih kamer",
+    "app.lock-viewers.microphoneLable": "Omogočanje mikrofona",
+    "app.lock-viewers.PublicChatLabel": "Pošiljanje javnih sporočil klepeta",
+    "app.lock-viewers.PrivateChatLable": "Pošiljanje zasebnih sporočil klepeta",
+    "app.lock-viewers.notesLabel": "Uredi skupne beležke",
+    "app.lock-viewers.userListLabel": "Prikaz drugih udeležencev v seznamu",
+    "app.lock-viewers.ariaTitle": "Okno nastavitev · uporabe možnosti",
+    "app.lock-viewers.button.apply": "Uveljavi",
+    "app.lock-viewers.button.cancel": "Prekliči",
+    "app.lock-viewers.locked": "Zaklenjeno",
+    "app.lock-viewers.unlocked": "Odklenjeno",
+    "app.recording.startTitle": "Začni snemanje",
+    "app.recording.stopTitle": "Premor snemanja",
+    "app.recording.resumeTitle": "Nadaljuj snemanje",
+    "app.recording.startDescription": "S ponovnim pritiskom na gumb za snemanje lahko kadarkoli naredite premor snemanja.",
+    "app.recording.stopDescription": "Ali ste prepričani, da želite zaustaviti snemanje. Kadarkoli lahko nadaljujete s ponovnim pritiskom na gumb.",
+    "app.videoPreview.cameraLabel": "Kamera",
+    "app.videoPreview.profileLabel": "Kakovost",
+    "app.videoPreview.cancelLabel": "Prekliči",
+    "app.videoPreview.closeLabel": "Zapri",
+    "app.videoPreview.findingWebcamsLabel": "Iskanje spletnih kamer",
+    "app.videoPreview.startSharingLabel": "Začni predstavitev",
+    "app.videoPreview.webcamOptionLabel": "Izbor spletne kamere",
+    "app.videoPreview.webcamPreviewLabel": "Predogled spletne kamere",
+    "app.videoPreview.webcamSettingsTitle": "Nastavitve spletne kamere",
+    "app.videoPreview.webcamNotFoundLabel": "Spletne kamere ni mogoče najti",
+    "app.videoPreview.profileNotFoundLabel": "Ni podprtega profila kamere",
+    "app.video.joinVideo": "Pokaži spletno kamero",
+    "app.video.leaveVideo": "Skrij spletno kamero",
+    "app.video.iceCandidateError": "Prišlo je do napake med dodajanjem zahteve za povezavo ICE",
+    "app.video.iceConnectionStateError": "Povezava je spodletela (napaka ICE 1107)",
+    "app.video.permissionError": "Prišlo je do napake med uporabo spletne kamere. Preverite dovoljenja.",
+    "app.video.sharingError": "Prišlo je do napake med uporabo spletne kamere",
+    "app.video.notFoundError": "Spletne kamere ni mogoče najti. Prepričajte se, da je povezana.",
+    "app.video.notAllowed": "Za souporabo spletne kamere so zahtevana ustrezna dovoljenja brskalnika",
+    "app.video.notSupportedError": "Video spletne kamere je mogoče povezati le z varnimi viri. Prepričajte se, da je potrdilo SSL veljavno.",
+    "app.video.notReadableError": "Ni mogoče začeti spletnega videa. Prepričajte se, da spletne kamere ne uporablja drug program",
+    "app.video.mediaFlowTimeout1020": "Predstavna vsebina ne doseže strežnika (napaka 1020)",
+    "app.video.suggestWebcamLock": "Ali želite vsiliti nastavitve uporabe spletnih kamer?",
+    "app.video.suggestWebcamLockReason": "(s tem bo izboljšana stabilnost povezave)",
+    "app.video.enable": "Omogoči",
+    "app.video.cancel": "Prekliči",
+    "app.video.swapCam": "Zamenjaj",
+    "app.video.swapCamDesc": "zamenjaj smer spletnih kamer",
+    "app.video.videoLocked": "Uporaba spletne kamere je zaklenjena",
+    "app.video.videoButtonDesc": "Prikaz spletne kamere",
+    "app.video.videoMenu": "Meni videa",
+    "app.video.videoMenuDisabled": "Meni spletne kamere je med nastavitvami onemogočen",
+    "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)",
+    "app.sfu.mediaServerOffline2001": "Predstavni strežnik ni dosegljiv. Poskusite kasneje  (napaka 2001)",
+    "app.sfu.mediaServerNoResources2002": "Predstavni strežnik nima razpoložljivih prostih virov (napaka 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "Vse poslane zahteve predstavnega strežnika časovno potečejo (napaka 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "Prestavni strežnik ne pridobiva ustreznih zahtev za povezavo (napaka ICE 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "Povezava predstavnega strežnika je spodletela (napaka 2022)",
+    "app.sfu.mediaGenericError2200": "Obdelava zahteve na predstavnem strežniku je spodletela (napaka 2200)",
+    "app.sfu.invalidSdp2202":"Odjemalec je ustvaril neveljavno zahtevo predstavne vsebine (napaka SDP 2202)",
+    "app.sfu.noAvailableCodec2203": "Na strežniku ni nameščenega ustreznega kodeka (napaka 2203)",
+    "app.meeting.endNotification.ok.label": "V redu",
+    "app.whiteboard.annotations.poll": "Rezultati ankete so objavljeni",
+    "app.whiteboard.toolbar.tools": "Orodja",
+    "app.whiteboard.toolbar.tools.hand": "Prijem",
+    "app.whiteboard.toolbar.tools.pencil": "Svinčnik",
+    "app.whiteboard.toolbar.tools.rectangle": "Pravokotnik",
+    "app.whiteboard.toolbar.tools.triangle": "Trikotnik",
+    "app.whiteboard.toolbar.tools.ellipse": "Elipsa",
+    "app.whiteboard.toolbar.tools.line": "ÄŒrta",
+    "app.whiteboard.toolbar.tools.text": "Besedilo",
+    "app.whiteboard.toolbar.thickness": "Debelina konice",
+    "app.whiteboard.toolbar.thicknessDisabled": "Debelina konice je onemogočena",
+    "app.whiteboard.toolbar.color": "Barve",
+    "app.whiteboard.toolbar.colorDisabled": "Barve so onemogočene",
+    "app.whiteboard.toolbar.color.black": "ÄŒrna",
+    "app.whiteboard.toolbar.color.white": "Bela",
+    "app.whiteboard.toolbar.color.red": "Rdeča",
+    "app.whiteboard.toolbar.color.orange": "Oranžna",
+    "app.whiteboard.toolbar.color.eletricLime": "Svetlozelena",
+    "app.whiteboard.toolbar.color.lime": "Živozelena",
+    "app.whiteboard.toolbar.color.cyan": "Sinja",
+    "app.whiteboard.toolbar.color.dodgerBlue": "Svetlejša modra",
+    "app.whiteboard.toolbar.color.blue": "Modra",
+    "app.whiteboard.toolbar.color.violet": "Vijolična",
+    "app.whiteboard.toolbar.color.magenta": "Purpurno rdeča",
+    "app.whiteboard.toolbar.color.silver": "Srebrna",
+    "app.whiteboard.toolbar.undo": "Počisti zadnje",
+    "app.whiteboard.toolbar.clear": "Počisti vse",
+    "app.whiteboard.toolbar.multiUserOn": "Omogoči večuporabniško risanje",
+    "app.whiteboard.toolbar.multiUserOff": "Onemogoči večuporabniško risanje",
+    "app.whiteboard.toolbar.fontSize": "Seznam velikosti pisave",
+    "app.feedback.title": "Odjavili ste se iz konference",
+    "app.feedback.subtitle": "Zelo si želimo slišati vaše mnenje o okolju BigBlueButton (izbirno)",
+    "app.feedback.textarea": "Kako lahko še izboljšamo okolje BigBlueButton?",
+    "app.feedback.sendFeedback": "Pošlji povratni odziv",
+    "app.feedback.sendFeedbackDesc": "Pošlji odziv in zapusti sestanek",
+    "app.videoDock.webcamFocusLabel": "Žarišče",
+    "app.videoDock.webcamFocusDesc": "Postavi spletno kamero v žarišče",
+    "app.videoDock.webcamUnfocusLabel": "Odstrani žarišče",
+    "app.videoDock.webcamUnfocusDesc": "Odstrani spletno kamero iz žarišča",
+    "app.videoDock.autoplayBlockedDesc": "Za prikaz spletnih kamer drugih udeležencev je zahtevana odobritev.",
+    "app.videoDock.autoplayAllowLabel": "Pokaži spletne kamere",
+    "app.invitation.title": "Povabilo v skupino",
+    "app.invitation.confirm": "Povabi",
+    "app.createBreakoutRoom.title": "Ločene skupine",
+    "app.createBreakoutRoom.ariaTitle": "Skrij ločene skupine",
+    "app.createBreakoutRoom.breakoutRoomLabel": "Ločene skupine {0}",
+    "app.createBreakoutRoom.generatingURL": "Poteka ustvarjanje naslova URL",
+    "app.createBreakoutRoom.generatedURL": "Ustvarjeno",
+    "app.createBreakoutRoom.duration": "Trajanje {0}",
+    "app.createBreakoutRoom.room": "Skupina {0}",
+    "app.createBreakoutRoom.notAssigned": "Nerazporejeni ({0})",
+    "app.createBreakoutRoom.join": "Pridruži se skupini",
+    "app.createBreakoutRoom.joinAudio": "Omogoči zvok",
+    "app.createBreakoutRoom.returnAudio": "Povrni zvok",
+    "app.createBreakoutRoom.alreadyConnected": "Že v skupini",
+    "app.createBreakoutRoom.confirm": "Ustvari",
+    "app.createBreakoutRoom.record": "Snemaj",
+    "app.createBreakoutRoom.numberOfRooms": "Å tevilo skupin",
+    "app.createBreakoutRoom.durationInMinutes": "Trajanje (minute)",
+    "app.createBreakoutRoom.randomlyAssign": "Razporedi naključno",
+    "app.createBreakoutRoom.endAllBreakouts": "Razpusti vse ločene skupine",
+    "app.createBreakoutRoom.roomName": "{0} (Skupina – {1})",
+    "app.createBreakoutRoom.doneLabel": "Končano",
+    "app.createBreakoutRoom.nextLabel": "Naprej",
+    "app.createBreakoutRoom.minusRoomTime": "Skrajšaj čas ločenih skupin na",
+    "app.createBreakoutRoom.addRoomTime": "Podaljšaj čas ločenih skupin na",
+    "app.createBreakoutRoom.addParticipantLabel": "+ Dodaj udeleženca",
+    "app.createBreakoutRoom.freeJoin": "Dovoli udeležencem, da sami izberejo skupino",
+    "app.createBreakoutRoom.leastOneWarnBreakout": "V vsako skupino je treba postaviti vsaj enega udeleženca",
+    "app.createBreakoutRoom.modalDesc": "Namig: imena udeležencev je mogoče povleči iz skupine v skupino in jih tako poljubno razvrstiti.",
+    "app.createBreakoutRoom.roomTime": "{0} minut",
+    "app.createBreakoutRoom.numberOfRoomsError": "Å tevilo skupin ni veljavno.",
+    "app.externalVideo.start": "Omogoči prikaz novega video posnetka",
+    "app.externalVideo.title": "Pokaži zunanji video posnetek",
+    "app.externalVideo.input": "Zunanji naslov URL videa",
+    "app.externalVideo.urlInput": "Dodaj naslov URL videa",
+    "app.externalVideo.urlError": "Ta naslov URL ni podprt",
+    "app.externalVideo.close": "Zapri",
+    "app.externalVideo.autoPlayWarning": "Začnite s predvajanjem videa za usklajevanje predstavne vsebine",
+    "app.network.connection.effective.slow": "Zaznane so težave s povezljivostjo.",
+    "app.network.connection.effective.slow.help": "Več podrobnosti",
+    "app.externalVideo.noteLabel": "Opomba: zunanjih predvajanih videoposnetkov snemanje ne zajame. Podprto je sicer predvajanje posnetkov YouTube, Vimeo, Instructure Media, Twitch in Daily Motion.",
+    "app.actionsBar.actionsDropdown.shareExternalVideo": "Pokaži zunanji video posnetek",
+    "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Prekini prikazovanje zunanjega video posnetka",
+    "app.iOSWarning.label": "Posodobite sistem na različico iOS 12.2 ali višjo",
+    "app.legacy.unsupportedBrowser": "Kaže, da uporabljate brskalnik, ki ni podprt. Uporabite ali {0} ali {1} za polno podporo.",
+    "app.legacy.upgradeBrowser": "Kaže, da uporabljate starejšo različico sicer podprtega brskalnika. Posodobite ga za polno podporo.",
+    "app.legacy.criosBrowser": "Na sistemu iOS je za polno podporo priporočljivo uporabiti brskalnik Safari."
+
+}
+
diff --git a/bigbluebutton-html5/private/locales/sr.json b/bigbluebutton-html5/private/locales/sr.json
index 45fb10640e36b6f22c70bfc333706ff1a1a57371..5079e2f9011b4c29d69ca62aa22d700de63d3193 100644
--- a/bigbluebutton-html5/private/locales/sr.json
+++ b/bigbluebutton-html5/private/locales/sr.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Vaša prezentacija uskoro počinje ...",
     "app.chat.submitLabel": "Pošaljite poruku",
-    "app.chat.errorMinMessageLength": "Poruka je prekratka za {0} karaktera",
     "app.chat.errorMaxMessageLength": "Poruka je predugačka za {0} karaktera",
     "app.chat.disconnected": "Niste povezani - poruke ne mogu biti poslate",
     "app.chat.locked": "Opcija komunikacije sa učesnicima trenutno nije dozvoljena - poruke ne mogu biti poslate",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Dozvolite pristup",
     "app.media.screenshare.start": "Deljenje ekrana je započeto",
     "app.media.screenshare.end": "Deljenje ekrana je završeno",
-    "app.media.screenshare.safariNotSupported": "Pretraživač Safari trenutno ne podržava deljenje ekrana. Molimo vas da koristite Firefox ili Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Da bismo vam prikazali ekran predavača, treba nam vaše odobrenje.",
     "app.media.screenshare.autoplayAllowLabel": "Pogledajte deljeni ekran",
     "app.screenshare.notAllowed": "Greška: Nije dato odobrenje za pristup ekranu.",
@@ -360,18 +358,6 @@
     "app.actionsBar.currentStatusDesc": "Trenutni status {0}",
     "app.actionsBar.captions.start": "Započnite gledanje titlova",
     "app.actionsBar.captions.stop": "Zaustavite gledanje titlova",
-    "app.audioNotification.audioFailedError1001": "Greška 1001: WebSocket prekid",
-    "app.audioNotification.audioFailedError1002": "Greška 1002: Nemogućnost kreiranja WebSocket konekcije",
-    "app.audioNotification.audioFailedError1003": "Greška 1003: Ova verzija pretraživača nije podržana",
-    "app.audioNotification.audioFailedError1004": "Greška 1004: Problem sa pozivom (razlog={0})",
-    "app.audioNotification.audioFailedError1005": "Greška 1005: Poziv se neočekivano završio",
-    "app.audioNotification.audioFailedError1006": "Greška 1006: Isteklo je vreme za poziv",
-    "app.audioNotification.audioFailedError1007": "Greška 1007: Problem sa ICE pregovorima",
-    "app.audioNotification.audioFailedError1008": "Greška 1008: Greška u prenosu",
-    "app.audioNotification.audioFailedError1009": "Greška 1009: Problem sa STUN/TURN informacijama servera",
-    "app.audioNotification.audioFailedError1010": "Greška 1010: Isteklo je vreme za ICE pregovore",
-    "app.audioNotification.audioFailedError1011": "Greška 1011: Isteklo je vreme za ICE prikupljanje",
-    "app.audioNotification.audioFailedError1012": "Greška 1012: Zatvorena je ICE konekcija",
     "app.audioNotification.audioFailedMessage": "Neuspešno povezivanje zvučne veze",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia je završen neuspešno zbog toga što su samo sigurni uređaji dozvoljeni",
     "app.audioNotification.closeLabel": "Zatvorite",
@@ -542,14 +528,12 @@
     "app.video.joinVideo": "Podelite prikaz sa veb kamere",
     "app.video.leaveVideo": "Zaustavite deljenje prikaza sa veb kamere",
     "app.video.iceCandidateError": "Greška prilikom dodavanja ICE kandidata",
-    "app.video.iceConnectionStateError": "Greška 1107: Neuspelo ICE pregovaranje",
     "app.video.permissionError": "Greška pri deljenju prikaza sa veb kamere. Molimo vas da proverite dozvole",
     "app.video.sharingError": "Greška pri deljenju prikaza sa veb kamere",
     "app.video.notFoundError": "Veb kamera nije nađena. Da li ste sigurni da je kamera priključena?",
     "app.video.notAllowed": "Nedostaje dozvola za prikaz sa veb kamere, uverite ste da ste je u pretraživaču dali ",
     "app.video.notSupportedError": "Prikaz sa veb kamere se može deliti samo iz sigurnih izvora, uverite se da je vaš SSL sertifikat validan",
     "app.video.notReadableError": "Nismo mogli da dobijemo prikaz sa vaše veb kamere. Proverite da li možda neki drugi program koristi veb kameru",
-    "app.video.mediaFlowTimeout1020": "Greška 1020: Multimedijalni fajl nije uspeo da stigne do servera",
     "app.video.suggestWebcamLock": "Primeniti zaključavanje veb kamera gledalaca?",
     "app.video.suggestWebcamLockReason": "(ovo će unaprediti stabilnost predavanja)",
     "app.video.enable": "Omogućite",
@@ -577,16 +561,6 @@
     "app.video.stats.encodeUsagePercent": "Korišćenje enkodera",
     "app.video.stats.currentDelay": "Trenutno kašnjenje",
     "app.fullscreenButton.label": "Postavite {0} na ceo ekran",
-    "app.deskshare.iceConnectionStateError": "Greška 1108: Problem sa ICE konekcijom prilikom deljenja ekrana",
-    "app.sfu.mediaServerConnectionError2000": "Greška 2000: Nemogućnost povezivanja sa multimedijalnim serverom",
-    "app.sfu.mediaServerOffline2001": "Greška 2001: Multimedijalni server nije aktivan. Molimo vas da pokušate ponovo kasnije.",
-    "app.sfu.mediaServerNoResources2002": "Greška 2002: Multimedijalni server nema raspoloživih resursa",
-    "app.sfu.mediaServerRequestTimeout2003": "Greška 2003: Nema odgovora na upite multimedijalnog servera",
-    "app.sfu.serverIceGatheringFailed2021": "Greška 2021: Multimedijalni server ne uspeva da sakupi ICE kandidate",
-    "app.sfu.serverIceGatheringFailed2022": "Greška 2022: Greška u ICE konekcijama multimedijalnog servera",
-    "app.sfu.mediaGenericError2200": "Greška 2200: Multimedijalni server nije uspeo da procesira zahtev",
-    "app.sfu.invalidSdp2202":"Greška 2202: Aplikacija je kreirala pogrešan SDP",
-    "app.sfu.noAvailableCodec2203": "Greška 2203: Server nije uspeo da nađe odgovarajući kodek",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Rezultati ankete su objavljeni",
     "app.whiteboard.toolbar.tools": "Alatke",
diff --git a/bigbluebutton-html5/private/locales/sv_SE.json b/bigbluebutton-html5/private/locales/sv_SE.json
index 0d2ed907a553005b82e86101ca65eb2fc5b7f873..b5e39521039836c325c8ebed838f69807695c59b 100644
--- a/bigbluebutton-html5/private/locales/sv_SE.json
+++ b/bigbluebutton-html5/private/locales/sv_SE.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Din presentation börjar strax ...",
     "app.chat.submitLabel": "Skicka meddelande",
-    "app.chat.errorMinMessageLength": "Meddelandet är {0} tecken för kort",
     "app.chat.errorMaxMessageLength": "Meddelandet är {0} tecken för långt",
     "app.chat.disconnected": "Du är frånkopplad, meddelanden kan inte skickas",
     "app.chat.locked": "Chatten är låst, meddelanden kan inte skickas",
@@ -109,7 +108,6 @@
     "app.media.autoplayAlertDesc": "Tillåta åtkomst",
     "app.media.screenshare.start": "Skärmdelning har startats",
     "app.media.screenshare.end": "Skärmdelning har avslutats",
-    "app.media.screenshare.safariNotSupported": "Skärmdelning stöds förnärvarande inte av Safari. Vänligen använd Firefox eller Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Vi behöver din tillåtelse att visa presentatörens skärm.",
     "app.media.screenshare.autoplayAllowLabel": "Visa delad skärm",
     "app.screenshare.notAllowed": "Fel: Tillåtelse för åtkomstskärm beviljades inte.",
@@ -347,18 +345,6 @@
     "app.actionsBar.currentStatusDesc": "nuvarande status {0}",
     "app.actionsBar.captions.start": "Börja visa dold textning",
     "app.actionsBar.captions.stop": "Sluta visa dold textning",
-    "app.audioNotification.audioFailedError1001": "Fel 1001: WebSocket frånkopplad",
-    "app.audioNotification.audioFailedError1002": "Fel 1002: Det gick inte att göra en WebSocket anslutning",
-    "app.audioNotification.audioFailedError1003": "Fel 1003: Webbläsarversionen stöds inte",
-    "app.audioNotification.audioFailedError1004": "Fel 1004: Misslyckat samtal (orsak={0})",
-    "app.audioNotification.audioFailedError1005": "Fel 1005: Samtalet slutade oväntat",
-    "app.audioNotification.audioFailedError1006": "Fel 1006: Samtalavbrott",
-    "app.audioNotification.audioFailedError1007": "Fel 1007: ICE-förhandling misslyckades",
-    "app.audioNotification.audioFailedError1008": "Fel 1008: Överföring misslyckades",
-    "app.audioNotification.audioFailedError1009": "Fel 1009: Det gick inte att hämta STUN-/TURN-serverinformation",
-    "app.audioNotification.audioFailedError1010": "Fel 1010: ICE-förhandlingstidsavbrott",
-    "app.audioNotification.audioFailedError1011": "Fel 1011: ICE samlaravbrott",
-    "app.audioNotification.audioFailedError1012": "Fel 1012: ICE-anslutningen stängd",
     "app.audioNotification.audioFailedMessage": "Din ljudanslutning kunde inte anslutas",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia misslyckades eftersom endast säkra ursprung är tillåtna",
     "app.audioNotification.closeLabel": "Stäng",
@@ -517,14 +503,12 @@
     "app.video.joinVideo": "Dela webbkamera",
     "app.video.leaveVideo": "Sluta dela webbkamera",
     "app.video.iceCandidateError": "Fel vid att lägga till ICE-kandidat",
-    "app.video.iceConnectionStateError": "Fel 1107: ICE-förhandling misslyckades",
     "app.video.permissionError": "Fel vid delning av webbkamera. Kontrollera behörigheter",
     "app.video.sharingError": "Fel vid delning av webbkamera",
     "app.video.notFoundError": "Det gick inte att hitta webbkameran. Se till att den är ansluten",
     "app.video.notAllowed": "Saknar tillåtelse för delning av webbkamera, var vänlig och kontrollera dina webbläsarbehörigheter",
     "app.video.notSupportedError": "Kan endast dela webbkamera med säkra källor, se till att ditt SSL-certifikat är giltigt",
     "app.video.notReadableError": "Det gick inte att få webbkamera video. Se till att ett annat program inte använder webbkameran",
-    "app.video.mediaFlowTimeout1020": "Fel 1020: Mediet kunde inte nå servern",
     "app.video.suggestWebcamLock": "Förbättra låsinställningen till webbläsare för åhörarna?",
     "app.video.suggestWebcamLockReason": "(detta kommer att förbättra mötesstabiliteten)",
     "app.video.enable": "Aktivera",
@@ -552,16 +536,6 @@
     "app.video.stats.encodeUsagePercent": "Koda användningen",
     "app.video.stats.currentDelay": "Nuvarande fördröjning",
     "app.fullscreenButton.label": "Gör {0} fullskärm",
-    "app.deskshare.iceConnectionStateError": "Fel 1108: ICE-anslutning misslyckades när skärmen delades",
-    "app.sfu.mediaServerConnectionError2000": "Fel 2000: Det går inte att ansluta till mediaservern",
-    "app.sfu.mediaServerOffline2001": "Fel 2001: Mediaservern är offline. Vänligen försök igen senare.",
-    "app.sfu.mediaServerNoResources2002": "Fel 2002: Mediaservern har inga tillgängliga resurser",
-    "app.sfu.mediaServerRequestTimeout2003": "Fel 2003: Media server förfrågningar timeout",
-    "app.sfu.serverIceGatheringFailed2021": "Fel 2021: Mediaservern kan inte samla ICE-kandidater",
-    "app.sfu.serverIceGatheringFailed2022": "Fel 2022: Mediaserver ICE-anslutning misslyckades",
-    "app.sfu.mediaGenericError2200": "Fel 2200: Mediaservern kunde inte behandla förfrågan",
-    "app.sfu.invalidSdp2202":"Fel 2202: Klienten genererade en ogiltig SDP",
-    "app.sfu.noAvailableCodec2203": "Fel 2203: Server kunde inte hitta en lämplig kodek",
     "app.meeting.endNotification.ok.label": "OK",
     "app.whiteboard.annotations.poll": "Omröstningsresultaten publicerades",
     "app.whiteboard.toolbar.tools": "Verktyg",
diff --git a/bigbluebutton-html5/private/locales/th.json b/bigbluebutton-html5/private/locales/th.json
index 81910917c9400c4aa3468193eaf6a5544b96ae8c..e89ed27c66201f5655538743ed155e24fc7b394d 100644
--- a/bigbluebutton-html5/private/locales/th.json
+++ b/bigbluebutton-html5/private/locales/th.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "การนำเสนอของคุณจะเริ่มขึ้นในไม่ช้า",
     "app.chat.submitLabel": "ส่งข้อความ",
-    "app.chat.errorMinMessageLength": "ข้อความ {0} ตัวอักษร(s) สั้นเกินไป",
     "app.chat.errorMaxMessageLength": "ข้อความ {0} ตัวอักษร(s) ยาวเกินไป",
     "app.chat.disconnected": "คุณไม่ได้เชื่อมต่อ, ไม่สามารถส่งข้อความได้",
     "app.chat.locked": "แชทถูกล็อค, ไม่สามารถส่งข้อความได้",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "อนุญาตการเข้าถึง",
     "app.media.screenshare.start": "ได้เริ่มการแชร์หน้าจอแล้ว",
     "app.media.screenshare.end": "สิ้นสุดการแชร์หน้าจอแล้ว",
-    "app.media.screenshare.safariNotSupported": "ขณะนี้ Safari ไม่รองรับการแชร์หน้าจอ กรุณาใช้ Firefox หรือ Google Chrome",
     "app.media.screenshare.autoplayBlockedDesc": "เราต้องการการอนุญาตของคุณเพื่อแสดงหน้าจอของผู้นำเสนอ",
     "app.media.screenshare.autoplayAllowLabel": "ดูหน้าจอที่แชร์",
     "app.screenshare.notAllowed": "ข้อผิดพลาด: ไม่อนุญาตการเข้าถึงหน้าจอ",
@@ -176,8 +174,12 @@
     "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": "Ops การแปลงใช้เวลานานเกินไป",
+    "app.presentationUploder.conversion.pageCountFailed": "ไม่สามารถระบุจำนวนหน้าได้",
     "app.presentationUploder.isDownloadableLabel": "ไม่อนุญาตให้ดาวน์โหลดงานนำเสนอ",
     "app.presentationUploder.isNotDownloadableLabel": "อนุญาตให้ดาวน์โหลดงานนำเสนอ",
     "app.presentationUploder.removePresentationLabel": "ลบงานนำเสนอ",
@@ -360,18 +362,6 @@
     "app.actionsBar.currentStatusDesc": "สถานะปัจจุบัน {0}",
     "app.actionsBar.captions.start": "เริ่มดูคำบรรยายภาพปิด",
     "app.actionsBar.captions.stop": "หยุดดูคำบรรยายภาพที่ปิด",
-    "app.audioNotification.audioFailedError1001": "ข้อผิดพลาด 1001: ตัดการเชื่อมต่อ WebSocket",
-    "app.audioNotification.audioFailedError1002": "ข้อผิดพลาด 1002: ไม่สามารถทำการเชื่อมต่อ WebSocket",
-    "app.audioNotification.audioFailedError1003": "Error 1003: ไม่รองรับเวอร์ชั่นของเบราว์เซอร์",
-    "app.audioNotification.audioFailedError1004": "ข้อผิดพลาด 1004: การโทรล้มเหลว (reason = {0})",
-    "app.audioNotification.audioFailedError1005": "ข้อผิดพลาด 1005: สิ้นสุดการโทรโดยไม่คาดคิด",
-    "app.audioNotification.audioFailedError1006": "ข้อผิดพลาด 1006: หมดเวลา",
-    "app.audioNotification.audioFailedError1007": "ข้อผิดพลาด 1007: การสื่อสาร ICE ล้มเหลว",
-    "app.audioNotification.audioFailedError1008": "ข้อผิดพลาด 1008: การถ่ายโอนล้มเหลว",
-    "app.audioNotification.audioFailedError1009": "ข้อผิดพลาด 1009: ไม่สามารถดึงข้อมูลเซิร์ฟเวอร์ STUN / TURN",
-    "app.audioNotification.audioFailedError1010": "ข้อผิดพลาด 1010: หมดเวลาการสื่อสารกับ ICE",
-    "app.audioNotification.audioFailedError1011": "ข้อผิดพลาด 1011: ICE หมดเวลา",
-    "app.audioNotification.audioFailedError1012": "ข้อผิดพลาด 1012: ปิดการเชื่อมต่อ ICE",
     "app.audioNotification.audioFailedMessage": "การเชื่อมต่อเสียงของคุณล้มเหลวในการเชื่อมต่อ",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia ล้มเหลวเนื่องจากอนุญาตให้มีการสร้างต้นกำเนิดที่ปลอดภัยเท่านั้น",
     "app.audioNotification.closeLabel": "ปิด",
@@ -542,14 +532,12 @@
     "app.video.joinVideo": "แชร์เว็บแคม",
     "app.video.leaveVideo": "หยุดแชร์เว็บแคม",
     "app.video.iceCandidateError": "เกิดข้อผิดพลาดในการเพิ่มตัวเลือก ICE",
-    "app.video.iceConnectionStateError": "ข้อผิดพลาด 1107: การเจรจา ICE ล้มเหลว",
     "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": "เปิดใช้งาน",
@@ -577,16 +565,6 @@
     "app.video.stats.encodeUsagePercent": "ใช้งานการเข้ารหัส",
     "app.video.stats.currentDelay": "หน่วงเวลาปัจจุบัน",
     "app.fullscreenButton.label": "กำหนด {0} เต็มหน้าจอ",
-    "app.deskshare.iceConnectionStateError": "ข้อผิดพลาด 1108: การเชื่อมต่อ ICE ล้มเหลวเมื่อแชร์หน้าจอ",
-    "app.sfu.mediaServerConnectionError2000": "ข้อผิดพลาด 2000: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์สื่อ",
-    "app.sfu.mediaServerOffline2001": "ข้อผิดพลาด 2001: เซิร์ฟเวอร์สื่อออฟไลน์ กรุณาลองใหม่อีกครั้งในภายหลัง.",
-    "app.sfu.mediaServerNoResources2002": "ข้อผิดพลาด 2002: เซิร์ฟเวอร์สื่อไม่มีทรัพยากรที่พร้อมใช้งาน",
-    "app.sfu.mediaServerRequestTimeout2003": "ข้อผิดพลาด 2003: คำขอเซิร์ฟเวอร์สื่อหมดเวลา",
-    "app.sfu.serverIceGatheringFailed2021": "ข้อผิดพลาด 2021: เซิร์ฟเวอร์สื่อไม่สามารถรวบรวมตัวเลือก ICE",
-    "app.sfu.serverIceGatheringFailed2022": "ข้อผิดพลาด 2022: การเชื่อมต่อ ICE ของเซิร์ฟเวอร์สื่อล้มเหลว",
-    "app.sfu.mediaGenericError2200": "ข้อผิดพลาด 2200: เซิร์ฟเวอร์สื่อไม่สามารถดำเนินการตามคำขอ",
-    "app.sfu.invalidSdp2202":"ข้อผิดพลาด 2202: ลูกข่ายสร้าง SDP ที่ไม่ถูกต้อง",
-    "app.sfu.noAvailableCodec2203": "ข้อผิดพลาด 2203: เซิร์ฟเวอร์ไม่พบตัวแปลงสัญญาณที่เหมาะสม",
     "app.meeting.endNotification.ok.label": "ตกลง",
     "app.whiteboard.annotations.poll": "เผยแพร่ผลการสำรวจความคิดเห็นแล้ว",
     "app.whiteboard.toolbar.tools": "เครื่องมือ",
diff --git a/bigbluebutton-html5/private/locales/th_TH.json b/bigbluebutton-html5/private/locales/th_TH.json
index 81910917c9400c4aa3468193eaf6a5544b96ae8c..f21e219988d7df54fdb5385f6c246e16311273aa 100644
--- a/bigbluebutton-html5/private/locales/th_TH.json
+++ b/bigbluebutton-html5/private/locales/th_TH.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "การนำเสนอของคุณจะเริ่มขึ้นในไม่ช้า",
     "app.chat.submitLabel": "ส่งข้อความ",
-    "app.chat.errorMinMessageLength": "ข้อความ {0} ตัวอักษร(s) สั้นเกินไป",
     "app.chat.errorMaxMessageLength": "ข้อความ {0} ตัวอักษร(s) ยาวเกินไป",
     "app.chat.disconnected": "คุณไม่ได้เชื่อมต่อ, ไม่สามารถส่งข้อความได้",
     "app.chat.locked": "แชทถูกล็อค, ไม่สามารถส่งข้อความได้",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "อนุญาตการเข้าถึง",
     "app.media.screenshare.start": "ได้เริ่มการแชร์หน้าจอแล้ว",
     "app.media.screenshare.end": "สิ้นสุดการแชร์หน้าจอแล้ว",
-    "app.media.screenshare.safariNotSupported": "ขณะนี้ Safari ไม่รองรับการแชร์หน้าจอ กรุณาใช้ Firefox หรือ Google Chrome",
     "app.media.screenshare.autoplayBlockedDesc": "เราต้องการการอนุญาตของคุณเพื่อแสดงหน้าจอของผู้นำเสนอ",
     "app.media.screenshare.autoplayAllowLabel": "ดูหน้าจอที่แชร์",
     "app.screenshare.notAllowed": "ข้อผิดพลาด: ไม่อนุญาตการเข้าถึงหน้าจอ",
@@ -360,18 +358,6 @@
     "app.actionsBar.currentStatusDesc": "สถานะปัจจุบัน {0}",
     "app.actionsBar.captions.start": "เริ่มดูคำบรรยายภาพปิด",
     "app.actionsBar.captions.stop": "หยุดดูคำบรรยายภาพที่ปิด",
-    "app.audioNotification.audioFailedError1001": "ข้อผิดพลาด 1001: ตัดการเชื่อมต่อ WebSocket",
-    "app.audioNotification.audioFailedError1002": "ข้อผิดพลาด 1002: ไม่สามารถทำการเชื่อมต่อ WebSocket",
-    "app.audioNotification.audioFailedError1003": "Error 1003: ไม่รองรับเวอร์ชั่นของเบราว์เซอร์",
-    "app.audioNotification.audioFailedError1004": "ข้อผิดพลาด 1004: การโทรล้มเหลว (reason = {0})",
-    "app.audioNotification.audioFailedError1005": "ข้อผิดพลาด 1005: สิ้นสุดการโทรโดยไม่คาดคิด",
-    "app.audioNotification.audioFailedError1006": "ข้อผิดพลาด 1006: หมดเวลา",
-    "app.audioNotification.audioFailedError1007": "ข้อผิดพลาด 1007: การสื่อสาร ICE ล้มเหลว",
-    "app.audioNotification.audioFailedError1008": "ข้อผิดพลาด 1008: การถ่ายโอนล้มเหลว",
-    "app.audioNotification.audioFailedError1009": "ข้อผิดพลาด 1009: ไม่สามารถดึงข้อมูลเซิร์ฟเวอร์ STUN / TURN",
-    "app.audioNotification.audioFailedError1010": "ข้อผิดพลาด 1010: หมดเวลาการสื่อสารกับ ICE",
-    "app.audioNotification.audioFailedError1011": "ข้อผิดพลาด 1011: ICE หมดเวลา",
-    "app.audioNotification.audioFailedError1012": "ข้อผิดพลาด 1012: ปิดการเชื่อมต่อ ICE",
     "app.audioNotification.audioFailedMessage": "การเชื่อมต่อเสียงของคุณล้มเหลวในการเชื่อมต่อ",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia ล้มเหลวเนื่องจากอนุญาตให้มีการสร้างต้นกำเนิดที่ปลอดภัยเท่านั้น",
     "app.audioNotification.closeLabel": "ปิด",
@@ -542,14 +528,12 @@
     "app.video.joinVideo": "แชร์เว็บแคม",
     "app.video.leaveVideo": "หยุดแชร์เว็บแคม",
     "app.video.iceCandidateError": "เกิดข้อผิดพลาดในการเพิ่มตัวเลือก ICE",
-    "app.video.iceConnectionStateError": "ข้อผิดพลาด 1107: การเจรจา ICE ล้มเหลว",
     "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": "เปิดใช้งาน",
@@ -577,16 +561,6 @@
     "app.video.stats.encodeUsagePercent": "ใช้งานการเข้ารหัส",
     "app.video.stats.currentDelay": "หน่วงเวลาปัจจุบัน",
     "app.fullscreenButton.label": "กำหนด {0} เต็มหน้าจอ",
-    "app.deskshare.iceConnectionStateError": "ข้อผิดพลาด 1108: การเชื่อมต่อ ICE ล้มเหลวเมื่อแชร์หน้าจอ",
-    "app.sfu.mediaServerConnectionError2000": "ข้อผิดพลาด 2000: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์สื่อ",
-    "app.sfu.mediaServerOffline2001": "ข้อผิดพลาด 2001: เซิร์ฟเวอร์สื่อออฟไลน์ กรุณาลองใหม่อีกครั้งในภายหลัง.",
-    "app.sfu.mediaServerNoResources2002": "ข้อผิดพลาด 2002: เซิร์ฟเวอร์สื่อไม่มีทรัพยากรที่พร้อมใช้งาน",
-    "app.sfu.mediaServerRequestTimeout2003": "ข้อผิดพลาด 2003: คำขอเซิร์ฟเวอร์สื่อหมดเวลา",
-    "app.sfu.serverIceGatheringFailed2021": "ข้อผิดพลาด 2021: เซิร์ฟเวอร์สื่อไม่สามารถรวบรวมตัวเลือก ICE",
-    "app.sfu.serverIceGatheringFailed2022": "ข้อผิดพลาด 2022: การเชื่อมต่อ ICE ของเซิร์ฟเวอร์สื่อล้มเหลว",
-    "app.sfu.mediaGenericError2200": "ข้อผิดพลาด 2200: เซิร์ฟเวอร์สื่อไม่สามารถดำเนินการตามคำขอ",
-    "app.sfu.invalidSdp2202":"ข้อผิดพลาด 2202: ลูกข่ายสร้าง SDP ที่ไม่ถูกต้อง",
-    "app.sfu.noAvailableCodec2203": "ข้อผิดพลาด 2203: เซิร์ฟเวอร์ไม่พบตัวแปลงสัญญาณที่เหมาะสม",
     "app.meeting.endNotification.ok.label": "ตกลง",
     "app.whiteboard.annotations.poll": "เผยแพร่ผลการสำรวจความคิดเห็นแล้ว",
     "app.whiteboard.toolbar.tools": "เครื่องมือ",
diff --git a/bigbluebutton-html5/private/locales/tr.json b/bigbluebutton-html5/private/locales/tr.json
index db4e496d2dd32985a91639ab5192568c97ee301a..441c94fc856db633bbf9dfce530e5c3aee74d1bc 100644
--- a/bigbluebutton-html5/private/locales/tr.json
+++ b/bigbluebutton-html5/private/locales/tr.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Sunumunuz birazdan baÅŸlayacak...",
     "app.chat.submitLabel": "Mesaj Gönder",
-    "app.chat.errorMinMessageLength": "Mesaj {0} karakter daha kısa",
     "app.chat.errorMaxMessageLength": "Mesaj {0} karakter daha uzun",
     "app.chat.disconnected": "Bağlantınız kesildi, mesaj gönderilemedi",
     "app.chat.locked": "Sohbet kapalı durumda, mesaj gönderilemiyor",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "EriÅŸime izin ver",
     "app.media.screenshare.start": "Ekran paylaşımı başladı",
     "app.media.screenshare.end": "Ekran paylaşımı sonlandı",
-    "app.media.screenshare.safariNotSupported": "Ekran paylaşımı şu anda Safari tarafından desteklenmiyor. Lütfen Firefox veya Google Chrome kullanın.",
     "app.media.screenshare.autoplayBlockedDesc": "Size sunum yapan kişinin ekranını göstermek için izninize ihtiyacımız var.",
     "app.media.screenshare.autoplayAllowLabel": "Paylaşılan ekranı görüntüle",
     "app.screenshare.notAllowed": "Hata: Ekrana eriÅŸim izni verilmedi.",
@@ -176,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Küçük resimler oluşturuluyor ...",
     "app.presentationUploder.conversion.generatedSlides": "Slaytlar oluÅŸturuluyor ...",
     "app.presentationUploder.conversion.generatingSvg": "SVG görselleri üretiliyor ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Sayfa sayısı sınırı aşıldı. Lütfen dosyayı birden fazla dosya olacak şekilde parçalayın.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Ofis belgesi işlenemiyor. Lütfen onun yerine PDF yükleyiniz.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Ofis belgesi işlenemiyor. Lütfen onun yerine PDF yükleyiniz.",
     "app.presentationUploder.conversion.pdfHasBigPage": "PDF dosyasını dönüştüremedik, lütfen optimize etmeyi deneyin",
     "app.presentationUploder.conversion.timeout": "Hata, dönüşüm çok uzun sürdü",
+    "app.presentationUploder.conversion.pageCountFailed": "Sayfa sayısı belirlenemiyor.",
     "app.presentationUploder.isDownloadableLabel": "Sunumun indirilmesine izin verme",
     "app.presentationUploder.isNotDownloadableLabel": "Sunumun indirilmesine izin ver",
     "app.presentationUploder.removePresentationLabel": "Sunumu kaldır",
@@ -360,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "ÅŸimdiki durum {0}",
     "app.actionsBar.captions.start": "Kapalı başlıkları görüntülemeye başla",
     "app.actionsBar.captions.stop": "Altyazıları görüntülemeyi durdur",
-    "app.audioNotification.audioFailedError1001": "Hata 1001: WebSocket bağlantısı koptu",
-    "app.audioNotification.audioFailedError1002": "Hata 1002: WebSocket bağlantısı oluşturulamadı",
-    "app.audioNotification.audioFailedError1003": "Hata 1003: Web tarayıcının sürümü desteklenmiyor",
-    "app.audioNotification.audioFailedError1004": "Hata 1004: Çağrıda başarısızlık (sebep={0})",
-    "app.audioNotification.audioFailedError1005": "Hata 1005: Arama beklenmedik şekilde sonlandı",
-    "app.audioNotification.audioFailedError1006": "Hata 1006: Arama zaman aşımına uğradı",
-    "app.audioNotification.audioFailedError1007": "Hata 1007: ICE Bilgi ve İçerik iletişimi başarısız oldu",
-    "app.audioNotification.audioFailedError1008": "Hata 1008: Aktarım başarısız oldu",
-    "app.audioNotification.audioFailedError1009": "Hata 1009: STUN/TURN sunucu bilgisi algılamadı",
-    "app.audioNotification.audioFailedError1010": "Hata 1010: ICE Bilgi ve İçerik iletişimi zaman aşımına uğradı",
-    "app.audioNotification.audioFailedError1011": "Hata 1011: ICE Bilgi ve İçerik toplanması zaman aşımına uğradı",
-    "app.audioNotification.audioFailedError1012": "Hata 1012: ICE bağlantısı kapalı",
+    "app.audioNotification.audioFailedError1001": "WebSocket bağlantısı koptu (hata 1001)",
+    "app.audioNotification.audioFailedError1002": "WebSocket bağlantısı oluşturulamadı (hata 1002)",
+    "app.audioNotification.audioFailedError1003": "Tarayıcı sürümü desteklenmiyor (hata 1003)",
+    "app.audioNotification.audioFailedError1004": "Arama sırasında hata oluştu (neden={0}) (hata 1004)",
+    "app.audioNotification.audioFailedError1005": "Çağrı beklenmedik bir şekilde sonlandırıldı (hata 1005)",
+    "app.audioNotification.audioFailedError1006": "Çağrı zaman aşımına uğradı (hata 1006)",
+    "app.audioNotification.audioFailedError1007": "Bağlantı hatası (ICE hatası 1007)",
+    "app.audioNotification.audioFailedError1008": "Transfer başarısız (hata 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN/TURN sunucu bilgisi alınamıyor (hata 1009)",
+    "app.audioNotification.audioFailedError1010": "Bağlantı elsıkışması zaman aşımına uğradı (ICE hatası 1010)",
+    "app.audioNotification.audioFailedError1011": "Bağlantı zaman aşımı (ICE 1011 hatası)",
+    "app.audioNotification.audioFailedError1012": "Bağlantı sona erdildi (ICE 1012 hatası)",
     "app.audioNotification.audioFailedMessage": "Ses bağlantınız sağlanamadı",
     "app.audioNotification.mediaFailedMessage": "Yalnızca güvenli kaynaklara izin verildiğinden getUserMicMedia başarısız oldu",
     "app.audioNotification.closeLabel": "Kapat",
@@ -437,7 +439,7 @@
     "app.audio.audioSettings.retryLabel": "Yeniden Dene",
     "app.audio.listenOnly.backLabel": "Geri",
     "app.audio.listenOnly.closeLabel": "Kapat",
-    "app.audio.permissionsOverlay.title": "BigBlueButton'un Medya Cihazlarınızı kullanmasına izin verin",
+    "app.audio.permissionsOverlay.title": "BigBlueButton'un mikrofonunuzu kullanmasına izin verin",
     "app.audio.permissionsOverlay.hint": "Sesli oturuma katılmak için medya cihazlarınızı kullanmamıza izin vermeniz gerekiyor :)",
     "app.error.removed": "Konferanstan uzaklaştırıldınız",
     "app.error.meeting.ended": "Konferanstan ayrıldınız",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "Web kamerası paylaş",
     "app.video.leaveVideo": "Web kamerası paylaşımını durdur",
     "app.video.iceCandidateError": "ICE adayı ekleme hatası",
-    "app.video.iceConnectionStateError": "Hata 1107: ICE anlaşması başarısız oldu",
+    "app.video.iceConnectionStateError": "Bağlantı başarısız (ICE 1107 hatası)",
     "app.video.permissionError": "Web kamerası paylaşılırken hata oluştu. Lütfen izinleri kontrol et",
     "app.video.sharingError": "Kamera paylaşımı hatası",
     "app.video.notFoundError": "Web kamerası bulunamadı. Lütfen bağlı olduğunu kontrol edin.",
     "app.video.notAllowed": "Web kamerasını paylaşma izni eksik, lütfen tarayıcı izinlerinizden emin olun",
     "app.video.notSupportedError": "Web kamerası videosunu yalnızca güvenli kaynaklarla paylaşabilir, SSL sertifikanızın geçerli olduğundan emin olun",
     "app.video.notReadableError": "Web kamerası videosu alınamadı. Lütfen başka bir programın web kamerasını kullanmadığından emin olun",
-    "app.video.mediaFlowTimeout1020": "Hata 1020: medya, sunucuya eriÅŸemedi",
+    "app.video.mediaFlowTimeout1020": "Medya, sunucuya ulaşamıyor (hata 1020)",
     "app.video.suggestWebcamLock": "İzleyicilerin web kamera ayarlarını kilitlemeye zorla",
     "app.video.suggestWebcamLockReason": "(bu, toplantının istikrarını artıracak)",
     "app.video.enable": "EtkinleÅŸtir",
@@ -577,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "Çözümleme kullanımı",
     "app.video.stats.currentDelay": "Mevcut gecikme",
     "app.fullscreenButton.label": "{0} tam ekran yap",
-    "app.deskshare.iceConnectionStateError": "Hata 1108: Ekran paylaşılırken ICE bağlantısı başarısız oldu",
-    "app.sfu.mediaServerConnectionError2000": "Hata 2000: Medya sunucusuna bağlanılamıyor",
-    "app.sfu.mediaServerOffline2001": "Hata 2001: Medya sunucusu çevrimdışı. Lütfen daha sonra tekrar deneyiniz.",
-    "app.sfu.mediaServerNoResources2002": "Hata 2002: Medya sunucusunda uygun kaynak yok",
-    "app.sfu.mediaServerRequestTimeout2003": "Hata 2003: Medya sunucusu istekleri zaman aşımına uğradı",
-    "app.sfu.serverIceGatheringFailed2021": "Hata 2021: Medya sunucusu ICE adaylarını toplayamıyor",
-    "app.sfu.serverIceGatheringFailed2022": "Hata 2022: Medya sunucusu ICE bağlantısı başarısız oldu",
-    "app.sfu.mediaGenericError2200": "Hata 2200: Medya sunucusu isteÄŸi iÅŸleyemedi",
-    "app.sfu.invalidSdp2202":"Hata 2202: İstemci geçersiz bir SDP oluşturdu",
-    "app.sfu.noAvailableCodec2203": "Hata 2203: Sunucu uygun bir codec bileşenini bulamadı",
+    "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.meeting.endNotification.ok.label": "TAMAM",
     "app.whiteboard.annotations.poll": "Anket sonuçları yayınlandı",
     "app.whiteboard.toolbar.tools": "Araçlar",
@@ -666,7 +668,7 @@
     "app.externalVideo.urlInput": "Video URL'i ekle",
     "app.externalVideo.urlError": "Bu video URL’si desteklenmiyor",
     "app.externalVideo.close": "Kapat",
-    "app.externalVideo.autoPlayWarning": "Medya senkronizasyonunu etkinleştirmek için videoyu oynatın",
+    "app.externalVideo.autoPlayWarning": "Medya eşleştirmesini etkinleştirmek için videoyu oynatın",
     "app.network.connection.effective.slow": "Bağlantı sorunlarını tespit ediyoruz",
     "app.network.connection.effective.slow.help": "Daha fazla bilgi",
     "app.externalVideo.noteLabel": "Not: Paylaşılan harici videolar kayıtta görünmez. YouTube, Vimeo, Instructure Media, Twitch ve Daily Motion URL'leri desteklenir.",
diff --git a/bigbluebutton-html5/private/locales/tr_TR.json b/bigbluebutton-html5/private/locales/tr_TR.json
index db4e496d2dd32985a91639ab5192568c97ee301a..2fce64e7fbc67b22e031960a79f6169d3b2f4dd6 100644
--- a/bigbluebutton-html5/private/locales/tr_TR.json
+++ b/bigbluebutton-html5/private/locales/tr_TR.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Sunumunuz birazdan baÅŸlayacak...",
     "app.chat.submitLabel": "Mesaj Gönder",
-    "app.chat.errorMinMessageLength": "Mesaj {0} karakter daha kısa",
     "app.chat.errorMaxMessageLength": "Mesaj {0} karakter daha uzun",
     "app.chat.disconnected": "Bağlantınız kesildi, mesaj gönderilemedi",
     "app.chat.locked": "Sohbet kapalı durumda, mesaj gönderilemiyor",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "EriÅŸime izin ver",
     "app.media.screenshare.start": "Ekran paylaşımı başladı",
     "app.media.screenshare.end": "Ekran paylaşımı sonlandı",
-    "app.media.screenshare.safariNotSupported": "Ekran paylaşımı şu anda Safari tarafından desteklenmiyor. Lütfen Firefox veya Google Chrome kullanın.",
     "app.media.screenshare.autoplayBlockedDesc": "Size sunum yapan kişinin ekranını göstermek için izninize ihtiyacımız var.",
     "app.media.screenshare.autoplayAllowLabel": "Paylaşılan ekranı görüntüle",
     "app.screenshare.notAllowed": "Hata: Ekrana eriÅŸim izni verilmedi.",
@@ -176,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Küçük resimler oluşturuluyor ...",
     "app.presentationUploder.conversion.generatedSlides": "Slaytlar oluÅŸturuluyor ...",
     "app.presentationUploder.conversion.generatingSvg": "SVG görselleri üretiliyor ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Sayfa sayısı sınırı aşıldı. Lütfen dosyayı birden fazla dosya olacak şekilde parçalayın.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Ofis belgesi işlenemiyor. Lütfen onun yerine PDF yükleyiniz.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Ofis belgesi işlenemiyor. Lütfen onun yerine PDF yükleyiniz.",
     "app.presentationUploder.conversion.pdfHasBigPage": "PDF dosyasını dönüştüremedik, lütfen optimize etmeyi deneyin",
     "app.presentationUploder.conversion.timeout": "Hata, dönüşüm çok uzun sürdü",
+    "app.presentationUploder.conversion.pageCountFailed": "Sayfa sayısı belirlenemiyor.",
     "app.presentationUploder.isDownloadableLabel": "Sunumun indirilmesine izin verme",
     "app.presentationUploder.isNotDownloadableLabel": "Sunumun indirilmesine izin ver",
     "app.presentationUploder.removePresentationLabel": "Sunumu kaldır",
@@ -360,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "ÅŸimdiki durum {0}",
     "app.actionsBar.captions.start": "Kapalı başlıkları görüntülemeye başla",
     "app.actionsBar.captions.stop": "Altyazıları görüntülemeyi durdur",
-    "app.audioNotification.audioFailedError1001": "Hata 1001: WebSocket bağlantısı koptu",
-    "app.audioNotification.audioFailedError1002": "Hata 1002: WebSocket bağlantısı oluşturulamadı",
-    "app.audioNotification.audioFailedError1003": "Hata 1003: Web tarayıcının sürümü desteklenmiyor",
-    "app.audioNotification.audioFailedError1004": "Hata 1004: Çağrıda başarısızlık (sebep={0})",
-    "app.audioNotification.audioFailedError1005": "Hata 1005: Arama beklenmedik şekilde sonlandı",
-    "app.audioNotification.audioFailedError1006": "Hata 1006: Arama zaman aşımına uğradı",
-    "app.audioNotification.audioFailedError1007": "Hata 1007: ICE Bilgi ve İçerik iletişimi başarısız oldu",
-    "app.audioNotification.audioFailedError1008": "Hata 1008: Aktarım başarısız oldu",
-    "app.audioNotification.audioFailedError1009": "Hata 1009: STUN/TURN sunucu bilgisi algılamadı",
-    "app.audioNotification.audioFailedError1010": "Hata 1010: ICE Bilgi ve İçerik iletişimi zaman aşımına uğradı",
-    "app.audioNotification.audioFailedError1011": "Hata 1011: ICE Bilgi ve İçerik toplanması zaman aşımına uğradı",
-    "app.audioNotification.audioFailedError1012": "Hata 1012: ICE bağlantısı kapalı",
+    "app.audioNotification.audioFailedError1001": "Websoket bağlantısı kesildi (hata 1001)",
+    "app.audioNotification.audioFailedError1002": "Websoket bağlantısı kurulamıyor (hata 1002)",
+    "app.audioNotification.audioFailedError1003": "Tarayıcı sürümü desteklenmiyor (hata 1003)",
+    "app.audioNotification.audioFailedError1004": "Arama sırasında hata oluştu (neden={0}) (hata 1004)",
+    "app.audioNotification.audioFailedError1005": "Çağrı beklenmedik bir şekilde sonlandırıldı (hata 1005)",
+    "app.audioNotification.audioFailedError1006": "Çağrı zaman aşımına uğradı (hata 1006)",
+    "app.audioNotification.audioFailedError1007": "Bağlantı hatası (ICE hatası 1007)",
+    "app.audioNotification.audioFailedError1008": "Transfer başarısız (hata 1008)",
+    "app.audioNotification.audioFailedError1009": "STUN/TURN sunucu bilgisi alınamıyor (hata 1009)",
+    "app.audioNotification.audioFailedError1010": "Bağlantı elsıkışması zaman aşımına uğradı (ICE hatası 1010)",
+    "app.audioNotification.audioFailedError1011": "Bağlantı zaman aşımına uğradı (ICE hatası 1011)",
+    "app.audioNotification.audioFailedError1012": "Bağlantı kapatıldı (ICE hatası 1012)",
     "app.audioNotification.audioFailedMessage": "Ses bağlantınız sağlanamadı",
     "app.audioNotification.mediaFailedMessage": "Yalnızca güvenli kaynaklara izin verildiğinden getUserMicMedia başarısız oldu",
     "app.audioNotification.closeLabel": "Kapat",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "Web kamerası paylaş",
     "app.video.leaveVideo": "Web kamerası paylaşımını durdur",
     "app.video.iceCandidateError": "ICE adayı ekleme hatası",
-    "app.video.iceConnectionStateError": "Hata 1107: ICE anlaşması başarısız oldu",
+    "app.video.iceConnectionStateError": "Bağlantı başarısız (ICE hatası 1107)",
     "app.video.permissionError": "Web kamerası paylaşılırken hata oluştu. Lütfen izinleri kontrol et",
     "app.video.sharingError": "Kamera paylaşımı hatası",
     "app.video.notFoundError": "Web kamerası bulunamadı. Lütfen bağlı olduğunu kontrol edin.",
     "app.video.notAllowed": "Web kamerasını paylaşma izni eksik, lütfen tarayıcı izinlerinizden emin olun",
     "app.video.notSupportedError": "Web kamerası videosunu yalnızca güvenli kaynaklarla paylaşabilir, SSL sertifikanızın geçerli olduğundan emin olun",
     "app.video.notReadableError": "Web kamerası videosu alınamadı. Lütfen başka bir programın web kamerasını kullanmadığından emin olun",
-    "app.video.mediaFlowTimeout1020": "Hata 1020: medya, sunucuya eriÅŸemedi",
+    "app.video.mediaFlowTimeout1020": "Medya, sunucuya ulaşamıyor (hata 1020)",
     "app.video.suggestWebcamLock": "İzleyicilerin web kamera ayarlarını kilitlemeye zorla",
     "app.video.suggestWebcamLockReason": "(bu, toplantının istikrarını artıracak)",
     "app.video.enable": "EtkinleÅŸtir",
@@ -577,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "Çözümleme kullanımı",
     "app.video.stats.currentDelay": "Mevcut gecikme",
     "app.fullscreenButton.label": "{0} tam ekran yap",
-    "app.deskshare.iceConnectionStateError": "Hata 1108: Ekran paylaşılırken ICE bağlantısı başarısız oldu",
-    "app.sfu.mediaServerConnectionError2000": "Hata 2000: Medya sunucusuna bağlanılamıyor",
-    "app.sfu.mediaServerOffline2001": "Hata 2001: Medya sunucusu çevrimdışı. Lütfen daha sonra tekrar deneyiniz.",
-    "app.sfu.mediaServerNoResources2002": "Hata 2002: Medya sunucusunda uygun kaynak yok",
-    "app.sfu.mediaServerRequestTimeout2003": "Hata 2003: Medya sunucusu istekleri zaman aşımına uğradı",
-    "app.sfu.serverIceGatheringFailed2021": "Hata 2021: Medya sunucusu ICE adaylarını toplayamıyor",
-    "app.sfu.serverIceGatheringFailed2022": "Hata 2022: Medya sunucusu ICE bağlantısı başarısız oldu",
-    "app.sfu.mediaGenericError2200": "Hata 2200: Medya sunucusu isteÄŸi iÅŸleyemedi",
-    "app.sfu.invalidSdp2202":"Hata 2202: İstemci geçersiz bir SDP oluşturdu",
-    "app.sfu.noAvailableCodec2203": "Hata 2203: Sunucu uygun bir codec bileşenini bulamadı",
+    "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.meeting.endNotification.ok.label": "TAMAM",
     "app.whiteboard.annotations.poll": "Anket sonuçları yayınlandı",
     "app.whiteboard.toolbar.tools": "Araçlar",
diff --git a/bigbluebutton-html5/private/locales/uk_UA.json b/bigbluebutton-html5/private/locales/uk_UA.json
index 25591cd47cf4c465a21e01e0886ae9f6aa7c40d9..59448707fc6589543f4e592303a2c852b2de9ded 100644
--- a/bigbluebutton-html5/private/locales/uk_UA.json
+++ b/bigbluebutton-html5/private/locales/uk_UA.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "Ласкаво просимо! Ваша презентація почнеться найближчим часом... ",
     "app.chat.submitLabel": "Надіслати повідомлення",
-    "app.chat.errorMinMessageLength": "Повідомлення із {0} символа(-ів) занадто коротке",
     "app.chat.errorMaxMessageLength": "Повідомлення із {0} символа(-ів) занадто довге",
     "app.chat.disconnected": "Ви від'єднались, повідомлення не можуть бути надіслані",
     "app.chat.locked": "Чат заблокований, повідомлення неможливо надіслати",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Дозволити доступ",
     "app.media.screenshare.start": "Демонстрація екрану розпочалася",
     "app.media.screenshare.end": "Демонстрацію екрану закінчено",
-    "app.media.screenshare.safariNotSupported": "Демонстрація екрану наразі не підтримується Safari. Будь ласка, використовуйте Firefox або Google Chrome.",
     "app.media.screenshare.autoplayBlockedDesc": "Нам потрібен Ваш дозвіл, щоб показати Вам екран ведучого.",
     "app.media.screenshare.autoplayAllowLabel": "Показати екран, який демонструється",
     "app.screenshare.notAllowed": "Помилка: Дозвіл на доступ до екрану не було надано.",
@@ -176,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "Генерування мініатюр...",
     "app.presentationUploder.conversion.generatedSlides": "Слайди генеруються...",
     "app.presentationUploder.conversion.generatingSvg": "Генерування слайдів SVG...",
+    "app.presentationUploder.conversion.pageCountExceeded": "Перевищено кількість сторінок.Будь ласка, розділіть файл на декілька.",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "Не вийшло опрацювати документ Office. Будь ласка завантажте PDF натомість.",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "Не вийшло опрацювати документ Office. Будь ласка завантажте PDF натомість.",
     "app.presentationUploder.conversion.pdfHasBigPage": "Ми не змогли конвертувати PDF файл, будь ласка, спробуйте оптимізувати його",
     "app.presentationUploder.conversion.timeout": "Ой, перетворення займає надто багато часу",
+    "app.presentationUploder.conversion.pageCountFailed": "Не вийшло визначити кількість сторінок.",
     "app.presentationUploder.isDownloadableLabel": "Не дозволяти скачувати презентацію",
     "app.presentationUploder.isNotDownloadableLabel": "Дозволити скачувати презентацію",
     "app.presentationUploder.removePresentationLabel": "Видалити презентацію",
@@ -360,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "нинішній статус {0}",
     "app.actionsBar.captions.start": "Почати перегляд субтитрів",
     "app.actionsBar.captions.stop": "Зупинити перегляд субтитрів",
-    "app.audioNotification.audioFailedError1001": "Помилка 1001: WebSocket відключено",
-    "app.audioNotification.audioFailedError1002": "Помилка 1002: Не вдалось встановити з'єднання WebSocket",
-    "app.audioNotification.audioFailedError1003": "Помилка 1003: Версія браузера не підтримується",
-    "app.audioNotification.audioFailedError1004": "Помилка 1004: Збій виклику",
-    "app.audioNotification.audioFailedError1005": "Помилка 1005: Виклик раптово перервався",
-    "app.audioNotification.audioFailedError1006": "Помилка 1006: Час дзвінка минув",
-    "app.audioNotification.audioFailedError1007": "Помилка 1007: Узгодження ICE не відбулось",
-    "app.audioNotification.audioFailedError1008": "Помилка 1008: Передача не вдалась",
-    "app.audioNotification.audioFailedError1009": "Помилка 1009: Не вдалось отримати STUN/TURN інформацію з серверу",
-    "app.audioNotification.audioFailedError1010": "Помилка 1010: Час узгодження ICE вичерпано",
-    "app.audioNotification.audioFailedError1011": "Помилка 1011: Перевищено час збору ICE",
-    "app.audioNotification.audioFailedError1012": "Помилка 1012: ICE з'єднання закрито",
+    "app.audioNotification.audioFailedError1001": "WebSocket відключено (Помилка 1001)",
+    "app.audioNotification.audioFailedError1002": "Не можу створити WebSocket з'єднання (Помилка 1002)",
+    "app.audioNotification.audioFailedError1003": "Версія браузера не підтримується (Помилка 1003)",
+    "app.audioNotification.audioFailedError1004": "Помилка у виклилику (reason={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": "Закрити",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "Транслювати веб-камеру",
     "app.video.leaveVideo": "Припинити транслювати веб-камеру",
     "app.video.iceCandidateError": "Помилка додавання ICE кандидату",
-    "app.video.iceConnectionStateError": "Помилка 1107: узгодження 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.mediaFlowTimeout1020": "Медіа не досягає сервера (помилка 1020)",
     "app.video.suggestWebcamLock": "Примусово заблокувати веб-камери учасникам?",
     "app.video.suggestWebcamLockReason": "(це підвищить стабільність конференції)",
     "app.video.enable": "Включити",
@@ -577,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "Використання кодуванням",
     "app.video.stats.currentDelay": "Поточна затримка",
     "app.fullscreenButton.label": "{0} на весь екран",
-    "app.deskshare.iceConnectionStateError": "Помилка 1108: при з'єднанні екрана не вдалося підключити ICE",
-    "app.sfu.mediaServerConnectionError2000": "Помилка 2000: неможливо підключитися до медіасервера",
-    "app.sfu.mediaServerOffline2001": "Помилка 2001: медіасервер недоступний. Будь-ласка спробуйте пізніше.",
-    "app.sfu.mediaServerNoResources2002": "Помилка 2002: сервер медіа не має доступних ресурсів",
-    "app.sfu.mediaServerRequestTimeout2003": "Помилка 2003: вийшов час запиту на медіа сервер",
-    "app.sfu.serverIceGatheringFailed2021": "Помилка 2021: медіа сервер не може збирати ICE-кандидатів",
-    "app.sfu.serverIceGatheringFailed2022": "Помилка 2022: Медіа-серверу не вдалося ICE з’єднання ",
-    "app.sfu.mediaGenericError2200": "Помилка 2200: Медіа серверу не вдалось опрацювати запит",
-    "app.sfu.invalidSdp2202":"Помилка 2202: Клієнт створив невірний SDP",
-    "app.sfu.noAvailableCodec2203": "Помилка 2203: сервер не зміг знайти відповідного кодека",
+    "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": "OK",
     "app.whiteboard.annotations.poll": "Результати опитування були опубліковані",
     "app.whiteboard.toolbar.tools": "Інструменти",
diff --git a/bigbluebutton-html5/private/locales/vi.json b/bigbluebutton-html5/private/locales/vi.json
index fb74959d86de521d7112396a0d5644ecd111794c..e702e192ff12e5d34e0eff1470d9ef26edcd2fe1 100644
--- a/bigbluebutton-html5/private/locales/vi.json
+++ b/bigbluebutton-html5/private/locales/vi.json
@@ -1,5 +1,112 @@
 {
-    "app.home.greeting": "Bài thuyết trình của bạn sẽ bắt đầu ngay ..."
+    "app.home.greeting": "Bài thuyết trình của bạn sẽ bắt đầu ngay ...",
+    "app.chat.submitLabel": "Gửi tin nhắn",
+    "app.chat.errorMaxMessageLength": "Tin nhắn có vượt quá {0} ký tự",
+    "app.chat.disconnected": "Kết nối bị gián đoạn, tin nhắn không thể gửi đi",
+    "app.chat.locked": "Chát bị khóa, bạn không thể gửi tin nhắn",
+    "app.chat.inputLabel": "Ná»™i dung cho chat {0}",
+    "app.chat.inputPlaceholder": "Gửi tin nhắn đến {0}",
+    "app.chat.titlePublic": "Chát công khai",
+    "app.chat.titlePrivate": "Chát riêng với {0}",
+    "app.chat.partnerDisconnected": "{0} cuộc trò truyện còn lại",
+    "app.chat.closeChatLabel": "Đóng {0}",
+    "app.chat.hideChatLabel": "Ẩn {0}",
+    "app.chat.moreMessages": "Xem xêm tin nhắn bên dưới",
+    "app.chat.dropdown.options": "Tùy chọn chát",
+    "app.chat.dropdown.clear": "Xóa",
+    "app.chat.dropdown.copy": "Sao chép",
+    "app.chat.dropdown.save": "Lưu lại",
+    "app.chat.label": "Chát",
+    "app.chat.offline": "Ngoại tuyến",
+    "app.chat.emptyLogLabel": "Lịch sử chát rỗng",
+    "app.chat.clearPublicChatMessage": "Lịch sử chát đã được xóa bởi người quản trị",
+    "app.chat.multi.typing": "Nhiều người đang gõ",
+    "app.chat.one.typing": "{0} đang gõ",
+    "app.chat.two.typing": "{0} và{1} đang gõ",
+    "app.captions.label": "Phụ đề",
+    "app.captions.menu.close": "Đóng",
+    "app.captions.menu.start": "Bắt đầu",
+    "app.captions.menu.ariaStart": "Bắt đầu viết phụ đề",
+    "app.captions.menu.ariaStartDesc": "Mở phụ đề ở trình soạn thảo và đóng cửa sổ",
+    "app.captions.menu.select": "Chọn ngôn ngữ",
+    "app.captions.menu.ariaSelect": "Ngôn ngữ của phụ đề",
+    "app.captions.menu.subtitle": "Vui lòng chọn ngôn ngữ và kiểu phụ đề trong phiên làm việc hiện tại của bạn",
+    "app.captions.menu.title": "Phụ đề",
+    "app.captions.menu.fontSize": "Cỡ",
+    "app.captions.menu.fontColor": "Màu chữ",
+    "app.captions.menu.fontFamily": "Phông",
+    "app.captions.menu.backgroundColor": "Màu nền",
+    "app.captions.menu.previewLabel": "Xem trÆ°á»›c",
+    "app.captions.menu.cancelLabel": "Hủy bỏ",
+    "app.captions.pad.hide": "Ẩn phụ đề",
+    "app.captions.pad.tip": "Nhấn phím Esc để mở trình soạn thảo",
+    "app.captions.pad.ownership": "Bỏ qua",
+    "app.captions.pad.ownershipTooltip": "Bạn sẽ được chọn là chủ của {0} phụ đề",
+    "app.captions.pad.interimResult": "Kết quả tạm thời",
+    "app.captions.pad.dictationStart": "Bắt đầu đọc chính tả",
+    "app.captions.pad.dictationStop": "Dừng đọc chính tả",
+    "app.captions.pad.dictationOnDesc": "Bật nhận dạng giọng nói",
+    "app.captions.pad.dictationOffDesc": "Tắt nhận dạng giọng nói",
+    "app.note.title": "Chia sẻ ghi chú",
+    "app.note.label": "Ghi chú",
+    "app.note.hideNoteLabel": "Ẩn ghi chú",
+    "app.user.activityCheck": "Kiểm tra hoạt động của thành viên",
+    "app.user.activityCheck.label": "Kiểm tra nếu thành viên vẫn đang xem trò chuyện ({0})",
+    "app.user.activityCheck.check": "Kiểm tra",
+    "app.note.tipLabel": "Nhấn phím Esc để mở trình soạn thảo",
+    "app.userList.usersTitle": "Thành viên",
+    "app.userList.participantsTitle": "Người tham gia",
+    "app.userList.messagesTitle": "Tin nhắn",
+    "app.userList.notesTitle": "Ghi chú",
+    "app.userList.notesListItem.unreadContent": "Nội dung mới không khả dụng trong phần chia sẻ ghi chú",
+    "app.userList.captionsTitle": "Phụ đề",
+    "app.userList.presenter": "Trình chiếu",
+    "app.userList.you": "Bạn",
+    "app.userList.locked": "Đang khóa",
+    "app.userList.label": "Thành viên",
+    "app.userList.toggleCompactView.label": "Mở kiểu hiển thị",
+    "app.userList.guest": "Khách",
+    "app.userList.menuTitleContext": "Các lựa chọn",
+    "app.userList.chatListItem.unreadSingular": "{0} tin nhắn mới",
+    "app.userList.chatListItem.unreadPlural": "{0} tin nhắn mới",
+    "app.userList.menu.chat.label": "Bắt đầu chát riêng tư",
+    "app.userList.menu.clearStatus.label": "Xóa trạng thái",
+    "app.userList.menu.removeUser.label": "Loại bỏ thành viên",
+    "app.userList.menu.muteUserAudio.label": "Tắt micro thành viên",
+    "app.userList.menu.unmuteUserAudio.label": "Mở micro thành viên",
+    "app.userList.userAriaLabel": "{0} {1} {2} trạng thái {3}",
+    "app.userList.menu.promoteUser.label": "Bổ nhiệm là quản trị",
+    "app.userList.menu.demoteUser.label": "Hạ cấp người xem",
+    "app.userList.menu.unlockUser.label": "Mở khóa {0}",
+    "app.userList.menu.lockUser.label": "Khóa {0}",
+    "app.userList.menu.directoryLookup.label": "Tìm kiếm danh mục",
+    "app.userList.menu.makePresenter.label": "Tạo trình chiếu",
+    "app.userList.userOptions.manageUsersLabel": "Quản lý thành viên",
+    "app.userList.userOptions.muteAllLabel": "Tắt micro tất cả thành viên",
+    "app.userList.userOptions.muteAllDesc": "Tắt micro những người đang trong cuộc trò chuyện",
+    "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 tất cả biểu tượng trạng thái của thành viên",
+    "app.presentationUploder.dismissLabel": "Hủy bỏ",
+    "app.poll.closeLabel": "Đóng",
+    "app.poll.liveResult.usersTitle": "Thành viên",
+    "app.about.dismissLabel": "Hủy bỏ",
+    "app.settings.usersTab.label": "Người tham gia",
+    "app.settings.main.cancel.label": "Hủy bỏ",
+    "app.settings.main.save.label": "Lưu lại",
+    "app.audioNotification.closeLabel": "Đóng",
+    "app.breakoutJoinConfirmation.dismissLabel": "Hủy bỏ",
+    "app.audioModal.closeLabel": "Đóng",
+    "app.audio.listenOnly.closeLabel": "Đóng",
+    "app.modal.close": "Đóng",
+    "app.dropdown.close": "Đóng",
+    "app.user-info.title": "Tìm kiếm danh mục",
+    "app.shortcut-help.closeLabel": "Đóng",
+    "app.lock-viewers.button.cancel": "Hủy bỏ",
+    "app.lock-viewers.locked": "Đang khóa",
+    "app.videoPreview.cancelLabel": "Hủy bỏ",
+    "app.videoPreview.closeLabel": "Đóng",
+    "app.video.cancel": "Hủy bỏ",
+    "app.externalVideo.close": "Đóng"
 
 }
 
diff --git a/bigbluebutton-html5/private/locales/vi_VN.json b/bigbluebutton-html5/private/locales/vi_VN.json
index a7dd4526fea488f89b2f5dff9ae72f08e6e857c1..efc0d805adf1652f523adec573b36eea5dded44b 100644
--- a/bigbluebutton-html5/private/locales/vi_VN.json
+++ b/bigbluebutton-html5/private/locales/vi_VN.json
@@ -1,7 +1,6 @@
 {
     "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 {0} kí tự(s) quá ngắn",
     "app.chat.errorMaxMessageLength": "Thông báo {0} kí tự(s) quá dài",
     "app.chat.disconnected": "Bạn đã mất kết nối, tin nhắn không gửi được",
     "app.chat.locked": "Đã khóa trò chuyện, tin nhắn không gửi được",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "Cho phép truy cập",
     "app.media.screenshare.start": "Chia sẻ màn hình bắt đầu",
     "app.media.screenshare.end": "Chia sẻ màn hình đã tắt",
-    "app.media.screenshare.safariNotSupported": "Chia sẻ màn hình không được hỗ trợ bởi Safari. Vui lòng dùng FireFox hoặc Google Chrome",
     "app.media.screenshare.autoplayBlockedDesc": "Bạn cần phải cho phép để có thể xem được màn hình của người đang trình bày",
     "app.media.screenshare.autoplayAllowLabel": "Xem màn hình chung",
     "app.screenshare.notAllowed": "Lỗi: Chưa cho phép xem màn hình",
@@ -204,16 +202,16 @@
     "app.poll.t": "Đúng",
     "app.poll.f": "Sai",
     "app.poll.tf": "Đúng/Sai",
-    "app.poll.y": "Đồng ý",
+    "app.poll.y": "Có",
     "app.poll.n": "Không",
-    "app.poll.yn": "Đồng ý/Không",
+    "app.poll.yn": "Có / Không",
     "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": "Đúng",
     "app.poll.answer.false": "Sai",
-    "app.poll.answer.yes": "Đồng ý",
+    "app.poll.answer.yes": "Có",
     "app.poll.answer.no": "Không",
     "app.poll.answer.a": "A",
     "app.poll.answer.b": "B",
@@ -258,10 +256,10 @@
     "app.leaveConfirmation.confirmDesc": "Đăng xuất khỏi cuộc họp",
     "app.endMeeting.title": "Cuộc họp kết thúc",
     "app.endMeeting.description": "Bạn thực sự muốn kết thúc phiên hoạt động ?",
-    "app.endMeeting.yesLabel": "Đồng ý",
+    "app.endMeeting.yesLabel": "Có",
     "app.endMeeting.noLabel": "Không",
     "app.about.title": "Giới thiệu",
-    "app.about.version": "Xậy dựng khách hàng:",
+    "app.about.version": "Phiên bản:",
     "app.about.copyright": "Bản quyền:",
     "app.about.confirmLabel": "Đồng ý",
     "app.about.confirmDesc": "Đồng ý",
@@ -353,25 +351,13 @@
     "app.actionsBar.emojiMenu.noneDesc": "Xóa dòng trạng thái của bạn",
     "app.actionsBar.emojiMenu.applauseLabel": "Hoan nghênh",
     "app.actionsBar.emojiMenu.applauseDesc": "Thay đổi trạng thái của bạn thành hoan nghênh",
-    "app.actionsBar.emojiMenu.thumbsUpLabel": "Đồng ý",
-    "app.actionsBar.emojiMenu.thumbsUpDesc": "Thay đổi trạng thái của bạn thành đồng ý",
-    "app.actionsBar.emojiMenu.thumbsDownLabel": "Không đồng ý",
-    "app.actionsBar.emojiMenu.thumbsDownDesc": "Thay đổi trạng thái của bạn thành không đồng ý",
+    "app.actionsBar.emojiMenu.thumbsUpLabel": "Tán thành",
+    "app.actionsBar.emojiMenu.thumbsUpDesc": "Thay đổi trạng thái của bạn thành tán thành",
+    "app.actionsBar.emojiMenu.thumbsDownLabel": "Không tán thành",
+    "app.actionsBar.emojiMenu.thumbsDownDesc": "Thay đổi trạng thái của bạn thành không tán thành",
     "app.actionsBar.currentStatusDesc": "trang thái hiện tại {0}",
     "app.actionsBar.captions.start": "Bắt đầu xem chú thích",
     "app.actionsBar.captions.stop": "Ngừng xem chú thích",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket disconnected",
-    "app.audioNotification.audioFailedError1002": "Error 1002: Could not make a WebSocket connection   ",
-    "app.audioNotification.audioFailedError1003": "Error 1003: Browser version not supported   ",
-    "app.audioNotification.audioFailedError1004": "Error 1004: Failure on call (reason={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: Call ended unexpectedly",
-    "app.audioNotification.audioFailedError1006": "Error 1006: Call timed out ",
-    "app.audioNotification.audioFailedError1007": "Error 1007: ICE negotiation failed",
-    "app.audioNotification.audioFailedError1008": "Error 1008: Transfer failed",
-    "app.audioNotification.audioFailedError1009": "Error 1009: Could not fetch STUN/TURN server information",
-    "app.audioNotification.audioFailedError1010": "Error 1010: ICE negotiation timeout",
-    "app.audioNotification.audioFailedError1011": "Error 1011: ICE gathering timeout",
-    "app.audioNotification.audioFailedError1012": "Error 1012: ICE connection closed",
     "app.audioNotification.audioFailedMessage": "Kết nối âm thanh của bạn bị lỗi",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia không thành công vì chỉ nguồn gốc an toàn mới được cho phép",
     "app.audioNotification.closeLabel": "Đóng",
@@ -388,18 +374,18 @@
     "app.audioModal.ariaTitle": "Tham gia phương thức âm thanh",
     "app.audioModal.microphoneLabel": "Nghe và nói",
     "app.audioModal.listenOnlyLabel": "Chỉ nghe",
-    "app.audioModal.audioChoiceLabel": "Bạn muốn tham gia với hình thức âm thanh như thế nào ?",
+    "app.audioModal.audioChoiceLabel": "Hãy chọn hình thức tham gia:",
     "app.audioModal.iOSBrowser": "Âm thanh/Video không được hô trợ",
     "app.audioModal.iOSErrorDescription": "Âm thanh và video không được hỗ trên Chrome của IOS tại thời điểm hiện tại",
     "app.audioModal.iOSErrorRecommendation": "Chúng tôi khuyên bạn nên dùng Safari iOS",
     "app.audioModal.audioChoiceDesc": "Chọn cách thức tham gia cuộc gọi trong cuộc họp",
     "app.audioModal.unsupportedBrowserLabel": "Có lẽ bạn đang sử dụng trình duyệt không được hỗ trợ đầy đử. Vui lòng sử dụng {0} hoặc {1} để được hỗ trợ tốt nhất",
     "app.audioModal.closeLabel": "Đóng",
-    "app.audioModal.yes": "Đồng ý",
+    "app.audioModal.yes": "Có",
     "app.audioModal.no": "Không",
     "app.audioModal.yes.arialabel" : "Tiếng vọng có thể nghe được",
     "app.audioModal.no.arialabel" : "Tiếng vọng không thể nghe",
-    "app.audioModal.echoTestTitle": "Đây là một bài kiểm tra tiếng vọng. Hãy nói vài từ. Bạn đã nghe âm thanh chưa ?",
+    "app.audioModal.echoTestTitle": "Hệ thống đang kiểm tra thiết bị của bạn. Hãy nói vài từ. Bạn có nghe thấy tiếng của mình không?",
     "app.audioModal.settingsTitle": "Thay đổi cài đặt âm thanh",
     "app.audioModal.helpTitle": "Có một vài vấn đề với thiết bị của bạn",
     "app.audioModal.helpText": "Bạn đã cho phép truy cập vào micrô của bạn? Lưu ý rằng một hộp thoại sẽ xuất hiện khi bạn cố gắng tham gia âm thanh, yêu cầu quyền của thiết bị đa phương tiện, vui lòng chấp nhận điều đó để tham gia hội nghị âm thanh. Nếu đó không phải là trường hợp, hãy thử thay đổi quyền micrô trong cài đặt trình duyệt của bạn.",
@@ -542,14 +528,12 @@
     "app.video.joinVideo": "Chia sẻ webcam",
     "app.video.leaveVideo": "Dừng việc chia sẻ webcam",
     "app.video.iceCandidateError": "Error on adding ICE candidate",
-    "app.video.iceConnectionStateError": "Error 1107: ICE negotiation failed  ",
     "app.video.permissionError": "Error on sharing webcam. Please check permissions",
     "app.video.sharingError": "Error on sharing webcam",
     "app.video.notFoundError": "Không thể tìm thấy webcam. Đảm bảo rằng thiết bị đã kết nối",
     "app.video.notAllowed": "Thiếu quyền chia sẻ webcam, vui lòng đảm bảo quyền truy cập trình duyệt của bạn",
     "app.video.notSupportedError": "Chỉ có thể chia sẻ video webcam với các nguồn an toàn, dảm bảo rằng chứng chỉ SSL của bạn hợp lệ",
     "app.video.notReadableError": "Không thể nhận video webcam. Đảm bảo rằng các chương trình khác đang không sử dụng webcam",
-    "app.video.mediaFlowTimeout1020": "Error 1020: media could not reach the server",
     "app.video.suggestWebcamLock": "Bắt buộc khóa tùy chỉnh webcam của người xem",
     "app.video.suggestWebcamLockReason": "(việc này sẽ giúp buổi họp được ổn định hơn)",
     "app.video.enable": "Cho phép",
@@ -577,16 +561,6 @@
     "app.video.stats.encodeUsagePercent": "Sử dụng mã hóa",
     "app.video.stats.currentDelay": "Sự chậm trễ hiện tại",
     "app.fullscreenButton.label": "Tạo {0} toàn màn hình",
-    "app.deskshare.iceConnectionStateError": "Error 1108: ICE connection failed when sharing screen",
-    "app.sfu.mediaServerConnectionError2000": "Error 2000: Unable to connect to media server",
-    "app.sfu.mediaServerOffline2001": "Error 2001: Media server is offline. Please try again later.",
-    "app.sfu.mediaServerNoResources2002": "Error 2002: Media server has no available resources",
-    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: Media server requests are timing out",
-    "app.sfu.serverIceGatheringFailed2021": "Error 2021: Media server cannot gather ICE candidates",
-    "app.sfu.serverIceGatheringFailed2022": "Error 2022: Media server ICE connection failed",
-    "app.sfu.mediaGenericError2200": "Error 2200: Media server failed to process request",
-    "app.sfu.invalidSdp2202":"Error 2202: Client generated an invalid SDP",
-    "app.sfu.noAvailableCodec2203": "Error 2203: Server could not find an appropriate codec",
     "app.meeting.endNotification.ok.label": "Đồng ý",
     "app.whiteboard.annotations.poll": "Kết quả cuộc thăm dò ý kiến đã được công bố",
     "app.whiteboard.toolbar.tools": "Công cụ",
diff --git a/bigbluebutton-html5/private/locales/zh_CN.json b/bigbluebutton-html5/private/locales/zh_CN.json
index b6f2b73967fa06824790bd1805d8236c604408df..d7817b95eaa2e1661b445a9bf03be345f6af0c28 100644
--- a/bigbluebutton-html5/private/locales/zh_CN.json
+++ b/bigbluebutton-html5/private/locales/zh_CN.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "您的演示即将开始 ...",
     "app.chat.submitLabel": "发送消息",
-    "app.chat.errorMinMessageLength": "消息只有{0}个字符,太短了",
     "app.chat.errorMaxMessageLength": "消息有{0}个字符,太长了",
     "app.chat.disconnected": "您已断开连接,无法发送消息",
     "app.chat.locked": "聊天被锁定,无法发送消息",
@@ -112,7 +111,8 @@
     "app.media.autoplayAlertDesc": "允许访问",
     "app.media.screenshare.start": "屏幕分享已开始",
     "app.media.screenshare.end": "屏幕分享已结束",
-    "app.media.screenshare.safariNotSupported": "Safari浏览器现在还不支持屏幕分享,请换用Firefox或Chrome浏览器。",
+    "app.media.screenshare.unavailable": "屏幕分享不可用",
+    "app.media.screenshare.safariNotSupported": "Safari当前还不支持屏幕分享,请换用Firefox或Chrome浏览器。",
     "app.media.screenshare.autoplayBlockedDesc": "我们需要您的许可才能显示演示者的屏幕。",
     "app.media.screenshare.autoplayAllowLabel": "查看分享屏幕",
     "app.screenshare.notAllowed": "错误:未授予访问屏幕的权限。",
@@ -364,18 +364,18 @@
     "app.actionsBar.currentStatusDesc": "当前状态{0}",
     "app.actionsBar.captions.start": "开始查看隐藏式字幕",
     "app.actionsBar.captions.stop": "停止查看隐藏式字幕",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket disconnected",
-    "app.audioNotification.audioFailedError1002": "Error 1002: Could not make a WebSocket connection",
-    "app.audioNotification.audioFailedError1003": "Error 1003: Browser version not supported",
-    "app.audioNotification.audioFailedError1004": "Error 1004: 呼叫失败 (原因={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: Call ended unexpectedly",
-    "app.audioNotification.audioFailedError1006": "Error 1006: Call timed out",
-    "app.audioNotification.audioFailedError1007": "Error 1007: ICE negotiation failed",
-    "app.audioNotification.audioFailedError1008": "Error 1008: Transfer failed",
-    "app.audioNotification.audioFailedError1009": "Error 1009: Could not fetch STUN/TURN server information",
-    "app.audioNotification.audioFailedError1010": "Error 1010: ICE negotiation timeout",
-    "app.audioNotification.audioFailedError1011": "Error 1011: ICE gathering timeout",
-    "app.audioNotification.audioFailedError1012": "Error 1012: ICE 连接关闭",
+    "app.audioNotification.audioFailedError1001": "WebSocket 断开了(error 1001)",
+    "app.audioNotification.audioFailedError1002": "无法建立 WebSocket 连接 (error 1002)",
+    "app.audioNotification.audioFailedError1003": "不支持的浏览器版本(error 1003)",
+    "app.audioNotification.audioFailedError1004": "呼叫失败 (reason={0}) (error 1004)",
+    "app.audioNotification.audioFailedError1005": "呼叫意外结束 (error 1005)",
+    "app.audioNotification.audioFailedError1006": "呼叫超时 (error 1006)",
+    "app.audioNotification.audioFailedError1007": "连接失败 (ICE error 1007)",
+    "app.audioNotification.audioFailedError1008": "传输失败 (error 1008)",
+    "app.audioNotification.audioFailedError1009": "无法获取STUN/TURN服务器信息 (error 1009)",
+    "app.audioNotification.audioFailedError1010": "连接协商超时 (ICE error 1010)",
+    "app.audioNotification.audioFailedError1011": "连接超时 (ICE error 1011)",
+    "app.audioNotification.audioFailedError1012": "连接已关闭 (ICE error 1012)",
     "app.audioNotification.audioFailedMessage": "您的音频连接失败了",
     "app.audioNotification.mediaFailedMessage": "getUserMicMedia 失败,因为只允许安全的来源",
     "app.audioNotification.closeLabel": "关闭",
@@ -546,14 +546,14 @@
     "app.video.joinVideo": "分享摄像头",
     "app.video.leaveVideo": "停止分享摄像头",
     "app.video.iceCandidateError": "添加ICE候选者时出错",
-    "app.video.iceConnectionStateError": "Error 1107: ICE 协商失败",
+    "app.video.iceConnectionStateError": "连接失败 (ICE error 1107)",
     "app.video.permissionError": "分享摄像头时出错,请检查是否已授权 ",
     "app.video.sharingError": "分享摄像头出错",
     "app.video.notFoundError": "无法找到摄像头。请确认您已安装摄像头",
     "app.video.notAllowed": "无权访问摄像头。请确认您已允许浏览器在本会议系统内访问您的摄像头。",
     "app.video.notSupportedError": "为了保证安全和隐私,只能通过HTTPS连接访问摄像头,请确认本会议系统的SSL证书是有效的。",
     "app.video.notReadableError": "无法访问摄像头视频源,请确认您的摄像头未被其他应用占用。",
-    "app.video.mediaFlowTimeout1020": "Error 1020: 无法连接到媒体服务器 ",
+    "app.video.mediaFlowTimeout1020": "媒体无法连接服务器 (error 1020)",
     "app.video.suggestWebcamLock": "是否对观众的摄像头强制设置锁定?",
     "app.video.suggestWebcamLockReason": "(这将提高会议的稳定性)",
     "app.video.enable": "启用",
@@ -581,16 +581,16 @@
     "app.video.stats.encodeUsagePercent": "编码usage",
     "app.video.stats.currentDelay": "当前延迟",
     "app.fullscreenButton.label": "全屏显示{0}",
-    "app.deskshare.iceConnectionStateError": "Error 1108: 分享屏幕时ICE连接失败",
-    "app.sfu.mediaServerConnectionError2000": "Error 2000: 无法连接到媒体服务器",
-    "app.sfu.mediaServerOffline2001": "Error 2001: 媒体服务器下线了,请稍后再试",
-    "app.sfu.mediaServerNoResources2002": "Error 2002: 媒体服务器没有可用资源了",
-    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: 媒体服务器请求超时",
-    "app.sfu.serverIceGatheringFailed2021": "Error 2021:  媒体服务器无法收集ICE 替补",
-    "app.sfu.serverIceGatheringFailed2022": "Error 2022: 媒体服务器ICE 连接失败",
-    "app.sfu.mediaGenericError2200": "Error 2200:媒体服务器处理请求时失败",
-    "app.sfu.invalidSdp2202":"Error 2202: 客户端生成了无效的SDP",
-    "app.sfu.noAvailableCodec2203": "Error 2203: 服务器找不到合适的编解码器",
+    "app.deskshare.iceConnectionStateError": "分线屏幕时连接失败 (ICE error 1108)",
+    "app.sfu.mediaServerConnectionError2000": "无法连接到媒体服务器 (error 2000)",
+    "app.sfu.mediaServerOffline2001": "媒体服务器脱机。请稍后再试 (error 2001)",
+    "app.sfu.mediaServerNoResources2002": "媒体服务器没有可用资源(error 2002)",
+    "app.sfu.mediaServerRequestTimeout2003": "媒体服务器请求超时(error 2003)",
+    "app.sfu.serverIceGatheringFailed2021": "媒体服务器无法收集连接候选 (ICE error 2021)",
+    "app.sfu.serverIceGatheringFailed2022": "媒体服务器连接失败 (ICE error 2022)",
+    "app.sfu.mediaGenericError2200": "媒体服务器无法处理请求 (error 2200)",
+    "app.sfu.invalidSdp2202":"客户端生成了无效的媒体请求 (SDP error 2202)",
+    "app.sfu.noAvailableCodec2203": "服务器找不到合适的编解码器(error 2203)",
     "app.meeting.endNotification.ok.label": "确认",
     "app.whiteboard.annotations.poll": "投票结果已公布",
     "app.whiteboard.toolbar.tools": "工具",
diff --git a/bigbluebutton-html5/private/locales/zh_TW.json b/bigbluebutton-html5/private/locales/zh_TW.json
index c14c16ee7a1265d1bddcd78f720868692a356b07..9903129ccf52d396c5fe83cc568f1761e27d7876 100644
--- a/bigbluebutton-html5/private/locales/zh_TW.json
+++ b/bigbluebutton-html5/private/locales/zh_TW.json
@@ -1,7 +1,6 @@
 {
     "app.home.greeting": "您的演講將很快開始 ...",
     "app.chat.submitLabel": "發送訊息",
-    "app.chat.errorMinMessageLength": "訊息僅 {0} 個字(數),太短了",
     "app.chat.errorMaxMessageLength": "訊息有 {0} 個字(數),太長了",
     "app.chat.disconnected": "您已經斷線了,訊息無法被送出。",
     "app.chat.locked": "訊息已被鎖定,無法送出。",
@@ -61,7 +60,7 @@
     "app.userList.notesTitle": "筆記",
     "app.userList.notesListItem.unreadContent": "有新內容在「共享筆記」段落中",
     "app.userList.captionsTitle": "字幕",
-    "app.userList.presenter": "主持人",
+    "app.userList.presenter": "簡報者",
     "app.userList.you": "您",
     "app.userList.locked": "已鎖定",
     "app.userList.label": "用戶列表",
@@ -81,7 +80,7 @@
     "app.userList.menu.unlockUser.label": "解除{0}鎖定狀態",
     "app.userList.menu.lockUser.label": "鎖定{0}",
     "app.userList.menu.directoryLookup.label": "目錄查找",
-    "app.userList.menu.makePresenter.label": "設為主持人",
+    "app.userList.menu.makePresenter.label": "設為簡報者",
     "app.userList.userOptions.manageUsersLabel": "管理使用者",
     "app.userList.userOptions.muteAllLabel": "靜音所有參考者",
     "app.userList.userOptions.muteAllDesc": "靜音會議中所有使用者",
@@ -112,7 +111,6 @@
     "app.media.autoplayAlertDesc": "允許存取",
     "app.media.screenshare.start": "畫面分享已開始",
     "app.media.screenshare.end": "畫面分享已結束",
-    "app.media.screenshare.safariNotSupported": "Safari目前不支援畫面分享,請改用Firefox或Chrome。",
     "app.media.screenshare.autoplayBlockedDesc": "我們需要您的許可才能向您顯示主持人畫面。",
     "app.media.screenshare.autoplayAllowLabel": "查看分享畫面",
     "app.screenshare.notAllowed": "錯誤: 未授與畫面存取權限",
@@ -176,8 +174,12 @@
     "app.presentationUploder.conversion.generatingThumbnail": "正在產生縮圖 ...",
     "app.presentationUploder.conversion.generatedSlides": "投影片已產生 ...",
     "app.presentationUploder.conversion.generatingSvg": "正在產生SVG圖片 ...",
+    "app.presentationUploder.conversion.pageCountExceeded": "頁面超出範圍,請拆分成多個文件檔案。",
+    "app.presentationUploder.conversion.officeDocConversionInvalid": "無法處理office文件,請使用PDF取代。",
+    "app.presentationUploder.conversion.officeDocConversionFailed": "無法處理office文件,請使用PDF取代。",
     "app.presentationUploder.conversion.pdfHasBigPage": "我們沒法轉換這個PDF檔,請嚐試優化他。",
     "app.presentationUploder.conversion.timeout": "哎呀,轉移時間花太久了。",
+    "app.presentationUploder.conversion.pageCountFailed": "頁數無法確認",
     "app.presentationUploder.isDownloadableLabel": "不允許簡報被下載",
     "app.presentationUploder.isNotDownloadableLabel": "允許簡報被下載",
     "app.presentationUploder.removePresentationLabel": "移除簡報",
@@ -360,18 +362,18 @@
     "app.actionsBar.currentStatusDesc": "目前狀態 {0}",
     "app.actionsBar.captions.start": "開始觀看隱藏式字幕",
     "app.actionsBar.captions.stop": "停止觀看隱藏式字幕",
-    "app.audioNotification.audioFailedError1001": "Error 1001: WebSocket 斷線了",
-    "app.audioNotification.audioFailedError1002": "Error 1002: 無法建立 WebSocket 連線",
-    "app.audioNotification.audioFailedError1003": "Error 1003: 瀏覽器版本不支援",
-    "app.audioNotification.audioFailedError1004": "Error 1004: 呼叫失敗 (原因={0})",
-    "app.audioNotification.audioFailedError1005": "Error 1005: 呼叫意外結束",
-    "app.audioNotification.audioFailedError1006": "Error 1006: 呼叫逾期",
-    "app.audioNotification.audioFailedError1007": "Error 1007: ICE 溝通失敗",
-    "app.audioNotification.audioFailedError1008": "Error 1008: 轉移失敗",
-    "app.audioNotification.audioFailedError1009": "Error 1009: 無法獲取 STUN/TURN 伺服器資訊",
-    "app.audioNotification.audioFailedError1010": "Error 1010: ICE 談判逾期",
-    "app.audioNotification.audioFailedError1011": "Error 1011: ICE 收取逾期",
-    "app.audioNotification.audioFailedError1012": "Error 1012: ICE 連線關閉",
+    "app.audioNotification.audioFailedError1001": "WebSocket斷線(錯誤 1001)",
+    "app.audioNotification.audioFailedError1002": "無法與WebSocket建立連線(錯誤 1002)",
+    "app.audioNotification.audioFailedError1003": "瀏覽器版本未支援(錯誤 1003)",
+    "app.audioNotification.audioFailedError1004": "呼叫失敗(原因={0})(error 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": "或取用戶麥克風失敗,需為安全來源才能被允許。",
     "app.audioNotification.closeLabel": "關閉",
@@ -542,14 +544,14 @@
     "app.video.joinVideo": "分享網路攝影機",
     "app.video.leaveVideo": "停止分享網路攝影機",
     "app.video.iceCandidateError": "添加ICE候選者時錯誤",
-    "app.video.iceConnectionStateError": "Error 1107: ICE 溝通失敗了",
+    "app.video.iceConnectionStateError": "連線失敗(ICE 錯誤 1107)",
     "app.video.permissionError": "分享網路攝影機時出錯,請確認是否授權",
     "app.video.sharingError": "分享網路攝影機時出錯",
     "app.video.notFoundError": "沒辨法找到網路攝影機,請確認您已安裝網路攝影機",
     "app.video.notAllowed": "無權分享網路攝影機,請確認您的瀏覽器權限設定",
     "app.video.notSupportedError": "網路攝影機分享只能使用安全來源,請確認你的網址為HTTPS。",
     "app.video.notReadableError": "無法取得網路攝影機,請確認其他的程式沒有佔用他。",
-    "app.video.mediaFlowTimeout1020": "Error 1020: 媒體無法連接伺服器",
+    "app.video.mediaFlowTimeout1020": "媒體無法連接伺服器(錯誤 1020)",
     "app.video.suggestWebcamLock": "是否強置鎖定與會者攝影機?",
     "app.video.suggestWebcamLockReason": "(這將提升會議的穩定性)",
     "app.video.enable": "啟用",
@@ -577,16 +579,16 @@
     "app.video.stats.encodeUsagePercent": "編碼使用",
     "app.video.stats.currentDelay": "目前延遲",
     "app.fullscreenButton.label": "全螢幕顯示 {0}",
-    "app.deskshare.iceConnectionStateError": "Error 1108: 分享螢幕時ICE連接失敗",
-    "app.sfu.mediaServerConnectionError2000": "Error 2000: 無法連接媒體伺服器",
-    "app.sfu.mediaServerOffline2001": "Error 2001: 媒體伺服器斷線了. 請稍後再試.",
-    "app.sfu.mediaServerNoResources2002": "Error 2002: 媒體伺服器已沒有可用資源",
-    "app.sfu.mediaServerRequestTimeout2003": "Error 2003: 媒體伺服器要求逾時",
-    "app.sfu.serverIceGatheringFailed2021": "Error 2021: 媒體伺服器無法收集ICE侯選",
-    "app.sfu.serverIceGatheringFailed2022": "Error 2022: 媒體伺服器連線失敗了",
-    "app.sfu.mediaGenericError2200": "Error 2200: 媒體伺服器程序請求失敗",
-    "app.sfu.invalidSdp2202":"Error 2202: 用戶端產生一個無效SDP",
-    "app.sfu.noAvailableCodec2203": "Error 2203: 伺服器無法找到合適的編解碼器",
+    "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侯選 (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": "工具",
diff --git a/bigbluebutton-web/bbb-web.nginx b/bigbluebutton-web/bbb-web.nginx
index b8b331c2994724bc03eadbb52f4ca43152b77046..120d2dcf8af99924bcea9b2e307214ab5d1e2b70 100755
--- a/bigbluebutton-web/bbb-web.nginx
+++ b/bigbluebutton-web/bbb-web.nginx
@@ -42,6 +42,20 @@
 
 		}
 
+		location /bigbluebutton/presentation/download {
+			return 404;
+		}
+
+		location ~ "^/bigbluebutton/presentation/download\/[0-9a-f]+-[0-9]+/[0-9a-f]+-[0-9]+$" {
+			if ($arg_presFilename !~ "^[0-9a-f]+-[0-9]+\.[0-9a-zA-Z]+$") {
+				return 404;
+			}
+			proxy_pass         http://127.0.0.1:8090$uri$is_args$args;
+			proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
+			# Workaround IE refusal to set cookies in iframe
+			add_header P3P 'CP="No P3P policy available"';
+		}
+
 		location = /bigbluebutton/presentation/checkPresentation {
 			proxy_pass         http://127.0.0.1:8090;
 	       		proxy_redirect     default;
diff --git a/bigbluebutton-web/grails-app/conf/application.groovy b/bigbluebutton-web/grails-app/conf/application.groovy
index 19dd40fcdb68ad2416810b99f030bcffc7a80dfe..d0458c989695315101834e7a4ca87d087ab775fc 100755
--- a/bigbluebutton-web/grails-app/conf/application.groovy
+++ b/bigbluebutton-web/grails-app/conf/application.groovy
@@ -29,7 +29,11 @@ grails.mime.types = [
     rss:           'application/rss+xml',
     text:          'text/plain',
     hal:           ['application/hal+json','application/hal+xml'],
-    xml:           ['text/xml', 'application/xml']
+    xml:           ['text/xml', 'application/xml'],
+    png:           'image/png',
+    jpg:           'image/jpg',
+    jpeg:          'image/jpg',
+    gif:           'image/gif'
 ]
 
 // URL Mapping Cache Max Size, defaults to 5000
diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
index bb7f40b54585a5a4f4afbe86030efb209d20e794..5060ebc6d6255a7aa3bb139bc655673fdb92c53c 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
@@ -30,6 +30,7 @@ import org.bigbluebutton.api.domain.Config
 import org.bigbluebutton.api.domain.GuestPolicy
 import org.bigbluebutton.api.domain.Meeting
 import org.bigbluebutton.api.domain.UserSession
+import org.bigbluebutton.api.util.ParamsUtil
 import org.bigbluebutton.api.util.ResponseBuilder
 import org.bigbluebutton.presentation.PresentationUrlDownloadService
 import org.bigbluebutton.presentation.UploadedPresentation
@@ -250,7 +251,7 @@ class ApiController {
     } else {
       errors.missingParamError("fullName");
     }
-    String fullName = params.fullName
+    String fullName = ParamsUtil.stripHTMLTags(params.fullName)
 
     // Do we have a meeting id? If none, complain.
     if (!StringUtils.isEmpty(params.meetingID)) {
@@ -2017,68 +2018,110 @@ class ApiController {
     }
   }
 
-  def processDocumentFromRawBytes(bytes, presFilename, meetingId, current) {
-    def filenameExt = FilenameUtils.getExtension(presFilename);
-    String presentationDir = presentationService.getPresentationDir()
-    def presId = Util.generatePresentationId(presFilename)
-    File uploadDir = presDownloadService.createPresentationDirectory(meetingId, presentationDir, presId)
-    if (uploadDir != null) {
-      def newFilename = Util.createNewFilename(presId, filenameExt)
-      def pres = new File(uploadDir.absolutePath + File.separatorChar + newFilename);
-
-      FileOutputStream fos = new java.io.FileOutputStream(pres)
-      fos.write(bytes)
-      fos.flush()
-      fos.close()
-
-      // Hardcode pre-uploaded presentation to the default presentation window
-      processUploadedFile("DEFAULT_PRESENTATION_POD",
+  def processDocumentFromRawBytes(bytes, presOrigFilename, meetingId, current) {
+    def uploadFailed = false
+    def uploadFailReasons = new ArrayList<String>()
+
+    // Gets the name minus the path from a full fileName.
+    // a/b/c.txt --> c.txt
+    def presFilename =  FilenameUtils.getName(presOrigFilename)
+    def filenameExt = FilenameUtils.getExtension(presOrigFilename)
+    def pres = null
+    def presId = null
+
+    if (presFilename == "" || filenameExt == "") {
+      log.debug("Upload failed. Invalid filename " + presOrigFilename)
+      uploadFailReasons.add("invalid_filename")
+      uploadFailed = true
+    } else {
+      String presentationDir = presentationService.getPresentationDir()
+      presId = Util.generatePresentationId(presFilename)
+
+      File uploadDir = Util.createPresentationDir(meetingId, presentationDir, presId)
+      if (uploadDir != null) {
+        def newFilename = Util.createNewFilename(presId, filenameExt)
+        pres = new File(uploadDir.absolutePath + File.separatorChar + newFilename);
+
+        FileOutputStream fos = new java.io.FileOutputStream(pres)
+        fos.write(bytes)
+        fos.flush()
+        fos.close()
+      } else {
+        log.warn "Upload failed. File Empty."
+        uploadFailReasons.add("failed_to_download_file")
+        uploadFailed = true
+      }
+    }
+
+    // Hardcode pre-uploaded presentation to the default presentation window
+    processUploadedFile("DEFAULT_PRESENTATION_POD",
               meetingId,
               presId,
               presFilename,
               pres,
               current,
-      "preupload-raw-authz-token");
-    }
-
+              "preupload-raw-authz-token",
+              uploadFailed,
+              uploadFailReasons)
   }
 
   def downloadAndProcessDocument(address, meetingId, current, fileName) {
     log.debug("ApiController#downloadAndProcessDocument(${address}, ${meetingId}, ${fileName})");
-    String presFilename;
+    String presOrigFilename;
     if (StringUtils.isEmpty(fileName)) {
-      presFilename = address.tokenize("/")[-1];
+      presOrigFilename = address.tokenize("/")[-1];
     } else {
-      presFilename = fileName;
-    }
-
-    def filenameExt = FilenameUtils.getExtension(presFilename);
-    String presentationDir = presentationService.getPresentationDir()
-
-    def presId = presDownloadService.generatePresentationId(presFilename)
-    File uploadDir = presDownloadService.createPresentationDirectory(meetingId, presentationDir, presId)
-    if (uploadDir != null) {
-      def newFilename = Util.createNewFilename(presId, filenameExt)
-      def newFilePath = uploadDir.absolutePath + File.separatorChar + newFilename
-
-      if (presDownloadService.savePresentation(meetingId, newFilePath, address)) {
-        def pres = new File(newFilePath)
-        // Hardcode pre-uploaded presentation to the default presentation window
-        processUploadedFile("DEFAULT_PRESENTATION_POD",
-                meetingId,
-                presId,
-                presFilename,
-                pres,
-                current,
-                "preupload-download-authz-token");
-      } else {
-        log.error("Failed to download presentation=[${address}], meeting=[${meetingId}], fileName=[${fileName}]")
+      presOrigFilename = fileName;
+    }
+
+    def uploadFailed = false
+    def uploadFailReasons = new ArrayList<String>()
+
+    // Gets the name minus the path from a full fileName.
+    // a/b/c.txt --> c.txt
+    def presFilename =  FilenameUtils.getName(presOrigFilename)
+    def filenameExt = FilenameUtils.getExtension(presOrigFilename)
+    def pres = null
+    def presId
+
+    if (presFilename == "" || filenameExt == "") {
+      log.debug("Upload failed. Invalid filename " + presOrigFilename)
+      uploadFailReasons.add("invalid_filename")
+      uploadFailed = true
+    } else {
+      String presentationDir = presentationService.getPresentationDir()
+      presId = Util.generatePresentationId(presFilename)
+      File uploadDir = Util.createPresentationDir(meetingId, presentationDir, presId)
+      if (uploadDir != null) {
+        def newFilename = Util.createNewFilename(presId, filenameExt)
+        def newFilePath = uploadDir.absolutePath + File.separatorChar + newFilename
+
+        if (presDownloadService.savePresentation(meetingId, newFilePath, address)) {
+          pres = new File(newFilePath)
+        } else {
+          log.error("Failed to download presentation=[${address}], meeting=[${meetingId}], fileName=[${fileName}]")
+          uploadFailReasons.add("failed_to_download_file")
+          uploadFailed = true
+        }
       }
     }
+
+    // Hardcode pre-uploaded presentation to the default presentation window
+    processUploadedFile(
+            "DEFAULT_PRESENTATION_POD",
+            meetingId,
+            presId,
+            presFilename,
+            pres,
+            current,
+            "preupload-download-authz-token",
+            uploadFailed,
+            uploadFailReasons
+    )
   }
 
 
-  def processUploadedFile(podId, meetingId, presId, filename, presFile, current, authzToken) {
+  def processUploadedFile(podId, meetingId, presId, filename, presFile, current, authzToken, uploadFailed, uploadFailReasons ) {
     def presentationBaseUrl = presentationService.presentationBaseUrl
     // TODO add podId
     UploadedPresentation uploadedPres = new UploadedPresentation(podId,
@@ -2087,7 +2130,9 @@ class ApiController {
             filename,
             presentationBaseUrl,
             current,
-    authzToken);
+            authzToken,
+            uploadFailed,
+            uploadFailReasons)
     uploadedPres.setUploadedFile(presFile);
     presentationService.processUploadedPresentation(uploadedPres);
   }
diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
index edce746e1419a0dd82328109326718aac9ff93bb..a65a6b3ce2fea87b2d33cea4bb30f1adbbd74f11 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
@@ -19,6 +19,7 @@
 package org.bigbluebutton.web.controllers
 
 import grails.converters.*
+import org.grails.web.mime.DefaultMimeUtility
 import org.bigbluebutton.api.ParamsProcessorUtil;
 
 import java.nio.charset.StandardCharsets
@@ -33,6 +34,7 @@ class PresentationController {
   MeetingService meetingService
   PresentationService presentationService
   ParamsProcessorUtil paramsProcessorUtil
+  DefaultMimeUtility grailsMimeUtility
 
   def index = {
     render(view: 'upload-file')
@@ -74,73 +76,95 @@ class PresentationController {
     // check if the authorization token provided is valid
     if (null == params.authzToken || !meetingService.authzTokenIsValidAndExpired(params.authzToken)) {
       log.debug "WARNING! AuthzToken=" + params.authzToken + " was not valid in meetingId=" + params.conference
+      response.addHeader("Cache-Control", "no-cache")
+      response.contentType = 'plain/text'
+      response.outputStream << 'invalid auth token'
       return
     }
 
     def meetingId = params.conference
-    def meeting = meetingService.getNotEndedMeetingWithId(meetingId);
-    if (meeting == null) {
-      flash.message = 'meeting is not running'
-      log.debug("Upload failed. No meeting running " + meetingId)
+    if (Util.isMeetingIdValidFormat(meetingId)) {
+      def meeting = meetingService.getNotEndedMeetingWithId(meetingId)
+      if (meeting == null) {
+        log.debug("Upload failed. No meeting running " + meetingId)
+        response.addHeader("Cache-Control", "no-cache")
+        response.contentType = 'plain/text'
+        response.outputStream << 'no-meeting'
+        return
+      }
+    } else {
+      log.debug("Upload failed. Invalid meeting id format " + meetingId)
       response.addHeader("Cache-Control", "no-cache")
       response.contentType = 'plain/text'
       response.outputStream << 'no-meeting';
+      return
     }
 
+    def isDownloadable = params.boolean('is_downloadable') //instead of params.is_downloadable
+    def podId = params.pod_id
+    log.debug "@Default presentation pod" + podId
+
+    def uploadFailed = false
+    def uploadFailReasons = new ArrayList<String>()
+    def presOrigFilename = ""
+    def presFilename = ""
+    def filenameExt = ""
+    def presId = ""
+    def pres = null
+
     def file = request.getFile('fileUpload')
     if (file && !file.empty) {
-      flash.message = 'Your file has been uploaded'
-      def presFilename = file.getOriginalFilename()
-      def filenameExt = FilenameUtils.getExtension(presFilename);
+      presOrigFilename = file.getOriginalFilename()
+      // Gets the name minus the path from a full fileName.
+      // a/b/c.txt --> c.txt
+      presFilename =  FilenameUtils.getName(presOrigFilename)
+      filenameExt = FilenameUtils.getExtension(presFilename)
+    } else {
+      log.warn "Upload failed. File Empty."
+      uploadFailReasons.add("uploaded_file_empty")
+      uploadFailed = true
+    }
+
+    if (presFilename == "" || filenameExt == "") {
+      log.debug("Upload failed. Invalid filename " + presOrigFilename)
+      uploadFailReasons.add("invalid_filename")
+      uploadFailed = true
+    } else {
       String presentationDir = presentationService.getPresentationDir()
-      def presId = Util.generatePresentationId(presFilename)
+      presId = Util.generatePresentationId(presFilename)
       File uploadDir = Util.createPresentationDir(meetingId, presentationDir, presId)
-
       if (uploadDir != null) {
         def newFilename = Util.createNewFilename(presId, filenameExt)
-        def pres = new File(uploadDir.absolutePath + File.separatorChar + newFilename)
+        pres = new File(uploadDir.absolutePath + File.separatorChar + newFilename)
         file.transferTo(pres)
-
-        def isDownloadable = params.boolean('is_downloadable') //instead of params.is_downloadable
-        def podId = params.pod_id
-        log.debug "@Default presentation pod" + podId
-
-        if (isDownloadable) {
-          log.debug "@Creating download directory..."
-          File downloadDir = Util.downloadPresentationDirectory(uploadDir.absolutePath)
-          if (downloadDir != null) {
-            def notValidCharsRegExp = /[^0-9a-zA-Z_\.]/
-            def downloadableFileName = presFilename.replaceAll(notValidCharsRegExp, '-')
-            def downloadableFile = new File(downloadDir.absolutePath + File.separatorChar + downloadableFileName)
-            downloadableFile << pres.newInputStream()
-          }
-        }
-
-        log.debug("processing file upload " + presFilename)
-        def presentationBaseUrl = presentationService.presentationBaseUrl
-        UploadedPresentation uploadedPres = new UploadedPresentation(podId, meetingId, presId,
-            presFilename, presentationBaseUrl, false /* default presentation */,
-                params.authzToken);
-
-        if (isDownloadable) {
-          log.debug "@Setting file to be downloadable..."
-          uploadedPres.setDownloadable();
-        }
-
-        uploadedPres.setUploadedFile(pres);
-        presentationService.processUploadedPresentation(uploadedPres)
-        log.debug("file upload success " + presFilename)
-        response.addHeader("Cache-Control", "no-cache")
-        response.contentType = 'plain/text'
-        response.outputStream << 'upload-success'
       }
-    } else {
-      log.warn "Upload failed. File Empty."
-      flash.message = 'file cannot be empty'
-      response.addHeader("Cache-Control", "no-cache")
-      response.contentType = 'plain/text'
-      response.outputStream << 'file-empty'
     }
+
+    log.debug("processing file upload " + presFilename)
+    def presentationBaseUrl = presentationService.presentationBaseUrl
+    UploadedPresentation uploadedPres = new UploadedPresentation(
+            podId,
+            meetingId,
+            presId,
+            presFilename,
+            presentationBaseUrl,
+            false /* default presentation */,
+            params.authzToken,
+            uploadFailed,
+            uploadFailReasons
+    )
+
+    if (isDownloadable) {
+      log.debug "@Setting file to be downloadable..."
+      uploadedPres.setDownloadable();
+    }
+
+    uploadedPres.setUploadedFile(pres);
+    presentationService.processUploadedPresentation(uploadedPres)
+    log.debug("file upload success " + presFilename)
+    response.addHeader("Cache-Control", "no-cache")
+    response.contentType = 'plain/text'
+    response.outputStream << 'upload-success'
   }
 
   def testConversion = {
@@ -290,24 +314,29 @@ class PresentationController {
     def meetingId = params.meetingId
 
     log.debug "Controller: Download request for $presFilename"
-    String presentationDir = presentationService.getPresentationDir()
 
     InputStream is = null;
     try {
       def pres = meetingService.getDownloadablePresentationFile(meetingId, presId, presFilename)
-      if (pres.exists()) {
+      if (pres != null && pres.exists()) {
         log.debug "Controller: Sending pdf reply for $presFilename"
 
         def bytes = pres.readBytes()
         def responseName = pres.getName();
-        response.addHeader("content-disposition", "filename=" + URLEncoder.encode(responseName, StandardCharsets.UTF_8.name()))
+        def mimeType = grailsMimeUtility.getMimeTypeForURI(responseName)
+        def mimeName = mimeType != null ? mimeType.name : 'application/octet-stream'
+
+        response.contentType = mimeName
+        response.addHeader("content-disposition", "attachment; filename=" + URLEncoder.encode(responseName, StandardCharsets.UTF_8.name()))
         response.addHeader("Cache-Control", "no-cache")
         response.outputStream << bytes;
       } else {
         log.warn "$pres does not exist."
+		response.status = 404
       }
     } catch (IOException e) {
       log.error("Error reading file.\n" + e.getMessage());
+	  response.status = 404
     }
   }
 
diff --git a/bigbluebutton-web/grails-app/services/org/bigbluebutton/web/services/PresentationService.groovy b/bigbluebutton-web/grails-app/services/org/bigbluebutton/web/services/PresentationService.groovy
index 34474c0b1f80933d34c583f121669ad63f66f01d..f10b43302aa35e88a7e42fa0a14adcfac5ea01bf 100755
--- a/bigbluebutton-web/grails-app/services/org/bigbluebutton/web/services/PresentationService.groovy
+++ b/bigbluebutton-web/grails-app/services/org/bigbluebutton/web/services/PresentationService.groovy
@@ -1,21 +1,21 @@
 /**
-* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
-*
-* Copyright (c) 2014 BigBlueButton Inc. and by respective authors (see below).
-*
-* This program is free software; you can redistribute it and/or modify it under the
-* terms of the GNU Lesser General Public License as published by the Free Software
-* Foundation; either version 3.0 of the License, or (at your option) any later
-* version.
-*
-* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
-* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License along
-* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
-*
-*/
+ * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
+ *
+ * Copyright (c) 2014 BigBlueButton Inc. and by respective authors (see below).
+ *
+ * This program is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free Software
+ * Foundation; either version 3.0 of the License, or (at your option) any later
+ * version.
+ *
+ * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along
+ * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
+ *
+ */
 package org.bigbluebutton.web.services
 
 import java.util.concurrent.*;
@@ -25,7 +25,7 @@ import org.bigbluebutton.presentation.UploadedPresentation
 
 class PresentationService {
 
-    static transactional = false
+	static transactional = false
 	DocumentConversionService documentConversionService
 	def presentationDir
 	def testConferenceMock
@@ -35,18 +35,18 @@ class PresentationService {
 	def defaultUploadedPresentation
 	def presentationBaseUrl
 
-  def deletePresentation = {conf, room, filename ->
-    		def directory = new File(roomDirectory(conf, room).absolutePath + File.separatorChar + filename)
-    		deleteDirectory(directory)
+	def deletePresentation = {conf, room, filename ->
+		def directory = new File(roomDirectory(conf, room).absolutePath + File.separatorChar + filename)
+		deleteDirectory(directory)
 	}
 
 	def deleteDirectory = {directory ->
-    log.debug "delete {}" directory
-    /**
+		log.debug "delete {}" directory
+		/**
 		 * Go through each directory and check if it's not empty.
 		 * We need to delete files inside a directory before a
 		 * directory can be deleted.
-		**/
+		 **/
 		File[] files = directory.listFiles();
 		for (int i = 0; i < files.length; i++) {
 			if (files[i].isDirectory()) {
@@ -72,22 +72,22 @@ class PresentationService {
 		return presentationsList
 	}
 
-  def getPresentationDir = {
-    return presentationDir
-  }
+	def getPresentationDir = {
+		return presentationDir
+	}
 
-    def processUploadedPresentation = {uploadedPres ->
-        // Run conversion on another thread.
-        Timer t = new Timer(uploadedPres.getName(), false)
+	def processUploadedPresentation = {uploadedPres ->
+		// Run conversion on another thread.
+		Timer t = new Timer(uploadedPres.getName(), false)
 
-        t.runAfter(5000) {
-            try {
-                documentConversionService.processDocument(uploadedPres)
-            } finally {
-            t.cancel()
-            }
-        }
-    }
+		t.runAfter(5000) {
+			try {
+				documentConversionService.processDocument(uploadedPres)
+			} finally {
+				t.cancel()
+			}
+		}
+	}
 
 	def showSlide(String conf, String room, String presentationName, String id) {
 		new File(roomDirectory(conf, room).absolutePath + File.separatorChar + presentationName + File.separatorChar + "slide-${id}.swf")
@@ -103,7 +103,7 @@ class PresentationService {
 
 	def showThumbnail = {conf, room, presentationName, thumb ->
 		def thumbFile = roomDirectory(conf, room).absolutePath + File.separatorChar + presentationName + File.separatorChar +
-					"thumbnails" + File.separatorChar + "thumb-${thumb}.png"
+				"thumbnails" + File.separatorChar + "thumb-${thumb}.png"
 		log.debug "showing $thumbFile"
 
 		new File(thumbFile)
@@ -119,7 +119,7 @@ class PresentationService {
 
 	def showTextfile = {conf, room, presentationName, textfile ->
 		def txt = roomDirectory(conf, room).absolutePath + File.separatorChar + presentationName + File.separatorChar +
-					"textfiles" + File.separatorChar + "slide-${textfile}.txt"
+				"textfiles" + File.separatorChar + "slide-${textfile}.txt"
 		log.debug "showing $txt"
 
 		new File(txt)
@@ -141,9 +141,9 @@ class PresentationService {
 		textfilesDir.listFiles().length
 	}
 
-  def roomDirectory = {conf, room ->
-      return new File(presentationDir + File.separatorChar + conf + File.separatorChar + room)
-  }
+	def roomDirectory = {conf, room ->
+		return new File(presentationDir + File.separatorChar + conf + File.separatorChar + room)
+	}
 
 	def testConversionProcess() {
 		File presDir = new File(roomDirectory(testConferenceMock, testRoomMock).absolutePath + File.separatorChar + testPresentationName)
@@ -174,7 +174,7 @@ class PresentationService {
 import java.io.FilenameFilter;
 import java.io.File;
 class SvgFilter implements FilenameFilter {
-    public boolean accept(File dir, String name) {
-        return (name.endsWith(".svg"));
-    }
+	public boolean accept(File dir, String name) {
+		return (name.endsWith(".svg"));
+	}
 }
diff --git a/bigbluebutton-web/run-prod.sh b/bigbluebutton-web/run-prod.sh
index 37dc444affa5517dc91bf601194c982e5d1571a4..0db15d92fbbb2e1ea6eaa1f12f87ee1bd92c23dc 100755
--- a/bigbluebutton-web/run-prod.sh
+++ b/bigbluebutton-web/run-prod.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-java -Dgrails.env=prod -Dserver.port=8090 -Xms384m -Xmx384m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/bigbluebutton/diagnostics -cp WEB-INF/lib/*:/:WEB-INF/classes/:. org.springframework.boot.loader.WarLauncher
+java -Dgrails.env=prod -Dserver.address=127.0.0.1 -Dserver.port=8090 -Xms384m -Xmx384m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/bigbluebutton/diagnostics -cp WEB-INF/lib/*:/:WEB-INF/classes/:. org.springframework.boot.loader.WarLauncher
 
diff --git a/record-and-playback/core/lib/recordandplayback.rb b/record-and-playback/core/lib/recordandplayback.rb
index c401880063429dd12d0c9788c246151738e32e09..0a5b1506f272785510a28323eb278bb93bf0e4cf 100644
--- a/record-and-playback/core/lib/recordandplayback.rb
+++ b/record-and-playback/core/lib/recordandplayback.rb
@@ -35,6 +35,7 @@ require 'find'
 require 'rubygems'
 require 'net/http'
 require 'journald/logger'
+require 'fnv'
 
 module BigBlueButton
   class MissingDirectoryException < RuntimeError
@@ -235,6 +236,11 @@ module BigBlueButton
     r.split("-")[1].to_i / 1000
   end
 
+  # Notes id will be an 8-sized hash string based on the meeting id
+  def self.get_notes_id(meeting_id)
+    FNV.new.fnv1a_32(meeting_id).to_s(16).rjust(8, '0')
+  end
+
   def self.done_to_timestamp(r)
     BigBlueButton.record_id_to_timestamp(File.basename(r, ".done"))
   end
diff --git a/record-and-playback/core/lib/recordandplayback/events_archiver.rb b/record-and-playback/core/lib/recordandplayback/events_archiver.rb
index 5b6516d8461ae52a665df66eabcdddfa0c441025..9b1198fe66bd2ad50659f91e97f63853c7b91130 100755
--- a/record-and-playback/core/lib/recordandplayback/events_archiver.rb
+++ b/record-and-playback/core/lib/recordandplayback/events_archiver.rb
@@ -226,6 +226,12 @@ module BigBlueButton
       @redis = redis
     end
 
+    # Apply a cleanup that removes certain ranges of special
+    # control characters from user-provided text
+    def strip_control_chars(str)
+      str.tr("\x00-\x08\x0B\x0C\x0E-\x1F\x7F", '')
+    end
+
     def store_events(meeting_id, events_file, break_timestamp)
       version = BigBlueButton.read_props["bbb_version"]
 
@@ -258,9 +264,9 @@ module BigBlueButton
         recording << meeting
       end
       meeting['id'] = meeting_id
-      meeting['externalId'] = meeting_metadata[MEETINGID]
-      meeting['name'] = meeting_metadata[MEETINGNAME]
-      meeting['breakout'] = meeting_metadata[ISBREAKOUT]
+      meeting['externalId'] = strip_control_chars(meeting_metadata[MEETINGID])
+      meeting['name'] = strip_control_chars(meeting_metadata[MEETINGNAME])
+      meeting['breakout'] = strip_control_chars(meeting_metadata[ISBREAKOUT])
 
       # Fill in/update the top-level metadata element
       if metadata.nil?
@@ -268,7 +274,7 @@ module BigBlueButton
         recording << metadata
       end
       meeting_metadata.each do |k, v|
-        metadata[k] = v
+        metadata[strip_control_chars(k)] = strip_control_chars(v)
       end
 
       # Fill in/update the top-level breakout element
@@ -279,7 +285,7 @@ module BigBlueButton
         end
         breakout_metadata = @redis.breakout_metadata_for(meeting_id)
         breakout_metadata.each do |k, v|
-          breakout[k] = v
+          breakout[strip_control_chars(k)] = strip_control_chars(v)
         end
       end
 
@@ -315,9 +321,7 @@ module BigBlueButton
               # directly into the event
               event << v
             else
-              # Apply a cleanup that removes certain ranges of special
-              # control characters from user-provided text
-              event << events_doc.create_element(k, v.tr("\x00-\x08\x0B\x0C\x0E-\x1F\x7F",''))
+              event << events_doc.create_element(k, strip_control_chars(v))
             end
           end
         end
diff --git a/record-and-playback/core/scripts/archive/archive.rb b/record-and-playback/core/scripts/archive/archive.rb
index def40fdbb3e46022344efa733daa02d411c1edd6..ea57e6ffa77584c034b499751b6a0416f5b7f8c3 100755
--- a/record-and-playback/core/scripts/archive/archive.rb
+++ b/record-and-playback/core/scripts/archive/archive.rb
@@ -21,7 +21,6 @@ require File.expand_path('../../../lib/recordandplayback', __FILE__)
 require 'logger'
 require 'trollop'
 require 'yaml'
-require 'fnv'
 
 AUDIO_ARCHIVE_FORMAT = {
   extension: 'opus',
@@ -50,7 +49,7 @@ def archive_notes(meeting_id, notes_endpoint, notes_formats, raw_archive_dir)
   BigBlueButton.logger.info("Archiving notes for #{meeting_id}")
   notes_dir = "#{raw_archive_dir}/#{meeting_id}/notes"
   FileUtils.mkdir_p(notes_dir)
-  notes_id = FNV.new.fnv1a_32(meeting_id).to_s(16)
+  notes_id = BigBlueButton.get_notes_id(meeting_id)
 
   tmp_note = "#{notes_dir}/tmp_note.txt"
   BigBlueButton.try_download("#{notes_endpoint}/#{notes_id}/export/txt", tmp_note)
@@ -100,6 +99,13 @@ def archive_audio(meeting_id, audio_dir, raw_archive_dir)
   end
 end
 
+def delete_audio(meeting_id, audio_dir)
+  BigBlueButton.logger.info("Deleting audio #{audio_dir}/#{meeting_id}-*.*")
+  Dir.glob("#{audio_dir}/#{meeting_id}-*.*").each do |audio_file|
+    FileUtils.rm_f(audio_file)
+  end
+end
+
 def archive_directory(source, dest)
   BigBlueButton.logger.info("Archiving contents of #{source}")
   FileUtils.mkdir_p(dest)
@@ -187,18 +193,33 @@ BigBlueButton.logger = Logger.new("#{log_dir}/archive-#{meeting_id}.log", 'daily
 target_dir = "#{raw_archive_dir}/#{meeting_id}"
 FileUtils.mkdir_p target_dir
 archive_events(meeting_id, redis_host, redis_port, redis_password, raw_archive_dir, break_timestamp)
+# FreeSWITCH Audio files
 archive_audio(meeting_id, audio_dir, raw_archive_dir)
+# Etherpad notes
 archive_notes(meeting_id, notes_endpoint, notes_formats, raw_archive_dir)
-archive_directory("#{presentation_dir}/#{meeting_id}/#{meeting_id}",
-                  "#{target_dir}/presentation")
-archive_directory("#{screenshare_dir}/#{meeting_id}",
-                  "#{target_dir}/deskshare")
-archive_directory("#{video_dir}/#{meeting_id}",
-                  "#{target_dir}/video/#{meeting_id}")
-archive_directory("#{kurento_screenshare_dir}/#{meeting_id}",
-                  "#{target_dir}/deskshare")
-archive_directory("#{kurento_video_dir}/#{meeting_id}",
-                  "#{target_dir}/video/#{meeting_id}")
+# Presentation files
+archive_directory("#{presentation_dir}/#{meeting_id}/#{meeting_id}", "#{target_dir}/presentation")
+# Red5 media
+archive_directory("#{screenshare_dir}/#{meeting_id}", "#{target_dir}/deskshare")
+archive_directory("#{video_dir}/#{meeting_id}", "#{target_dir}/video/#{meeting_id}")
+# Kurento media
+archive_directory("#{kurento_screenshare_dir}/#{meeting_id}", "#{target_dir}/deskshare")
+archive_directory("#{kurento_video_dir}/#{meeting_id}", "#{target_dir}/video/#{meeting_id}")
+
+# If this was the last (or only) segment in a recording, delete the original media files
+if break_timestamp.nil?
+  BigBlueButton.logger.info('Deleting originals of archived media files.')
+  # FreeSWITCH Audio files
+  delete_audio(meeting_id, audio_dir)
+  # Red5 media
+  # TODO: need to figure out how to set permissions used when red5 creates directories
+  # does this even matter? we're removing red5 soon...
+  # FileUtils.rm_rf("#{screenshare_dir}/#{meeting_id}")
+  # FileUtils.rm_rf("#{video_dir}/#{meeting_id}")
+  # Kurento media
+  FileUtils.rm_rf("#{kurento_screenshare_dir}/#{meeting_id}")
+  FileUtils.rm_rf("#{kurento_video_dir}/#{meeting_id}")
+end
 
 if not archive_has_recording_marks?(meeting_id, raw_archive_dir, break_timestamp)
   BigBlueButton.logger.info("There's no recording marks for #{meeting_id}, not processing recording.")